Author: dblevins
Date: Thu Dec 13 23:31:34 2007
New Revision: 604119

URL: http://svn.apache.org/viewvc?rev=604119&view=rev
Log:
Use entity manager factories in global jndi

Modified:
    
openejb/trunk/openejb3/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatJndiBuilder.java

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatJndiBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatJndiBuilder.java?rev=604119&r1=604118&r2=604119&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatJndiBuilder.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/src/main/java/org/apache/openejb/tomcat/TomcatJndiBuilder.java
 Thu Dec 13 23:31:34 2007
@@ -315,9 +315,13 @@
             resource.setProperty(JNDI_NAME, ref.location.jndiName);
             resource.setProperty(JNDI_PROVIDER_ID, 
ref.location.jndiProviderId);
         } else {
-            EntityManagerFactory factory = 
emfLinkResolver.resolveLink(ref.persistenceUnitName, moduleUri);
-            if (factory == null) {
-                throw new IllegalArgumentException("Persistence unit " + 
ref.persistenceUnitName + " for persistence-unit-ref " + ref.referenceName + " 
not found");
+            // TODO: This will not work if webapps don't use AutoConfi
+            Context context = 
SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
+            EntityManagerFactory factory;
+            try {
+                factory = (EntityManagerFactory) 
context.lookup("openejb/PersistenceUnit/" + ref.unitId);
+            } catch (NamingException e) {
+                throw new IllegalStateException("PersistenceUnit '" + 
ref.unitId + "' not found for EXTENDED ref '" + ref.referenceName + "'");
             }
             setStaticValue(resource, factory);
         }


Reply via email to