You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2010/05/06 00:11:52 UTC

svn commit: r941515 - in /openjpa/trunk: openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/ openjpa-slice/src/main/java/org/apache/openjpa/slice/ openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/ openjpa-slice/src/test/java/org/apache/open...

Author: ppoddar
Date: Wed May  5 22:11:51 2010
New Revision: 941515

URL: http://svn.apache.org/viewvc?rev=941515&view=rev
Log:
OPENJPA-1649: Share metadata/mapping repository across slices. 

Modified:
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java
    openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/ProductDerivation.java
    openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java
    openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java?rev=941515&r1=941514&r2=941515&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java Wed May  5 22:11:51 2010
@@ -143,13 +143,9 @@ public abstract class DelegatingDataSour
             // that does not support getConnection(user, password)
             // see http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html
             // hence this workaround
-            try {
-                if (setBeanProperty(_ds, "setUsername", user)
-                 && setBeanProperty(_ds, "setPassword", pass))
-                    return _ds.getConnection();
-            } catch (Exception e) {
-                throw ex;
-            }
+            if (setBeanProperty(_ds, "setUsername", user)
+             && setBeanProperty(_ds, "setPassword", pass))
+                return _ds.getConnection();
         }
         return null;
     }
@@ -173,7 +169,7 @@ public abstract class DelegatingDataSour
     
     private boolean setBeanProperty(Object target, String method, Object val) {
         try {
-            Method setter = target.getClass().getMethod(method, new Class[]{});
+            Method setter = target.getClass().getMethod(method, new Class[]{String.class});
             setter.invoke(target, val);
             return true;
         } catch (Throwable t) {

Modified: openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/ProductDerivation.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/ProductDerivation.java?rev=941515&r1=941514&r2=941515&view=diff
==============================================================================
--- openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/ProductDerivation.java (original)
+++ openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/ProductDerivation.java Wed May  5 22:11:51 2010
@@ -24,13 +24,7 @@ import java.util.Set;
 
 import org.apache.openjpa.conf.OpenJPAProductDerivation;
 import org.apache.openjpa.lib.conf.AbstractProductDerivation;
-import org.apache.openjpa.lib.conf.Configuration;
-import org.apache.openjpa.lib.conf.PluginValue;
-import org.apache.openjpa.lib.conf.Value;
-import org.apache.openjpa.lib.log.Log;
-import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.slice.jdbc.DistributedJDBCBrokerFactory;
-import org.apache.openjpa.slice.jdbc.DistributedJDBCConfigurationImpl;
 
 /**
  * Derives configuration for Slice.
@@ -43,8 +37,6 @@ import org.apache.openjpa.slice.jdbc.Dis
  */
 public class ProductDerivation extends AbstractProductDerivation implements
 		OpenJPAProductDerivation {
-	private static final Localizer _loc = 
-		Localizer.forPackage(ProductDerivation.class);
     /**
      * Prefix for all Slice-specific configuration properties. 
      */
@@ -71,35 +63,6 @@ public class ProductDerivation extends A
 		return TYPE_STORE;
 	}
 	
-	/**
-	 * Sets the {@link DistributionPolicy} and {@link ReplicationPolicy} to
-	 * their respective defaults if not set by the user.
-	 */
-    @Override
-    public boolean afterSpecificationSet(Configuration c) {
-        if (!(c instanceof DistributedJDBCConfigurationImpl))
-            return false;
-        DistributedJDBCConfigurationImpl conf = 
-        	(DistributedJDBCConfigurationImpl)c;
-        boolean modified = false;
-        Log log = conf.getConfigurationLog();
-        if (conf.getDistributionPolicyInstance() == null) {
-        	forceSet(conf.distributionPolicyPlugin,"random", log);
-        	modified = true;
-        }
-        if (conf.getReplicationPolicyInstance() == null) {
-        	forceSet(conf.replicationPolicyPlugin, "all", log);
-        	modified = true;
-        }
-        return modified;
-    }
-    
-    void forceSet(Value v, String forced, Log log) {
-    	v.setString(forced);
-    	if (log.isWarnEnabled())
-            log.warn(_loc.get("forced-set-config", v.getProperty(), forced));
-    }
-    
     public Set<String> getSupportedQueryHints() {
         return Collections.singleton(HINT_TARGET);
     }

Modified: openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java?rev=941515&r1=941514&r2=941515&view=diff
==============================================================================
--- openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java (original)
+++ openjpa/trunk/openjpa-slice/src/main/java/org/apache/openjpa/slice/jdbc/DistributedJDBCConfigurationImpl.java Wed May  5 22:11:51 2010
@@ -90,11 +90,13 @@ public class DistributedJDBCConfiguratio
         distributionPolicyPlugin = addPlugin(PREFIX_SLICE + "DistributionPolicy", true);
         distributionPolicyPlugin.setAlias("random", DistributionPolicy.Default.class.getName());
         distributionPolicyPlugin.setDefault("random");
+        distributionPolicyPlugin.setString("random");
         distributionPolicyPlugin.setDynamic(true);
         
         replicationPolicyPlugin = addPlugin(PREFIX_SLICE + "ReplicationPolicy", true);
         replicationPolicyPlugin.setAlias("all", ReplicationPolicy.Default.class.getName());
         replicationPolicyPlugin.setDefault("all");
+        replicationPolicyPlugin.setString("all");
         replicationPolicyPlugin.setDynamic(true);
         
         lenientPlugin = addBoolean(PREFIX_SLICE + "Lenient");
@@ -382,11 +384,14 @@ public class DistributedJDBCConfiguratio
      * @param original a set of properties.
      * @return a newly configured slice
      */
-    protected Slice newSlice(String key, Map original) {
+    private Slice newSlice(String key, Map original) {
         JDBCConfiguration child = new JDBCConfigurationImpl();
         child.fromProperties(createSliceProperties(original, key));
         child.setId(getId()+DOT+key);
         setDiagnosticContext(child);
+        child.setMappingDefaults(this.getMappingDefaultsInstance());
+        child.setDataCacheManager(this.getDataCacheManagerInstance());
+        child.setMetaDataRepository(this.getMetaDataRepositoryInstance());
         Slice slice = new Slice(key, child);
         Log log = getConfigurationLog();
         if (log.isTraceEnabled())

Modified: openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java?rev=941515&r1=941514&r2=941515&view=diff
==============================================================================
--- openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java (original)
+++ openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQueryMultiThreaded.java Wed May  5 22:11:51 2010
@@ -310,7 +310,7 @@ public class TestQueryMultiThreaded exte
      * OPENJPA-1044</A>
      * for details.
      */
-    public void xtestQueryParameterEntity() {
+    public void testQueryParameterEntity() {
         final EntityManager em = emf.createEntityManager();
         em.getTransaction().begin();
         final Query addressQ =