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
March 2013
- 1 participants
- 1 discussions
12 Mar '13
Author: echatellier
Date: 2013-03-12 16:48:07 +0100 (Tue, 12 Mar 2013)
New Revision: 2706
Url: http://nuiton.org/projects/topia/repository/revisions/2706
Log:
Test new branch on hibernate 4.2
Added:
branches/topia-2.8.x-hibernate4/
Modified:
branches/topia-2.8.x-hibernate4/pom.xml
branches/topia-2.8.x-hibernate4/topia-persistence/pom.xml
branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaConnectionProvider.java
branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java
branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java
branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java
branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java
branches/topia-2.8.x-hibernate4/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaConnectionProviderHardCoded.java
branches/topia-2.8.x-hibernate4/topia-service-migration/pom.xml
branches/topia-2.8.x-hibernate4/topia-service-replication/pom.xml
branches/topia-2.8.x-hibernate4/topia-service-security/pom.xml
Property changes on: branches/topia-2.8.x-hibernate4
___________________________________________________________________
Added: svn:ignore
+ *.ipr
*.iws
.classpath
*.iml
.project
target
.settings
.idea
Added: svn:mergeinfo
+ /branches/from2.2.2-eugene2-beta:1662-1714
/branches/topia-2.6.x:2293-2300
Modified: branches/topia-2.8.x-hibernate4/pom.xml
===================================================================
--- branches/topia-2.6.x/pom.xml 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/pom.xml 2013-03-12 15:48:07 UTC (rev 2706)
@@ -37,7 +37,7 @@
</parent>
<artifactId>topia</artifactId>
- <version>2.7.2-SNAPSHOT</version>
+ <version>2.8-SNAPSHOT</version>
<modules>
<module>topia-persistence</module>
@@ -64,7 +64,7 @@
<processorPluginVersion>1.3</processorPluginVersion>
<nuitonI18nVersion>2.5</nuitonI18nVersion>
<xmlrpcVersion>3.1.2</xmlrpcVersion>
- <hibernateVersion>3.6.10.Final</hibernateVersion>
+ <hibernateVersion>4.2.0.CR2</hibernateVersion>
<sl4jVersion>1.6.6</sl4jVersion>
<h2Version>1.3.168</h2Version>
<hamcrestVersion>1.3</hamcrestVersion>
Modified: branches/topia-2.8.x-hibernate4/topia-persistence/pom.xml
===================================================================
--- branches/topia-2.6.x/topia-persistence/pom.xml 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-persistence/pom.xml 2013-03-12 15:48:07 UTC (rev 2706)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>topia</artifactId>
- <version>2.7.2-SNAPSHOT</version>
+ <version>2.8-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.topia</groupId>
Modified: branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaConnectionProvider.java
===================================================================
--- branches/topia-2.6.x/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaConnectionProvider.java 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaConnectionProvider.java 2013-03-12 15:48:07 UTC (rev 2706)
@@ -24,22 +24,23 @@
*/
package org.nuiton.topia.framework;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.hibernate.HibernateException;
-import org.hibernate.cfg.Environment;
-import org.hibernate.connection.ConnectionProvider;
-import org.hibernate.connection.ConnectionProviderFactory;
-import org.hibernate.util.PropertiesHelper;
-import org.hibernate.util.ReflectHelper;
-
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.HibernateException;
+import org.hibernate.cfg.Environment;
+import org.hibernate.internal.util.ReflectHelper;
+import org.hibernate.internal.util.config.ConfigurationHelper;
+import org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator;
+import org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl;
+
/**
* Customized connection provider.
* <p/>
@@ -61,7 +62,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 2.5.3
*/
-public class TopiaConnectionProvider implements ConnectionProvider {
+public class TopiaConnectionProvider extends DriverManagerConnectionProviderImpl {
/** Logger. */
private static final Log log =
@@ -112,19 +113,19 @@
}
@Override
- public void configure(Properties props) throws HibernateException {
- String driverClass = props.getProperty(Environment.DRIVER);
+ public void configure(Map configurationValues) throws HibernateException {
+ String driverClass = (String)configurationValues.get(Environment.DRIVER);
- poolSize = PropertiesHelper.getInt(Environment.POOL_SIZE, props, 20); //default pool size 20
+ poolSize = ConfigurationHelper.getInt(Environment.POOL_SIZE, configurationValues, 20); //default pool size 20
if (log.isDebugEnabled()) {
log.debug("Connection pool size: " + poolSize);
}
- autocommit = PropertiesHelper.getBoolean(Environment.AUTOCOMMIT, props);
+ autocommit = ConfigurationHelper.getBoolean(Environment.AUTOCOMMIT, configurationValues);
if (log.isDebugEnabled())
log.debug("autocommit mode: " + autocommit);
- isolation = PropertiesHelper.getInteger(Environment.ISOLATION, props);
+ isolation = ConfigurationHelper.getInteger(Environment.ISOLATION, configurationValues);
if (isolation != null) {
if (log.isDebugEnabled()) {
log.debug("JDBC isolation level: " +
@@ -153,7 +154,7 @@
}
}
- url = props.getProperty(Environment.URL);
+ url = (String)configurationValues.get(Environment.URL);
if (url == null) {
String msg = "JDBC URL was not specified by property " +
Environment.URL;
@@ -164,7 +165,7 @@
}
connectionProps =
- ConnectionProviderFactory.getConnectionProperties(props);
+ ConnectionProviderInitiator.getConnectionProperties(configurationValues);
if (log.isDebugEnabled()) {
log.debug("using driver: " + driverClass + " at URL: " + url);
@@ -174,7 +175,7 @@
log.debug("connection properties: " + connectionProps);
} else if (log.isDebugEnabled()) {
log.debug("connection properties: " +
- PropertiesHelper.maskOut(connectionProps, "password"));
+ ConfigurationHelper.maskOut(connectionProps, "password"));
}
}
@@ -272,11 +273,11 @@
@Override
protected void finalize() throws Throwable {
super.finalize();
- close();
+ stop();
}
@Override
- public void close() {
+ public void stop() {
if (log.isDebugEnabled()) {
log.debug("cleaning up connection pool: " + url);
Modified: branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java
===================================================================
--- branches/topia-2.6.x/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2013-03-12 15:48:07 UTC (rev 2706)
@@ -25,17 +25,36 @@
package org.nuiton.topia.framework;
+import static org.nuiton.i18n.I18n._;
+
+import java.beans.PropertyChangeListener;
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.lang.reflect.Field;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.WeakHashMap;
+import java.util.zip.GZIPInputStream;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.DocumentFactory;
-import org.dom4j.Element;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.SAXReader;
-import org.dom4j.io.XMLWriter;
-import org.hibernate.EntityMode;
import org.hibernate.FlushMode;
import org.hibernate.HibernateException;
import org.hibernate.Query;
@@ -45,15 +64,13 @@
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
-import org.hibernate.event.PostDeleteEventListener;
-import org.hibernate.event.PostInsertEventListener;
-import org.hibernate.event.PostLoadEventListener;
-import org.hibernate.event.PostUpdateEventListener;
-import org.hibernate.event.PreDeleteEventListener;
-import org.hibernate.event.PreInsertEventListener;
-import org.hibernate.event.PreLoadEventListener;
-import org.hibernate.event.PreUpdateEventListener;
+import org.hibernate.event.service.internal.EventListenerRegistryImpl;
+import org.hibernate.event.service.spi.EventListenerRegistry;
+import org.hibernate.event.spi.EventType;
+import org.hibernate.internal.SessionFactoryImpl;
import org.hibernate.jdbc.Work;
+import org.hibernate.service.ServiceRegistry;
+import org.hibernate.service.ServiceRegistryBuilder;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.hbm2ddl.SchemaUpdate;
import org.nuiton.topia.TopiaContext;
@@ -70,40 +87,7 @@
import org.nuiton.topia.persistence.TopiaDAOImpl;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.TopiaId;
-import org.nuiton.util.ArrayUtil;
-import java.beans.PropertyChangeListener;
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.lang.reflect.Field;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.WeakHashMap;
-import java.util.zip.GZIPInputStream;
-
-import static org.nuiton.i18n.I18n._;
-
/**
* Le TopiaContextImpl est le point d'entre pour acceder aux donnees. Il est
* configurer par un fichier de propriete
@@ -518,13 +502,36 @@
return hibernate;
}
+ protected ServiceRegistry serviceRegistry;
+ public ServiceRegistry getServiceRegistry() throws TopiaNotFoundException {
+ if (serviceRegistry == null) {
+ ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder().applySettings(
+ getHibernateConfiguration().getProperties());
+
+ serviceRegistry = serviceRegistryBuilder.buildServiceRegistry();
+ }
+ return serviceRegistry;
+ }
@Override
public SessionFactory getHibernateFactory() throws TopiaNotFoundException {
if (hibernateFactory == null) {
if (getParentContext() != null) {
hibernateFactory = getParentContext().getHibernateFactory();
} else {
- hibernateFactory = getHibernateConfiguration().buildSessionFactory();
+ hibernateFactory = getHibernateConfiguration().buildSessionFactory(getServiceRegistry());
+
+ EventListenerRegistry eventListenerRegistry = ((SessionFactoryImpl)hibernateFactory).getServiceRegistry()
+ .getService(EventListenerRegistry.class);
+ TopiaFiresSupport.TopiaHibernateEvent listener =
+ new TopiaFiresSupport.TopiaHibernateEvent(this);
+ eventListenerRegistry.appendListeners(EventType.PRE_INSERT, listener);
+ eventListenerRegistry.appendListeners(EventType.PRE_LOAD, listener);
+ eventListenerRegistry.appendListeners(EventType.PRE_UPDATE, listener);
+ eventListenerRegistry.appendListeners(EventType.PRE_DELETE, listener);
+ eventListenerRegistry.appendListeners(EventType.POST_INSERT, listener);
+ eventListenerRegistry.appendListeners(EventType.POST_LOAD, listener);
+ eventListenerRegistry.appendListeners(EventType.POST_UPDATE, listener);
+ eventListenerRegistry.appendListeners(EventType.POST_DELETE, listener);
}
}
return hibernateFactory;
@@ -539,76 +546,6 @@
} else {
hibernateConfiguration = new Configuration();
- // Ajout du listeners pour les events
- TopiaFiresSupport.TopiaHibernateEvent listener =
- new TopiaFiresSupport.TopiaHibernateEvent(this);
-
- PreInsertEventListener[] preInsertEventListeners =
- hibernateConfiguration.getEventListeners().
- getPreInsertEventListeners();
- preInsertEventListeners = ArrayUtil.concatElems(
- preInsertEventListeners, listener);
-
- PreLoadEventListener[] preLoadEventListeners =
- hibernateConfiguration.getEventListeners().
- getPreLoadEventListeners();
- preLoadEventListeners = ArrayUtil.concatElems(
- preLoadEventListeners, listener);
-
- PreUpdateEventListener[] preUpdateEventListeners =
- hibernateConfiguration.getEventListeners().
- getPreUpdateEventListeners();
- preUpdateEventListeners = ArrayUtil.concatElems(
- preUpdateEventListeners, listener);
-
- PreDeleteEventListener[] preDeleteEventListeners =
- hibernateConfiguration.getEventListeners().
- getPreDeleteEventListeners();
- preDeleteEventListeners = ArrayUtil.concatElems(
- preDeleteEventListeners, listener);
-
- PostInsertEventListener[] postInsertEventListeners =
- hibernateConfiguration.getEventListeners().
- getPostInsertEventListeners();
- postInsertEventListeners = ArrayUtil.concatElems(
- postInsertEventListeners, listener);
-
- PostLoadEventListener[] postLoadEventListeners =
- hibernateConfiguration.getEventListeners().
- getPostLoadEventListeners();
- postLoadEventListeners = ArrayUtil.concatElems(
- postLoadEventListeners, listener);
-
- PostUpdateEventListener[] postUpdateEventListeners =
- hibernateConfiguration.getEventListeners().
- getPostUpdateEventListeners();
- postUpdateEventListeners = ArrayUtil.concatElems(
- postUpdateEventListeners, listener);
-
- PostDeleteEventListener[] postDeleteEventListeners =
- hibernateConfiguration.getEventListeners().
- getPostDeleteEventListeners();
- postDeleteEventListeners = ArrayUtil.concatElems(
- postDeleteEventListeners, listener);
-
- hibernateConfiguration.getEventListeners().
- setPreInsertEventListeners(preInsertEventListeners);
- hibernateConfiguration.getEventListeners().
- setPreLoadEventListeners(preLoadEventListeners);
- hibernateConfiguration.getEventListeners().
- setPreUpdateEventListeners(preUpdateEventListeners);
- hibernateConfiguration.getEventListeners().
- setPreDeleteEventListeners(preDeleteEventListeners);
-
- hibernateConfiguration.getEventListeners().
- setPostInsertEventListeners(postInsertEventListeners);
- hibernateConfiguration.getEventListeners().
- setPostLoadEventListeners(postLoadEventListeners);
- hibernateConfiguration.getEventListeners().
- setPostUpdateEventListeners(postUpdateEventListeners);
- hibernateConfiguration.getEventListeners().
- setPostDeleteEventListeners(postDeleteEventListeners);
-
// ajout des repertoires contenant les mappings hibernate
String[] dirs = getConfig().getProperty(
TopiaContextFactory.CONFIG_PERSISTENCE_DIRECTORIES, "").split(",");
@@ -1115,7 +1052,7 @@
checkClosed(_("topia.persistence.error.unsupported.operation.on.closed.context",
"importXML"));
- Document doc;
+ /*Document doc;
SAXReader xmlReader = new SAXReader();
try {
@@ -1147,7 +1084,7 @@
} else {
throw new TopiaException(
_("topia.persistence.error.empty.doc"));
- }
+ }*/
}
@Override
@@ -1156,7 +1093,7 @@
checkClosed(_("topia.persistence.error.unsupported.operation.on.closed.context",
"exportXML"));
- String[] queries = buildQueries(entityAndcondition);
+ /*String[] queries = buildQueries(entityAndcondition);
// performs queries
try {
@@ -1175,36 +1112,6 @@
}
}
- /*for (int i = 0; i < entityAndcondition.length;) {
- try {
- entityClass = (Class) entityAndcondition[i++];
- condition = (String) entityAndcondition[i++];
-
- String query = "from " + entityClass.getName();
- if (condition != null && !condition.isEmpty()) {
- query += " where " + condition;
- }
-
- for (Object o : sessionDom4j.createQuery(query).list()) {
- rootElement.add((Element) o);
- }
- } catch (ClassCastException eee) {
- if (i % 2 == 0) {
- throw new IllegalArgumentException(
- "Others arguement must be String not "
- + entityAndcondition[i - 1], eee);
- } else {
- throw new IllegalArgumentException(
- "Others arguement must be Class not "
- + entityAndcondition[i - 1], eee);
- }
- } catch (IndexOutOfBoundsException eee) {
- throw new IllegalArgumentException(
- "Others arguement must be couple of (Class, String)",
- eee);
- }
- }*/
-
XMLWriter result = new XMLWriter(xml,
OutputFormat.createPrettyPrint());
result.write(doc);
@@ -1216,7 +1123,7 @@
} catch (IOException eee) {
throw new TopiaException(_("topia.persistence.error.on.export",
eee.getMessage()), eee);
- }
+ }*/
}
@Override
Modified: branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java
===================================================================
--- branches/topia-2.6.x/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java 2013-03-12 15:48:07 UTC (rev 2706)
@@ -25,26 +25,36 @@
package org.nuiton.topia.framework;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.beans.VetoableChangeSupport;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.commons.collections.map.IdentityMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Session;
-import org.hibernate.event.PostDeleteEvent;
-import org.hibernate.event.PostDeleteEventListener;
-import org.hibernate.event.PostInsertEvent;
-import org.hibernate.event.PostInsertEventListener;
-import org.hibernate.event.PostLoadEvent;
-import org.hibernate.event.PostLoadEventListener;
-import org.hibernate.event.PostUpdateEvent;
-import org.hibernate.event.PostUpdateEventListener;
-import org.hibernate.event.PreDeleteEvent;
-import org.hibernate.event.PreDeleteEventListener;
-import org.hibernate.event.PreInsertEvent;
-import org.hibernate.event.PreInsertEventListener;
-import org.hibernate.event.PreLoadEvent;
-import org.hibernate.event.PreLoadEventListener;
-import org.hibernate.event.PreUpdateEvent;
-import org.hibernate.event.PreUpdateEventListener;
+import org.hibernate.event.spi.PostDeleteEvent;
+import org.hibernate.event.spi.PostDeleteEventListener;
+import org.hibernate.event.spi.PostInsertEvent;
+import org.hibernate.event.spi.PostInsertEventListener;
+import org.hibernate.event.spi.PostLoadEvent;
+import org.hibernate.event.spi.PostLoadEventListener;
+import org.hibernate.event.spi.PostUpdateEvent;
+import org.hibernate.event.spi.PostUpdateEventListener;
+import org.hibernate.event.spi.PreDeleteEvent;
+import org.hibernate.event.spi.PreDeleteEventListener;
+import org.hibernate.event.spi.PreInsertEvent;
+import org.hibernate.event.spi.PreInsertEventListener;
+import org.hibernate.event.spi.PreLoadEvent;
+import org.hibernate.event.spi.PreLoadEventListener;
+import org.hibernate.event.spi.PreUpdateEvent;
+import org.hibernate.event.spi.PreUpdateEventListener;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaVetoException;
@@ -63,16 +73,6 @@
import org.nuiton.util.CategorisedListenerSet;
import org.nuiton.util.ListenerSet;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.beans.VetoableChangeSupport;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
/**
* TODO-fdesbois-20100507 : Need translation of javadoc.
* <p/>
Modified: branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java
===================================================================
--- branches/topia-2.6.x/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2013-03-12 15:48:07 UTC (rev 2706)
@@ -24,14 +24,23 @@
*/
package org.nuiton.topia.framework;
+import java.net.URL;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.StringTokenizer;
+import java.util.regex.Pattern;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.cfg.Configuration;
-import org.hibernate.connection.ConnectionProvider;
-import org.hibernate.connection.ConnectionProviderFactory;
import org.hibernate.dialect.Dialect;
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.TopiaContext;
@@ -41,14 +50,6 @@
import org.nuiton.util.RecursiveProperties;
import org.nuiton.util.Resource;
-import java.net.URL;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.StringTokenizer;
-import java.util.regex.Pattern;
-
/**
* TODO-fdesbois-20100507 : Need javadoc + translations for existing methods.
*
@@ -195,9 +196,9 @@
throw new IllegalArgumentException(
"could not find entity with name " + entityName);
}
- ConnectionProvider connectionProvider =
- ConnectionProviderFactory.newConnectionProvider(
- configuration.getProperties());
+
+ ServiceRegistry serviceRegistry = ((TopiaContextImpl) tx).getServiceRegistry();
+ ConnectionProvider connectionProvider = serviceRegistry.getService(ConnectionProvider.class);
Dialect dialect = Dialect.getDialect(configuration.getProperties());
@@ -262,10 +263,11 @@
throw new IllegalArgumentException(
"could not find entity with name " + entityName);
}
- ConnectionProvider connectionProvider =
- ConnectionProviderFactory.newConnectionProvider(
- configuration.getProperties());
+ ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(
+ configuration.getProperties()).buildServiceRegistry();
+ ConnectionProvider connectionProvider = serviceRegistry.getService(ConnectionProvider.class);
+
Dialect dialect = Dialect.getDialect(configuration.getProperties());
Connection connection = null;
@@ -308,9 +310,9 @@
try {
- ConnectionProvider connectionProvider =
- ConnectionProviderFactory.newConnectionProvider(
- configuration.getProperties());
+ ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(
+ configuration.getProperties()).buildServiceRegistry();
+ ConnectionProvider connectionProvider = serviceRegistry.getService(ConnectionProvider.class);
Dialect dialect = Dialect.getDialect(configuration.getProperties());
Modified: branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java
===================================================================
--- branches/topia-2.6.x/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java 2013-03-12 15:48:07 UTC (rev 2706)
@@ -313,7 +313,7 @@
String attrType = getType(attr, true);
String lazy = generateFromTagValue(HIBERNATE_ATTRIBUTE_LAZY, TopiaGeneratorUtil.getLazyTagValue(attr));
String attrColumn = TopiaGeneratorUtil.getDbName(attr);
-/*{<%=prefix%> <many-to-one name="<%=attrName%>" class="<%=attrType%>" <%=lazy%>column="<%=attrColumn%>" node="<%=attrName%>/@topiaId" embed-xml="false" <%=notNull%>/>
+/*{<%=prefix%> <many-to-one name="<%=attrName%>" class="<%=attrType%>" <%=lazy%>column="<%=attrColumn%>" node="<%=attrName%>/@topiaId" <%=notNull%>/>
}*/
// }
//Ne sert plus grâce à l'utilisation de la navigabilité
@@ -549,7 +549,7 @@
ObjectModelAttribute attr,
String prefix) throws IOException {
// boolean accessField = hasUnidirectionalRelationOnAbstractType(attr.getReverseAttribute(), model);
-/// *{ <one-to-one name="<%=getName(attr)%>" class="<%=getType(attr)%>"<%=(TopiaGeneratorUtil.notEmpty(attr.getTagValue(TopiaGeneratorUtil.TAG_LENGTH))?(" length=\"" + attr.getTagValue(TopiaGeneratorUtil.TAG_LENGTH) + "\""):"")%><%=((attr.isComposite() || attr.hasAssociationClass())?" cascade=\"delete\"":"")%><%=((accessField)?" access=\"field\"":"")%> node="<%=getName(attr)%>/@topiaId" embed-xml="false"/>
+/// *{ <one-to-one name="<%=getName(attr)%>" class="<%=getType(attr)%>"<%=(TopiaGeneratorUtil.notEmpty(attr.getTagValue(TopiaGeneratorUtil.TAG_LENGTH))?(" length=\"" + attr.getTagValue(TopiaGeneratorUtil.TAG_LENGTH) + "\""):"")%><%=((attr.isComposite() || attr.hasAssociationClass())?" cascade=\"delete\"":"")%><%=((accessField)?" access=\"field\"":"")%> node="<%=getName(attr)%>/@topiaId" />
//} */
// for hibernate many-to-one with unique="true" => one-to-one
@@ -587,19 +587,16 @@
inverse = "inverse=\"true\" ";
}
if (needsIndex) {
-/*{<%=prefix%> <<%=collType%> name="<%=attrName%>" <%=inverse%><%=lazy%><%=cascade%>node="<%=attrName%>" embed-xml="false">
+/*{<%=prefix%> <<%=collType%> name="<%=attrName%>" <%=inverse%><%=lazy%><%=cascade%>node="<%=attrName%>">
<%=prefix%> <key column="<%=reverseAttrDBName%>"/>
<%=prefix%> <list-index column="<%=reverseAttrDBName%>_idx"/>
-<%=prefix%> <one-to-many class="<%=attrType%>" node="topiaId" embed-xml="false"/>
+<%=prefix%> <one-to-many class="<%=attrType%>" node="topiaId"/>
<%=prefix%> </<%=collType%>>
}*/
}else {
-//fixme pour le moment, on ne calcule pas si on doit autoriser le embed-xml à true
-// on le positionne manuellement
-//TC-20090115 embed-xml wasat true but nobody could tellme why
-/*{<%=prefix%> <<%=collType%> name="<%=attrName%>" <%=inverse%><%=orderBy%><%=fetch%><%=lazy%><%=cascade%>node="<%=attrName%>" embed-xml="false">
+/*{<%=prefix%> <<%=collType%> name="<%=attrName%>" <%=inverse%><%=orderBy%><%=fetch%><%=lazy%><%=cascade%>node="<%=attrName%>">
<%=prefix%> <key column="<%=reverseAttrDBName%>"/>
-<%=prefix%> <one-to-many class="<%=attrType%>" node="topiaId" embed-xml="false"/>
+<%=prefix%> <one-to-many class="<%=attrType%>" node="topiaId"/>
<%=prefix%> </<%=collType%>>
}*/
}
@@ -645,7 +642,7 @@
String lazy = generateFromTagValue(HIBERNATE_ATTRIBUTE_LAZY, TopiaGeneratorUtil.getLazyTagValue(attr));
String attrColumn = TopiaGeneratorUtil.getDbName(attr);
-/*{<%=prefix%> <<%=collType%> name="<%=attrName%>" <%=lazy%>node="<%=attrName%>" embed-xml="true">
+/*{<%=prefix%> <<%=collType%> name="<%=attrName%>" <%=lazy%>node="<%=attrName%>">
<%=prefix%> <key column="OWNER"/>
}*/
if (needsIndex) {
@@ -688,7 +685,7 @@
if (isUnique) {
/*{unique="true" }*/
}
-/*{node="<%=attrName%>/@topiaId" embed-xml="false"}*/
+/*{node="<%=attrName%>/@topiaId"}*/
/*{/>
}*/
@@ -737,7 +734,7 @@
}
String reverseAttrDBName = TopiaGeneratorUtil.getReverseDbName(attr);
-/*{<%=prefix%> <<%=collType%> name="<%=attrName%>" table="<%=tableName%>" <%=inverse%><%=lazy%><%=cascade%> node="<%=attrName%>" embed-xml="true">
+/*{<%=prefix%> <<%=collType%> name="<%=attrName%>" table="<%=tableName%>" <%=inverse%><%=lazy%><%=cascade%> node="<%=attrName%>">
<%=prefix%> <key column="<%=reverseAttrDBName%>"/>
}*/
if (needsIndex) {
Modified: branches/topia-2.8.x-hibernate4/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaConnectionProviderHardCoded.java
===================================================================
--- branches/topia-2.6.x/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaConnectionProviderHardCoded.java 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-persistence/src/test/java/org/nuiton/topia/framework/TopiaConnectionProviderHardCoded.java 2013-03-12 15:48:07 UTC (rev 2706)
@@ -24,29 +24,30 @@
*/
package org.nuiton.topia.framework;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.hibernate.HibernateException;
-import org.hibernate.cfg.Environment;
-import org.hibernate.connection.ConnectionProvider;
-import org.hibernate.connection.ConnectionProviderFactory;
-import org.hibernate.util.PropertiesHelper;
-import org.hibernate.util.ReflectHelper;
-
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.Map;
import java.util.Properties;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.HibernateException;
+import org.hibernate.cfg.Environment;
+import org.hibernate.internal.util.ReflectHelper;
+import org.hibernate.internal.util.config.ConfigurationHelper;
+import org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator;
+import org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl;
+
/**
* Customized connection provider.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 2.5.3
*/
-public class TopiaConnectionProviderHardCoded implements ConnectionProvider {
+public class TopiaConnectionProviderHardCoded extends DriverManagerConnectionProviderImpl {
private String url;
@@ -67,17 +68,17 @@
LogFactory.getLog(TopiaConnectionProviderHardCoded.class);
@Override
- public void configure(Properties props) throws HibernateException {
- String driverClass = props.getProperty(Environment.DRIVER);
+ public void configure(Map configurationValues) throws HibernateException {
+ String driverClass = (String)configurationValues.get(Environment.DRIVER);
- poolSize = PropertiesHelper.getInt(Environment.POOL_SIZE, props, 20); //default pool size 20
+ poolSize = ConfigurationHelper.getInt(Environment.POOL_SIZE, configurationValues, 20); //default pool size 20
log.info("Using Hibernate built-in connection pool (not for production use!)");
log.info("Hibernate connection pool size: " + poolSize);
- autocommit = PropertiesHelper.getBoolean(Environment.AUTOCOMMIT, props);
+ autocommit = ConfigurationHelper.getBoolean(Environment.AUTOCOMMIT, configurationValues);
log.info("autocommit mode: " + autocommit);
- isolation = PropertiesHelper.getInteger(Environment.ISOLATION, props);
+ isolation = ConfigurationHelper.getInteger(Environment.ISOLATION, configurationValues);
if (isolation != null)
log.info("JDBC isolation level: " + Environment.isolationLevelToString(isolation));
@@ -102,7 +103,7 @@
// the real directory where db is and then make sure hibernate always
// use the connection provider...
String directory =
- props.getProperty(TopiaConnectionProviderTest.TEST_URL);
+ (String)configurationValues.get(TopiaConnectionProviderTest.TEST_URL);
url = directory;
// url = props.getProperty(Environment.URL);
@@ -113,14 +114,14 @@
// throw new HibernateException(msg);
// }
- connectionProps = ConnectionProviderFactory.getConnectionProperties(props);
+ connectionProps = ConnectionProviderInitiator.getConnectionProperties(configurationValues);
log.info("using driver: " + driverClass + " at URL: " + url);
// if debug level is enabled, then log the password, otherwise mask it
if (log.isDebugEnabled()) {
log.info("connection properties: " + connectionProps);
} else if (log.isInfoEnabled()) {
- log.info("connection properties: " + PropertiesHelper.maskOut(connectionProps, "password"));
+ log.info("connection properties: " + ConfigurationHelper.maskOut(connectionProps, "password"));
}
}
Modified: branches/topia-2.8.x-hibernate4/topia-service-migration/pom.xml
===================================================================
--- branches/topia-2.6.x/topia-service-migration/pom.xml 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-service-migration/pom.xml 2013-03-12 15:48:07 UTC (rev 2706)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>topia</artifactId>
- <version>2.7.2-SNAPSHOT</version>
+ <version>2.8-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.topia</groupId>
Modified: branches/topia-2.8.x-hibernate4/topia-service-replication/pom.xml
===================================================================
--- branches/topia-2.6.x/topia-service-replication/pom.xml 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-service-replication/pom.xml 2013-03-12 15:48:07 UTC (rev 2706)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>topia</artifactId>
- <version>2.7.2-SNAPSHOT</version>
+ <version>2.8-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.topia</groupId>
Modified: branches/topia-2.8.x-hibernate4/topia-service-security/pom.xml
===================================================================
--- branches/topia-2.6.x/topia-service-security/pom.xml 2012-12-30 21:45:12 UTC (rev 2705)
+++ branches/topia-2.8.x-hibernate4/topia-service-security/pom.xml 2013-03-12 15:48:07 UTC (rev 2706)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>topia</artifactId>
- <version>2.7.2-SNAPSHOT</version>
+ <version>2.8-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.topia</groupId>
1
0