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 {