This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new 16e82d0ba0 Route JspC context logging through Ant
16e82d0ba0 is described below
commit 16e82d0ba001dfaddec97b442a87818708ab9a6a
Author: sainadh777 <[email protected]>
AuthorDate: Mon Sep 28 11:45:53 2026 -0700
Route JspC context logging through Ant
---
java/org/apache/jasper/JspC.java | 10 +++++++--
test/org/apache/jasper/TestJspC.java | 39 ++++++++++++++++++++++++++++++++++++
webapps/docs/changelog.xml | 8 ++++++++
3 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/java/org/apache/jasper/JspC.java b/java/org/apache/jasper/JspC.java
index 5e291b86d4..f467db4294 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;
@@ -1768,8 +1770,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 b544c7bf19..da1f96fdee 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;
@@ -119,6 +125,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());
@@ -159,4 +187,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 4c40dd800a..ca88c00851 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -164,6 +164,14 @@
</fix>
</changelog>
</subsection>
+ <subsection name="Jasper">
+ <changelog>
+ <fix>
+ Route <code>JspC</code> servlet context logging through Ant when used
as
+ an Ant task. (sainadh777)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Web applications">
<changelog>
<add>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]