Repository: ode
Updated Branches:
  refs/heads/ode-1.3.x 5df444806 -> 5bb193561


ODE-1068: Upgraded hibernate to 4.3.11


Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/5bb19356
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/5bb19356
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/5bb19356

Branch: refs/heads/ode-1.3.x
Commit: 5bb1935618061fdeaeb67b05db983758f0fb2191
Parents: 5df4448
Author: sathwik <[email protected]>
Authored: Tue Aug 29 11:52:26 2017 +0530
Committer: sathwik <[email protected]>
Committed: Tue Aug 29 11:52:26 2017 +0530

----------------------------------------------------------------------
 Rakefile                                        | 21 +++++++-
 .../HibDaoConnectionFactoryImpl.java            | 33 +++++++++++--
 .../store/hib/DbConfStoreConnectionFactory.java | 50 ++++++++++++++++----
 .../daohib/DataSourceConnectionProvider.java    | 26 ++++++++--
 .../HibernateTransactionManagerLookup.java      | 46 ++++++++++--------
 .../ode/daohib/HibertenateJtaPlatform.java      | 45 ++++++++++++++++++
 .../apache/ode/daohib/NativeHiLoGenerator.java  |  2 +-
 .../org/apache/ode/daohib/SessionManager.java   | 14 ++++--
 .../bpel/BpelDAOConnectionFactoryImpl.java      | 18 +++++--
 .../ode/daohib/bpel/hobj/GZipDataType.java      |  6 +--
 .../apache/ode/daohib/bpel/hobj/HProcess.java   |  2 +-
 dependencies.rb                                 |  8 ++--
 tomee-server/src/main/server/bin/start.bat      |  3 +-
 tomee-server/src/main/server/bin/start.sh       |  3 +-
 14 files changed, 217 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/Rakefile
----------------------------------------------------------------------
diff --git a/Rakefile b/Rakefile
index 2dfb1a7..eb82845 100644
--- a/Rakefile
+++ b/Rakefile
@@ -287,6 +287,16 @@ define "ode" do
     compile { open_jpa_enhance }
     resources hibernate_doclet(:package=>"org.apache.ode.store.hib", 
:excludedtags=>"@version,@author,@todo")
 
+    task "hbm-replace-namespace" do |task|
+        Dir["#{_("target/classes/org/apache/ode/store/hib")}/*.hbm.xml"].each 
do |f|
+            file_content = File.read(f)
+            
file_content.gsub!("http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd","http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd";)
+            File.open(f,'w') {|wf| wf << file_content}
+        end
+    end
+
+    task "compile" => ["hbm-replace-namespace"]
+
     test.with COMMONS.collections, COMMONS.lang, JAVAX.connector, 
JAVAX.transaction, DOM4J, LOG4J2,
       XERCES, XALAN, JAXEN, SAXON, OPENJPA, GERONIMO.transaction, SLF4J, 
SPRING_TEST, DERBY,
       GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, 
JAVAX.connector, JAVAX.ejb, H2::REQUIRES
@@ -324,7 +334,16 @@ define "ode" do
         File.open(process_instance_hbm_file, "w") { |f| f << 
process_instance_hbm }
       end
     end
-    task "compile" => "hbm-hack"
+
+    task "hbm-replace-namespace" do |task|
+        
Dir["#{_("target/classes/org/apache/ode/daohib/bpel/hobj")}/*.hbm.xml"].each do 
|f|
+            file_content = File.read(f)
+            
file_content.gsub!("http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd","http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd";)
+            File.open(f,'w') {|wf| wf << file_content}
+        end
+    end
+
+    task "compile" => ["hbm-hack", "hbm-replace-namespace"]
 
     test.with project("bpel-epr"), BACKPORT, COMMONS.collections, 
COMMONS.lang, DERBY, COMMONS.pool, COMMONS.dbcp,
       GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, 
JAVAX.connector, JAVAX.ejb, SPRING, SPRING_TEST

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/HibDaoConnectionFactoryImpl.java
----------------------------------------------------------------------
diff --git 
a/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/HibDaoConnectionFactoryImpl.java
 
