[jbpm-commits] JBoss JBPM SVN: r3393 - jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Dec 15 16:35:11 EST 2008
Author: alex.guizar at jboss.com
Date: 2008-12-15 16:35:11 -0500 (Mon, 15 Dec 2008)
New Revision: 3393
Modified:
jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java
Log:
reverted incompatible changes to HibernateHelper
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java 2008-12-15 16:00:47 UTC (rev 3392)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java 2008-12-15 21:35:11 UTC (rev 3393)
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
@@ -32,6 +33,7 @@
import org.apache.commons.logging.LogFactory;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
+import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.jbpm.util.ClassLoaderUtil;
public class HibernateHelper {
@@ -40,47 +42,58 @@
// prevent instantiation
}
+ /** maps SessionFactory's to Configurations. */
+ /** by default, configuration lookup will be enabled */
+ static Map configurations = new HashMap();
+
+ public static void clearConfigurationsCache() {
+ configurations = new HashMap();
+ }
+
public static SessionFactory createSessionFactory() {
- return createSessionFactory(null, null, true);
+ return createSessionFactory(null, null, false);
}
public static SessionFactory createSessionFactory(String cfgXmlResource) {
- return createSessionFactory(cfgXmlResource, null, true);
+ return createSessionFactory(cfgXmlResource, null, false);
}
public static SessionFactory createSessionFactory(String cfgXmlResource, String propertiesResource) {
- return createSessionFactory(cfgXmlResource, propertiesResource, true);
+ return createSessionFactory(cfgXmlResource, propertiesResource, false);
}
- public static SessionFactory createSessionFactory(String cfgXmlResource, String propertiesResource, boolean isConfigLookupEnabled) {
+ public static SessionFactory createSessionFactory(String cfgXmlResource,
+ String propertiesResource, boolean isConfigLookupEnabled) {
Configuration configuration = createConfiguration(cfgXmlResource, propertiesResource);
return createSessionFactory(configuration, isConfigLookupEnabled);
}
- public static SessionFactory createSessionFactory(Configuration configuration, boolean isConfigLookupEnabled) {
- return configuration.buildSessionFactory();
+ public static SessionFactory createSessionFactory(Configuration configuration,
+ boolean isConfigLookupEnabled) {
+ SessionFactory sessionFactory = configuration.buildSessionFactory();
+ if (isConfigLookupEnabled) {
+ configurations.put(sessionFactory, configuration);
+ }
+ return sessionFactory;
}
public static Configuration createConfiguration(String cfgXmlResource, String propertiesResource) {
Configuration configuration = new Configuration();
-
- // if a special hibernate configuration xml file is specified,
- if (cfgXmlResource != null)
- {
+
+ // if a special hibernate configuration xml file is specified,
+ if (cfgXmlResource != null) {
// use the configured file name
URL cfgURL = Thread.currentThread().getContextClassLoader().getResource(cfgXmlResource);
log.debug("creating hibernate configuration resource '" + cfgURL + "'");
configuration.configure(cfgXmlResource);
- }
- else
- {
+ } else {
log.debug("using default hibernate configuration resource (hibernate.cfg.xml)");
configuration.configure();
}
-
+
// if the properties are specified in a separate file
- if (propertiesResource!=null) {
- log.debug("using hibernate properties from resource '"+propertiesResource+"'");
+ if (propertiesResource != null) {
+ log.debug("using hibernate properties from resource '" + propertiesResource + "'");
// load the properties
Properties properties = loadPropertiesFromResource(propertiesResource);
if (!properties.isEmpty()) {
@@ -92,16 +105,33 @@
return configuration;
}
+ public static Configuration getConfiguration(SessionFactory sessionFactory) {
+ return (Configuration) configurations.get(sessionFactory);
+ }
+
+ public static SchemaExport createSchemaExport(SessionFactory sessionFactory) {
+ return new SchemaExport(getConfiguration(sessionFactory));
+ }
+
+ public static boolean createSchemaExportScript(SessionFactory sessionFactory) {
+ boolean script = false;
+ String showSql = getConfiguration(sessionFactory).getProperty("hibernate.show_sql");
+ if ("true".equalsIgnoreCase(showSql)) {
+ script = true;
+ }
+ return script;
+ }
+
public static void clearHibernateCache(SessionFactory sessionFactory) {
sessionFactory.evictQueries();
-
+
Map classMetadata = sessionFactory.getAllClassMetadata();
Iterator iter = classMetadata.keySet().iterator();
while (iter.hasNext()) {
String entityName = (String) iter.next();
sessionFactory.evictEntity(entityName);
}
-
+
Map collectionMetadata = sessionFactory.getAllCollectionMetadata();
iter = collectionMetadata.keySet().iterator();
while (iter.hasNext()) {
@@ -117,7 +147,7 @@
try {
properties.load(inputStream);
} catch (IOException e) {
- log.warn("couldn't load hibernate properties from resource '"+resource+"'", e);
+ log.warn("couldn't load hibernate properties from resource '" + resource + "'", e);
}
} else {
log.warn("hibernate properties resource '" + resource + "' not found");
More information about the jbpm-commits
mailing list