You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2010/08/05 09:54:33 UTC
svn commit: r982493 [2/2] - in /geronimo/server/trunk/plugins:
axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/
bval/geronimo-bval-builder/src/main/java/org/apache/geronimo/bval/deployment/
client/client/src/main/history/ clie...
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java?rev=982493&r1=982492&r2=982493&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java Thu Aug 5 07:54:32 2010
@@ -31,6 +31,8 @@ import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
+import javax.naming.NamingException;
+import javax.naming.Reference;
import org.apache.geronimo.common.DeploymentException;
import org.apache.geronimo.connector.outbound.connectiontracking.TrackedConnectionAssociator;
import org.apache.geronimo.gbean.AbstractName;
@@ -40,11 +42,13 @@ import org.apache.geronimo.j2ee.deployme
import org.apache.geronimo.j2ee.deployment.Module;
import org.apache.geronimo.j2ee.deployment.NamingBuilder;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.j2ee.jndi.JndiKey;
import org.apache.geronimo.j2ee.jndi.JndiScope;
import org.apache.geronimo.kernel.GBeanAlreadyExistsException;
import org.apache.geronimo.naming.deployment.AbstractNamingBuilder;
import org.apache.geronimo.naming.deployment.GBeanResourceEnvironmentBuilder;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentSetter;
+import org.apache.geronimo.naming.reference.JndiReference;
import org.apache.geronimo.openejb.EntityDeploymentGBean;
import org.apache.geronimo.openejb.ManagedDeploymentGBean;
import org.apache.geronimo.openejb.MessageDrivenDeploymentGBean;
@@ -58,6 +62,9 @@ import org.apache.geronimo.security.depl
import org.apache.geronimo.security.jacc.ComponentPermissions;
import org.apache.geronimo.xbeans.geronimo.naming.GerResourceRefType;
import org.apache.openejb.DeploymentInfo;
+import org.apache.openejb.InterfaceType;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.EnterpriseBean;
import org.apache.openejb.jee.EntityBean;
@@ -73,6 +80,8 @@ import org.apache.openejb.jee.oejb3.EjbD
import org.apache.xbean.finder.ClassFinder;
import org.osgi.framework.Bundle;
+import static org.apache.openejb.assembler.classic.JndiBuilder.format;
+
/**
* Handles building ejb deployment gbeans.
*/
@@ -376,23 +385,41 @@ public class EjbDeploymentBuilder {
// classFinder in the module will convey whether metadata-complete is set (or not)
// ejbModule.setClassFinder(createEjbJarClassFinder(ejbModule));
}
+ //TODO well, what is the appName?
+ String appName = null;
+ EjbJarInfo ejbJarInfo = ejbModule.getEjbJarInfo();
for (EnterpriseBean bean : ejbJar.getEnterpriseBeans()) {
+ String ejbName = bean.getEjbName();
+ String deploymentId = getDeploymentId(ejbName, ejbJarInfo);
+ GBeanData gbean = getEjbGBean(ejbName);
+ addEnc(gbean, bean, appName, deploymentId);
+ }
+ OpenejbGeronimoEjbJarType geronimoOpenejb = ejbModule.getVendorDD();
+ for (EnterpriseBean bean: ejbJar.getEnterpriseBeans()) {
String ejbName = bean.getEjbName().trim();
- String beanClass = bean.getEjbClass().trim();
GBeanData gbean = getEjbGBean(ejbName);
Collection<ResourceRef> resourceRefs = bean.getResourceRef();
- addEnc(gbean, beanClass, bean, resourceRefs);
+ processResourceEnvironment(gbean, resourceRefs, geronimoOpenejb);
}
+
if (!ejbJar.isMetadataComplete()) {
ejbJar.setMetadataComplete(true);
ejbModule.setOriginalSpecDD(ejbModule.getSpecDD().toString());
}
}
- private void addEnc(GBeanData gbean, String beanClass, EnterpriseBean bean, Collection<ResourceRef> resourceRefs) throws DeploymentException {
- OpenejbGeronimoEjbJarType geronimoOpenejb = ejbModule.getVendorDD();
+ private String getDeploymentId(String ejbName, EjbJarInfo ejbJarInfo) throws DeploymentException {
+ for (EnterpriseBeanInfo info: ejbJarInfo.enterpriseBeans) {
+ if (ejbName.equals(info.ejbName)) {
+ return info.ejbDeploymentId;
+ }
+ }
+ throw new DeploymentException("EnterpriseBeanInfo not found for ejb: " + ejbName);
+ }
+
+ private void addEnc(GBeanData gbean, EnterpriseBean bean, String appName, String deploymentId) throws DeploymentException {
//
// Build ENC
@@ -401,7 +428,7 @@ public class EjbDeploymentBuilder {
buildingContext.put(NamingBuilder.GBEAN_NAME_KEY, gbean.getAbstractName());
Class ejbClass;
try {
- ejbClass = ejbModule.getEarContext().getDeploymentBundle().loadClass(beanClass);
+ ejbClass = ejbModule.getEarContext().getDeploymentBundle().loadClass(bean.getEjbClass());
} catch (ClassNotFoundException e) {
throw new DeploymentException("Could not load ejb class", e);
}
@@ -412,10 +439,11 @@ public class EjbDeploymentBuilder {
}
ClassFinder finder = new ClassFinder(classes);
-// AnnotatedApp annotatedApp = AnnotatedEjbJar.getAnnotatedApp(xmlbeansEjb);
-
Module module = ejbModule.newEJb(finder, bean);
+ bind(bean, appName, ejbModule.getName(), deploymentId, module.getJndiContext());
+
+ OpenejbGeronimoEjbJarType geronimoOpenejb = ejbModule.getVendorDD();
namingBuilder.buildNaming(bean,
geronimoOpenejb,
module,
@@ -432,6 +460,9 @@ public class EjbDeploymentBuilder {
//
// Process resource refs
//
+ }
+
+ private void processResourceEnvironment(GBeanData gbean, Collection<ResourceRef> resourceRefs, OpenejbGeronimoEjbJarType geronimoOpenejb) throws DeploymentException {
GerResourceRefType[] gerResourceRefs = null;
if (geronimoOpenejb != null) {
@@ -442,26 +473,111 @@ public class EjbDeploymentBuilder {
resourceEnvironmentSetter.setResourceEnvironment(refBuilder, resourceRefs, gerResourceRefs);
}
-// private ClassFinder createEjbJarClassFinder(EjbModule ejbModule) throws DeploymentException {
-//
-// try {
-// // Get the classloader from the module's EARContext
-// Bundle bundle = ejbModule.getEarContext().getDeploymentBundle();
-//
-// //----------------------------------------------------------------------------------------
-// // Find the list of classes from the ejb-jar.xml we want to search for annotations in
-// //----------------------------------------------------------------------------------------
-// List<Class> classes = new ArrayList<Class>();
-//
-// for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
-// classes.add(bundle.loadClass(bean.getEjbClass()));
-// }
-//
-// return new ClassFinder(classes);
-// } catch (ClassNotFoundException e) {
-// throw new DeploymentException("Unable to load bean class.", e);
-// }
-// }
+ public void bind(EnterpriseBean bean, String appName, String moduleName, String id, Map<JndiKey, Map<String, Object>> jndiContext) {
+
+
+ appName = appName == null? "": appName + "/";
+ moduleName = moduleName + "/";
+ String beanName = bean.getEjbName();
+ int count = 0;
+ Reference singleRef = null;
+
+ if (bean instanceof RemoteBean) {
+ try {
+ String homeInterface = ((RemoteBean) bean).getHome();
+ if (homeInterface != null) {
+
+ String name = "openejb/Deployment/" + format(id, homeInterface, InterfaceType.EJB_OBJECT);
+ Reference ref = new JndiReference(name);
+ count ++;
+ singleRef = ref;
+ bindJava(appName, moduleName, beanName, homeInterface, ref, jndiContext);
+ }
+ } catch (NamingException e) {
+ throw new RuntimeException("Unable to bind remote home interface for deployment " + id, e);
+ }
+ try {
+ String localHomeInterface = ((RemoteBean) bean).getLocalHome();
+ if (localHomeInterface != null) {
+
+ String name = "openejb/Deployment/" + format(id, localHomeInterface, InterfaceType.EJB_LOCAL);
+ Reference ref = new JndiReference(name);
+ count++;
+ singleRef = ref;
+ bindJava(appName, moduleName, beanName, localHomeInterface, ref, jndiContext);
+ }
+ } catch (NamingException e) {
+ throw new RuntimeException("Unable to bind local home interface for deployment " + id, e);
+ }
+
+ try {
+ for (String interfce : ((RemoteBean) bean).getBusinessLocal()) {
+
+ String name = "openejb/Deployment/" + format(id, interfce, InterfaceType.BUSINESS_LOCAL);
+ Reference ref = new JndiReference(name);
+ count++;
+ singleRef = ref;
+ bindJava(appName, moduleName, beanName, interfce, ref, jndiContext);
+ }
+ } catch (NamingException e) {
+ throw new RuntimeException("Unable to bind business local interface for deployment " + id, e);
+ }
+
+ try {
+ for (String interfce : ((RemoteBean) bean).getBusinessRemote()) {
+
+ String name = "openejb/Deployment/" + format(id, interfce, InterfaceType.BUSINESS_REMOTE);
+ Reference ref = new JndiReference(name);
+ count++;
+ singleRef = ref;
+ bindJava(appName, moduleName, beanName, interfce, ref, jndiContext);
+ }
+ } catch (NamingException e) {
+ throw new RuntimeException("Unable to bind business remote deployment in jndi.", e);
+ }
+
+ }
+
+ try {
+ if (bean instanceof SessionBean && ((SessionBean)bean).getLocal() != null) {
+ String beanClass = bean.getEjbClass();
+
+ String name = "openejb/Deployment/" + format(id, beanClass, InterfaceType.BUSINESS_LOCALBEAN_HOME);
+ Reference ref = new JndiReference(name);
+ count ++;
+ singleRef = ref;
+ bindJava(appName, moduleName, beanName, beanClass, ref, jndiContext);
+ }
+ } catch (NamingException e) {
+ throw new RuntimeException("Unable to bind business remote deployment in jndi.", e);
+ }
+ if (count == 1) {
+ try {
+ bindJava(appName, moduleName, beanName, null, singleRef, jndiContext);
+ } catch (NamingException e) {
+ throw new RuntimeException("Unable to single interface in jndi.", e);
+ }
+ }
+ }
+
+ private void bindJava(String appName, String moduleName, String beanName, String interfaceName, Reference ref, Map<JndiKey, Map<String, Object>> contexts) throws NamingException {
+ if (interfaceName != null) {
+ beanName = beanName + "!" + interfaceName;
+ }
+ bind("global", appName + moduleName + beanName, ref, contexts);
+ bind("app", moduleName + beanName, ref, contexts);
+ bind("module", beanName, ref, contexts);
+ }
+
+ private void bind(String context, String name, Object object, Map<JndiKey, Map<String, Object>> contexts) throws NamingException {
+ JndiKey jndiKey = JndiScope.valueOf(context);
+ Map<String, Object> scope = contexts.get(jndiKey);
+ if (scope == null) {
+ scope = new HashMap<String, Object>();
+ contexts.put(jndiKey, scope);
+ }
+ scope.put(context + "/" + name, object);
+ }
private GBeanData getEjbGBean(String ejbName) throws DeploymentException {
GBeanData gbean = gbeans.get(ejbName);
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java?rev=982493&r1=982492&r2=982493&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java Thu Aug 5 07:54:32 2010
@@ -51,8 +51,8 @@ import org.apache.openejb.config.JndiEnc
import org.apache.openejb.core.ivm.naming.IntraVmJndiReference;
import org.apache.openejb.jee.EjbLocalRef;
import org.apache.openejb.jee.EjbRef;
+import org.apache.openejb.jee.InjectionTarget;
import org.apache.openejb.jee.JndiConsumer;
-import org.apache.openejb.jee.SessionBean;
import org.apache.xmlbeans.QNameSet;
import org.apache.xmlbeans.XmlObject;
import org.slf4j.Logger;
@@ -109,6 +109,17 @@ public class EjbRefBuilder extends Abstr
processAnnotations(specDD, module);
}
+ Map<String, List<InjectionTarget>> injectionsMap = new HashMap<String, List<InjectionTarget>>();
+ for (Map.Entry<String, EjbRef> entry: specDD.getEjbRefMap().entrySet()) {
+ if (!entry.getValue().getInjectionTarget().isEmpty()) {
+ injectionsMap.put(entry.getKey(), entry.getValue().getInjectionTarget());
+ }
+ }
+ for (Map.Entry<String, EjbLocalRef> entry: specDD.getEjbLocalRefMap().entrySet()) {
+ if (!entry.getValue().getInjectionTarget().isEmpty()) {
+ injectionsMap.put(entry.getKey(), entry.getValue().getInjectionTarget());
+ }
+ }
Map<String, Object> map = null;
try {
EjbModuleBuilder.EarData earData = EjbModuleBuilder.EarData.KEY.get(module.getRootEarContext().getGeneralData());
@@ -121,29 +132,21 @@ public class EjbRefBuilder extends Abstr
appInfo.ejbJars.addAll(ejbJars);
JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(appInfo);
- String moduleId = (module.isStandAlone()) ? null : module.getTargetPath();
- JndiEncInfo moduleJndiEnc = new JndiEncInfo();
- JndiEncInfo compJndiEnc = new JndiEncInfo();
+ JndiEncInfo moduleJndi = new JndiEncInfo();
+ JndiEncInfo compJndi = new JndiEncInfo();
- jndiEncInfoBuilder.build(specDD, "GeronimoEnc", moduleId, moduleJndiEnc, compJndiEnc);
+ String moduleId = module.getName();
+ jndiEncInfoBuilder.build(specDD, "GeronimoEnc", moduleId, moduleJndi, compJndi);
JndiEncInfo ejbEncInfo = new JndiEncInfo();
-
- // add java:global/
ejbEncInfo.ejbReferences.addAll(appInfo.globalJndiEnc.ejbReferences);
- ejbEncInfo.ejbLocalReferences.addAll(appInfo.globalJndiEnc.ejbLocalReferences);
-
- // add java:app/
ejbEncInfo.ejbReferences.addAll(appInfo.appJndiEnc.ejbReferences);
+ ejbEncInfo.ejbReferences.addAll(moduleJndi.ejbReferences);
+ ejbEncInfo.ejbReferences.addAll(compJndi.ejbReferences);
+ ejbEncInfo.ejbLocalReferences.addAll(appInfo.globalJndiEnc.ejbLocalReferences);
ejbEncInfo.ejbLocalReferences.addAll(appInfo.appJndiEnc.ejbLocalReferences);
-
- // add java:module/
- ejbEncInfo.ejbReferences.addAll(moduleJndiEnc.ejbReferences);
- ejbEncInfo.ejbLocalReferences.addAll(moduleJndiEnc.ejbLocalReferences);
-
- // add java:comp/
- ejbEncInfo.ejbReferences.addAll(compJndiEnc.ejbReferences);
- ejbEncInfo.ejbLocalReferences.addAll(compJndiEnc.ejbLocalReferences);
+ ejbEncInfo.ejbLocalReferences.addAll(moduleJndi.ejbLocalReferences);
+ ejbEncInfo.ejbLocalReferences.addAll(compJndi.ejbLocalReferences);
JndiEncBuilder jndiEncBuilder = new JndiEncBuilder(ejbEncInfo, null, module.getName(), getClass().getClassLoader());
@@ -164,8 +167,9 @@ public class EjbRefBuilder extends Abstr
if (uri != null) {
value = createClientRef(value);
}
+ name = "java:" + name;
if (value instanceof Serializable) {
- put("java:" + name, value, module.getJndiContext());
+ put(name, value, module.getJndiContext(), injectionsMap.get(name), sharedContext);
}
}
}
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/XBeanJndiFactory.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/XBeanJndiFactory.java?rev=982493&r1=982492&r2=982493&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/XBeanJndiFactory.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/XBeanJndiFactory.java Thu Aug 5 07:54:32 2010
@@ -21,11 +21,14 @@
package org.apache.geronimo.openejb;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import javax.naming.Context;
import javax.naming.NamingException;
+import org.apache.geronimo.j2ee.jndi.JndiKey;
+import org.apache.geronimo.j2ee.jndi.JndiScope;
import org.apache.openejb.SystemException;
import org.apache.openejb.core.JndiFactory;
import org.apache.xbean.naming.context.ImmutableFederatedContext;
Modified: geronimo/server/trunk/plugins/openejb/openejb-deployer/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/openejb-deployer/src/main/history/dependencies.xml?rev=982493&r1=982492&r2=982493&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/openejb-deployer/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/plugins/openejb/openejb-deployer/src/main/history/dependencies.xml Thu Aug 5 07:54:32 2010
@@ -36,9 +36,4 @@
<artifactId>openejb-osgi-core</artifactId>
<type>jar</type>
</dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <type>jar</type>
- </dependency>
</plugin-artifact>
Modified: geronimo/server/trunk/plugins/openejb/openejb/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/openejb/src/main/history/dependencies.xml?rev=982493&r1=982492&r2=982493&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/openejb/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/plugins/openejb/openejb/src/main/history/dependencies.xml Thu Aug 5 07:54:32 2010
@@ -122,6 +122,11 @@
<type>jar</type>
</dependency>
<dependency>
+ <groupId>org.apache.xbean</groupId>
+ <artifactId>xbean-bundleutils</artifactId>
+ <type>jar</type>
+ </dependency>
+ <dependency>
<groupId>org.apache.yoko</groupId>
<artifactId>yoko-spec-corba</artifactId>
<type>jar</type>
Modified: geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java?rev=982493&r1=982492&r2=982493&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java (original)
+++ geronimo/server/trunk/plugins/openjpa2/geronimo-persistence-jpa20-builder/src/main/java/org/apache/geronimo/persistence/builder/PersistenceRefBuilder.java Thu Aug 5 07:54:32 2010
@@ -53,6 +53,7 @@ import org.apache.geronimo.xbeans.geroni
import org.apache.geronimo.xbeans.geronimo.naming.GerPersistenceUnitRefDocument;
import org.apache.geronimo.xbeans.geronimo.naming.GerPersistenceUnitRefType;
import org.apache.geronimo.xbeans.geronimo.naming.GerPropertyType;
+import org.apache.openejb.jee.InjectionTarget;
import org.apache.openejb.jee.JndiConsumer;
import org.apache.openejb.jee.PersistenceContextRef;
import org.apache.openejb.jee.PersistenceContextType;
@@ -93,7 +94,7 @@ public class PersistenceRefBuilder exten
return plan != null && plan.selectChildren(PersistenceRefBuilder.GER_PERSISTENCE_UNIT_REF_QNAME_SET).length > 0;
}
- public void buildNaming(JndiConsumer specDD, XmlObject plan, Module module, Map<EARContext.Key, Object> componentContext) throws DeploymentException {
+ public void buildNaming(JndiConsumer specDD, XmlObject plan, Module module, Map<EARContext.Key, Object> sharedContext) throws DeploymentException {
Configuration localConfiguration = module.getEarContext().getConfiguration();
List<DeploymentException> problems = new ArrayList<DeploymentException>();
@@ -105,11 +106,10 @@ public class PersistenceRefBuilder exten
//persistenceUnit refs
Collection<PersistenceUnitRef> specPersistenceUnitRefsUntyped = specDD.getPersistenceUnitRef();
Map<String, GerPersistenceUnitRefType> gerPersistenceUnitRefsUntyped = getGerPersistenceUnitRefs(plan);
- for (PersistenceUnitRef persistenceUnitRef : specPersistenceUnitRefsUntyped) {
+ for (Map.Entry<String, PersistenceUnitRef> entry : specDD.getPersistenceUnitRefMap().entrySet()) {
try {
- String persistenceUnitRefName = persistenceUnitRef.getPersistenceUnitRefName().trim();
-
- addInjections(persistenceUnitRefName, persistenceUnitRef.getInjectionTarget(), componentContext);
+ String persistenceUnitRefName = entry.getKey();
+ PersistenceUnitRef persistenceUnitRef = entry.getValue();
AbstractNameQuery persistenceUnitNameQuery;
GerPersistenceUnitRefType gerPersistenceUnitRef = gerPersistenceUnitRefsUntyped.remove(persistenceUnitRefName);
if (gerPersistenceUnitRef != null) {
@@ -121,19 +121,20 @@ public class PersistenceRefBuilder exten
PersistenceUnitReference reference = new PersistenceUnitReference(module.getConfigId(), persistenceUnitNameQuery);
- put(persistenceUnitRefName, reference, module.getJndiContext());
+ put(persistenceUnitRefName, reference, module.getJndiContext(), persistenceUnitRef.getInjectionTarget(), sharedContext);
} catch (DeploymentException e) {
problems.add(e);
}
}
+ //geronimo-only persistence unit refs have no injections
for (GerPersistenceUnitRefType gerPersistenceUnitRef : gerPersistenceUnitRefsUntyped.values()) {
try {
- String PersistenceUnitRefName = gerPersistenceUnitRef.getPersistenceUnitRefName();
+ String persistenceUnitRefName = gerPersistenceUnitRef.getPersistenceUnitRefName();
AbstractNameQuery persistenceUnitNameQuery = findPersistenceUnit(gerPersistenceUnitRef);
checkForGBean(localConfiguration, persistenceUnitNameQuery, true);
PersistenceUnitReference reference = new PersistenceUnitReference(module.getConfigId(), persistenceUnitNameQuery);
- put(PersistenceUnitRefName, reference, module.getJndiContext());
+ put(persistenceUnitRefName, reference, module.getJndiContext(), Collections.<InjectionTarget>emptyList(), sharedContext);
} catch (DeploymentException e) {
problems.add(e);
}
@@ -143,11 +144,10 @@ public class PersistenceRefBuilder exten
//persistence context refs
Collection<PersistenceContextRef> specPersistenceContextRefsUntyped = specDD.getPersistenceContextRef();
Map<String, GerPersistenceContextRefType> gerPersistenceContextRefsUntyped = getGerPersistenceContextRefs(plan);
- for (PersistenceContextRef persistenceContextRef : specPersistenceContextRefsUntyped) {
+ for (Map.Entry<String, PersistenceContextRef> entry : specDD.getPersistenceContextRefMap().entrySet()) {
try {
- String persistenceContextRefName = persistenceContextRef.getPersistenceContextRefName().trim();
-
- addInjections(persistenceContextRefName, persistenceContextRef.getInjectionTarget(), componentContext);
+ String persistenceContextRefName = entry.getKey();
+ PersistenceContextRef persistenceContextRef = entry.getValue();
PersistenceContextType persistenceContextType = persistenceContextRef.getPersistenceContextType();
boolean transactionScoped = persistenceContextType == null || persistenceContextType.equals(PersistenceContextType.TRANSACTION);
@@ -169,7 +169,7 @@ public class PersistenceRefBuilder exten
persistenceUnitNameQuery = findPersistenceUnitQuery(module, localConfiguration, persistenceContextRef);
}
PersistenceContextReference reference = new PersistenceContextReference(module.getConfigId(), persistenceUnitNameQuery, transactionScoped, properties);
- put(persistenceContextRefName, reference, module.getJndiContext());
+ put(persistenceContextRefName, reference, module.getJndiContext(), persistenceContextRef.getInjectionTarget(), sharedContext);
} catch (DeploymentException e) {
problems.add(e);
}
@@ -186,7 +186,7 @@ public class PersistenceRefBuilder exten
AbstractNameQuery persistenceUnitNameQuery = findPersistenceUnit(gerPersistenceContextRef);
checkForGBean(localConfiguration, persistenceUnitNameQuery, true);
PersistenceContextReference reference = new PersistenceContextReference(module.getConfigId(), persistenceUnitNameQuery, transactionScoped, properties);
- put(persistenceContextRefName, reference, module.getJndiContext());
+ put(persistenceContextRefName, reference, module.getJndiContext(), Collections.<InjectionTarget>emptyList(), sharedContext);
} catch (DeploymentException e) {
problems.add(e);
}
Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java?rev=982493&r1=982492&r2=982493&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Thu Aug 5 07:54:32 2010
@@ -596,22 +596,21 @@ public class TomcatModuleBuilder extends
//Those elements have been processed by Geronimo, Tomatt no need to do it now.
//Also, currently, it seems that Tomcat could not handle those jndi elements correctly
webApp.setMetadataComplete(true);
- webApp.getEjbLocalRef().clear();
- webApp.getEjbRef().clear();
- webApp.getEnvEntry().clear();
- webApp.getMessageDestination().clear();
- webApp.getMessageDestinationRef().clear();
- webApp.getPersistenceContextRef().clear();
- webApp.getPersistenceUnitRef().clear();
- webApp.getPostConstruct().clear();
- webApp.getPreDestroy().clear();
- webApp.getResourceEnvRef().clear();
- webApp.getResourceRef().clear();
- webApp.getServiceRef().clear();
- webApp.getDataSource().clear();
- String specDeploymentPlan = getSpecDDAsString(webModule);
- module.setOriginalSpecDD(specDeploymentPlan);
- earContext.addFile(new URI("./WEB-INF/web.xml"), specDeploymentPlan);
+ if (INITIAL_WEB_XML_SCHEMA_VERSION.get(earContext.getGeneralData()) >= 2.5f) {
+ String specDeploymentPlan = getSpecDDAsString(webModule);
+ module.setOriginalSpecDD(specDeploymentPlan);
+ //remove naming stuff from webApp so tomcat doesn't process it uselessly
+ webApp.getEjbLocalRef().clear();
+ webApp.getEjbRef().clear();
+ webApp.getEnvEntry().clear();
+ webApp.getDataSource().clear();
+ webApp.getMessageDestinationRef().clear();
+ webApp.getResourceEnvRef().clear();
+ webApp.getResourceRef().clear();
+ webApp.getServiceRef().clear();
+ specDeploymentPlan = getSpecDDAsString(webModule);
+ earContext.addFile(new URI("./WEB-INF/web.xml"), specDeploymentPlan);
+ }
}
//}
webModuleData.setAttribute("deploymentDescriptor", module.getOriginalSpecDD());
Modified: geronimo/server/trunk/plugins/tomcat/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/pom.xml?rev=982493&r1=982492&r2=982493&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/pom.xml (original)
+++ geronimo/server/trunk/plugins/tomcat/pom.xml Thu Aug 5 07:54:32 2010
@@ -48,9 +48,9 @@
<module>tomcat7-clustering-wadi</module>
<module>tomcat7-clustering-builder-wadi</module>
</modules>
- <properties>
- <tomcatVersion>7.0.0.1</tomcatVersion>
- </properties>
+ <!--<properties>-->
+ <!--<tomcatVersion>7.0.0.2-SNAPSHOT</tomcatVersion>-->
+ <!--</properties>-->
<dependencyManagement>
<dependencies>
<!-- Tomcat web container -->