Java Mailing List Archive

http://www.gg3721.com/

Home » Hibernate Commits List »

[hibernate-commits] Hibernate SVN: r14682 - in core/trunk:
 core/src/main/java/org/hibernate/bytecode/cglib and 7 other
 directories.

hibernate-commits

2008-05-21


Author LoginPost Reply
Author: steve.ebersole@(protected)
Date: 2008-05-21 16:13:20 -0400 (Wed, 21 May 2008)
New Revision: 14682

Modified:
 core/trunk/core/pom.xml
 core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/AccessOptimizerAdapter.java
 core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/BytecodeProviderImpl.java
 core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/CglibClassTransformer.java
 core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/InstantiationOptimizerAdapter.java
 core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/ProxyFactoryFactoryImpl.java
 core/trunk/core/src/main/java/org/hibernate/cfg/Environment.java
 core/trunk/core/src/main/java/org/hibernate/intercept/FieldInterceptionHelper.java
 core/trunk/core/src/main/java/org/hibernate/intercept/cglib/CGLIBHelper.java
 core/trunk/core/src/main/java/org/hibernate/intercept/cglib/FieldInterceptorImpl.java
 core/trunk/core/src/main/java/org/hibernate/proxy/pojo/cglib/CGLIBLazyInitializer.java
 core/trunk/core/src/main/java/org/hibernate/tool/instrument/cglib/InstrumentTask.java
 core/trunk/testsuite/pom.xml
 core/trunk/testsuite/src/test/java/org/hibernate/test/bytecode/cglib/CGLIBThreadLocalTest.java
Log:
HHH-2875 : cglib+asm repackage;
HHH-2506 : make javassist the default bytecode provider

Modified: core/trunk/core/pom.xml
===================================================================
--- core/trunk/core/pom.xml  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/pom.xml  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
        <optional>true</optional>
     </dependency>
     <dependency>
-        <groupId>cglib</groupId>
-        <artifactId>cglib</artifactId>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-cglib-repack</artifactId>
        <version>2.1_3</version>
        <optional>true</optional>
     </dependency>
-     <dependency>
-        <groupId>asm</groupId>
-        <artifactId>asm-attrs</artifactId>
-        <version>1.5.3</version>
-        <optional>true</optional>
-     </dependency>
  </dependencies>

  <build>

Modified: core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/AccessOptimizerAdapter.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/AccessOptimizerAdapter.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/AccessOptimizerAdapter.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@

import org.hibernate.bytecode.ReflectionOptimizer;
import org.hibernate.PropertyAccessException;
-import net.sf.cglib.beans.BulkBean;
-import net.sf.cglib.beans.BulkBeanException;
-import net.sf.cglib.reflect.FastClass;
+import org.hibernate.repackage.cglib.beans.BulkBean;
+import org.hibernate.repackage.cglib.beans.BulkBeanException;

import java.io.Serializable;
import java.io.ObjectOutputStream;

Modified: core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/BytecodeProviderImpl.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/BytecodeProviderImpl.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/BytecodeProviderImpl.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@

import java.lang.reflect.Modifier;

-import net.sf.cglib.beans.BulkBean;
-import net.sf.cglib.beans.BulkBeanException;
-import net.sf.cglib.reflect.FastClass;
-import net.sf.cglib.transform.ClassFilter;
-import net.sf.cglib.transform.ClassTransformer;
-import net.sf.cglib.transform.ClassTransformerFactory;
-import net.sf.cglib.transform.TransformingClassLoader;
-import net.sf.cglib.transform.impl.InterceptFieldFilter;
-import net.sf.cglib.transform.impl.InterceptFieldTransformer;
+import org.hibernate.repackage.cglib.beans.BulkBean;
+import org.hibernate.repackage.cglib.beans.BulkBeanException;
+import org.hibernate.repackage.cglib.reflect.FastClass;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.hibernate.bytecode.BytecodeProvider;
@@(protected) @@
import org.hibernate.bytecode.ReflectionOptimizer;
import org.hibernate.bytecode.util.FieldFilter;
import org.hibernate.util.StringHelper;
-import org.objectweb.asm.Type;

