You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2009/12/21 17:44:28 UTC

svn commit: r892877 - in /openjpa/trunk/openjpa-persistence/src: main/java/org/apache/openjpa/persistence/ test/java/org/apache/openjpa/persistence/ test/resources/META-INF/

Author: curtisr7
Date: Mon Dec 21 16:44:27 2009
New Revision: 892877

URL: http://svn.apache.org/viewvc?rev=892877&view=rev
Log:
OPENJPA-993: PersistenceProductDerivation.getAnchorsInxxx(..) should only return PUs that belong to OpenJPA.

Modified:
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
    openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java
    openjpa/trunk/openjpa-persistence/src/test/resources/META-INF/persistence.xml

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java?rev=892877&r1=892876&r2=892877&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java Mon Dec 21 16:44:27 2009
@@ -93,6 +93,14 @@
 
     private HashMap<String, PUNameCollision> _puNameCollisions
         = new HashMap<String,PUNameCollision>();
+    
+    // Provider name to filter out PUs that don't belong to this derivation.
+    protected String _providerImplName;
+
+	public PersistenceProductDerivation() {
+		_providerImplName = PersistenceProviderImpl.class.getName();
+	}
+    
     public void putBrokerFactoryAliases(Map m) {
     }
 
@@ -331,8 +339,16 @@
     private List<String> getUnitNames(ConfigurationParser parser) {
         List<PersistenceUnitInfoImpl> units = parser.getResults();
         List<String> names = new ArrayList<String>();
-        for (PersistenceUnitInfoImpl unit : units)
-            names.add(unit.getPersistenceUnitName());
+        for (PersistenceUnitInfoImpl unit : units){
+        	String provider = unit.getPersistenceProviderClassName();
+			// Only add the PU name if the provider it is ours or not specified.
+			if (provider == null || provider.equals(_providerImplName)) {
+				names.add(unit.getPersistenceUnitName());
+			} else {
+				// Should trace something, but logging isn't configured yet.
+				// Swallow.
+			}
+        }
         return names;
     }
 

Modified: openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java?rev=892877&r1=892876&r2=892877&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java (original)
+++ openjpa/trunk/openjpa-persistence/src/test/java/org/apache/openjpa/persistence/TestPersistenceProductDerivation.java Mon Dec 21 16:44:27 2009
@@ -111,6 +111,9 @@
         List<String> actual = ppd.getAnchorsInResource("META-INF/persistence.xml");
         
         assertTrue(actual.containsAll(expectedPUs));
+        
+        // Added for OPENJPA-993
+        assertFalse(actual.contains("bad_provider"));
     }
     public void testEncryptionPluginConfiguration() throws Exception {
 		PersistenceProductDerivation ppd = new PersistenceProductDerivation();

Modified: openjpa/trunk/openjpa-persistence/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/test/resources/META-INF/persistence.xml?rev=892877&r1=892876&r2=892877&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/test/resources/META-INF/persistence.xml (original)
+++ openjpa/trunk/openjpa-persistence/src/test/resources/META-INF/persistence.xml Mon Dec 21 16:44:27 2009
@@ -43,4 +43,8 @@
     <persistence-unit name="exclude_true">
         <exclude-unlisted-classes>true</exclude-unlisted-classes>
     </persistence-unit>
+    <!-- Added for OPENJPA-993 -->
+    <persistence-unit name="bad_provider">
+        <provider>void</provider>
+    </persistence-unit>    
 </persistence>