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/06/04 00:59:59 UTC
svn commit: r1345798 - in
/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina:
LazyStopLoader.java TomcatWebAppBuilder.java
Author: rmannibucau
Date: Sun Jun 3 22:59:58 2012
New Revision: 1345798
URL: http://svn.apache.org/viewvc?rev=1345798&view=rev
Log:
keeping the wrapping by the custom tomee loader to filter duplicated resources even using our lazystoploader
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopLoader.java
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopLoader.java?rev=1345798&r1=1345797&r2=1345798&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopLoader.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopLoader.java Sun Jun 3 22:59:58 2012
@@ -7,60 +7,80 @@ import org.apache.catalina.LifecycleExce
import org.apache.catalina.LifecycleListener;
import org.apache.catalina.LifecycleState;
import org.apache.catalina.Loader;
-import org.apache.catalina.loader.WebappLoader;
public class LazyStopLoader implements Loader, Lifecycle {
- private final WebappLoader delegate;
+ private final Loader delegate;
private ClassLoader classLoader;
- public LazyStopLoader(WebappLoader loader) {
+ public LazyStopLoader(Loader loader) {
delegate = loader;
}
@Override
public void addLifecycleListener(LifecycleListener listener) {
- delegate.addLifecycleListener(listener);
+ if (delegate instanceof Lifecycle) {
+ ((Lifecycle) delegate).addLifecycleListener(listener);
+ }
}
@Override
public LifecycleListener[] findLifecycleListeners() {
- return delegate.findLifecycleListeners();
+ if (delegate instanceof Lifecycle) {
+ return ((Lifecycle) delegate).findLifecycleListeners();
+ }
+ return new LifecycleListener[0];
}
@Override
public void removeLifecycleListener(LifecycleListener listener) {
- delegate.removeLifecycleListener(listener);
+ if (delegate instanceof Lifecycle) {
+ ((Lifecycle) delegate).removeLifecycleListener(listener);
+ }
}
@Override
public void init() throws LifecycleException {
- delegate.init();
+ if (delegate instanceof Lifecycle) {
+ ((Lifecycle) delegate).init();
+ }
}
@Override
public void start() throws LifecycleException {
- delegate.start();
+ if (delegate instanceof Lifecycle) {
+ ((Lifecycle) delegate).start();
+ }
}
@Override
public void stop() throws LifecycleException {
classLoader = delegate.getClassLoader();
- delegate.stop();
+ if (delegate instanceof Lifecycle) {
+ ((Lifecycle) delegate).stop();
+ }
}
@Override
public void destroy() throws LifecycleException {
- delegate.destroy();
+ if (delegate instanceof Lifecycle) {
+ ((Lifecycle) delegate).destroy();
+ }
}
@Override
public LifecycleState getState() {
- return delegate.getState();
+ if (delegate instanceof Lifecycle) {
+ return ((Lifecycle) delegate).getState();
+ }
+ return null;
}
@Override
public String getStateName() {
- return delegate.getStateName();
+ if (delegate instanceof Lifecycle) {
+ return ((Lifecycle) delegate).getStateName();
+ }
+ return null;
}
@Override
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=1345798&r1=1345797&r2=1345798&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 Sun Jun 3 22:59:58 2012
@@ -130,7 +130,6 @@ public class TomcatWebAppBuilder impleme
private static final Digester CONTEXT_DIGESTER = createDigester();
public static final String OPENEJB_WEBAPP_MODULE_ID = "openejb.webapp.moduleId";
public static final String TOMEE_EAT_EXCEPTION_PROP = "tomee.eat-exception";
- public static final String MYFACES_TOMEE_ANNOTATION_FINDER = "org.apache.tomee.myfaces.TomEEAnnotationProvider";
/**
* Context information for web applications
@@ -604,9 +603,12 @@ public class TomcatWebAppBuilder impleme
// we just want to wrap it to lazy stop it (afterstop)
// to avoid classnotfound in @PreDestoy or destroyApplication()
- final WebappLoader loader = new WebappLoader(standardContext.getParentClassLoader());
- loader.setDelegate(standardContext.getDelegate());
- loader.setLoaderClass(LazyStopWebappClassLoader.class.getName());
+ Loader loader = standardContext.getLoader();
+ if (!(loader instanceof TomEEWebappLoader)) {
+ loader = new WebappLoader(standardContext.getParentClassLoader());
+ loader.setDelegate(standardContext.getDelegate());
+ ((WebappLoader) loader).setLoaderClass(LazyStopWebappClassLoader.class.getName());
+ }
final Loader lazyStopLoader = new LazyStopLoader(loader);
standardContext.setLoader(lazyStopLoader);
}