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