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;


Reply via email to