/**
* Bytecode provider implementation for CGLIB.
@@(protected) @@

 private static final Logger log = LoggerFactory.getLogger( BytecodeProviderImpl.class );

+  public BytecodeProviderImpl() {
+    log.warn( "The CGLIB BytecodeProvider impl is considered deprecated and not recommended for use" );
+  }
+
 public ProxyFactoryFactory getProxyFactoryFactory() {
   return new ProxyFactoryFactoryImpl();
 }

Modified: core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/CglibClassTransformer.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/CglibClassTransformer.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/CglibClassTransformer.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
import java.io.IOException;
import java.io.ByteArrayOutputStream;

-import net.sf.cglib.transform.ClassTransformer;
-import net.sf.cglib.transform.TransformingClassGenerator;
-import net.sf.cglib.transform.ClassReaderGenerator;
-import net.sf.cglib.transform.impl.InterceptFieldEnabled;
-import net.sf.cglib.transform.impl.InterceptFieldFilter;
-import net.sf.cglib.transform.impl.InterceptFieldTransformer;
-import net.sf.cglib.core.ClassNameReader;
-import net.sf.cglib.core.DebuggingClassWriter;
+import org.hibernate.repackage.cglib.transform.ClassTransformer;
+import org.hibernate.repackage.cglib.transform.TransformingClassGenerator;
+import org.hibernate.repackage.cglib.transform.ClassReaderGenerator;
+import org.hibernate.repackage.cglib.transform.impl.InterceptFieldEnabled;
+import org.hibernate.repackage.cglib.transform.impl.InterceptFieldFilter;
+import org.hibernate.repackage.cglib.transform.impl.InterceptFieldTransformer;
+import org.hibernate.repackage.cglib.core.ClassNameReader;
+import org.hibernate.repackage.cglib.core.DebuggingClassWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.hibernate.bytecode.AbstractClassTransformerImpl;
import org.hibernate.bytecode.util.FieldFilter;
import org.hibernate.bytecode.util.ClassFilter;
import org.hibernate.HibernateException;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.attrs.Attributes;
+import org.hibernate.repackage.cglib.asm.Attribute;
+import org.hibernate.repackage.cglib.asm.Type;
+import org.hibernate.repackage.cglib.asm.ClassReader;
+import org.hibernate.repackage.cglib.asm.ClassWriter;
+import org.hibernate.repackage.cglib.asm.attrs.Attributes;

/**
* Enhance the classes allowing them to implements InterceptFieldEnabled

Modified: core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/InstantiationOptimizerAdapter.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/InstantiationOptimizerAdapter.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/InstantiationOptimizerAdapter.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
package org.hibernate.bytecode.cglib;

import org.hibernate.bytecode.ReflectionOptimizer;
-import net.sf.cglib.reflect.FastClass;
+import org.hibernate.repackage.cglib.reflect.FastClass;
import org.hibernate.InstantiationException;

import java.io.Serializable;

Modified: core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/ProxyFactoryFactoryImpl.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/ProxyFactoryFactoryImpl.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/bytecode/cglib/ProxyFactoryFactoryImpl.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
import org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory;
import org.hibernate.AssertionFailure;
import org.hibernate.HibernateException;
-import net.sf.cglib.proxy.Enhancer;
-import net.sf.cglib.proxy.CallbackFilter;
-import net.sf.cglib.proxy.MethodInterceptor;
-import net.sf.cglib.proxy.MethodProxy;
-import net.sf.cglib.proxy.NoOp;
-import net.sf.cglib.proxy.Callback;
-import net.sf.cglib.proxy.Factory;
+import org.hibernate.repackage.cglib.proxy.Enhancer;
+import org.hibernate.repackage.cglib.proxy.CallbackFilter;
+import org.hibernate.repackage.cglib.proxy.MethodInterceptor;
+import org.hibernate.repackage.cglib.proxy.MethodProxy;
+import org.hibernate.repackage.cglib.proxy.NoOp;
+import org.hibernate.repackage.cglib.proxy.Callback;
+import org.hibernate.repackage.cglib.proxy.Factory;

import java.lang.reflect.Method;
import java.util.HashMap;

Modified: core/trunk/core/src/main/java/org/hibernate/cfg/Environment.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/cfg/Environment.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/cfg/Environment.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
   return (String) ISOLATION_LEVELS.get( new Integer(isolation) );
 }

-
 public static BytecodeProvider buildBytecodeProvider(Properties properties) {
-    String provider = PropertiesHelper.getString( Environment.BYTECODE_PROVIDER, properties, "cglib" );
+    String provider = PropertiesHelper.getString( BYTECODE_PROVIDER, properties, "javassist" );
   log.info( "Bytecode provider name : " + provider );
   return buildBytecodeProvider( provider );
 }
@@(protected) @@
   else if ( "cglib".equals( providerName ) ) {
     return new org.hibernate.bytecode.cglib.BytecodeProviderImpl();
   }
-    else {
-      log.warn( "unrecognized bytecode provider [" + providerName + "], using cglib by default" );
-      return new org.hibernate.bytecode.cglib.BytecodeProviderImpl();
-    }
+
+    log.warn( "unrecognized bytecode provider [" + providerName + "], using javassist by default" );
+    return new org.hibernate.bytecode.javassist.BytecodeProviderImpl();
 }

}

Modified: core/trunk/core/src/main/java/org/hibernate/intercept/FieldInterceptionHelper.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/intercept/FieldInterceptionHelper.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/intercept/FieldInterceptionHelper.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
 public static boolean isInstrumented(Class entityClass) {
   Class[] definedInterfaces = entityClass.getInterfaces();
   for ( int i = 0; i < definedInterfaces.length; i++ ) {
-      if ( "net.sf.cglib.transform.impl.InterceptFieldEnabled".equals( definedInterfaces[i].getName() )
+      if ( "org.hibernate.repackage.cglib.transform.impl.InterceptFieldEnabled".equals( definedInterfaces[i].getName() )
        || "org.hibernate.bytecode.javassist.FieldHandled".equals( definedInterfaces[i].getName() ) ) {
       return true;
     }
@@(protected) @@
   }
   Class[] definedInterfaces = entity.getClass().getInterfaces();
   for ( int i = 0; i < definedInterfaces.length; i++ ) {
-      if ( "net.sf.cglib.transform.impl.InterceptFieldEnabled".equals( definedInterfaces[i].getName() ) ) {
+      if ( "org.hibernate.repackage.cglib.transform.impl.InterceptFieldEnabled".equals( definedInterfaces[i].getName() ) ) {
       // we have a CGLIB enhanced entity
       return CGLIBHelper.extractFieldInterceptor( entity );
     }
@@(protected) @@
   if ( entity != null ) {
     Class[] definedInterfaces = entity.getClass().getInterfaces();
     for ( int i = 0; i < definedInterfaces.length; i++ ) {
-        if ( "net.sf.cglib.transform.impl.InterceptFieldEnabled".equals( definedInterfaces[i].getName() ) ) {
+        if ( "org.hibernate.repackage.cglib.transform.impl.InterceptFieldEnabled".equals( definedInterfaces[i].getName() ) ) {
         // we have a CGLIB enhanced entity
         return CGLIBHelper.injectFieldInterceptor( entity, entityName, uninitializedFieldNames, session );
       }

Modified: core/trunk/core/src/main/java/org/hibernate/intercept/cglib/CGLIBHelper.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/intercept/cglib/CGLIBHelper.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/intercept/cglib/CGLIBHelper.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@

import org.hibernate.intercept.FieldInterceptor;
import org.hibernate.engine.SessionImplementor;
-import net.sf.cglib.transform.impl.InterceptFieldEnabled;
+import org.hibernate.repackage.cglib.transform.impl.InterceptFieldEnabled;

import java.util.Set;


Modified: core/trunk/core/src/main/java/org/hibernate/intercept/cglib/FieldInterceptorImpl.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/intercept/cglib/FieldInterceptorImpl.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/intercept/cglib/FieldInterceptorImpl.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
import java.io.Serializable;
import java.util.Set;

-import net.sf.cglib.transform.impl.InterceptFieldCallback;
+import org.hibernate.repackage.cglib.transform.impl.InterceptFieldCallback;

import org.hibernate.intercept.AbstractFieldInterceptor;
import org.hibernate.engine.SessionImplementor;
@@(protected) @@
 /**
  * Package-protected constructor
  *
-   * @param session
-   * @param uninitializedFields
-   * @param entityName
+   * @param session The Hibernate session
+   * @param uninitializedFields Names of the fields we need to initialize on load
+   * @param entityName The entity name to which we are being bound
  */
 FieldInterceptorImpl(SessionImplementor session, Set uninitializedFields, String entityName) {
   super( session, uninitializedFields, entityName );

Modified: core/trunk/core/src/main/java/org/hibernate/proxy/pojo/cglib/CGLIBLazyInitializer.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/proxy/pojo/cglib/CGLIBLazyInitializer.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/proxy/pojo/cglib/CGLIBLazyInitializer.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

-import net.sf.cglib.proxy.Callback;
-import net.sf.cglib.proxy.CallbackFilter;
-import net.sf.cglib.proxy.Enhancer;
-import net.sf.cglib.proxy.InvocationHandler;
-import net.sf.cglib.proxy.NoOp;
+import org.hibernate.repackage.cglib.proxy.Callback;
+import org.hibernate.repackage.cglib.proxy.CallbackFilter;
+import org.hibernate.repackage.cglib.proxy.Enhancer;
+import org.hibernate.repackage.cglib.proxy.InvocationHandler;
+import org.hibernate.repackage.cglib.proxy.NoOp;

import org.hibernate.HibernateException;
import org.hibernate.LazyInitializationException;

Modified: core/trunk/core/src/main/java/org/hibernate/tool/instrument/cglib/InstrumentTask.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/tool/instrument/cglib/InstrumentTask.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/core/src/main/java/org/hibernate/tool/instrument/cglib/InstrumentTask.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
import org.hibernate.bytecode.cglib.BytecodeProviderImpl;
import org.hibernate.bytecode.ClassTransformer;
import org.hibernate.tool.instrument.BasicInstrumentationTask;
-import org.objectweb.asm.ClassReader;
+import org.hibernate.repackage.cglib.asm.ClassReader;

import java.io.ByteArrayInputStream;

-import net.sf.cglib.core.ClassNameReader;
-import net.sf.cglib.transform.impl.InterceptFieldEnabled;
+import org.hibernate.repackage.cglib.core.ClassNameReader;
+import org.hibernate.repackage.cglib.transform.impl.InterceptFieldEnabled;

/**
* An Ant task for instrumenting persistent classes in order to enable

Modified: core/trunk/testsuite/pom.xml
===================================================================
--- core/trunk/testsuite/pom.xml  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/testsuite/pom.xml  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
        <version>3.4.GA</version>
     </dependency>
     <dependency>
-        <groupId>cglib</groupId>
-        <artifactId>cglib</artifactId>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-cglib-repack</artifactId>
        <version>2.1_3</version>
     </dependency>
-     <dependency>
-        <groupId>asm</groupId>
-        <artifactId>asm-attrs</artifactId>
-        <version>1.5.3</version>
-     </dependency>
     <!-- optional dom4j dependency; needed here for dom4j (de)serialization -->
     <dependency>
        <groupId>jaxen</groupId>

Modified: core/trunk/testsuite/src/test/java/org/hibernate/test/bytecode/cglib/CGLIBThreadLocalTest.java
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/bytecode/cglib/CGLIBThreadLocalTest.java  2008-05-21 19:53:21 UTC (rev 14681)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/bytecode/cglib/CGLIBThreadLocalTest.java  2008-05-21 20:13:20 UTC (rev 14682)
@@(protected) @@
import org.hibernate.test.bytecode.*;
import junit.framework.*;

-import java.text.*;
import java.lang.reflect.*;

-import net.sf.cglib.proxy.*;

/**
* Test that the static thread local callback object is cleared out of the proxy class after instantiated.

_______________________________________________
hibernate-commits mailing list
hibernate-commits@(protected)
https://lists.jboss.org/mailman/listinfo/hibernate-commits
©2008 gg3721.com - Jax Systems, LLC, U.S.A.