r3010 - in trunk: . topia-it/src/test/java/org/nuiton/topia/it/legacy/framework topia-persistence/src/main/java/org/nuiton/topia/persistence/internal topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support topia-persistence/src/main/java/org/nuiton/topia/persistence/util
Author: athimel Date: 2014-02-14 10:02:16 +0100 (Fri, 14 Feb 2014) New Revision: 3010 Url: http://nuiton.org/projects/topia/repository/revisions/3010 Log: refs #2969 revert (again) update to Hibernate 4.3.x because of #3078 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/persistence/internal/HibernateProvider.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support/TopiaHibernateEventListener.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-02-12 21:52:42 UTC (rev 3009) +++ trunk/pom.xml 2014-02-14 09:02:16 UTC (rev 3010) @@ -241,9 +241,9 @@ <nuitonI18nVersion>3.0</nuitonI18nVersion> <processorPluginVersion>1.3</processorPluginVersion> <xmlrpcVersion>3.1.2</xmlrpcVersion> - <hibernateVersion>4.3.1.Final</hibernateVersion> - <sl4jVersion>1.7.5</sl4jVersion> - <h2Version>1.3.174</h2Version> + <hibernateVersion>4.2.8.Final</hibernateVersion> + <sl4jVersion>1.7.6</sl4jVersion> + <h2Version>1.3.175</h2Version> <hamcrestVersion>1.3</hamcrestVersion> </properties> 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 2014-02-12 21:52:42 UTC (rev 3009) +++ trunk/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java 2014-02-14 09:02:16 UTC (rev 3010) @@ -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/persistence/internal/HibernateProvider.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java 2014-02-12 21:52:42 UTC (rev 3009) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java 2014-02-14 09:02:16 UTC (rev 3010) @@ -36,15 +36,15 @@ 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.Service; 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.persistence.TopiaConfigurationConstants; import org.nuiton.topia.persistence.TopiaNotFoundException; @@ -216,8 +216,14 @@ * @see org.hibernate.service.ServiceRegistry#getService(Class) */ protected static <S extends Service> S getHibernateService(SessionFactory sessionFactory, Class<S> serviceClass) { - SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions(); - StandardServiceRegistry serviceRegistry = sessionFactoryOptions.getServiceRegistry(); + // Hibernate 4.2.x + SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) sessionFactory; + ServiceRegistryImplementor serviceRegistry = sessionFactoryImplementor.getServiceRegistry(); + +// // Hibernate 4.3.x +// SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions(); +// StandardServiceRegistry serviceRegistry = sessionFactoryOptions.getServiceRegistry() + S result = serviceRegistry.getService(serviceClass); return result; } @@ -240,13 +246,19 @@ if (hibernateSessionFactory == null) { - // init service registry - StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); Properties properties = getHibernateConfiguration().getProperties(); - StandardServiceRegistry standardServiceRegistry = builder.applySettings(properties).build(); - hibernateSessionFactory = getHibernateConfiguration().buildSessionFactory(standardServiceRegistry); + // init service registry + // Hibernate 4.2.x + ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(properties); + ServiceRegistry serviceRegistry = builder.buildServiceRegistry(); + hibernateSessionFactory = getHibernateConfiguration().buildSessionFactory(serviceRegistry); +// // Hibernate 4.3.x +// StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); +// 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 SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) hibernateSessionFactory; Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java 2014-02-12 21:52:42 UTC (rev 3009) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java 2014-02-14 09:02:16 UTC (rev 3010) @@ -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/persistence/internal/support/TopiaHibernateEventListener.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support/TopiaHibernateEventListener.java 2014-02-12 21:52:42 UTC (rev 3009) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support/TopiaHibernateEventListener.java 2014-02-14 09:02:16 UTC (rev 3010) @@ -137,11 +137,12 @@ } } - @Override - public boolean requiresPostCommitHanding(EntityPersister persister) { - // TODO AThimel 17/12/13 I don't know what to return - return false; - } +// // Hibernate 4.3.x +// @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/persistence/util/TopiaUtil.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java 2014-02-12 21:52:42 UTC (rev 3009) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java 2014-02-14 09:02:16 UTC (rev 3010) @@ -40,13 +40,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.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.tool.hbm2ddl.DatabaseMetadata; import org.hibernate.tool.hbm2ddl.TableMetadata; import org.nuiton.topia.persistence.TopiaConfigurationConstants; @@ -492,9 +493,12 @@ return properties; } + /** + * Hibernate 4.2.x compatible Supplier<ConnectionProvider> + */ public static class ConnectionProviderSupplier implements Supplier<ConnectionProvider>, Closeable { - protected StandardServiceRegistry standardServiceRegistry; + protected ServiceRegistry serviceRegistry; protected ConnectionProvider connectionProvider; @@ -503,22 +507,22 @@ public ConnectionProviderSupplier(TopiaHibernateSupport topiaHibernateSupport) { inlineRegistry = false; SessionFactory sessionFactory = topiaHibernateSupport.getHibernateFactory(); - SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions(); - this.standardServiceRegistry = sessionFactoryOptions.getServiceRegistry(); + SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) sessionFactory; + serviceRegistry = sessionFactoryImplementor.getServiceRegistry(); } 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(); } @Override public ConnectionProvider get() { if (connectionProvider == null) { - connectionProvider = standardServiceRegistry.getService(ConnectionProvider.class); + connectionProvider = serviceRegistry.getService(ConnectionProvider.class); } return connectionProvider; } @@ -526,8 +530,51 @@ @Override public void close() throws IOException { if (inlineRegistry) { - StandardServiceRegistryBuilder.destroy(standardServiceRegistry); + ServiceRegistryBuilder.destroy(serviceRegistry); } } } + +// /** +// * Hibernate 4.3.x compatible Supplier<ConnectionProvider> +// */ +// public static class ConnectionProviderSupplier implements Supplier<ConnectionProvider>, Closeable { +// +// protected StandardServiceRegistry standardServiceRegistry; +// +// protected ConnectionProvider connectionProvider; +// +// protected final boolean inlineRegistry; +// +// public ConnectionProviderSupplier(TopiaHibernateSupport topiaHibernateSupport) { +// inlineRegistry = false; +// SessionFactory sessionFactory = topiaHibernateSupport.getHibernateFactory(); +// SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions(); +// this.standardServiceRegistry = sessionFactoryOptions.getServiceRegistry(); +// } +// +// public ConnectionProviderSupplier(Configuration configuration) { +// inlineRegistry = true; +// +// 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); +// } +// return connectionProvider; +// } +// +// @Override +// public void close() throws IOException { +// if (inlineRegistry) { +// StandardServiceRegistryBuilder.destroy(standardServiceRegistry); +// } +// } +// } + }
participants (1)
-
athimelï¼ users.nuiton.org