craigmcc 02/02/13 12:01:37 Modified: catalina build.xml catalina/src/share/org/apache/catalina/startup Bootstrap.java Log: Modify the way that the Common class loader is created to include the following contents: Unpacked classes in $CATALINA_HOME/common/classes All JAR files in $CATALINA_HOME/common/endorsed All JAR files in $CATALINA_HOME/common/lib and move the Xerces parser we install from "common/lib" to "common/endorsed". Background: JDK 1.4, among many other changes, packages a version of Xerces and makes it accessible via the JAXP APIs. However, because these are now classes in the Java runtime, you cannot normally override this with your own parser. However, a mechanism is provided (setting the system property "java.endorsed.dirs" to point at a particular directory -- which we'll set to "$CATALINA_HOME/common/endorsed" in the startup scripts -- that replaces the embedded parser with the new one (such as Xerces 2.0). TODO: Update the shell scripts to set the endorsed directory. TODO: Update the class-loader-howto doc to describe all of this. Revision Changes Path 1.104 +7 -3 jakarta-tomcat-4.0/catalina/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/build.xml,v retrieving revision 1.103 retrieving revision 1.104 diff -u -r1.103 -r1.104 --- build.xml 8 Feb 2002 07:03:25 -0000 1.103 +++ build.xml 13 Feb 2002 20:01:37 -0000 1.104 @@ -689,11 +689,11 @@ <copy todir="${catalina.build}/common/lib" file="../lib/tyrex.license"/> </target> <target name="copy-xerces.jar" if="copy.xerces.jar"> - <copy todir="${catalina.build}/common/lib" file="${xerces.jar}"/> + <copy todir="${catalina.build}/common/endorsed" file="${xerces.jar}"/> </target> <target name="copy-xerces2.jars" if="copy.xerces2.jars"> - <copy todir="${catalina.build}/common/lib" file="${xercesImpl.jar}"/> - <copy todir="${catalina.build}/common/lib" file="${xmlParserAPIs.jar}"/> + <copy todir="${catalina.build}/common/endorsed" file="${xercesImpl.jar}"/> + <copy todir="${catalina.build}/common/endorsed" file="${xmlParserAPIs.jar}"/> </target> @@ -970,6 +970,7 @@ <mkdir dir="${catalina.deploy}/conf"/> <mkdir dir="${catalina.deploy}/logs"/> <mkdir dir="${catalina.deploy}/common/classes"/> + <mkdir dir="${catalina.deploy}/common/endorsed"/> <mkdir dir="${catalina.deploy}/common/lib"/> <mkdir dir="${catalina.deploy}/server/classes"/> <mkdir dir="${catalina.deploy}/server/lib"/> @@ -994,6 +995,9 @@ <chmod perm="+x" file="${catalina.deploy}/bin/tool-wrapper.sh"/> <!-- Common Extensions --> + <copy todir="${catalina.deploy}/common/endorsed"> + <fileset dir="${catalina.build}/common/endorsed" /> + </copy> <copy todir="${catalina.deploy}/common/lib"> <fileset dir="${catalina.build}/common/lib" /> </copy> 1.34 +10 -7 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/Bootstrap.java Index: Bootstrap.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/Bootstrap.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- Bootstrap.java 30 Dec 2001 01:58:20 -0000 1.33 +++ Bootstrap.java 13 Feb 2002 20:01:37 -0000 1.34 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/Bootstrap.java,v 1.33 2001/12/30 01:58:20 glenn Exp $ - * $Revision: 1.33 $ - * $Date: 2001/12/30 01:58:20 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/Bootstrap.java,v 1.34 2002/02/13 20:01:37 craigmcc Exp $ + * $Revision: 1.34 $ + * $Date: 2002/02/13 20:01:37 $ * * ==================================================================== * @@ -85,7 +85,7 @@ * class path and therefore not visible to application level classes. * * @author Craig R. McClanahan - * @version $Revision: 1.33 $ $Date: 2001/12/30 01:58:20 $ + * @version $Revision: 1.34 $ $Date: 2002/02/13 20:01:37 $ */ public final class Bootstrap { @@ -128,14 +128,17 @@ File unpacked[] = new File[1]; File packed[] = new File[1]; + File packed2[] = new File[2]; ClassLoaderFactory.setDebug(debug); unpacked[0] = new File(getCatalinaHome(), "common" + File.separator + "classes"); - packed[0] = new File(getCatalinaHome(), - "common" + File.separator + "lib"); + packed2[0] = new File(getCatalinaHome(), + "common" + File.separator + "endorsed"); + packed2[1] = new File(getCatalinaHome(), + "common" + File.separator + "lib"); commonLoader = - ClassLoaderFactory.createClassLoader(unpacked, packed, null); + ClassLoaderFactory.createClassLoader(unpacked, packed2, null); unpacked[0] = new File(getCatalinaHome(), "server" + File.separator + "classes");
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>