b/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/HibDaoConnectionFactoryImpl.java
index 5fb857d..484604d 100644
--- 
a/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/HibDaoConnectionFactoryImpl.java
+++ 
b/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/HibDaoConnectionFactoryImpl.java
@@ -40,9 +40,15 @@ import org.apache.ode.daohib.bpel.hobj.HProcess;
 import org.apache.ode.daohib.bpel.hobj.HProcessInstance;
 import org.hibernate.MappingException;
 import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.SessionFactoryObserver;
 import org.hibernate.cfg.Configuration;
-import org.hibernate.event.PostInsertEvent;
-import org.hibernate.event.PostInsertEventListener;
+import org.hibernate.event.service.spi.EventListenerRegistry;
+import org.hibernate.event.spi.EventType;
+import org.hibernate.event.spi.PostInsertEvent;
+import org.hibernate.event.spi.PostInsertEventListener;
+import org.hibernate.persister.entity.EntityPersister;
+
 
 @SuppressWarnings("serial")
 public class HibDaoConnectionFactoryImpl extends BpelDAOConnectionFactoryImpl 
implements PostInsertEventListener {
@@ -51,12 +57,25 @@ public class HibDaoConnectionFactoryImpl extends 
BpelDAOConnectionFactoryImpl im
     private static ProcessDaoImpl process;
     
     @Override
-    protected SessionManager createSessionManager(Properties properties, 
DataSource ds, TransactionManager tm) {
+    protected SessionManager createSessionManager(Properties properties, 
DataSource ds, TransactionManager tm) {        
         _staticSessionManager = new SessionManager(properties, ds, tm) {
+
             @Override
             public Configuration getDefaultConfiguration() throws 
MappingException {
                 Configuration conf = super.getDefaultConfiguration();
-                conf.setListener("post-insert", 
HibDaoConnectionFactoryImpl.this);
+
+                conf.setSessionFactoryObserver(new SessionFactoryObserver() {
+                    @Override
+                    public void sessionFactoryCreated(SessionFactory 
sessionFactory) {
+                        ((org.hibernate.internal.SessionFactoryImpl) 
sessionFactory).getServiceRegistry()
+                        .getService( EventListenerRegistry.class )
+                        .appendListeners(EventType.POST_INSERT, 
HibDaoConnectionFactoryImpl.this);
+                    }
+
+                    @Override
+                    public void sessionFactoryClosed(SessionFactory arg0) {
+                    }
+                });
                 return conf;
             }
         };
@@ -88,6 +107,10 @@ public class HibDaoConnectionFactoryImpl extends 
BpelDAOConnectionFactoryImpl im
         }
     }
 
+    public boolean requiresPostCommitHanding(EntityPersister 
paramEntityPersister) {
+        return false;
+    }
+
     public static class ProfilingBpelDAOConnectionImpl extends 
BpelDAOConnectionImpl implements ProfilingBpelDAOConnection {
         ProfilingBpelDAOConnectionImpl(SessionManager sm) {
             super(sm);
@@ -101,4 +124,4 @@ public class HibDaoConnectionFactoryImpl extends 
BpelDAOConnectionFactoryImpl im
             return new ProcessInstanceProfileDaoImpl(_sm, 
(ProcessInstanceDaoImpl)instance);
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
----------------------------------------------------------------------
diff --git 
a/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
 
b/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
index c8388af..6438d86 100644
--- 
a/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
+++ 
b/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
@@ -29,7 +29,7 @@ import javax.transaction.TransactionManager;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.ode.daohib.HibernateTransactionManagerLookup;
+import org.apache.ode.daohib.HibertenateJtaPlatform;
 import org.apache.ode.daohib.SessionManager;
 import org.apache.ode.store.ConfStoreConnectionFactory;
 import org.apache.ode.store.Messages;
@@ -38,9 +38,14 @@ import org.apache.ode.utils.msg.MessageBundle;
 import org.hibernate.HibernateException;
 import org.hibernate.MappingException;
 import org.hibernate.SessionFactory;
+import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
 import org.hibernate.cfg.Configuration;
 import org.hibernate.cfg.Environment;
-import org.hibernate.connection.ConnectionProvider;
+import org.hibernate.service.ServiceRegistry;
+import org.hibernate.service.UnknownUnwrapTypeException;
+import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
+import org.hibernate.service.spi.Configurable;
+
 
 public class DbConfStoreConnectionFactory implements 
ConfStoreConnectionFactory {
     private static final Logger __log = 
LoggerFactory.getLogger(DbConfStoreConnectionFactory.class);
@@ -77,15 +82,23 @@ public class DbConfStoreConnectionFactory implements 
ConfStoreConnectionFactory
         // Note that we don't allow the following properties to be overriden 
by the client.
         if (properties.containsKey(Environment.CONNECTION_PROVIDER))
             __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.CONNECTION_PROVIDER);
-        if (properties.containsKey(Environment.TRANSACTION_MANAGER_STRATEGY))
-            __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.TRANSACTION_MANAGER_STRATEGY);
+        if (properties.containsKey(Environment.JTA_PLATFORM))
+            __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.JTA_PLATFORM);
         if (properties.containsKey(Environment.SESSION_FACTORY_NAME))
             __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.SESSION_FACTORY_NAME);
