Class HibernatePlugin


  • @Plugin(name="Hibernate",
            group="groupHibernate",
            fallback=true,
            description="Reload Hibernate configuration after entity create/change.",
            testedVersions="All between 4.0.1 - 4.3.11, 5.0.0 - 5.2.10",
            expectedVersions={"4.0.x","4.1.x","4.2.x","5.0.[0-4,7-x]","5.1.x","5.2.x","5.3.x","5.4.x"},
            supportClass=HibernateTransformers.class)
    @Versions(maven={@Maven(value="[4.0,6.0)",artifactId="hibernate-core",groupId="org.hibernate"),@Maven(value="[4.0,6.0)",artifactId="hibernate-entitymanager",groupId="org.hibernate")},manifest={@Manifest(value="[4.0,6.0)",names=),@Manifest(value="[4.0,6.0)",names=),@Manifest(value="[4.0,6.0)",names=),@Manifest(value="[4.0,6.0)",names={,})})
    public class HibernatePlugin
    extends java.lang.Object
    Reload Hibernate configuration after entity create/change.
    Author:
    Jiri Bubnik
    • Constructor Summary

      Constructors 
      Constructor Description
      HibernatePlugin()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void entityReload​(org.hotswap.agent.javassist.CtClass clazz, java.lang.Class original)
      Reload after entity class change.
      void init​(java.lang.String version, java.lang.Boolean hibernateEjb)
      Plugin initialization properties (from HibernatePersistenceHelper or SessionFactoryProxy)
      void invalidateClassCache()  
      void newEntity​(org.hotswap.agent.javassist.CtClass clazz)
      New entity class - not covered by reloading mechanism.
      void registerAnnotationMetaDataProvider​(java.lang.Object annotatedMetaDataProvider)  
      void registerBeanMetaDataManager​(java.lang.Object beanMetaDataManager)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HibernatePlugin

        public HibernatePlugin()
    • Method Detail

      • init

        public void init​(java.lang.String version,
                         java.lang.Boolean hibernateEjb)
        Plugin initialization properties (from HibernatePersistenceHelper or SessionFactoryProxy)
      • entityReload

        @OnClassLoadEvent(classNameRegexp=".*",
                          events=REDEFINE)
        public void entityReload​(org.hotswap.agent.javassist.CtClass clazz,
                                 java.lang.Class original)
        Reload after entity class change. It covers also @Entity annotation removal.
      • newEntity

        @OnClassFileEvent(classNameRegexp=".*",
                          events=CREATE)
        public void newEntity​(org.hotswap.agent.javassist.CtClass clazz)
                       throws java.lang.Exception
        New entity class - not covered by reloading mechanism.

        Increase the reload timeout to avoid duplicate reloading in case of recompile with IDE and delete/create event sequence - than create is cached by this event and hotswap for the same class by entityReload.

        Throws:
        java.lang.Exception
      • invalidateClassCache

        @OnClassLoadEvent(classNameRegexp=".*",
                          events=REDEFINE)
        public void invalidateClassCache()
                                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • registerAnnotationMetaDataProvider

        public void registerAnnotationMetaDataProvider​(java.lang.Object annotatedMetaDataProvider)
      • registerBeanMetaDataManager

        public void registerBeanMetaDataManager​(java.lang.Object beanMetaDataManager)