Author: rmannibucau
Date: Fri Dec 23 17:18:48 2011
New Revision: 1222757

URL: http://svn.apache.org/viewvc?rev=1222757&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=1222757&r1=1222756&r2=1222757&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:18:48 2011
@@ -25,6 +25,7 @@ import org.apache.openejb.util.LogCatego
 import org.apache.openejb.util.Logger;
 
 import javax.naming.Context;
+import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.SharedCacheMode;
@@ -79,6 +80,11 @@ public class PersistenceBuilder {
                     DataSource jtaDataSource = (DataSource) 
context.lookup(jtaDataSourceId);
                     unitInfo.setJtaDataSource(jtaDataSource);
                 } catch (NamingException e) {
+                    try {
+                        unitInfo.setJtaDataSource((DataSource) new 
InitialContext().lookup(jtaDataSourceId));
+                    } catch (NamingException ne) {
+                        // ignored: rethrow the previous one
+                    }
                     throw new OpenEJBException("Could not lookup 
<jta-data-source> '" + jtaDataSourceId + "' for unit '" + 
unitInfo.getPersistenceUnitName() + "'", e);
                 }
             }
@@ -119,6 +125,11 @@ public class PersistenceBuilder {
                     DataSource nonJtaDataSource = (DataSource) 
context.lookup(nonJtaDataSourceId);
                     unitInfo.setNonJtaDataSource(nonJtaDataSource);
                 } catch (NamingException e) {
+                    try {
+                        unitInfo.setNonJtaDataSource((DataSource) new 
InitialContext().lookup(nonJtaDataSourceId));
+                    } catch (NamingException ne) {
+                        // ignored: rethrow the previous one
+                    }
                     throw new OpenEJBException("Could not lookup 
<non-jta-data-source> '" + nonJtaDataSourceId + "' for unit '" + 
unitInfo.getPersistenceUnitName() + "'", e);
                 }
             }


Reply via email to