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;