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);
}