This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new d8e4ce8683 Route JspC context logging through Ant
d8e4ce8683 is described below
commit d8e4ce86834e8047489ddb70c23fce952d154bf5
Author: sainadh777 <[email protected]>
AuthorDate: Mon Sep 28 11:45:53 2026 -0700
Route JspC context logging through Ant
---
TODO.md | 10 ---------
java/org/apache/jasper/JspC.java | 10 +++++++--
test/org/apache/jasper/TestJspC.java | 39 ++++++++++++++++++++++++++++++++++++
webapps/docs/changelog.xml | 4 ++++
4 files changed, 51 insertions(+), 12 deletions(-)
diff --git a/TODO.md b/TODO.md
index c289a1048b..bd5ca468d9 100644
--- a/TODO.md
+++ b/TODO.md
@@ -400,16 +400,6 @@ These are bugs, correctness issues, or missing
functionality that may affect pro
---
-### 35. Jasper Ant Logging (1 item)
-
-| # | File:Line | Description | Fix Idea | Effort | Difficulty |
-|---|-----------|-------------|----------|--------|------------|
-| 35.1 | `JspC.java:1775` | Uses `System.out` instead of Ant Project log |
Pass the Ant `Project` reference through to `initServletContext` and use
`Project.log()` for output. | 0.5 day | Low |
-
-**Total estimated effort: 0.5 day, Low difficulty**
-
----
-
### 36. Jasper JspC ClassLoader / Filter Config (2 items)
| # | File:Line | Description | Fix Idea | Effort | Difficulty |
diff --git a/java/org/apache/jasper/JspC.java b/java/org/apache/jasper/JspC.java
index 0a8611510f..cf9ebd45b6 100644
--- a/java/org/apache/jasper/JspC.java
+++ b/java/org/apache/jasper/JspC.java
@@ -60,7 +60,9 @@ import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
+import org.apache.tools.ant.taskdefs.LogOutputStream;
import org.apache.tools.ant.util.FileUtils;
import org.xml.sax.SAXException;
@@ -1772,8 +1774,12 @@ public class JspC extends Task implements Options {
* @throws JasperException If a JSP error occurs
*/
protected void initServletContext(ClassLoader classLoader) throws
IOException, JasperException {
- // TODO: should we use the Ant Project's log?
- PrintWriter log = new PrintWriter(System.out);
+ PrintWriter log;
+ if (getProject() == null) {
+ log = new PrintWriter(System.out);
+ } else {
+ log = new PrintWriter(new LogOutputStream(this, Project.MSG_INFO),
true);
+ }
URL resourceBase = new
File(uriRoot).getCanonicalFile().toURI().toURL();
context = new JspCServletContext(log, resourceBase, classLoader,
isValidateXml(), isBlockExternal());
diff --git a/test/org/apache/jasper/TestJspC.java
b/test/org/apache/jasper/TestJspC.java
index 435f4afaef..9ee699abd9 100644
--- a/test/org/apache/jasper/TestJspC.java
+++ b/test/org/apache/jasper/TestJspC.java
@@ -23,12 +23,18 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
+import java.util.ArrayList;
+import java.util.List;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.DefaultLogger;
+import org.apache.tools.ant.Project;
+
public class TestJspC {
private JspC jspc;
@@ -135,6 +141,28 @@ public class TestJspC {
verify(webappOut);
}
+ @Test
+ public void servletContextUsesAntLog() throws Exception {
+ List<String> messages = new ArrayList<>();
+ Project project = new Project();
+ project.addBuildListener(new DefaultLogger() {
+ @Override
+ public void messageLogged(BuildEvent event) {
+ messages.add(event.getMessage());
+ }
+ });
+
+ TesterJspC testerJspC = new TesterJspC();
+ testerJspC.setProject(project);
+ testerJspC.setUriroot("test/webapp-2.2");
+ testerJspC.setValidateTld(false);
+ testerJspC.initServletContext();
+
+ String message = "JspCServletContext Ant log test";
+ testerJspC.logToServletContext(message);
+ Assert.assertTrue(messages.contains(message));
+ }
+
private void verify(File webappOut) {
// for now, just check some expected files exist
Assert.assertTrue(new File(webappOut, "generated_web.xml").exists());
@@ -175,4 +203,15 @@ public class TestJspC {
}
});
}
+
+ private static class TesterJspC extends JspC {
+
+ void initServletContext() throws IOException, JasperException {
+ initServletContext(getClass().getClassLoader());
+ }
+
+ void logToServletContext(String message) {
+ context.log(message);
+ }
+ }
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index bc88be1694..cbd69f4a7f 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -391,6 +391,10 @@
Add support for <code>java.util.Optional</code> to the empty operator.
(markt)
</add>
+ <fix>
+ Route <code>JspC</code> servlet context logging through Ant when used
as
+ an Ant task. (sainadh777)
+ </fix>
<!-- Entries for backport and removal before 12.0.0-M1 below this line
-->
</changelog>
</subsection>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]