You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/03/05 01:37:33 UTC

svn commit: r633728 - in /openejb/trunk/openejb3/container/openejb-core/src: main/java/org/apache/openejb/assembler/classic/ main/java/org/apache/openejb/config/ test/java/org/apache/openejb/config/

Author: dblevins
Date: Tue Mar  4 16:37:28 2008
New Revision: 633728

URL: http://svn.apache.org/viewvc?rev=633728&view=rev
Log:
Small tweak to greatly increase the quality of the log output regarding persistence unit datasource linking

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java?rev=633728&r1=633727&r2=633728&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java Tue Mar  4 16:37:28 2008
@@ -23,6 +23,7 @@
 import javax.persistence.spi.PersistenceUnitTransactionType;
 import javax.sql.DataSource;
 import javax.naming.Context;
+import javax.naming.NamingException;
 
 import org.apache.openejb.persistence.PersistenceClassLoaderHandler;
 import org.apache.openejb.persistence.PersistenceUnitInfoImpl;
@@ -30,6 +31,7 @@
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.OpenEJBException;
 
 public class PersistenceBuilder {
 
@@ -105,13 +107,20 @@
         unitInfo.setExcludeUnlistedClasses(info.excludeUnlistedClasses);
 
         // JTA Datasource
-        String dataSource = info.jtaDataSource;
-        if (jtaDataSourceEnv != null) dataSource = jtaDataSourceEnv;
-        if (dataSource != null) {
+        String jtaDataSourceId = info.jtaDataSource;
+        if (jtaDataSourceEnv != null) jtaDataSourceId = jtaDataSourceEnv;
+        if (jtaDataSourceId != null) {
             if (System.getProperty("duct tape") == null){
-                Context context = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
-                DataSource jtaDataSource = (DataSource) context.lookup(dataSource);
-                unitInfo.setJtaDataSource(jtaDataSource);
+
+                try {
+                    if (!jtaDataSourceId.startsWith("java:openejb/Resource/")) jtaDataSourceId = "java:openejb/Resource/"+jtaDataSourceId;
+
+                    Context context = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
+                    DataSource jtaDataSource = (DataSource) context.lookup(jtaDataSourceId);
+                    unitInfo.setJtaDataSource(jtaDataSource);
+                } catch (NamingException e) {
+                    throw new OpenEJBException("Could not lookup <jta-data-source> '" + jtaDataSourceId + "' for unit '" + unitInfo.getPersistenceUnitName() + "'", e);
+                }
             }
         }
 
@@ -139,13 +148,19 @@
         }
 
         // Non JTA Datasource
-        String nonJta = info.nonJtaDataSource;
-        if (nonJtaDataSourceEnv != null) nonJta = nonJtaDataSourceEnv;
-        if (nonJta != null) {
+        String nonJtaDataSourceId = info.nonJtaDataSource;
+        if (nonJtaDataSourceEnv != null) nonJtaDataSourceId = nonJtaDataSourceEnv;
+        if (nonJtaDataSourceId != null) {
             if (System.getProperty("duct tape") == null){
-                Context context = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
-                DataSource nonJtaDataSource = (DataSource) context.lookup(nonJta);
-                unitInfo.setNonJtaDataSource(nonJtaDataSource);
+                try {
+                    if (!nonJtaDataSourceId.startsWith("java:openejb/Resource/")) nonJtaDataSourceId = "java:openejb/Resource/"+nonJtaDataSourceId;
+
+                    Context context = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
+                    DataSource nonJtaDataSource = (DataSource) context.lookup(nonJtaDataSourceId);
+                    unitInfo.setNonJtaDataSource(nonJtaDataSource);
+                } catch (NamingException e) {
+                    throw new OpenEJBException("Could not lookup <non-jta-data-source> '" + nonJtaDataSourceId + "' for unit '" + unitInfo.getPersistenceUnitName() + "'", e);
+                }
             }
         }
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=633728&r1=633727&r2=633728&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Tue Mar  4 16:37:28 2008
@@ -887,8 +887,8 @@
 
             if (jtaDataSourceId != null && nonJtaDataSourceId != null){
                 // Both DataSources were explicitly configured.
-                unit.setJtaDataSource("java:openejb/Resource/" + jtaDataSourceId);
-                unit.setNonJtaDataSource("java:openejb/Resource/" + nonJtaDataSourceId);
+                setJtaDataSource(unit, jtaDataSourceId);
+                setNonJtaDataSource(unit, nonJtaDataSourceId);
                 continue;
             }
 
@@ -904,8 +904,8 @@
                 nonJtaDataSourceId = findResourceId(unit.getNonJtaDataSource(), "DataSource", required, null);
 
                 if (jtaDataSourceId != null || nonJtaDataSourceId != null) {
-                    if (jtaDataSourceId != null) unit.setJtaDataSource("java:openejb/Resource/" + jtaDataSourceId);
-                    if (nonJtaDataSourceId != null) unit.setNonJtaDataSource("java:openejb/Resource/" + nonJtaDataSourceId);
+                    if (jtaDataSourceId != null) setJtaDataSource(unit, jtaDataSourceId);
+                    if (nonJtaDataSourceId != null) setNonJtaDataSource(unit, nonJtaDataSourceId);
                     continue;
                 }
             }
@@ -991,8 +991,8 @@
                     logAutoCreateResource(nonJtaResourceInfo, "DataSource", unit.getName());
                     nonJtaDataSourceId = installResource(unit.getName(), nonJtaResourceInfo);
 
-                    unit.setJtaDataSource("java:openejb/Resource/" + jtaDataSourceId);
-                    unit.setNonJtaDataSource("java:openejb/Resource/" + nonJtaDataSourceId);
+                    setJtaDataSource(unit, jtaDataSourceId);
+                    setNonJtaDataSource(unit, nonJtaDataSourceId);
                     continue;
                 }
             }
