Author: rmannibucau
Date: Fri Dec 23 17:21:04 2011
New Revision: 1222758

URL: http://svn.apache.org/viewvc?rev=1222758&view=rev
Log:
if the ds is not found in OpenEJB context then try with the default jndi 
context (can allow a user working in OSGi or any other container to define his 
datasource elsewhere)

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java?rev=1222758&r1=1222757&r2=1222758&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
 Fri Dec 23 17:21:04 2011
@@ -73,15 +73,18 @@ public class PersistenceBuilder {
         if (jtaDataSourceId != null) {
             if (!SystemInstance.get().hasProperty("openejb.geronimo")) {
 
+                String initialJndiName = jtaDataSourceId;
                 try {
                     if (!jtaDataSourceId.startsWith("java:openejb/Resource/")
-                            && 
!jtaDataSourceId.startsWith("openejb/Resource/")) jtaDataSourceId = 
"openejb/Resource/"+jtaDataSourceId;
+                            && 
!jtaDataSourceId.startsWith("openejb/Resource/")) {
+                        jtaDataSourceId = "openejb/Resource/"+jtaDataSourceId;
+                    }
 
                     DataSource jtaDataSource = (DataSource) 
context.lookup(jtaDataSourceId);
                     unitInfo.setJtaDataSource(jtaDataSource);
                 } catch (NamingException e) {
                     try {
-                        unitInfo.setJtaDataSource((DataSource) new 
InitialContext().lookup(jtaDataSourceId));
+                        unitInfo.setJtaDataSource((DataSource) new 
InitialContext().lookup(initialJndiName));
                     } catch (NamingException ne) {
                         // ignored: rethrow the previous one
                     }
@@ -119,6 +122,7 @@ public class PersistenceBuilder {
         unitInfo.setNonJtaDataSourceName(nonJtaDataSourceId);
         if (nonJtaDataSourceId != null) {
             if (!SystemInstance.get().hasProperty("openejb.geronimo")) {
+                String initialJndiName = nonJtaDataSourceId;
                 try {
                     if 
(!nonJtaDataSourceId.startsWith("java:openejb/Resource/")) nonJtaDataSourceId = 
"java:openejb/Resource/"+nonJtaDataSourceId;
 
@@ -126,7 +130,7 @@ public class PersistenceBuilder {
                     unitInfo.setNonJtaDataSource(nonJtaDataSource);
                 } catch (NamingException e) {
                     try {
-                        unitInfo.setNonJtaDataSource((DataSource) new 
InitialContext().lookup(nonJtaDataSourceId));
+                        unitInfo.setNonJtaDataSource((DataSource) new 
InitialContext().lookup(initialJndiName));
                     } catch (NamingException ne) {
                         // ignored: rethrow the previous one
                     }


Reply via email to