+        if (properties.containsKey(Environment.TRANSACTION_STRATEGY))
+            __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.TRANSACTION_STRATEGY);
+        if (properties.containsKey(Environment.CURRENT_SESSION_CONTEXT_CLASS))
+            __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.CURRENT_SESSION_CONTEXT_CLASS);
 
         properties.put(SessionManager.PROP_GUID, _guid);
         properties.put(Environment.CONNECTION_PROVIDER, 
DataSourceConnectionProvider.class.getName());
-        properties.put(Environment.TRANSACTION_MANAGER_STRATEGY, 
HibernateTransactionManagerLookup.class.getName());
-        properties.put(Environment.TRANSACTION_STRATEGY, 
"org.hibernate.transaction.JTATransactionFactory");
+        properties.put(Environment.JTA_PLATFORM, 
HibertenateJtaPlatform.class.getName());
+
+        // Need to use CMTTransactionFactory instead of JTATransactionFactory 
in Hibernate 4
+        // Refer: 
https://jira.spring.io/browse/SPR-9480?focusedCommentId=81419&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-81419
+        properties.put(Environment.TRANSACTION_STRATEGY, 
"org.hibernate.transaction.CMTTransactionFactory");
+
         properties.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "jta");
 
         if(__log.isDebugEnabled()) __log.debug("Store connection properties: " 
+ properties );
@@ -93,7 +106,10 @@ public class DbConfStoreConnectionFactory implements 
ConfStoreConnectionFactory
         initTxMgr(txFactoryClassName);
         SessionManager.registerTransactionManager(_guid, _txMgr);
 
-        _sessionFactory = 
getDefaultConfiguration().setProperties(properties).buildSessionFactory();
+        Configuration configuration = 
getDefaultConfiguration().setProperties(properties);
+
+        ServiceRegistry serviceRegistry = new 
StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
        
+        _sessionFactory = configuration.buildSessionFactory(serviceRegistry);
     }
 
     public ConfStoreConnectionHib getConnection() {
@@ -142,14 +158,14 @@ public class DbConfStoreConnectionFactory implements 
ConfStoreConnectionFactory
                 .addClass(VersionTrackerDAOImpl.class);
     }
 
