[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