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{" +


Reply via email to