@@ -1142,11 +1142,39 @@
                 nonJtaDataSourceId = autoCreateResource("DataSource", required, unit.getName());
             }
 
-            if (jtaDataSourceId != null) unit.setJtaDataSource("java:openejb/Resource/" + jtaDataSourceId);
-            if (nonJtaDataSourceId != null) unit.setNonJtaDataSource("java:openejb/Resource/" + nonJtaDataSourceId);
+            if (jtaDataSourceId != null) setJtaDataSource(unit, jtaDataSourceId);
+            if (nonJtaDataSourceId != null) setNonJtaDataSource(unit, nonJtaDataSourceId);
         }
     }
 
+    private void setNonJtaDataSource(PersistenceUnit unit, String current) {
+
+
+        String previous = unit.getNonJtaDataSource();
+
+        if (!current.equals(previous)) {
+
+            logger.info("Adjusting " + unit.getName() + " <non-jta-data-source> to '" + current+"'");
+
+        }
+
+        unit.setNonJtaDataSource(current);
+    }
+
+    private void setJtaDataSource(PersistenceUnit unit, String current) {
+
+
+        String previous = unit.getJtaDataSource();
+
+        if (!current.equals(previous)) {
+
+            logger.info("Adjusting " + unit.getName() + " <jta-data-source> to '" + current+"'");
+
+        }
+
+        unit.setJtaDataSource(current);
+    }
+
     private ResourceInfo copy(ResourceInfo a) {
         ResourceInfo b = new ResourceInfo();
         b.id = a.id;
@@ -1191,7 +1219,7 @@
 
     private String findResourceProviderId(String resourceId) throws OpenEJBException {
         if (resourceId == null) return null;
-        
+
         if (hasServiceProvider(resourceId)) {
             return resourceId;
         }

Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java?rev=633728&r1=633727&r2=633728&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java Tue Mar  4 16:37:28 2008
@@ -86,8 +86,8 @@
 
         assertNotNull(unitInfo);
 
-        assertEquals("java:openejb/Resource/" + jta.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + nonJta.id, unitInfo.nonJtaDataSource);
+        assertEquals(jta.id, unitInfo.jtaDataSource);
+        assertEquals(nonJta.id, unitInfo.nonJtaDataSource);
     }
 
     /**
@@ -115,8 +115,8 @@
 
         assertNotNull(unitInfo);
 
-        assertEquals("java:openejb/Resource/" + jta.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + nonJta.id, unitInfo.nonJtaDataSource);
+        assertEquals(jta.id, unitInfo.jtaDataSource);
+        assertEquals(nonJta.id, unitInfo.nonJtaDataSource);
     }
 
 
@@ -144,7 +144,7 @@
 
         assertNotNull(unitInfo);
 
-        assertEquals("java:openejb/Resource/" + dataSource.id, unitInfo.jtaDataSource);
+        assertEquals(dataSource.id, unitInfo.jtaDataSource);
         assertNull(unitInfo.nonJtaDataSource);
     }
 
@@ -173,7 +173,7 @@
         assertNotNull(unitInfo);
 
         assertNull(unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + dataSource.id, unitInfo.nonJtaDataSource);
+        assertEquals(dataSource.id, unitInfo.nonJtaDataSource);
     }
 
     /**
@@ -202,8 +202,8 @@
 
         assertNotNull(unitInfo);
 
-        assertEquals("java:openejb/Resource/" + dataSource.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + dataSource.id, unitInfo.nonJtaDataSource);
+        assertEquals(dataSource.id, unitInfo.jtaDataSource);
+        assertEquals(dataSource.id, unitInfo.nonJtaDataSource);
     }
 
     /**
@@ -238,8 +238,8 @@
 
         ResourceInfo generated = resources.get(1);
 
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + generated.id, unitInfo.nonJtaDataSource);
+        assertEquals(supplied.id, unitInfo.jtaDataSource);
+        assertEquals(generated.id, unitInfo.nonJtaDataSource);
 
 
         assertNotNull(generated);
@@ -285,8 +285,8 @@
 
         ResourceInfo generated = resources.get(1);
 
-        assertEquals("java:openejb/Resource/" + generated.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.nonJtaDataSource);
+        assertEquals(generated.id, unitInfo.jtaDataSource);
+        assertEquals(supplied.id, unitInfo.nonJtaDataSource);
 
 
         assertNotNull(generated);
@@ -333,8 +333,8 @@
 
         assertNotNull(unitInfo);
 
-        assertEquals("java:openejb/Resource/" + jta.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + nonJta.id, unitInfo.nonJtaDataSource);
+        assertEquals(jta.id, unitInfo.jtaDataSource);
+        assertEquals(nonJta.id, unitInfo.nonJtaDataSource);
     }
 
     /**
@@ -371,8 +371,8 @@
 
         assertNotNull(unitInfo);
 
-        assertEquals("java:openejb/Resource/" + jta.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + nonJta.id, unitInfo.nonJtaDataSource);
+        assertEquals(jta.id, unitInfo.jtaDataSource);
+        assertEquals(nonJta.id, unitInfo.nonJtaDataSource);
     }
 
     /**
@@ -403,8 +403,8 @@
 
         assertNotNull(unitInfo);
 
-        assertEquals("java:openejb/Resource/" + jta.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + nonJta.id, unitInfo.nonJtaDataSource);
+        assertEquals(jta.id, unitInfo.jtaDataSource);
+        assertEquals(nonJta.id, unitInfo.nonJtaDataSource);
     }
 
     /**
@@ -435,8 +435,8 @@
 
         assertNotNull(unitInfo);
 
-        assertEquals("java:openejb/Resource/" + jta.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + nonJta.id, unitInfo.nonJtaDataSource);
+        assertEquals(jta.id, unitInfo.jtaDataSource);
+        assertEquals(nonJta.id, unitInfo.nonJtaDataSource);
     }
 
     // ---
@@ -584,8 +584,8 @@
 
         ResourceInfo generated = resources.get(1);
 
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.nonJtaDataSource);
-        assertEquals("java:openejb/Resource/" + generated.id, unitInfo.jtaDataSource);
+        assertEquals(supplied.id, unitInfo.nonJtaDataSource);
+        assertEquals(generated.id, unitInfo.jtaDataSource);
 
 
         assertNotNull(generated);
@@ -622,8 +622,8 @@
 
         ResourceInfo generated = resources.get(1);
 
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + generated.id, unitInfo.nonJtaDataSource);
+        assertEquals(supplied.id, unitInfo.jtaDataSource);
+        assertEquals(generated.id, unitInfo.nonJtaDataSource);
 
 
         assertEquals(supplied.id + "NonJta", generated.id);
@@ -665,8 +665,8 @@
 
         ResourceInfo generated = resources.get(2);
 
-        assertEquals("java:openejb/Resource/" + generated.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.nonJtaDataSource);
+        assertEquals(generated.id, unitInfo.jtaDataSource);
+        assertEquals(supplied.id, unitInfo.nonJtaDataSource);
 
 
         assertEquals(supplied.id + "Jta", generated.id);
@@ -707,8 +707,8 @@
 
         ResourceInfo generated = resources.get(2);
 
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + generated.id, unitInfo.nonJtaDataSource);
+        assertEquals(supplied.id, unitInfo.jtaDataSource);
+        assertEquals(generated.id, unitInfo.nonJtaDataSource);
 
 
         assertEquals(supplied.id + "NonJta", generated.id);
@@ -751,8 +751,8 @@
         assertNotNull(unitInfo);
 
 
-        assertEquals("java:openejb/Resource/" + goodMatch.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.nonJtaDataSource);
+        assertEquals(goodMatch.id, unitInfo.jtaDataSource);
+        assertEquals(supplied.id, unitInfo.nonJtaDataSource);
     }
 
     /**
@@ -785,8 +785,8 @@
         assertNotNull(unitInfo);
 
 
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + goodMatch.id, unitInfo.nonJtaDataSource);
+        assertEquals(supplied.id, unitInfo.jtaDataSource);
+        assertEquals(goodMatch.id, unitInfo.nonJtaDataSource);
     }
 
     // ---
@@ -819,8 +819,8 @@
 
         ResourceInfo generated = resources.get(1);
 
-        assertEquals("java:openejb/Resource/" + generated.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.nonJtaDataSource);
+        assertEquals(generated.id, unitInfo.jtaDataSource);
+        assertEquals(supplied.id, unitInfo.nonJtaDataSource);
 
 
         assertEquals(supplied.id + "Jta", generated.id);
@@ -860,8 +860,8 @@
 
         ResourceInfo generated = resources.get(1);
 
-        assertEquals("java:openejb/Resource/" + supplied.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + generated.id, unitInfo.nonJtaDataSource);
+        assertEquals(supplied.id, unitInfo.jtaDataSource);
+        assertEquals(generated.id, unitInfo.nonJtaDataSource);
 
 
         assertEquals(supplied.id + "NonJta", generated.id);
@@ -904,8 +904,8 @@
         assertEquals("Default JDBC Database", jta.id);
         assertEquals("Default Unmanaged JDBC Database", nonJta.id);
 
-        assertEquals("java:openejb/Resource/" + jta.id, unitInfo.jtaDataSource);
-        assertEquals("java:openejb/Resource/" + nonJta.id, unitInfo.nonJtaDataSource);
+        assertEquals(jta.id, unitInfo.jtaDataSource);
+        assertEquals(nonJta.id, unitInfo.nonJtaDataSource);
     }
 
     // --------------------------------------------------------------------------------------------