Author: pcl
Date: Wed Feb 28 22:31:50 2007
New Revision: 513183
URL: http://svn.apache.org/viewvc?view=rev&rev=513183
Log:
OPENJPA-160. Non-finalizing implementation is automatically selected when
createContainerEntityManagerFactory() is invoked; clarified some method
signatures.
Modified:
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerValue.java
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
Modified:
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerValue.java
URL:
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerValue.java?view=diff&rev=513183&r1=513182&r2=513183
==============================================================================
---
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerValue.java
(original)
+++
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/BrokerValue.java
Wed Feb 28 22:31:50 2007
@@ -15,13 +15,17 @@
public class BrokerValue
extends PluginValue {
+ public static final String KEY = "BrokerImpl";
+ public static final String NON_FINALIZING_ALIAS = "non-finalizing";
+ public static final String DEFAULT_ALIAS = "default";
+
private BrokerImpl _templateBroker;
- public BrokerValue(String prop) {
- super(prop, false);
+ public BrokerValue() {
+ super(KEY, false);
String[] aliases = new String[] {
- "default", FinalizingBrokerImpl.class.getName(),
- "non-finalizing", BrokerImpl.class.getName(),
+ DEFAULT_ALIAS, FinalizingBrokerImpl.class.getName(),
+ NON_FINALIZING_ALIAS, BrokerImpl.class.getName(),
};
setAliases(aliases);
setDefault(aliases[0]);
Modified:
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
URL:
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java?view=diff&rev=513183&r1=513182&r2=513183
==============================================================================
---
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
(original)
+++
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
Wed Feb 28 22:31:50 2007
@@ -178,7 +178,7 @@
brokerFactoryPlugin = new BrokerFactoryValue();
addValue(brokerFactoryPlugin);
- brokerPlugin = new BrokerValue("BrokerImpl");
+ brokerPlugin = new BrokerValue();
addValue(brokerPlugin);
dataCacheManagerPlugin = addPlugin("DataCacheManager", true);
Modified:
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
URL:
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java?view=diff&rev=513183&r1=513182&r2=513183
==============================================================================
---
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
(original)
+++
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
Wed Feb 28 22:31:50 2007
@@ -569,35 +569,36 @@
}
/**
- * Test whether the map contains the given key, prefixed with any possible
- * configuration prefix.
+ * Test whether the map contains the given partial key, prefixed with any
+ * possible configuration prefix.
*/
- public static boolean containsProperty(String key, Map props) {
- if (key == null || props == null || props.isEmpty())
+ public static boolean containsProperty(String partialKey, Map props) {
+ if (partialKey == null || props == null || props.isEmpty())
return false;
else
return props.containsKey(
- ProductDerivations.getConfigurationKey(key, props));
+ ProductDerivations.getConfigurationKey(partialKey, props));
}
/**
- * Get the property under the given key, prefixed with any possible
+ * Get the property under the given partial key, prefixed with any possible
* configuration prefix.
*/
- public static Object getProperty(String key, Map m) {
- if (key == null || m == null || m.isEmpty())
+ public static Object getProperty(String partialKey, Map m) {
+ if (partialKey == null || m == null || m.isEmpty())
return null;
else
- return m.get(ProductDerivations.getConfigurationKey(key, m));
+ return m.get(ProductDerivations.getConfigurationKey(partialKey,
m));
}
/**
- * Remove the property under the given key, prefixed with any possible
- * configuration prefix.
+ * Remove the property under the given partial key, prefixed with any
+ * possible configuration prefix.
*/
- public static Object removeProperty(String key, Map props) {
- if (key == null || props == null || props.isEmpty())
+ public static Object removeProperty(String partialKey, Map props) {
+ if (partialKey == null || props == null || props.isEmpty())
return null;
- return props.remove(ProductDerivations.getConfigurationKey(key,
props));
+ return props.remove(ProductDerivations.getConfigurationKey(partialKey,
+ props));
}
}
Modified:
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
URL:
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java?view=diff&rev=513183&r1=513182&r2=513183
==============================================================================
---
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
(original)
+++
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
Wed Feb 28 22:31:50 2007
@@ -28,6 +28,7 @@
import org.apache.openjpa.conf.OpenJPAConfiguration;
import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
+import org.apache.openjpa.conf.BrokerValue;
import org.apache.openjpa.enhance.PCClassFileTransformer;
import org.apache.openjpa.kernel.Bootstrap;
import org.apache.openjpa.kernel.BrokerFactory;
@@ -82,6 +83,15 @@
PersistenceUnitInfo pui, Map m) {
PersistenceProductDerivation pd = new PersistenceProductDerivation();
try {
+ // if the BrokerImpl hasn't been specified, switch to the
+ // non-finalizing one, since anything claiming to be a container
+ // should be doing proper resource management.
+ if (!Configurations.containsProperty(BrokerValue.KEY,
+ pui.getProperties())
+ && !Configurations.containsProperty(BrokerValue.KEY, m)) {
+ m.put(BrokerValue.KEY, BrokerValue.NON_FINALIZING_ALIAS);
+ }
+
ConfigurationProvider cp = pd.load(pui, m);
if (cp == null)
return null;