You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pc...@apache.org on 2006/07/19 01:52:09 UTC

svn commit: r423295 - in /incubator/openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/conf/ openjpa-kernel/src/main/java/org/apache/openjpa/util/ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/

Author: pcl
Date: Tue Jul 18 16:52:09 2006
New Revision: 423295

URL: http://svn.apache.org/viewvc?rev=423295&view=rev
Log:
moved store facade type registry to Configuration instead of a static in ImplHelper

Modified:
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ImplHelper.java
    incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java?rev=423295&r1=423294&r2=423295&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java Tue Jul 18 16:52:09 2006
@@ -1325,4 +1325,10 @@
 	 * Backwards compatibility options.
 	 */
 	public Compatibility getCompatibilityInstance ();
+    
+    /**
+     * Return the {@link StoreFacadeTypeRegistry} instance associated with this
+     * configuration.
+     */
+    public StoreFacadeTypeRegistry getStoreFacadeTypeRegistry();
 }

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?rev=423295&r1=423294&r2=423295&view=diff
==============================================================================
--- 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 Tue Jul 18 16:52:09 2006
@@ -141,6 +141,9 @@
 
     private Collection supportedOptions = new HashSet(33);
     private String spec = null;
+    
+    private final StoreFacadeTypeRegistry _storeFacadeRegistry =
+        new StoreFacadeTypeRegistry();
 
     /**
      * Default constructor. Attempts to load default properties.
@@ -1412,4 +1415,8 @@
     public Log getConfigurationLog() {
         return getLog(LOG_RUNTIME);
 	}
+
+    public StoreFacadeTypeRegistry getStoreFacadeTypeRegistry() {
+        return _storeFacadeRegistry;
+    }
 }

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ImplHelper.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ImplHelper.java?rev=423295&r1=423294&r2=423295&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ImplHelper.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ImplHelper.java Tue Jul 18 16:52:09 2006
@@ -19,14 +19,10 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.Iterator;
-import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.openjpa.enhance.PersistenceCapable;
-import org.apache.openjpa.kernel.BrokerFactory;
-import org.apache.openjpa.kernel.DelegatingBrokerFactory;
 import org.apache.openjpa.kernel.FetchState;
 import org.apache.openjpa.kernel.LockManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
@@ -53,7 +49,6 @@
 
     private static final Localizer _loc = Localizer.forPackage
         (ImplHelper.class);
-	private static Map _facadeTypes = new HashMap ();
 
     /**
      * Return the getter method matching the given property name.
@@ -172,43 +167,6 @@
             default:
                 return null;
         }
-    }
-
-    /**
-     * Return the store-specific facade class for the given broker
-     * component class. This method is used by facade implementations to
-     * wrap store-specific components without knowing about all possible
-     * back-ends.
-     *
-     * @param bf broker factory for which an implementation class
-     * @param compType type of desired component (e.g. FetchPlan.class)
-     * @return the class corresponding to the type in the store facade registry,
-     * or <code>null</code> if no registry entry exists.
-     */
-    public static Class getStoreFacadeType(BrokerFactory bf, Class compType) {
-    	
-    	Class bfClass;
-    	if (bf instanceof DelegatingBrokerFactory)
-    		bfClass = ((DelegatingBrokerFactory) bf).getInnermostDelegate()
-    			.getClass();
-    	else
-    		bfClass = bf.getClass();
-    	
-    	return (Class) _facadeTypes.get(storeFacadeKey(bfClass, compType));
-    }
-    
-    /**
-     * Add a facade type for the specified broker factory type and 
-     * component type.
-     * @see #getStoreFacadeType
-     */
-    public static void addStoreFacadeType(Class bfClass, Class compType,
-    	Class facadeType) {
-    	_facadeTypes.put(storeFacadeKey(bfClass, compType), facadeType);
-    }
-    
-    private static String storeFacadeKey(Class bfClass, Class compType) {
-    	return bfClass.getName() + ":" + compType.getName();
     }
 
     /**

Modified: incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java?rev=423295&r1=423294&r2=423295&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java Tue Jul 18 16:52:09 2006
@@ -276,8 +276,9 @@
         _factory.lock();
         try {
             if (_plan == null) {
-                Class cls = ImplHelper.getStoreFacadeType(_factory, 
-                	FetchPlan.class);
+                Class cls = _factory.getConfiguration()
+                    .getStoreFacadeTypeRegistry().getImplementation(
+                        FetchPlan.class);
                 if (cls == null)
                     cls = FetchPlan.class;
                 _plan = cls.getConstructor(FetchPlan.class);