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]