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/e24fc113
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/e24fc113
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/e24fc113

Branch: refs/heads/master
Commit: e24fc113339dd5a1ee4813ebe3f5206ff12a0ee8
Parents: c5594a7
Author: sathwik <[email protected]>
Authored: Tue Nov 28 15:37:10 2017 +0530
Committer: sathwik <[email protected]>
Committed: Tue Nov 28 15:37:10 2017 +0530

----------------------------------------------------------------------
 Rakefile                                        | 21 ++++++++-
 .../HibDaoConnectionFactoryImpl.java            | 31 +++++++++++--
 .../store/hib/DbConfStoreConnectionFactory.java | 48 ++++++++++++++++----
 .../daohib/DataSourceConnectionProvider.java    | 25 ++++++++--
 .../HibernateTransactionManagerLookup.java      | 46 +++++++++++--------
 .../ode/daohib/HibertenateJtaPlatform.java      | 45 ++++++++++++++++++
 .../apache/ode/daohib/NativeHiLoGenerator.java  |  2 +-
 .../org/apache/ode/daohib/SessionManager.java   | 13 ++++--
 .../bpel/BpelDAOConnectionFactoryImpl.java      | 19 +++++---
 .../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, 211 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ode/blob/e24fc113/Rakefile
----------------------------------------------------------------------
diff --git a/Rakefile b/Rakefile
index 6fd5c28..3ae6838 100644
--- a/Rakefile
+++ b/Rakefile
@@ -298,6 +298,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 projects("bpel-obj"), COMMONS.collections, COMMONS.lang, 
JAVAX.connector, JAVAX.transaction, DOM4J, 
       XERCES, XALAN, JAXEN, SAXON, OPENJPA, GERONIMO.transaction, SLF4J, 
SPRING_TEST, DERBY,
       GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, 
JAVAX.connector, JAVAX.ejb, H2::REQUIRES
@@ -335,7 +345,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/e24fc113/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 34d9104..98d9668 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
@@ -39,10 +39,15 @@ import org.apache.ode.daohib.bpel.ProcessProfileDaoImpl;
 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 {
@@ -56,7 +61,19 @@ public class HibDaoConnectionFactoryImpl extends 
BpelDAOConnectionFactoryImpl im
             @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;
             }
         };
@@ -64,6 +81,10 @@ public class HibDaoConnectionFactoryImpl extends 
BpelDAOConnectionFactoryImpl im
         return _staticSessionManager;
     }
 
+    public boolean requiresPostCommitHanding(EntityPersister 
paramEntityPersister) {
+        return false;
+    }
+
     public BpelDAOConnection getConnection() {
         return new ProfilingBpelDAOConnectionImpl(_sessionManager);
     }
@@ -101,4 +122,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/e24fc113/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 fec2d30..848168f 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
@@ -32,7 +32,7 @@ import javax.transaction.TransactionManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.BpelEngineException;
-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;
@@ -41,9 +41,13 @@ 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;
 import org.hibernate.dialect.Dialect;
 
 public class DbConfStoreConnectionFactory implements 
ConfStoreConnectionFactory {
@@ -81,15 +85,22 @@ 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 );
@@ -97,7 +108,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() {
@@ -146,14 +160,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 {
@@ -170,6 +184,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/e24fc113/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 a3947a9..cc3e8c1 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,27 @@ 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 +62,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/e24fc113/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 5b627a8..95fbba6 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/e24fc113/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/e24fc113/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/e24fc113/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 346fc34..68bb83b 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.

http://git-wip-us.apache.org/repos/asf/ode/blob/e24fc113/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 ed8018b..1e75d9e 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
@@ -32,12 +32,11 @@ 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;
 import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.resolver.DialectFactory;
 
 /**
  * Hibernate-based {@link org.apache.ode.bpel.dao.BpelDAOConnectionFactory}
@@ -94,14 +93,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/e24fc113/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/e24fc113/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/e24fc113/dependencies.rb
----------------------------------------------------------------------
diff --git a/dependencies.rb b/dependencies.rb
index 983cffa..32de919 100644
--- a/dependencies.rb
+++ b/dependencies.rb
@@ -76,10 +76,10 @@ GERONIMO            = struct(
   :connector        
=>"org.apache.geronimo.components:geronimo-connector:jar:3.1.3"
 )
 HAZELCAST           ="com.hazelcast:hazelcast:jar:3.4.2"
-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"
 JACKSON              = [ "com.fasterxml.jackson.core:jackson-core:jar:2.4.0", 
                         
"com.fasterxml.jackson.core:jackson-databind:jar:2.4.0",

http://git-wip-us.apache.org/repos/asf/ode/blob/e24fc113/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/e24fc113/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