-    public static class DataSourceConnectionProvider implements 
ConnectionProvider {
+    public static class DataSourceConnectionProvider implements 
ConnectionProvider, Configurable {
         private String _guid;
 
         public DataSourceConnectionProvider() {
         }
 
-        public void configure(Properties props) throws HibernateException {
-            _guid = props.getProperty(SessionManager.PROP_GUID);
+        public void configure(Map props) throws HibernateException {
+            _guid = (String) props.get(SessionManager.PROP_GUID);
         }
 
         public Connection getConnection() throws SQLException {
@@ -166,6 +182,20 @@ public class DbConfStoreConnectionFactory implements 
ConfStoreConnectionFactory
         public boolean supportsAggressiveRelease() {
             return true;
         }
+
+        public boolean isUnwrappableAs(Class unwrapType) {
+            return ConnectionProvider.class.equals(unwrapType) ||
+                    
DataSourceConnectionProvider.class.isAssignableFrom(unwrapType);
+        }
+
+        public <T> T unwrap(Class<T> unwrapType) {
+            if (ConnectionProvider.class.equals(unwrapType) ||
+                    
DataSourceConnectionProvider.class.isAssignableFrom(unwrapType)) {
+                return (T) this;
+            } else {
+                throw new UnknownUnwrapTypeException( unwrapType );
+            }
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dao-hibernate/src/main/java/org/apache/ode/daohib/DataSourceConnectionProvider.java
----------------------------------------------------------------------
diff --git 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/DataSourceConnectionProvider.java
 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/DataSourceConnectionProvider.java
index 1a545b7..636889a 100644
--- 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/DataSourceConnectionProvider.java
+++ 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/DataSourceConnectionProvider.java
@@ -21,23 +21,28 @@ package org.apache.ode.daohib;
 
 import java.sql.Connection;
 import java.sql.SQLException;
+import java.util.Map;
 import java.util.Properties;
 
 import org.apache.ode.utils.DbIsolation;
 
 import org.hibernate.HibernateException;
-import org.hibernate.connection.ConnectionProvider;
+import org.hibernate.service.UnknownUnwrapTypeException;
+import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
+import org.hibernate.service.spi.Configurable;
 
 
-public class DataSourceConnectionProvider implements ConnectionProvider {
+
+public class DataSourceConnectionProvider implements ConnectionProvider, 
Configurable {
 
   private Properties _props;
   
   public DataSourceConnectionProvider() {
   }
   
-  public void configure(Properties props) throws HibernateException {
-    _props = props;
+  public void configure(Map props) throws HibernateException {
+    _props = new Properties();
+    _props.putAll(props);
   }
 
   public Connection getConnection() throws SQLException {
@@ -58,4 +63,17 @@ public class DataSourceConnectionProvider implements 
ConnectionProvider {
     return true;
   }
 
+  public boolean isUnwrappableAs(Class unwrapType) {
+      return ConnectionProvider.class.equals(unwrapType) ||
+              DataSourceConnectionProvider.class.isAssignableFrom(unwrapType);
+  }
+
+  public <T> T unwrap(Class<T> unwrapType) {
+      if (ConnectionProvider.class.equals(unwrapType) ||
+              DataSourceConnectionProvider.class.isAssignableFrom(unwrapType)) 
{
+          return (T) this;
+      } else {
+          throw new UnknownUnwrapTypeException( unwrapType );
+      }
+  }
 }

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dao-hibernate/src/main/java/org/apache/ode/daohib/HibernateTransactionManagerLookup.java
----------------------------------------------------------------------
diff --git 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/HibernateTransactionManagerLookup.java
 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/HibernateTransactionManagerLookup.java
index 5c4e4ef..0450956 100644
--- 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/HibernateTransactionManagerLookup.java
+++ 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/HibernateTransactionManagerLookup.java
@@ -24,29 +24,35 @@ import javax.transaction.TransactionManager;
 import javax.transaction.Transaction;
 
 import org.hibernate.HibernateException;
-import org.hibernate.transaction.TransactionManagerLookup;
+//import org.hibernate.transaction.TransactionManagerLookup;
 
 /**
  * Implementation of the {@link 
org.hibernate.transaction.TransactionManagerLookup} interface that
  * uses {@link SessionManager} to obtain the JTA {@link TransactionManager} 
object.
  */
-public class HibernateTransactionManagerLookup implements 
TransactionManagerLookup {
+// public class HibernateTransactionManagerLookup implements 
TransactionManagerLookup {
+//
+//      /** Constructor. */
+//      public HibernateTransactionManagerLookup() {
+//          super();
+//      }
+//
+//      public TransactionManager getTransactionManager(Properties props)
+//          throws HibernateException {
+//          return SessionManager.getTransactionManager(props);
+//      }
+//
+//      public String getUserTransactionName() {
+//          return null;
+//      }
+//
+//     public Object getTransactionIdentifier(Transaction transaction) {
+//         return transaction;
+//     }
+// }
 
-       /** Constructor. */
-       public HibernateTransactionManagerLookup() {
-               super();
-       }
-
-       public TransactionManager getTransactionManager(Properties props)
-                       throws HibernateException {
-               return SessionManager.getTransactionManager(props);
-       }
-
-       public String getUserTransactionName() {
-               return null;
-       }
-
-    public Object getTransactionIdentifier(Transaction transaction) {
-        return transaction;
-    }
-}
+/**
+* @Depreicated 
+* Replaced by org.apache.ode.daohib.HibertenateJtaPlatform
+*/
+public class HibernateTransactionManagerLookup {}

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dao-hibernate/src/main/java/org/apache/ode/daohib/HibertenateJtaPlatform.java
----------------------------------------------------------------------
diff --git 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/HibertenateJtaPlatform.java 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/HibertenateJtaPlatform.java
new file mode 100644
index 0000000..a88a29b
--- /dev/null
+++ 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/HibertenateJtaPlatform.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ode.daohib;
+
+import java.util.Map;
+import java.util.Properties;
+
+import javax.transaction.TransactionManager;
+import javax.transaction.UserTransaction;
+
+import 
org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform;
+
+public class HibertenateJtaPlatform extends AbstractJtaPlatform {
+    Properties properties  = new Properties(); 
+
+    public void configure(Map configValues) {
+        super.configure(configValues);
+        properties.putAll(configValues);
+    }
+
+    protected TransactionManager locateTransactionManager() {        
+        return SessionManager.getTransactionManager(properties);
+    }
+
+    protected UserTransaction locateUserTransaction() {
+        return (UserTransaction) 
SessionManager.getTransactionManager(properties);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java
----------------------------------------------------------------------
diff --git 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java
index 2d9661a..f144838 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java
@@ -25,7 +25,7 @@ import java.util.Properties;
 import org.hibernate.HibernateException;
 import org.hibernate.MappingException;
 import org.hibernate.dialect.Dialect;
-import org.hibernate.engine.SessionImplementor;
+import org.hibernate.engine.spi.SessionImplementor;
 import org.hibernate.id.Configurable;
 import org.hibernate.id.IdentifierGenerator;
 import org.hibernate.id.PersistentIdentifierGenerator;

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
----------------------------------------------------------------------
diff --git 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
index a09b617..097ccf3 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
@@ -26,8 +26,10 @@ import org.hibernate.HibernateException;
 import org.hibernate.MappingException;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
+import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
 import org.hibernate.cfg.Configuration;
 import org.hibernate.cfg.Environment;
+import org.hibernate.service.ServiceRegistry;
 
 import javax.sql.DataSource;
 import javax.transaction.TransactionManager;
@@ -70,10 +72,13 @@ public class SessionManager {
         _txManagers.put(_uuid,tx);
         _dataSources.put(_uuid,ds);
 
-        _sessionFactory = getDefaultConfiguration()
-                .setProperties(env)
-                .setProperty(PROP_GUID, _uuid)
-                .buildSessionFactory();
+        Configuration configuration = getDefaultConfiguration()
+                                        .setProperties(env)
+                                        .setProperty(PROP_GUID, _uuid);
+
+        ServiceRegistry serviceRegistry = new 
StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
+
+        _sessionFactory = configuration.buildSessionFactory(serviceRegistry);
 
         /*
         Some Hibernate dialects (like IngresDialect) do not support update for 
join.
@@ -157,4 +162,5 @@ public class SessionManager {
         _dataSources.remove(_uuid);
         _txManagers.remove(_uuid);
     }
+
 }

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
----------------------------------------------------------------------
diff --git 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
index a5deae1..010eed9 100644
--- 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
+++ 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
@@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
 import org.apache.ode.daohib.DataSourceConnectionProvider;
-import org.apache.ode.daohib.HibernateTransactionManagerLookup;
+import org.apache.ode.daohib.HibertenateJtaPlatform;
 import org.apache.ode.daohib.SessionManager;
 import org.hibernate.HibernateException;
 import org.hibernate.cfg.Environment;
@@ -90,14 +90,22 @@ public class BpelDAOConnectionFactoryImpl implements 
BpelDAOConnectionFactoryJDB
         // the client.
         if (properties.containsKey(Environment.CONNECTION_PROVIDER))
             __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.CONNECTION_PROVIDER);
-        if (properties.containsKey(Environment.TRANSACTION_MANAGER_STRATEGY))
-            __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.TRANSACTION_MANAGER_STRATEGY);
+        if (properties.containsKey(Environment.JTA_PLATFORM))
+            __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.JTA_PLATFORM);
         if (properties.containsKey(Environment.SESSION_FACTORY_NAME))
             __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.SESSION_FACTORY_NAME);
+        if (properties.containsKey(Environment.TRANSACTION_STRATEGY))
+            __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.TRANSACTION_STRATEGY);
+        if (properties.containsKey(Environment.CURRENT_SESSION_CONTEXT_CLASS))
+            __log.warn("Ignoring user-specified Hibernate property: " + 
Environment.CURRENT_SESSION_CONTEXT_CLASS);
 
         properties.put(Environment.CONNECTION_PROVIDER, 
DataSourceConnectionProvider.class.getName());
-        properties.put(Environment.TRANSACTION_MANAGER_STRATEGY, 
HibernateTransactionManagerLookup.class.getName());
-        properties.put(Environment.TRANSACTION_STRATEGY, 
"org.hibernate.transaction.JTATransactionFactory");
+        properties.put(Environment.JTA_PLATFORM, 
HibertenateJtaPlatform.class.getName());
+
+        // Need to use CMTTransactionFactory instead of JTATransactionFactory 
in Hibernate 4
+        // Refer: 
https://jira.spring.io/browse/SPR-9480?focusedCommentId=81419&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-81419
+        properties.put(Environment.TRANSACTION_STRATEGY, 
"org.hibernate.transaction.CMTTransactionFactory");
+
         properties.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "jta");
 
         // Isolation levels override; when you use a ConnectionProvider, this 
has no effect

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java
----------------------------------------------------------------------
diff --git 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java
index c272eaa..d9c0800 100644
--- 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java
+++ 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java
@@ -34,7 +34,7 @@ import java.util.zip.GZIPOutputStream;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
+import org.hibernate.engine.spi.SessionImplementor;
 import org.hibernate.usertype.UserType;
 
 /**
@@ -108,7 +108,7 @@ public class GZipDataType implements UserType {
     }
 
     /** Retrieve an instance of the mapped class from a JDBC resultset. */
-    public Object nullSafeGet(ResultSet rs, String[] names, Object owner) 
throws SQLException {
+    public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor 
sessionImplementor, Object owner) throws SQLException {
         if (names.length != 1) throw new IllegalStateException("Expected a 
single column name instead of "+names.length);
         byte[] buf = rs.getBytes(names[0]);
         if (buf == null) {
@@ -130,7 +130,7 @@ public class GZipDataType implements UserType {
     }
 
     /** Write an instance of the mapped class to a prepared statement. */
-    public void nullSafeSet(PreparedStatement st, Object value, int index) 
throws SQLException {
+    public void nullSafeSet(PreparedStatement st, Object value, int index, 
SessionImplementor sessionImplementor) throws SQLException {
         byte[] buf = (byte[]) value;
         if (buf != null) {
             synchronized (STATS_LOCK) {

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcess.java
----------------------------------------------------------------------
diff --git 
a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcess.java 
b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcess.java
index 9db4fa7..5aa9042 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcess.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcess.java
@@ -166,7 +166,7 @@ public class HProcess extends HObject{
      * @hibernate.column
      *  name="PROCID"
      *  not-null="true"
-     *  unique="true"
+     *  unique-key="UNIQ_PROCID"
      */
     public String getProcessId() {
         return _processId;

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/dependencies.rb
----------------------------------------------------------------------
diff --git a/dependencies.rb b/dependencies.rb
index c51fac6..7f5f98e 100644
--- a/dependencies.rb
+++ b/dependencies.rb
@@ -75,10 +75,10 @@ GERONIMO            = struct(
   :transaction      
=>"org.apache.geronimo.components:geronimo-transaction:jar:3.1.3",
   :connector        
=>"org.apache.geronimo.components:geronimo-connector:jar:3.1.3"
 )
-HIBERNATE           = ["org.hibernate:hibernate-core:jar:3.6.10.Final", 
"commons-collections:commons-collections:jar:3.1",
-                        "javassist:javassist:jar:3.12.0.GA", 
"antlr:antlr:jar:2.7.6",
-                        "dom4j:dom4j:jar:1.6.1", 
"org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final",
-                        
"org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final"]
+HIBERNATE           = ["org.hibernate:hibernate-core:jar:4.3.11.Final", 
"org.javassist:javassist:jar:3.18.1-GA", "antlr:antlr:jar:2.7.7",
+                        "dom4j:dom4j:jar:1.6.1", 
"org.hibernate.common:hibernate-commons-annotations:jar:4.0.5.Final", 
+                        
"org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final"  , 
"org.jboss:jandex:jar:1.1.0.Final", 
+                        "org.jboss.logging:jboss-logging:jar:3.1.3.GA" , 
"org.jboss.logging:jboss-logging-annotations:jar:1.2.0.Beta1"]
 
 HSQLDB              = "org.hsqldb:hsqldb:jar:2.3.3"
 JAVAX               = struct(

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/tomee-server/src/main/server/bin/start.bat
----------------------------------------------------------------------
diff --git a/tomee-server/src/main/server/bin/start.bat 
b/tomee-server/src/main/server/bin/start.bat
index b4cad16..06759d8 100644
--- a/tomee-server/src/main/server/bin/start.bat
+++ b/tomee-server/src/main/server/bin/start.bat
@@ -30,6 +30,7 @@ set ODE_SERVER_CONF=%~dp0..\conf
 set ODE_SERVER_JAVAOPTS=%JAVA_OPTS%
 set ODE_SERVER_JAVAOPTS=%ODE_SERVER_JAVAOPTS% 
-Dode.server.home=%ODE_SERVER_HOME% -Dderby.syste.home=%ODE_SERVER_HOME%
 set ODE_SERVER_JAVAOPTS=%ODE_SERVER_JAVAOPTS% 
-Djava.naming.factory.initial=org.apache.openejb.core.LocalInitialContextFactory
+set ODE_SERVER_JAVAOPTS=%ODE_SERVER_JAVAOPTS% 
-Dorg.jboss.logging.provider=slf4j
 
 if "%JAVA_HOME%"=="" goto noJavaHome
 if not exist "%JAVA_HOME%"\bin\java.exe goto noJava
@@ -63,4 +64,4 @@ REM 
================================================================
 REM                             END
 REM ================================================================
 :end
-@endlocal
\ No newline at end of file
+@endlocal

http://git-wip-us.apache.org/repos/asf/ode/blob/5bb19356/tomee-server/src/main/server/bin/start.sh
----------------------------------------------------------------------
diff --git a/tomee-server/src/main/server/bin/start.sh 
b/tomee-server/src/main/server/bin/start.sh
index 6d4a0b6..ce21b61 100755
--- a/tomee-server/src/main/server/bin/start.sh
+++ b/tomee-server/src/main/server/bin/start.sh
@@ -96,7 +96,8 @@ done
 ODE_SERVER_JAVAOPTS="$JAVA_OPTS \
 -Dode.server.home=$ODE_SERVER_HOME \
 -Dderby.system.home=$ODE_SERVER_HOME \
--Djava.naming.factory.initial=org.apache.openejb.core.LocalInitialContextFactory"
+-Djava.naming.factory.initial=org.apache.openejb.core.LocalInitialContextFactory
 \
+-Dorg.jboss.logging.provider=slf4j"
 
 
 # For Cygwin, switch paths to Windows format before running java

Reply via email to