bodewig 2004/06/28 01:50:32 Modified: . Tag: ANT_16_BRANCH TODO WHATSNEW docs/manual/OptionalTasks Tag: ANT_16_BRANCH jspc.html src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers Tag: ANT_16_BRANCH JasperC.java Log: merge Revision Changes Path No revision No revision 1.3.2.25 +0 -2 ant/Attic/TODO Index: TODO =================================================================== RCS file: /home/cvs/ant/Attic/TODO,v retrieving revision 1.3.2.24 retrieving revision 1.3.2.25 diff -u -r1.3.2.24 -r1.3.2.25 --- TODO 28 Jun 2004 07:47:05 -0000 1.3.2.24 +++ TODO 28 Jun 2004 08:50:31 -0000 1.3.2.25 @@ -5,8 +5,6 @@ anybody else (assignments look like [Stefan]) to yourself - and please remove items from this list once they are complete. -* Fix or at least document support for tomcat 5.0 jsp - * AntClassLoader parent loader [Start thread, Peter] * delete - do not follow symlinks [Peter, may be dropped for 1.6.2] 1.503.2.115 +5 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.503.2.114 retrieving revision 1.503.2.115 diff -u -r1.503.2.114 -r1.503.2.115 --- WHATSNEW 25 Jun 2004 13:50:16 -0000 1.503.2.114 +++ WHATSNEW 28 Jun 2004 08:50:31 -0000 1.503.2.115 @@ -232,6 +232,11 @@ * <junitreport> now also works with Xalan XSLTC and/or JDK 1.5. Bugzilla Report 27541. +* <jspc> doesn't work properly with Tomcat 5.x. We've implemented a + work-around but don't intend to support future changes in Tomcat + 5.x. Please use the jspc task that ships with Tomcat instead of + Ant's. + Changes from Ant 1.6.0 to Ant 1.6.1 ============================================= No revision No revision 1.16.2.3 +7 -0 ant/docs/manual/OptionalTasks/jspc.html Index: jspc.html =================================================================== RCS file: /home/cvs/ant/docs/manual/OptionalTasks/jspc.html,v retrieving revision 1.16.2.2 retrieving revision 1.16.2.3 diff -u -r1.16.2.2 -r1.16.2.3 --- jspc.html 9 Feb 2004 22:12:11 -0000 1.16.2.2 +++ jspc.html 28 Jun 2004 08:50:32 -0000 1.16.2.3 @@ -12,6 +12,13 @@ <h3>Description</h3> <p> Ant task to run the JSP compiler and turn JSP pages into Java source. + +<p><b>Deprecated</b> if you use this task with Tomcat's Jasper JSP +compiler, you should seriously consider using the task shipping with +Tomcat instead. This task is only tested against Tomcat 4.x. There +are known problems with Tomcat 5.x that won't get fixed in Ant, please +use Tomcat's jspc task instead.</p> + <p> It can be used to precompile JSP pages for fast initial invocation No revision No revision 1.18.2.5 +46 -10 ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java Index: JasperC.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java,v retrieving revision 1.18.2.4 retrieving revision 1.18.2.5 diff -u -r1.18.2.4 -r1.18.2.5 --- JasperC.java 9 Mar 2004 17:01:49 -0000 1.18.2.4 +++ JasperC.java 28 Jun 2004 08:50:32 -0000 1.18.2.5 @@ -18,6 +18,7 @@ package org.apache.tools.ant.taskdefs.optional.jsp.compilers; import java.io.File; +import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Java; @@ -52,23 +53,19 @@ getJspc().log("Using jasper compiler", Project.MSG_VERBOSE); CommandlineJava cmd = setupJasperCommand(); - try { // Create an instance of the compiler, redirecting output to // the project log Java java = (Java) (getProject().createTask("java")); + Path p = getClasspath(); if (getJspc().getClasspath() != null) { - getProject().log("using user supplied classpath: " - + getJspc().getClasspath(), Project.MSG_DEBUG); - java.setClasspath(getJspc().getClasspath() - .concatSystemClasspath("ignore")); + getProject().log("using user supplied classpath: " + p, + Project.MSG_DEBUG); } else { - Path classpath = new Path(getProject()); - classpath = classpath.concatSystemClasspath("only"); - getProject().log("using system classpath: " + classpath, + getProject().log("using system classpath: " + p, Project.MSG_DEBUG); - java.setClasspath(classpath); } + java.setClasspath(p); java.setDir(getProject().getBaseDir()); java.setClassname("org.apache.jasper.JspC"); //this is really irritating; we need a way to set stuff @@ -106,7 +103,15 @@ JspC jspc = getJspc(); addArg(cmd, "-d", jspc.getDestdir()); addArg(cmd, "-p", jspc.getPackage()); - addArg(cmd, "-v" + jspc.getVerbose()); + + if (!isTomcat5x()) { + addArg(cmd, "-v" + jspc.getVerbose()); + } else { + getProject().log("this task doesn't support Tomcat 5.x properly, " + + "please use the Tomcat provided jspc task " + + "instead"); + } + addArg(cmd, "-uriroot", jspc.getUriroot()); addArg(cmd, "-uribase", jspc.getUribase()); addArg(cmd, "-ieplugin", jspc.getIeplugin()); @@ -131,5 +136,36 @@ public JspMangler createMangler() { return mangler; + } + + /** + * @since Ant 1.6.2 + */ + private Path getClasspath() { + Path p = getJspc().getClasspath(); + if (p == null) { + p = new Path(getProject()); + return p.concatSystemClasspath("only"); + } else { + return p.concatSystemClasspath("ignore"); + } + } + + /** + * @since Ant 1.6.2 + */ + private boolean isTomcat5x() { + AntClassLoader l = null; + try { + l = getProject().createClassLoader(getClasspath()); + l.loadClass("org.apache.jasper.tagplugins.jstl.If"); + return true; + } catch (ClassNotFoundException e) { + return false; + } finally { + if (l != null) { + l.cleanup(); + } + } } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]