Author: rmannibucau
Date: Thu Jan 10 22:06:58 2013
New Revision: 1431693
URL: http://svn.apache.org/viewvc?rev=1431693&view=rev
Log:
TOMEE-722 taking into account origin (webapp or not) when deploying cdi modules
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java?rev=1431693&r1=1431692&r2=1431693&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarInfo.java
Thu Jan 10 22:06:58 2013
@@ -32,6 +32,7 @@ public class EjbJarInfo extends CommonIn
public String moduleId;
public URI moduleUri;
public String path;
+ public boolean webapp = false;
@XmlElements({ // needed for unmarshalling
@XmlElement(name = "stateless", type = StatelessBeanInfo.class),
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java?rev=1431693&r1=1431692&r2=1431693&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
Thu Jan 10 22:06:58 2013
@@ -94,6 +94,14 @@ public class CdiScanner implements Scann
if (beans == null) continue;
+ if (startupObject.isFromWebApp()) { // deploy only the related
ejbmodule
+ if
(!ejbJar.moduleId.equals(startupObject.getWebContext().getId())) {
+ continue;
+ }
+ } else if (ejbJar.webapp) {
+ continue;
+ }
+
// fail fast
final StringBuilder errors = new StringBuilder("You can't define
multiple times the same class in beans.xml: ");
if (addErrors(errors, "alternative classes",
beans.duplicatedAlternativeClasses)
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1431693&r1=1431692&r2=1431693&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
Thu Jan 10 22:06:58 2013
@@ -157,6 +157,7 @@ class AppInfoBuilder {
try {
final EjbJarInfo ejbJarInfo =
this.ejbJarInfoBuilder.buildInfo(ejbModule);
ejbJarInfo.mbeans = ejbModule.getMbeans();
+ ejbJarInfo.webapp = ejbModule.isWebapp();
final Map<String, EjbDeployment> deploymentsByEjbName =
ejbModule.getOpenejbJar().getDeploymentsByEjbName();
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1431693&r1=1431692&r2=1431693&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
Thu Jan 10 22:06:58 2013
@@ -714,6 +714,7 @@ public class DeploymentLoader implements
// than an ear file, so the ear-style code we were previously
// using doesn't exactly work anymore.
final EjbModule webEjbModule = new
EjbModule(webModule.getClassLoader(), webModule.getModuleId(),
webModule.getJarLocation(), null, null);
+ webEjbModule.setWebapp(true);
webEjbModule.getAltDDs().putAll(webModule.getAltDDs());
appModule.getEjbModules().add(webEjbModule);
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java?rev=1431693&r1=1431692&r2=1431693&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
Thu Jan 10 22:06:58 2013
@@ -46,6 +46,7 @@ public class EjbModule extends Module im
private final AtomicReference<IAnnotationFinder> finder = new
AtomicReference<IAnnotationFinder>();
private final Set<String> watchedResources = new TreeSet<String>();
private Beans beans;
+ private boolean webapp;
private ClientModule clientModule;
private ID id;
@@ -177,6 +178,14 @@ public class EjbModule extends Module im
return watchedResources;
}
+ public boolean isWebapp() {
+ return webapp;
+ }
+
+ public void setWebapp(boolean webapp) {
+ this.webapp = webapp;
+ }
+
@Override
public String toString() {
return "EjbModule{" +