Topia-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
April 2014
- 7 participants
- 73 discussions
Author: athimel
Date: 2014-04-03 14:57:58 +0200 (Thu, 03 Apr 2014)
New Revision: 3037
Url: http://forge.nuiton.org/projects/topia/repository/revisions/3037
Log:
Fix branch name
Added:
branches/topia-2.8.1.x/
Removed:
branches/topia-2.8.1.1/
Property changes on: branches/topia-2.8.1.x
___________________________________________________________________
Added: svn:ignore
+ *.ipr
*.iws
.classpath
*.iml
.project
target
.settings
.idea
atlassian-ide-plugin.xml
Added: svn:mergeinfo
+ /branches/from2.2.2-eugene2-beta:1662-1714
/branches/topia-2.6.x:2293-2300
1
0
r3036 - in trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence: internal util
by athimel@users.nuiton.org 03 Apr '14
by athimel@users.nuiton.org 03 Apr '14
03 Apr '14
Author: athimel
Date: 2014-04-03 14:48:19 +0200 (Thu, 03 Apr 2014)
New Revision: 3036
Url: http://forge.nuiton.org/projects/topia/repository/revisions/3036
Log:
fixes #2969 Fix Topia's Hibernate 4.3.x integration (fix the way *ServiceRegistry are used)
fixes #3078 should be OK now with Hibernate 4.3.5.Final and #2969 fix
Modified:
trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java
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-04-03 09:33:43 UTC (rev 3035)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java 2014-04-03 12:48:19 UTC (rev 3036)
@@ -45,7 +45,7 @@
import org.hibernate.event.spi.EventType;
import org.hibernate.service.Service;
import org.hibernate.service.ServiceRegistry;
-import org.hibernate.service.spi.ServiceRegistryImplementor;
+import org.hibernate.service.spi.SessionFactoryServiceRegistry;
import org.hibernate.service.spi.Stoppable;
import org.nuiton.topia.persistence.TopiaConfigurationConstants;
import org.nuiton.topia.persistence.TopiaNotFoundException;
@@ -174,9 +174,9 @@
}
// sletellier 20110411 : http://www.nuiton.org/issues/show/1454
- // Add persistance classes in hibernate config
- for (Class<?> persistanceClass : hibernatePersistanceClasses) {
- hibernateConfiguration.addClass(persistanceClass);
+ // Add persistence classes in hibernate config
+ for (Class<?> persistenceClass : hibernatePersistanceClasses) {
+ hibernateConfiguration.addClass(persistenceClass);
}
Properties prop = new Properties();
@@ -206,6 +206,48 @@
}
/**
+ * Method to extract from the given Hibernate SessionFactory a working instance of StandardServiceRegistry
+ * <p/>
+ * IMPORTANT : As much as possible, prefer using the
+ * {@link #getSessionFactoryServiceRegistry(org.hibernate.SessionFactory)} mthod instead of the current one because
+ * the SessionFactoryServiceRegistry is a child of the StandardServiceRegistry
+ * <p/>
+ * NB: This method is static to make sure it does not depend on the current instance
+ *
+ * @param sessionFactory the Hibernate's SessionFactory instance
+ * @return the StandardServiceRegistry instance used by the given SessionFactory
+ */
+ protected static StandardServiceRegistry getStandardServiceRegistry(SessionFactory sessionFactory) {
+
+ // AThimel 03/04/14 The next two lines are the good way to get the StandardServiceRegistry in Hibernate 4.3
+ SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions();
+ StandardServiceRegistry result = sessionFactoryOptions.getServiceRegistry();
+
+ return result;
+ }
+
+ /**
+ * Method to extract from the given Hibernate SessionFactory a working instance of SessionFactoryServiceRegistry
+ * <p/>
+ * IMPORTANT : If possible, prefer using this method instead of
+ * {@link #getStandardServiceRegistry(org.hibernate.SessionFactory)} because the SessionFactoryServiceRegistry is a
+ * child of the StandardServiceRegistry
+ * <p/>
+ * NB: This method is static to make sure it does not depend on the current instance
+ *
+ * @param sessionFactory the Hibernate's SessionFactory instance
+ * @return the SessionFactoryServiceRegistry instance used by the given SessionFactory
+ */
+ protected static SessionFactoryServiceRegistry getSessionFactoryServiceRegistry(SessionFactory sessionFactory) {
+
+ // AThimel 03/04/14 The next two lines are the good way to get the SessionFactoryServiceRegistry in Hibernate 4.3
+ SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) sessionFactory;
+ SessionFactoryServiceRegistry result = (SessionFactoryServiceRegistry)sessionFactoryImplementor.getServiceRegistry();
+
+ return result;
+ }
+
+ /**
* Method to get an Hibernate service instance from a given Hibernate SessionFactory
* <p/>
* NB: This method is static to make sure it does not depend on the current instance
@@ -216,14 +258,11 @@
* @throws org.hibernate.service.UnknownServiceException Indicates the service was not known.
* @see org.hibernate.service.ServiceRegistry#getService(Class)
*/
- protected static <S extends Service> S getHibernateService(SessionFactory sessionFactory, Class<S> serviceClass) {
- // Hibernate 4.2.x
- SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) sessionFactory;
- ServiceRegistryImplementor serviceRegistry = sessionFactoryImplementor.getServiceRegistry();
+ public static <S extends Service> S getHibernateService(SessionFactory sessionFactory, Class<S> serviceClass) {
-// // Hibernate 4.3.x
-// SessionFactory.SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions();
-// StandardServiceRegistry serviceRegistry = sessionFactoryOptions.getServiceRegistry()
+ // Hibernate 4.3.x : prefer using the SessionFactoryServiceRegistry method instead of StandardServiceRegistry
+ // because SessionFactoryServiceRegistry is a child of the StandardServiceRegistry
+ ServiceRegistry serviceRegistry = getSessionFactoryServiceRegistry(sessionFactory);
S result = serviceRegistry.getService(serviceClass);
return result;
@@ -249,22 +288,16 @@
Properties properties = getHibernateConfiguration().getProperties();
- // init service registry
- // Hibernate 4.2.x
-// ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(properties);
-// ServiceRegistry serviceRegistry = builder.buildServiceRegistry();
-// hibernateSessionFactory = getHibernateConfiguration().buildSessionFactory(serviceRegistry);
+ // Use the next 2 lines if bootstrap customization is needed (classloader, autoclose, ...)
+ // {@see org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl)
+// BootstrapServiceRegistry bootstrap = new BootstrapServiceRegistryBuilder().build();
+// StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(bootstrap);
-// // 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;
- ServiceRegistry serviceRegistryInit = sessionFactoryImplementor.getServiceRegistry();
- EventListenerRegistry eventListenerRegistry = serviceRegistryInit.getService(EventListenerRegistry.class);
+ EventListenerRegistry eventListenerRegistry = getHibernateService(hibernateSessionFactory, EventListenerRegistry.class);
TopiaHibernateEventListener listener = new TopiaHibernateEventListener(sessionRegistry);
eventListenerRegistry.appendListeners(EventType.PRE_INSERT, listener);
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-04-03 09:33:43 UTC (rev 3035)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java 2014-04-03 12:48:19 UTC (rev 3036)
@@ -52,6 +52,7 @@
import org.nuiton.topia.persistence.TopiaConfigurationConstants;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.TopiaNotFoundException;
+import org.nuiton.topia.persistence.internal.HibernateProvider;
import org.nuiton.topia.persistence.support.TopiaHibernateSupport;
import org.nuiton.util.RecursiveProperties;
import org.nuiton.util.Resource;
@@ -160,7 +161,7 @@
}
/**
- * Test si une entite donnee correspondant a une configuration existe en
+ * Test si une entité donnée correspondant a une configuration existe en
* base.
*
* @param topiaHibernateSupport the Hibernate support required for this operation
@@ -226,6 +227,13 @@
log.error("Cant connect to database", e);
}
+ // close connectionProviderSupplier
+ try {
+ connectionProviderSupplier.close();
+ } catch (IOException e) {
+ log.error("Cant close connection provider", e);
+ }
+
return exist;
}
@@ -318,8 +326,7 @@
try {
- ConnectionProvider connectionProvider =
- connectionProviderSupplier.get();
+ ConnectionProvider connectionProvider = connectionProviderSupplier.get();
Dialect dialect = Dialect.getDialect(configuration.getProperties());
@@ -492,85 +499,56 @@
return properties;
}
-// /**
-// * Hibernate 4.2.x compatible Supplier<ConnectionProvider>
-// */
-// public static class ConnectionProviderSupplier implements Supplier<ConnectionProvider>, Closeable {
-//
-// protected ServiceRegistry serviceRegistry;
-//
-// protected ConnectionProvider connectionProvider;
-//
-// protected final boolean inlineRegistry;
-//
-// public ConnectionProviderSupplier(TopiaHibernateSupport topiaHibernateSupport) {
-// inlineRegistry = false;
-// SessionFactory sessionFactory = topiaHibernateSupport.getHibernateFactory();
-// SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) sessionFactory;
-// serviceRegistry = sessionFactoryImplementor.getServiceRegistry();
-// }
-//
-// public ConnectionProviderSupplier(Configuration configuration) {
-// inlineRegistry = true;
-//
-// Properties properties = configuration.getProperties();
-// ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(properties);
-// this.serviceRegistry = builder.buildServiceRegistry();
-// }
-//
-// @Override
-// public ConnectionProvider get() {
-// if (connectionProvider == null) {
-// connectionProvider = serviceRegistry.getService(ConnectionProvider.class);
-// }
-// return connectionProvider;
-// }
-//
-// @Override
-// public void close() throws IOException {
-// if (inlineRegistry) {
-// ServiceRegistryBuilder.destroy(serviceRegistry);
-// }
-// }
-// }
-
/**
- * Hibernate 4.3.x compatible Supplier<ConnectionProvider>
+ * Hibernate 4.3.x compatible Supplier<ConnectionProvider>. The provider will choose the best way to find the
+ * ConnectionProvider depending on the way is has been created.
*/
public static class ConnectionProviderSupplier implements Supplier<ConnectionProvider>, Closeable {
+ /**
+ * If provided, the SessionFactory will be used instead of the StandardServiceRegistry
+ */
+ protected SessionFactory sessionFactory;
+
+ /**
+ * StandardServiceRegistry will be used if no SessionFactory is provided
+ */
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();
+ Preconditions.checkNotNull(topiaHibernateSupport);
+ sessionFactory = topiaHibernateSupport.getHibernateFactory();
}
public ConnectionProviderSupplier(Configuration configuration) {
- inlineRegistry = true;
-
- StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
Properties properties = configuration.getProperties();
+ StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
this.standardServiceRegistry = builder.applySettings(properties).build();
}
@Override
public ConnectionProvider get() {
if (connectionProvider == null) {
- connectionProvider = standardServiceRegistry.getService(ConnectionProvider.class);
+ if (sessionFactory != null ) {
+ // If SessionFactory is provided, use the SessionFactoryServiceRegistry
+ connectionProvider = HibernateProvider.getHibernateService(sessionFactory, ConnectionProvider.class);
+ } else {
+ // otherwise use the StandardServiceRegistry
+ connectionProvider = standardServiceRegistry.getService(ConnectionProvider.class);
+ }
}
return connectionProvider;
}
@Override
public void close() throws IOException {
- if (inlineRegistry) {
+ // Do not close the SessionFactory, it is probably used somewhere else
+
+ // On the over hand, if standardServiceRegistry is provided, that means the its has been created explicitly
+ // for the current instance, close it
+ if (standardServiceRegistry != null) {
StandardServiceRegistryBuilder.destroy(standardServiceRegistry);
}
}
1
0
r3035 - 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
by athimel@users.nuiton.org 03 Apr '14
by athimel@users.nuiton.org 03 Apr '14
03 Apr '14
Author: athimel
Date: 2014-04-03 11:33:43 +0200 (Thu, 03 Apr 2014)
New Revision: 3035
Url: http://forge.nuiton.org/projects/topia/repository/revisions/3035
Log:
refs-80 #2969 Now seems to be Hibernate 4.3.x compatible
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-03-28 15:21:44 UTC (rev 3034)
+++ trunk/pom.xml 2014-04-03 09:33:43 UTC (rev 3035)
@@ -29,7 +29,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmineAndCentral</artifactId>
- <version>5.0.1</version>
+ <version>5.0.5-SNAPSHOT</version>
</parent>
<artifactId>topia</artifactId>
@@ -244,7 +244,7 @@
<nuitonI18nVersion>3.0</nuitonI18nVersion>
<processorPluginVersion>1.3</processorPluginVersion>
<xmlrpcVersion>3.1.2</xmlrpcVersion>
- <hibernateVersion>4.2.8.Final</hibernateVersion>
+ <hibernateVersion>4.3.5.Final</hibernateVersion>
<sl4jVersion>1.7.6</sl4jVersion>
<h2Version>1.3.175</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 2014-03-28 15:21:44 UTC (rev 3034)
+++ trunk/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java 2014-04-03 09:33:43 UTC (rev 3035)
@@ -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-03-28 15:21:44 UTC (rev 3034)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java 2014-04-03 09:33:43 UTC (rev 3035)
@@ -36,14 +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;
@@ -250,14 +251,14 @@
// init service registry
// Hibernate 4.2.x
- ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(properties);
- ServiceRegistry serviceRegistry = builder.buildServiceRegistry();
- hibernateSessionFactory = getHibernateConfiguration().buildSessionFactory(serviceRegistry);
+// 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);
+ 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
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-03-28 15:21:44 UTC (rev 3034)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java 2014-04-03 09:33:43 UTC (rev 3035)
@@ -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-03-28 15:21:44 UTC (rev 3034)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support/TopiaHibernateEventListener.java 2014-04-03 09:33:43 UTC (rev 3035)
@@ -137,12 +137,12 @@
}
}
-// // Hibernate 4.3.x
-// @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-03-28 15:21:44 UTC (rev 3034)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java 2014-04-03 09:33:43 UTC (rev 3035)
@@ -40,14 +40,13 @@
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.spi.SessionFactoryImplementor;
+import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
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;
@@ -493,54 +492,12 @@
return properties;
}
- /**
- * Hibernate 4.2.x compatible Supplier<ConnectionProvider>
- */
- public static class ConnectionProviderSupplier implements Supplier<ConnectionProvider>, Closeable {
-
- protected ServiceRegistry serviceRegistry;
-
- protected ConnectionProvider connectionProvider;
-
- protected final boolean inlineRegistry;
-
- public ConnectionProviderSupplier(TopiaHibernateSupport topiaHibernateSupport) {
- inlineRegistry = false;
- SessionFactory sessionFactory = topiaHibernateSupport.getHibernateFactory();
- SessionFactoryImplementor sessionFactoryImplementor = (SessionFactoryImplementor) sessionFactory;
- serviceRegistry = sessionFactoryImplementor.getServiceRegistry();
- }
-
- public ConnectionProviderSupplier(Configuration configuration) {
- inlineRegistry = true;
-
- Properties properties = configuration.getProperties();
- ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(properties);
- this.serviceRegistry = builder.buildServiceRegistry();
- }
-
- @Override
- public ConnectionProvider get() {
- if (connectionProvider == null) {
- connectionProvider = serviceRegistry.getService(ConnectionProvider.class);
- }
- return connectionProvider;
- }
-
- @Override
- public void close() throws IOException {
- if (inlineRegistry) {
- ServiceRegistryBuilder.destroy(serviceRegistry);
- }
- }
- }
-
// /**
-// * Hibernate 4.3.x compatible Supplier<ConnectionProvider>
+// * Hibernate 4.2.x compatible Supplier<ConnectionProvider>
// */
// public static class ConnectionProviderSupplier implements Supplier<ConnectionProvider>, Closeable {
//
-// protected StandardServiceRegistry standardServiceRegistry;
+// protected ServiceRegistry serviceRegistry;
//
// protected ConnectionProvider connectionProvider;
//
@@ -549,22 +506,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;
// }
@@ -572,9 +529,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);
+ }
+ }
+ }
+
}
1
0