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);
}
// --------------------------------------------------------------------------------------------