You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/05/15 06:29:19 UTC
svn commit: r656504 -
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
Author: dblevins
Date: Wed May 14 21:29:18 2008
New Revision: 656504
URL: http://svn.apache.org/viewvc?rev=656504&view=rev
Log:
OPENEJB-801: Property hibernate.transaction.manager_lookup_class automatically set when using Hibernate as the PersistenceProvider
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=656504&r1=656503&r2=656504&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java Wed May 14 21:29:18 2008
@@ -415,12 +415,33 @@
// Handle Properties
org.apache.openejb.jee.jpa.unit.Properties puiProperties = persistenceUnit.getProperties();
+
if (puiProperties != null) {
for (Property property : puiProperties.getProperty()) {
info.properties.put(property.getName(), property.getValue());
}
}
+ if (info.provider.equals("org.hibernate.ejb.HibernatePersistence")){
+
+ // The result is that OpenEJB-specific configuration can be avoided when
+ // using OpenEJB + Hibernate. A second benefit is that if another vendor
+ // is used in production, the value will automatically be reset for using
+ // OpenEJB in the test environment. Ensuring the strategy starts with
+ // "org.hibernate.transaction" allows for a custom lookup strategy to be
+ // used and not overridden.
+
+ String lookupProperty = "hibernate.transaction.manager_lookup_class";
+ String openejbLookupClass = "org.apache.openejb.hibernate.TransactionManagerLookup";
+
+ String className = info.properties.getProperty(lookupProperty);
+
+ if (className == null || className.startsWith("org.hibernate.transaction")){
+ info.properties.setProperty(lookupProperty, openejbLookupClass);
+ logger.debug("Adjusting PersistenceUnit(name="+info.name+") property to "+lookupProperty+"="+openejbLookupClass);
+ }
+ }
+
// Persistence Unit Root Url
appInfo.persistenceUnits.add(info);
}