public ProxiedInstantiator(Class componentClass) { proxiedClass = componentClass; if ( proxiedClass.isInterface() ) { factory = Environment.getBytecodeProvider() .getProxyFactoryFactory() .buildBasicProxyFactory( null, new Class[] { proxiedClass } ); } else { factory = Environment.getBytecodeProvider() .getProxyFactoryFactory() .buildBasicProxyFactory( proxiedClass, null ); } }
private final Enhancer enhancer = Environment.getBytecodeProvider().getEnhancer( context );
protected ProxyFactory buildProxyFactoryInternal( PersistentClass persistentClass, Getter idGetter, Setter idSetter) { // TODO : YUCK!!! fix after HHH-1907 is complete return Environment.getBytecodeProvider().getProxyFactoryFactory().buildProxyFactory( getFactory() ); // return getFactory().getSettings().getBytecodeProvider().getProxyFactoryFactory().buildProxyFactory(); }
private Object readResolve() { BytecodeProvider bytecodeProvider = Environment.getBytecodeProvider(); if ( !( bytecodeProvider instanceof BytecodeProviderImpl ) ) { throw new IllegalStateException( "The bytecode provider is not ByteBuddy, unable to deserialize a ByteBuddy proxy." ); } HibernateProxy proxy = ( (BytecodeProviderImpl) bytecodeProvider ).getByteBuddyProxyHelper().deserializeProxy( this ); afterDeserialization( (ByteBuddyInterceptor) proxy.getHibernateLazyInitializer() ); return proxy; } }
@Override public byte[] transform( ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { // The first design had the enhancer as a class variable. That approach had some goods and bads. // We don't had to create an enhancer for each class, but on the other end it would stay in memory forever. // It also assumed that all calls come from the same class loader, which is fair, but this makes it more robust. try { Enhancer enhancer = Environment.getBytecodeProvider().getEnhancer( new EnhancementContextWrapper( enhancementContext, loader ) ); return enhancer.enhance( className, classfileBuffer ); } catch (final Exception e) { throw new IllegalClassFormatException( "Error performing enhancement of " + className ) { @Override public synchronized Throwable getCause() { return e; } }; } }
final Enhancer enhancer = Environment.getBytecodeProvider().getEnhancer( enhancementContext );
Enhancer enhancer = Environment.getBytecodeProvider().getEnhancer( enhancementContext );
@Test @TestForIssue(jiraKey = "HHH-12584") public void testAbstractClass() { BytecodeProvider provider = Environment.getBytecodeProvider(); ReflectionOptimizer reflectionOptimizer = provider.getReflectionOptimizer( AbstractClass.class, new String[]{ "getProperty" }, new String[]{ "setProperty" }, new Class[]{ String.class } ); assertNotNull( reflectionOptimizer ); }
@Test @TestForIssue(jiraKey = "HHH-12584") public void testInterface() { BytecodeProvider provider = Environment.getBytecodeProvider(); ReflectionOptimizer reflectionOptimizer = provider.getReflectionOptimizer( Interface.class, new String[]{ "getProperty" }, new String[]{ "setProperty" }, new Class[]{ String.class } ); assertNotNull( reflectionOptimizer ); }
optimizer = Environment.getBytecodeProvider().getReflectionOptimizer( mappedClass, getterNames,
final Enhancer enhancer = Environment.getBytecodeProvider().getEnhancer( enhancementContext );
optimizer = Environment.getBytecodeProvider().getReflectionOptimizer( componentClass, getterNames, setterNames, propTypes );
Environment.getBytecodeProvider().resetCaches(); synchronized (this) { if ( isClosed ) {
@Test public void testReflectionOptimization() { BytecodeProvider provider = Environment.getBytecodeProvider(); ReflectionOptimizer optimizer = provider.getReflectionOptimizer( Bean.class, BeanReflectionHelper.getGetterNames(), BeanReflectionHelper.getSetterNames(), BeanReflectionHelper.getTypes() ); assertNotNull( optimizer ); assertNotNull( optimizer.getInstantiationOptimizer() ); assertNotNull( optimizer.getAccessOptimizer() ); Object instance = optimizer.getInstantiationOptimizer().newInstance(); assertEquals( instance.getClass(), Bean.class ); Bean bean = ( Bean ) instance; optimizer.getAccessOptimizer().setPropertyValues( bean, BeanReflectionHelper.TEST_VALUES ); assertEquals( bean.getSomeString(), BeanReflectionHelper.TEST_VALUES[0] ); Object[] values = optimizer.getAccessOptimizer().getPropertyValues( bean ); assertEquivalent( values, BeanReflectionHelper.TEST_VALUES ); }
public void initialize(Metadata metadata) { super.initialize(metadata); BytecodeProvider bytecodeProvider = Environment.getBytecodeProvider(); if(bytecodeProvider instanceof org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl || bytecodeProvider instanceof org.hibernate.bytecode.internal.bytebuddy.BytecodeProviderImpl) { enhanceEnabled = true; } }
public void initialize(Metadata metadata) { super.initialize(metadata); BytecodeProvider bytecodeProvider = Environment.getBytecodeProvider(); if(bytecodeProvider instanceof org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl || bytecodeProvider instanceof org.hibernate.bytecode.internal.bytebuddy.BytecodeProviderImpl) { enhanceEnabled = true; } }
protected ProxyFactory buildProxyFactoryInternal(EntityBinding entityBinding, Getter idGetter, Setter idSetter) { // TODO : YUCK!!! fix after HHH-1907 is complete return Environment.getBytecodeProvider().getProxyFactoryFactory().buildProxyFactory(); // return getFactory().getSettings().getBytecodeProvider().getProxyFactoryFactory().buildProxyFactory(); }
protected ProxyFactory buildProxyFactoryInternal(PersistentClass persistentClass, Getter idGetter, Setter idSetter) { // TODO : YUCK!!! fix after HHH-1907 is complete return Environment.getBytecodeProvider().getProxyFactoryFactory().buildProxyFactory(); // return getFactory().getSettings().getBytecodeProvider().getProxyFactoryFactory().buildProxyFactory(); }
protected ProxyFactory buildProxyFactoryInternal(EntityBinding entityBinding, Getter idGetter, Setter idSetter) { // TODO : YUCK!!! fix after HHH-1907 is complete return Environment.getBytecodeProvider().getProxyFactoryFactory().buildProxyFactory(); // return getFactory().getSettings().getBytecodeProvider().getProxyFactoryFactory().buildProxyFactory(); }
private Object readResolve() { BytecodeProvider bytecodeProvider = Environment.getBytecodeProvider(); if ( !( bytecodeProvider instanceof BytecodeProviderImpl ) ) { throw new IllegalStateException( "The bytecode provider is not ByteBuddy, unable to deserialize a ByteBuddy proxy." ); } HibernateProxy proxy = ( (BytecodeProviderImpl) bytecodeProvider ).getByteBuddyProxyHelper().deserializeProxy( this ); afterDeserialization( (ByteBuddyInterceptor) proxy.getHibernateLazyInitializer() ); return proxy; } }