Author: rmannibucau
Date: Wed Oct  3 12:50:05 2012
New Revision: 1393465

URL: http://svn.apache.org/viewvc?rev=1393465&view=rev
Log:
TOMEE-439 using webappdeployer even for tomee embedded

Modified:
    
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java

Modified: 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java?rev=1393465&r1=1393464&r2=1393465&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
 Wed Oct  3 12:50:05 2012
@@ -31,18 +31,22 @@ import org.apache.openejb.NoSuchApplicat
 import org.apache.openejb.OpenEJB;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.UndeployException;
+import org.apache.openejb.assembler.WebAppDeployer;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
 import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.assembler.classic.WebAppBuilder;
 import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.config.ConfigurationFactory;
 import org.apache.openejb.loader.Files;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.Logger;
 import org.apache.tomee.catalina.TomEERuntimeException;
 import org.apache.tomee.catalina.TomcatLoader;
+import org.apache.tomee.catalina.TomcatWebAppBuilder;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.Velocity;
@@ -255,29 +259,51 @@ public class Container {
     }
 
     public AppContext deploy(String name, File file, boolean overrideName) 
throws OpenEJBException, IOException, NamingException {
-        AppInfo appInfo = configurationFactory.configureApplication(file);
-        if (overrideName) {
-            appInfo.appId = name;
-            for (EjbJarInfo ejbJar : appInfo.ejbJars) {
-                if (file.getName().equals(ejbJar.moduleName)) {
-                    ejbJar.moduleName = name;
-                    ejbJar.moduleId = name;
-                }
-                for (EnterpriseBeanInfo ejb : ejbJar.enterpriseBeans) {
-                    if 
(BeanContext.Comp.openejbCompName(file.getName()).equals(ejb.ejbName)) {
-                        ejb.ejbName = BeanContext.Comp.openejbCompName(name);
+        final AppContext context;
+        final AppInfo appInfo;
+        if ((file.getName().endsWith(".war") || new File(file, 
"WEB-INF").exists())
+                && SystemInstance.get().getComponent(WebAppDeployer.class) != 
null) {
+            String contextRoot = file.getName();
+            if (overrideName) {
+                contextRoot = name;
+            }
+            
SystemInstance.get().getComponent(WebAppDeployer.class).deploy(contextRoot, 
file);
+
+            TomcatWebAppBuilder.ContextInfo ci = ((TomcatWebAppBuilder) 
SystemInstance.get().getComponent(WebAppBuilder.class))
+                    .standaAloneWebAppInfo(file.getAbsolutePath());
+            if (ci != null) {
+                appInfo = ci.appInfo;
+                context = 
SystemInstance.get().getComponent(ContainerSystem.class).getAppContext(appInfo.appId);
+            } else {
+                appInfo = null;
+                context = null;
+            }
+        } else {
+            appInfo = configurationFactory.configureApplication(file);
+            if (overrideName) {
+                appInfo.appId = name;
+                for (EjbJarInfo ejbJar : appInfo.ejbJars) {
+                    if (file.getName().equals(ejbJar.moduleName)) {
+                        ejbJar.moduleName = name;
+                        ejbJar.moduleId = name;
+                    }
+                    for (EnterpriseBeanInfo ejb : ejbJar.enterpriseBeans) {
+                        if 
(BeanContext.Comp.openejbCompName(file.getName()).equals(ejb.ejbName)) {
+                            ejb.ejbName = 
BeanContext.Comp.openejbCompName(name);
+                        }
                     }
                 }
-            }
-            for (WebAppInfo webApp : appInfo.webApps) {
-                if (sameApplication(file, webApp)) {
-                    webApp.moduleId = name;
-                    webApp.contextRoot = lastPart(name, webApp.contextRoot);
+                for (WebAppInfo webApp : appInfo.webApps) {
+                    if (sameApplication(file, webApp)) {
+                        webApp.moduleId = name;
+                        webApp.contextRoot = lastPart(name, 
webApp.contextRoot);
+                    }
                 }
             }
+
+            context = assembler.createApplication(appInfo);
         }
 
-        AppContext context = assembler.createApplication(appInfo);
         moduleIds.put(name, appInfo.path);
         infos.put(name, appInfo);
         appContexts.put(name, context);


Reply via email to