User: starksm Date: 02/02/15 10:06:00 Modified: catalina/src/main/org/jboss/web/catalina EmbeddedCatalinaServiceSX.java EmbeddedCatalinaServiceSXMBean.java Log: Fix the JSP compiler classpath. Revision Changes Path 1.5 +49 -3 contrib/catalina/src/main/org/jboss/web/catalina/EmbeddedCatalinaServiceSX.java Index: EmbeddedCatalinaServiceSX.java =================================================================== RCS file: /cvsroot/jboss/contrib/catalina/src/main/org/jboss/web/catalina/EmbeddedCatalinaServiceSX.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- EmbeddedCatalinaServiceSX.java 11 Feb 2002 23:03:35 -0000 1.4 +++ EmbeddedCatalinaServiceSX.java 15 Feb 2002 18:06:00 -0000 1.5 @@ -16,6 +16,7 @@ import java.net.MalformedURLException; import java.net.InetAddress; import java.security.ProtectionDomain; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import javax.naming.InitialContext; @@ -49,6 +50,7 @@ import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleListener; +import org.apache.catalina.Loader; import org.apache.catalina.Logger; import org.apache.catalina.Realm; import org.apache.catalina.Valve; @@ -58,7 +60,6 @@ import org.apache.catalina.connector.warp.WarpHost; import org.apache.catalina.connector.warp.WarpEngine; import org.apache.catalina.core.StandardContext; -import org.apache.catalina.loader.WebappClassLoader; import org.apache.catalina.startup.Embedded; /** An implementation of the AbstractWebContainer for the Jakarta Tomcat @@ -69,7 +70,7 @@ @see org.apache.catalina.startup.Embedded @author [EMAIL PROTECTED] - @version $Revision: 1.4 $ + @version $Revision: 1.5 $ */ public class EmbeddedCatalinaServiceSX extends AbstractWebContainer implements EmbeddedCatalinaServiceSXMBean { @@ -117,7 +118,7 @@ /** Get the Catalina home directory */ - public String GetCatalinaHome() + public String getCatalinaHome() { return catalinaHome; } @@ -269,6 +270,44 @@ } } + /** Build an array of URL strings that will be used as the JSP compiler + *classpath. As of Tomcat-4.0.2, this information is not being obtained + *from the thread context classloader so we have to build it. + */ + protected String[] getCompileClasspath(ClassLoader loader) + { + String[] jspResources = { + "javax/servlet/resources/web-app_2_3.dtd", + "org/apache/jasper/resources/jsp12.dtd", + "javax/ejb/EJBHome.class" + }; + ArrayList tmp = new ArrayList(); + for(int j = 0; j < jspResources.length; j ++) + { + URL rsrcURL = loader.getResource(jspResources[j]); + if( rsrcURL != null ) + { + String url = rsrcURL.toExternalForm(); + if( rsrcURL.getProtocol().equals("jar") ) + { + // Parse the jar:<url>!/{entry} URL + url = url.substring(4); + int seperator = url.indexOf('!'); + url = url.substring(0, seperator); + } + tmp.add(url); + } + else + { + log.warn("Failed to fin jsp rsrc: "+jspResources[j]); + } + } + log.debug("JSP CompileClasspath: " + tmp); + String[] cp = new String[tmp.size()]; + tmp.toArray(cp); + return cp; + } + /** Perform the tomcat specific deployment steps. */ protected WebApplication performDeploy(String ctxPath, String warUrl, @@ -479,6 +518,13 @@ } } + ClassLoader rsrcLoader = Thread.currentThread().getContextClassLoader(); + String[] jspCP = getCompileClasspath(rsrcLoader); + Loader ctxLoader = context.getLoader(); + for(int u = 0; u < jspCP.length; u ++) + { + ctxLoader.addRepository(jspCP[u]); + } // Apply any extended configuration to the context // Get the web-app.xml and jboss-web.xml deployment descriptors 1.3 +2 -2 contrib/catalina/src/main/org/jboss/web/catalina/EmbeddedCatalinaServiceSXMBean.java Index: EmbeddedCatalinaServiceSXMBean.java =================================================================== RCS file: /cvsroot/jboss/contrib/catalina/src/main/org/jboss/web/catalina/EmbeddedCatalinaServiceSXMBean.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- EmbeddedCatalinaServiceSXMBean.java 11 Feb 2002 23:03:37 -0000 1.2 +++ EmbeddedCatalinaServiceSXMBean.java 15 Feb 2002 18:06:00 -0000 1.3 @@ -16,13 +16,13 @@ /** Management interface for the embedded Catalina service. * * @author [EMAIL PROTECTED] - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ public interface EmbeddedCatalinaServiceSXMBean extends AbstractWebContainerMBean { /** Get the Catalina home directory */ - public String GetCatalinaHome(); + public String getCatalinaHome(); /** Set the Catalina home directory */ public void setCatalinaHome(String homePath);
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development