Class HibernateTransformers
- java.lang.Object
-
- org.hotswap.agent.plugin.hibernate.HibernateTransformers
-
public class HibernateTransformers extends java.lang.ObjectStatic transformers for Hibernate plugin.
-
-
Constructor Summary
Constructors Constructor Description HibernateTransformers()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidannotationMetaDataProviderRegisterVariable(org.hotswap.agent.javassist.CtClass ctClass)static voidbeanMetaDataManagerRegisterVariable(org.hotswap.agent.javassist.CtClass ctClass)static voidproxyHibernatePersistence(org.hotswap.agent.javassist.CtClass clazz)Override HibernatePersistence.createContainerEntityManagerFactory() to return EntityManagerFactory proxy object.static voidproxySessionFactory(java.lang.ClassLoader classLoader, org.hotswap.agent.javassist.ClassPool classPool, org.hotswap.agent.javassist.CtClass clazz)static voidremoveSessionFactoryImplFinalFlag(org.hotswap.agent.javassist.CtClass clazz)Remove final flag from SessionFactoryImpl - we need to create a proxy on session factory and cannot use SessionFactory interface, because hibernate makes type cast to impl.
-
-
-
Method Detail
-
proxyHibernatePersistence
@OnClassLoadEvent(classNameRegexp="(org.hibernate.ejb.HibernatePersistence)|(org.hibernate.jpa.HibernatePersistenceProvider)|(org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider)|(org.springframework.orm.jpa.vendor.SpringHibernateEjbPersistenceProvider)") public static void proxyHibernatePersistence(org.hotswap.agent.javassist.CtClass clazz) throws java.lang.ExceptionOverride HibernatePersistence.createContainerEntityManagerFactory() to return EntityManagerFactory proxy object.EntityManagerFactoryProxyholds reference to all proxied factories and on refresh command replaces internal factory with fresh instance. Two variants covered - createContainerEntityManagerFactory and createEntityManagerFactory. After the entity manager factory and it's proxy are instantiated, plugin init method is invoked.- Throws:
java.lang.Exception
-
removeSessionFactoryImplFinalFlag
@OnClassLoadEvent(classNameRegexp="org.hibernate.internal.SessionFactoryImpl") public static void removeSessionFactoryImplFinalFlag(org.hotswap.agent.javassist.CtClass clazz) throws java.lang.ExceptionRemove final flag from SessionFactoryImpl - we need to create a proxy on session factory and cannot use SessionFactory interface, because hibernate makes type cast to impl.- Throws:
java.lang.Exception
-
proxySessionFactory
@OnClassLoadEvent(classNameRegexp="org.hibernate.cfg.Configuration") public static void proxySessionFactory(java.lang.ClassLoader classLoader, org.hotswap.agent.javassist.ClassPool classPool, org.hotswap.agent.javassist.CtClass clazz) throws java.lang.Exception- Throws:
java.lang.Exception
-
beanMetaDataManagerRegisterVariable
@OnClassLoadEvent(classNameRegexp="org.hibernate.validator.internal.metadata.BeanMetaDataManager") public static void beanMetaDataManagerRegisterVariable(org.hotswap.agent.javassist.CtClass ctClass) throws org.hotswap.agent.javassist.CannotCompileException- Throws:
org.hotswap.agent.javassist.CannotCompileException
-
annotationMetaDataProviderRegisterVariable
@OnClassLoadEvent(classNameRegexp="org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider") public static void annotationMetaDataProviderRegisterVariable(org.hotswap.agent.javassist.CtClass ctClass) throws org.hotswap.agent.javassist.CannotCompileException- Throws:
org.hotswap.agent.javassist.CannotCompileException
-
-