You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gd...@apache.org on 2006/04/23 03:55:38 UTC

svn commit: r396193 - /geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java

Author: gdamour
Date: Sat Apr 22 18:55:36 2006
New Revision: 396193

URL: http://svn.apache.org/viewcvs?rev=396193&view=rev
Log:
GERONIMO-1871 Unable to deploy Tapestry app due to classloading issue

The CL to be used is the Geronimo one and not the WebappClassLoader created by Tomcat.

Modified:
    geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java

Modified: geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java?rev=396193&r1=396192&r2=396193&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java (original)
+++ geronimo/branches/1.1/modules/tomcat/src/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java Sat Apr 22 18:55:36 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.geronimo.tomcat;
 
+import java.beans.PropertyChangeListener;
 import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
@@ -29,6 +30,7 @@
 
 import org.apache.catalina.Container;
 import org.apache.catalina.LifecycleException;
+import org.apache.catalina.Loader;
 import org.apache.catalina.Manager;
 import org.apache.catalina.Valve;
 import org.apache.catalina.Wrapper;
@@ -254,6 +256,72 @@
         super.addChild(child);
     }
 
+    public synchronized void setLoader(final Loader delegate) {
+        Loader loader = new Loader() {
+            
+            public void backgroundProcess() {
+                delegate.backgroundProcess();
+            }
+
+            public ClassLoader getClassLoader() {
+                // Implementation Note: the actual CL to be used by this 
+                // context is the Geronimo one and not the Tomcat one.
+                return parentClassLoader;
+            }
+
+            public Container getContainer() {
+                return delegate.getContainer();
+            }
+
+            public void setContainer(Container container) {
+                delegate.setContainer(container);
+            }
+
+            public boolean getDelegate() {
+                return delegate.getDelegate();
+            }
+
+            public void setDelegate(boolean delegateBoolean) {
+                delegate.setDelegate(delegateBoolean);
+            }
+
+            public String getInfo() {
+                return delegate.getInfo();
+            }
+
+            public boolean getReloadable() {
+                return false;
+            }
+
+            public void setReloadable(boolean reloadable) {
+                if (reloadable) {
+                    throw new UnsupportedOperationException("Reloadable context is not supported.");
+                }
+            }
+
+            public void addPropertyChangeListener(PropertyChangeListener listener) {
+                delegate.addPropertyChangeListener(listener);
+            }
+
+            public void addRepository(String repository) {
+                delegate.addRepository(repository);
+            }
+
+            public String[] findRepositories() {
+                return delegate.findRepositories();
+            }
+
+            public boolean modified() {
+                return delegate.modified();
+            }
+
+            public void removePropertyChangeListener(PropertyChangeListener listener) {
+                delegate.removePropertyChangeListener(listener);
+            }
+        };
+        
+        super.setLoader(loader);
+    }
 
     private class SystemMethodValve extends ValveBase {