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