Author: rmannibucau
Date: Thu Oct  4 11:11:46 2012
New Revision: 1393990

URL: http://svn.apache.org/viewvc?rev=1393990&view=rev
Log:
TOMEE-439 slight refactoring to avoid some duplicated code

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/WebAppDeployer.java
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/deployment/TomcatWebappDeployer.java
    
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java?rev=1393990&r1=1393989&r2=1393990&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
 Thu Oct  4 11:11:46 2012
@@ -16,18 +16,10 @@
  */
 package org.apache.openejb.assembler;
 
-import org.apache.openejb.ClassLoaderUtil;
-import org.apache.openejb.NoSuchApplicationException;
-import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.OpenEJBRuntimeException;
-import org.apache.openejb.UndeployException;
+import org.apache.openejb.*;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
-import org.apache.openejb.config.AppModule;
-import org.apache.openejb.config.ConfigurationFactory;
-import org.apache.openejb.config.DeploymentLoader;
-import org.apache.openejb.config.DeploymentModule;
-import org.apache.openejb.config.WebModule;
+import org.apache.openejb.config.*;
 import org.apache.openejb.config.sys.AdditionalDeployments;
 import org.apache.openejb.config.sys.Deployments;
 import org.apache.openejb.config.sys.JaxbOpenejb;
@@ -46,11 +38,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.math.BigInteger;
 import java.security.SecureRandom;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeMap;
+import java.util.*;
 
 import static javax.ejb.TransactionManagementType.BEAN;
 import static 
org.apache.openejb.config.ConfigurationFactory.ADDITIONAL_DEPLOYMENTS;
@@ -134,23 +122,9 @@ public class DeployerEjb implements Depl
 
         final File file = new File(realLocation(rawLocation));
 
-        final WebAppDeployer warDeployer = 
SystemInstance.get().getComponent(WebAppDeployer.class);
-        if (warDeployer != null && !oldWarDeployer && 
(file.getName().endsWith(".war") || new File(file, "WEB-INF").exists())) {
-            /* this is generally slow so using the previous if as simpler 
heurisitic
-            try {
-                final URL url = file.toURI().toURL();
-                final ClassLoader tempClassLoader = 
ClassLoaderUtil.createClassLoader(file.getCanonicalPath(), new URL[]{url}, 
ParentClassLoaderFinder.Helper.get());
-                final Class<?> type = deploymentLoader.discoverModuleType(url, 
tempClassLoader, true);
-                if (WebModule.class.equals(type)) {
-                    return 
warDeployer.deploy(appModule.getWebModules().iterator().next().getContextRoot(),
 file);
-                }
-            } catch (MalformedURLException e) {
-                // no-op
-            } catch (IOException e) {
-                // no-op
-            }
-            */
-            return warDeployer.deploy(contextRoot(properties, 
file.getAbsolutePath()), file);
+        if (WebAppDeployer.Helper.isWebApp(file) && !oldWarDeployer) {
+            return SystemInstance.get().getComponent(WebAppDeployer.class)
+                        .deploy(contextRoot(properties, 
file.getAbsolutePath()), file);
         }
 
         AppInfo appInfo;

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/WebAppDeployer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/WebAppDeployer.java?rev=1393990&r1=1393989&r2=1393990&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/WebAppDeployer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/WebAppDeployer.java
 Thu Oct  4 11:11:46 2012
@@ -17,9 +17,21 @@
 package org.apache.openejb.assembler;
 
 import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.loader.SystemInstance;
 
 import java.io.File;
 
 public interface WebAppDeployer {
     AppInfo deploy(String contextRoot, File file);
+
+    public static final class Helper {
+        private Helper() {
+            // no-op
+        }
+
+        public static boolean isWebApp(final File file) {
+            return (file.getName().endsWith(".war") || new File(file, 
"WEB-INF").exists())
+                        && 
SystemInstance.get().getComponent(WebAppDeployer.class) != null;
+        }
+    }
 }

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1393990&r1=1393989&r2=1393990&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 Thu Oct  4 11:11:46 2012
@@ -759,12 +759,9 @@ public class TomcatWebAppBuilder impleme
 
         // we just want to wrap it to lazy stop it (afterstop)
         // to avoid classnotfound in @PreDestoy or destroyApplication()
-        Loader loader = standardContext.getLoader();
-        if (!(loader instanceof TomEEWebappLoader)) {
-            loader = new LazyStopWebappLoader(standardContext);
-            loader.setDelegate(standardContext.getDelegate());
-            ((WebappLoader) 
loader).setLoaderClass(LazyStopWebappClassLoader.class.getName());
-        }
+        final Loader loader = new LazyStopWebappLoader(standardContext);
+        loader.setDelegate(standardContext.getDelegate());
+        ((WebappLoader) 
loader).setLoaderClass(LazyStopWebappClassLoader.class.getName());
         final Loader lazyStopLoader = new LazyStopLoader(loader);
         standardContext.setLoader(lazyStopLoader);
     }

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/deployment/TomcatWebappDeployer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/deployment/TomcatWebappDeployer.java?rev=1393990&r1=1393989&r2=1393990&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/deployment/TomcatWebappDeployer.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/deployment/TomcatWebappDeployer.java
 Thu Oct  4 11:11:46 2012
@@ -32,7 +32,7 @@ public class TomcatWebappDeployer implem
     public AppInfo deploy(final String context, final File file) {
         final TomcatWebAppBuilder tomcatWebAppBuilder = (TomcatWebAppBuilder) 
SystemInstance.get().getComponent(WebAppBuilder.class);
         try {
-            tomcatWebAppBuilder.deployWebApps(fakeInfo(file, context), null);
+            tomcatWebAppBuilder.deployWebApps(fakeInfo(file, context), null); 
// classloader == null -> standalone war
         } catch (Exception e) {
             throw new OpenEJBRuntimeException(e);
         }
@@ -44,7 +44,8 @@ public class TomcatWebappDeployer implem
         return info.appInfo;
     }
 
-    private AppInfo fakeInfo(final File file, final String context) {
+    // simply create a fake AppInfo to be able to deploy reusing the logic we 
already have
+    private static AppInfo fakeInfo(final File file, final String context) {
         final AppInfo info = new AppInfo();
         info.path = file.getAbsolutePath();
         info.webAppAlone = true;

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=1393990&r1=1393989&r2=1393990&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
 Thu Oct  4 11:11:46 2012
@@ -261,21 +261,17 @@ public class Container {
     public AppContext deploy(String name, File file, boolean overrideName) 
throws OpenEJBException, IOException, NamingException {
         final AppContext context;
         final AppInfo appInfo;
-        if ((file.getName().endsWith(".war") || new File(file, 
"WEB-INF").exists())
-                && SystemInstance.get().getComponent(WebAppDeployer.class) != 
null) {
+        if (WebAppDeployer.Helper.isWebApp(file)) {
             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;
+            appInfo = 
SystemInstance.get().getComponent(WebAppDeployer.class).deploy(contextRoot, 
file);
+
+            if (appInfo != null) {
                 context = 
SystemInstance.get().getComponent(ContainerSystem.class).getAppContext(appInfo.appId);
             } else {
-                appInfo = null;
                 context = null;
             }
         } else {


Reply via email to