You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/11/05 12:56:08 UTC

svn commit: r1405757 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java

Author: rmannibucau
Date: Mon Nov  5 11:56:08 2012
New Revision: 1405757

URL: http://svn.apache.org/viewvc?rev=1405757&view=rev
Log:
setting up the LightweightWebAppBuilder if some webmodule are tested and no webappbuilder are registered

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java?rev=1405757&r1=1405756&r2=1405757&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java Mon Nov  5 11:56:08 2012
@@ -24,6 +24,7 @@ import org.apache.openejb.OpenEJBRuntime
 import org.apache.openejb.OpenEjbContainer;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.WebAppBuilder;
 import org.apache.openejb.cdi.ScopeHelper;
 import org.apache.openejb.config.AppModule;
 import org.apache.openejb.config.ConfigurationFactory;
@@ -53,6 +54,7 @@ import org.apache.openejb.loader.SystemI
 import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.Join;
 import org.apache.openejb.util.ServiceManagerProxy;
+import org.apache.openejb.web.LightweightWebAppBuilder;
 import org.apache.webbeans.inject.AbstractInjectable;
 import org.apache.webbeans.inject.OWBInjector;
 import org.apache.webbeans.web.lifecycle.test.MockHttpSession;
@@ -290,6 +292,8 @@ public class ApplicationComposer extends
 
             Application application = null;
 
+            int webModulesNb = 0;
+
             // Invoke the @Module producer methods to build out the AppModule
             for (FrameworkMethod method : testClass.getAnnotatedMethods(Module.class)) {
 
@@ -297,6 +301,8 @@ public class ApplicationComposer extends
                 final Classes classesAnnotation = method.getAnnotation(Classes.class);
 
                 if (obj instanceof WebApp) { // will add the ejbmodule too
+                    webModulesNb++;
+
                     final WebApp webapp = (WebApp) obj;
                     String root = webapp.getContextRoot();
                     if (root == null) {
@@ -309,6 +315,8 @@ public class ApplicationComposer extends
                     }
                     DeploymentLoader.addWebModule(webModule, appModule);
                 } else if (obj instanceof WebModule) { // will add the ejbmodule too
+                    webModulesNb++;
+
                     final WebModule webModule = (WebModule) obj;
                     if (classesAnnotation != null) {
                         webModule.setFinder(finderFromClasses(classesAnnotation.value()));
@@ -399,9 +407,13 @@ public class ApplicationComposer extends
                     ejbModule.setBeans(new Beans());
                     appModule.getEjbModules().add(ejbModule);
                 } else if (obj instanceof AppModule) {
-
                     // we can probably go further here
                     final AppModule module = (AppModule) obj;
+
+                    if (module.getWebModules().size() > 0) {
+                        webModulesNb++;
+                    }
+
                     appModule.getEjbModules().addAll(module.getEjbModules());
                     appModule.getPersistenceModules().addAll(module.getPersistenceModules());
                     appModule.getAdditionalLibMbeans().addAll(module.getAdditionalLibMbeans());
@@ -426,6 +438,10 @@ public class ApplicationComposer extends
                 appModule = newModule;
             }
 
+            if (webModulesNb > 0 && SystemInstance.get().getComponent(WebAppBuilder.class) == null) {
+                SystemInstance.get().setComponent(WebAppBuilder.class, new LightweightWebAppBuilder());
+            }
+
             try {
                 ConfigurationFactory config = new ConfigurationFactory();
                 config.init(SystemInstance.get().getProperties());