Author: athimel Date: 2013-12-18 11:28:57 +0100 (Wed, 18 Dec 2013) New Revision: 2930 Url: http://nuiton.org/projects/topia/repository/revisions/2930 Log: refs #2969 Revert update to Hibernate 4.3.0.Final Modified: trunk/pom.xml trunk/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaConnectionProvider.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaHibernateEventListener.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/HibernateProvider.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2013-12-18 10:19:45 UTC (rev 2929) +++ trunk/pom.xml 2013-12-18 10:28:57 UTC (rev 2930) @@ -240,7 +240,7 @@ <nuitonI18nVersion>2.5.2</nuitonI18nVersion> <processorPluginVersion>1.3</processorPluginVersion> <xmlrpcVersion>3.1.2</xmlrpcVersion> - <hibernateVersion>4.3.0.Final</hibernateVersion> + <hibernateVersion>4.2.8.Final</hibernateVersion> <sl4jVersion>1.7.5</sl4jVersion> <h2Version>1.3.172</h2Version> <hamcrestVersion>1.3</hamcrestVersion> Modified: trunk/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java =================================================================== --- trunk/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java 2013-12-18 10:19:45 UTC (rev 2929) +++ trunk/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java 2013-12-18 10:28:57 UTC (rev 2930) @@ -36,11 +36,11 @@ import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.cfg.Environment; -import org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator; -import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import org.hibernate.internal.util.ReflectHelper; import org.hibernate.internal.util.config.ConfigurationHelper; import org.hibernate.service.UnknownUnwrapTypeException; +import org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator; +import org.hibernate.service.jdbc.connections.spi.ConnectionProvider; import org.hibernate.service.spi.Configurable; import org.hibernate.service.spi.Stoppable; Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaConnectionProvider.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaConnectionProvider.java 2013-12-18 10:19:45 UTC (rev 2929) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaConnectionProvider.java 2013-12-18 10:28:57 UTC (rev 2930) @@ -28,11 +28,11 @@ import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.cfg.Environment; -import org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator; -import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import org.hibernate.internal.util.ReflectHelper; import org.hibernate.internal.util.config.ConfigurationHelper; import org.hibernate.service.UnknownUnwrapTypeException; +import org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator; +import org.hibernate.service.jdbc.connections.spi.ConnectionProvider; import org.hibernate.service.spi.Configurable; import org.hibernate.service.spi.Stoppable; Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaHibernateEventListener.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaHibernateEventListener.java 2013-12-18 10:19:45 UTC (rev 2929) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaHibernateEventListener.java 2013-12-18 10:28:57 UTC (rev 2930) @@ -48,7 +48,6 @@ import org.hibernate.event.spi.PreUpdateEventListener; import org.hibernate.event.spi.SaveOrUpdateEvent; import org.hibernate.event.spi.SaveOrUpdateEventListener; -import org.hibernate.persister.entity.EntityPersister; import org.nuiton.topia.TopiaDaoSupplier; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaHibernateSessionRegistry; @@ -137,11 +136,11 @@ } } - @Override - public boolean requiresPostCommitHanding(EntityPersister persister) { - // TODO AThimel 17/12/13 I don't know what to return - return false; - } +// @Override +// public boolean requiresPostCommitHanding(EntityPersister persister) { +// // TODO AThimel 17/12/13 I don't know what to return +// return false; +// } /* Chargement */ Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2013-12-18 10:19:45 UTC (rev 2929) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2013-12-18 10:28:57 UTC (rev 2930) @@ -28,14 +28,15 @@ import com.google.common.base.Supplier; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.hibernate.SessionFactory; -import org.hibernate.boot.registry.StandardServiceRegistry; -import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.dialect.Dialect; -import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; +import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Table; +import org.hibernate.service.ServiceRegistry; +import org.hibernate.service.ServiceRegistryBuilder; +import org.hibernate.service.jdbc.connections.spi.ConnectionProvider; +import org.hibernate.service.spi.ServiceRegistryImplementor; import org.hibernate.tool.hbm2ddl.DatabaseMetadata; import org.hibernate.tool.hbm2ddl.TableMetadata; import org.nuiton.topia.TopiaContextFactory; @@ -171,11 +172,16 @@ public static boolean isSchemaExist(TopiaHibernateSupport topiaHibernateSupport, String entityName) { - SessionFactory sessionFactory = topiaHibernateSupport.getHibernateFactory(); - SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions(); - StandardServiceRegistry standardServiceRegistry = sessionFactoryOptions.getServiceRegistry(); - ConnectionProviderSupplier connectionProviderSupplier = new ConnectionProviderSupplier(standardServiceRegistry); + SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) topiaHibernateSupport.getHibernateFactory(); + ServiceRegistryImplementor serviceRegistry = sessionFactoryImplementor.getServiceRegistry(); + ConnectionProviderSupplier connectionProviderSupplier = new ConnectionProviderSupplier(serviceRegistry); + // TODO AThimel 18/12/13 Check this code compatibility with Hibernate 4.3.0.Final +// SessionFactory sessionFactory = topiaHibernateSupport.getHibernateFactory(); +// SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions(); +// StandardServiceRegistry standardServiceRegistry = sessionFactoryOptions.getServiceRegistry(); +// ConnectionProviderSupplier connectionProviderSupplier = new ConnectionProviderSupplier(standardServiceRegistry); + boolean exist = false; try { @@ -394,11 +400,16 @@ Configuration configuration = topiaHibernateSupport.getHibernateConfiguration(); - SessionFactory sessionFactory = topiaHibernateSupport.getHibernateFactory(); - SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions(); - StandardServiceRegistry standardServiceRegistry = sessionFactoryOptions.getServiceRegistry(); - ConnectionProviderSupplier connectionProviderSupplier = new ConnectionProviderSupplier(standardServiceRegistry); + SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) topiaHibernateSupport.getHibernateFactory(); + ServiceRegistryImplementor serviceRegistry = sessionFactoryImplementor.getServiceRegistry(); + ConnectionProviderSupplier connectionProviderSupplier = new ConnectionProviderSupplier(serviceRegistry); + // TODO AThimel 18/12/13 Check this code compatibility with Hibernate 4.3.0.Final +// SessionFactory sessionFactory = topiaHibernateSupport.getHibernateFactory(); +// SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions(); +// StandardServiceRegistry standardServiceRegistry = sessionFactoryOptions.getServiceRegistry(); +// ConnectionProviderSupplier connectionProviderSupplier = new ConnectionProviderSupplier(standardServiceRegistry); + try { ConnectionProvider connectionProvider = @@ -467,10 +478,16 @@ */ @Deprecated protected static ConnectionProvider getConnectionProvider(Configuration configuration) { - StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); Properties properties = configuration.getProperties(); - StandardServiceRegistry standardServiceRegistry = builder.applySettings(properties).build(); - ConnectionProvider result = standardServiceRegistry.getService(ConnectionProvider.class); + ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(properties); + ServiceRegistry serviceRegistry = builder.buildServiceRegistry(); + ConnectionProvider result = serviceRegistry.getService(ConnectionProvider.class); + + // TODO AThimel 18/12/13 Check this code compatibility with Hibernate 4.3.0.Final +// StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); +// Properties properties = configuration.getProperties(); +// StandardServiceRegistry standardServiceRegistry = builder.applySettings(properties).build(); +// ConnectionProvider result = standardServiceRegistry.getService(ConnectionProvider.class); return result; } @@ -514,30 +531,38 @@ public static class ConnectionProviderSupplier implements Supplier<ConnectionProvider>, Closeable { - protected StandardServiceRegistry standardServiceRegistry; + protected ServiceRegistry serviceRegistry; + // TODO AThimel 18/12/13 Check this code compatibility with Hibernate 4.3.0.Final +// protected StandardServiceRegistry standardServiceRegistry; + protected ConnectionProvider connectionProvider; protected final boolean inlineRegistry; - public ConnectionProviderSupplier(StandardServiceRegistry standardServiceRegistry) { + public ConnectionProviderSupplier(ServiceRegistry standardServiceRegistry) { inlineRegistry = false; - this.standardServiceRegistry = standardServiceRegistry; + this.serviceRegistry = standardServiceRegistry; } public ConnectionProviderSupplier(Configuration configuration) { inlineRegistry = true; - StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); Properties properties = configuration.getProperties(); - this.standardServiceRegistry = builder.applySettings(properties).build(); + ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(properties); + this.serviceRegistry = builder.buildServiceRegistry(); + // TODO AThimel 18/12/13 Check this code compatibility with Hibernate 4.3.0.Final +// StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); +// Properties properties = configuration.getProperties(); +// this.standardServiceRegistry = builder.applySettings(properties).build(); + } @Override public ConnectionProvider get() { if (connectionProvider == null) { - connectionProvider = standardServiceRegistry.getService(ConnectionProvider.class); + connectionProvider = serviceRegistry.getService(ConnectionProvider.class); } return connectionProvider; } @@ -545,7 +570,9 @@ @Override public void close() throws IOException { if (inlineRegistry) { - StandardServiceRegistryBuilder.destroy(standardServiceRegistry); + ServiceRegistryBuilder.destroy(serviceRegistry); + // TODO AThimel 18/12/13 Check this code compatibility with Hibernate 4.3.0.Final +// StandardServiceRegistryBuilder.destroy(standardServiceRegistry); } } } Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/HibernateProvider.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/HibernateProvider.java 2013-12-18 10:19:45 UTC (rev 2929) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/HibernateProvider.java 2013-12-18 10:28:57 UTC (rev 2930) @@ -36,14 +36,14 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.SessionFactory; -import org.hibernate.boot.registry.StandardServiceRegistry; -import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; -import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.event.service.spi.EventListenerRegistry; import org.hibernate.event.spi.EventType; import org.hibernate.service.ServiceRegistry; +import org.hibernate.service.ServiceRegistryBuilder; +import org.hibernate.service.jdbc.connections.spi.ConnectionProvider; +import org.hibernate.service.spi.ServiceRegistryImplementor; import org.hibernate.service.spi.Stoppable; import org.nuiton.topia.TopiaContextFactory; import org.nuiton.topia.TopiaNotFoundException; @@ -207,7 +207,12 @@ if (hibernateSessionFactory != null) { hibernateSessionFactory.close(); // close connection provider if possible (http://nuiton.org/issues/2757) - ConnectionProvider service = hibernateSessionFactory.getSessionFactoryOptions().getServiceRegistry().getService(ConnectionProvider.class); + SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) hibernateSessionFactory; + ServiceRegistryImplementor serviceRegistry = sessionFactoryImplementor.getServiceRegistry(); + ConnectionProvider service = serviceRegistry.getService(ConnectionProvider.class); + + // TODO AThimel 18/12/13 Check this code compatibility with Hibernate 4.3.0.Final +// ConnectionProvider service = hibernateSessionFactory.getSessionFactoryOptions().getServiceRegistry().getService(ConnectionProvider.class); if (service instanceof Stoppable) { Stoppable stoppable = (Stoppable) service; stoppable.stop(); @@ -220,12 +225,19 @@ if (hibernateSessionFactory == null) { // init service registry - StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); Properties properties = getHibernateConfiguration().getProperties(); - StandardServiceRegistry standardServiceRegistry = builder.applySettings(properties).build(); + ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(properties); + ServiceRegistry serviceRegistry = builder.buildServiceRegistry(); - hibernateSessionFactory = getHibernateConfiguration().buildSessionFactory(standardServiceRegistry); + hibernateSessionFactory = getHibernateConfiguration().buildSessionFactory(serviceRegistry); + // TODO AThimel 18/12/13 Check this code compatibility with Hibernate 4.3.0.Final +// StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); +// Properties properties = getHibernateConfiguration().getProperties(); +// StandardServiceRegistry standardServiceRegistry = builder.applySettings(properties).build(); +// +// hibernateSessionFactory = getHibernateConfiguration().buildSessionFactory(standardServiceRegistry); + // we can't reuse original serviceRegistry instance // we must call getServiceRegistry on factory to get a working one ServiceRegistry serviceRegistryInit = ((SessionFactoryImplementor) hibernateSessionFactory).getServiceRegistry();