This is an automated email from the ASF dual-hosted git repository.
jengebr pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new 285b8215eb Adding nonstandard support for c:set and c:remove
285b8215eb is described below
commit 285b8215eb46e641bf8319c92b2aeb2574db38b9
Author: John Engebretson
AuthorDate: Fri Apr 18 13:28:19 2025 +
Adding nonstandard support for c:set and c:remove
---
java/org/apache/jasper/EmbeddedServletOptions.java | 12 ++
java/org/apache/jasper/JspC.java | 18 ++
java/org/apache/jasper/Options.java| 8 +
java/org/apache/jasper/compiler/Generator.java | 227 +
.../apache/jasper/runtime/JspRuntimeLibrary.java | 27 +++
test/javax/servlet/jsp/TesterPageContext.java | 12 +-
.../jsp/TesterPageContextWithAttributes.java | 126
test/org/apache/jasper/compiler/TestGenerator.java | 86
.../compiler/TestNonstandardTagPerformance.java| 162 +++
.../jasper/runtime/TestJspRuntimeLibrary.java | 37
test/webapp/WEB-INF/web.xml| 28 +++
.../webapp/jsp/generator/nonstandard/remove-01.jsp | 26 +++
.../webapp/jsp/generator/nonstandard/remove-02.jsp | 26 +++
.../webapp/jsp/generator/nonstandard/remove-03.jsp | 26 +++
.../webapp/jsp/generator/nonstandard/remove-04.jsp | 26 +++
.../webapp/jsp/generator/nonstandard/remove-05.jsp | 26 +++
test/webapp/jsp/generator/nonstandard/set-01.jsp | 22 ++
test/webapp/jsp/generator/nonstandard/set-02.jsp | 22 ++
test/webapp/jsp/generator/nonstandard/set-03.jsp | 22 ++
test/webapp/jsp/generator/nonstandard/set-04.jsp | 22 ++
test/webapp/jsp/generator/nonstandard/set-05.jsp | 22 ++
webapps/docs/changelog.xml | 5 +
22 files changed, 986 insertions(+), 2 deletions(-)
diff --git a/java/org/apache/jasper/EmbeddedServletOptions.java
b/java/org/apache/jasper/EmbeddedServletOptions.java
index 650edcf2ee..f250941498 100644
--- a/java/org/apache/jasper/EmbeddedServletOptions.java
+++ b/java/org/apache/jasper/EmbeddedServletOptions.java
@@ -67,6 +67,8 @@ public final class EmbeddedServletOptions implements Options {
*/
private TrimSpacesOption trimSpaces = TrimSpacesOption.FALSE;
+private String useNonstandardTagOptimizations;
+
/**
* Determines whether tag handler pooling is enabled.
*/
@@ -233,6 +235,11 @@ public final class EmbeddedServletOptions implements
Options {
}
@Override
+public String getUseNonstandardTagOptimizations() {
+return useNonstandardTagOptimizations;
+}
+
+ @Override
public boolean isPoolingEnabled() {
return isPoolingEnabled;
}
@@ -578,6 +585,11 @@ public final class EmbeddedServletOptions implements
Options {
this.classpath = classpath;
}
+String useNonstandardTagOptimizations =
config.getInitParameter("useNonstandardTagOptimizations");
+if (useNonstandardTagOptimizations != null) {
+this.useNonstandardTagOptimizations =
useNonstandardTagOptimizations;
+}
+
/*
* scratchdir
*/
diff --git a/java/org/apache/jasper/JspC.java b/java/org/apache/jasper/JspC.java
index 877873b73a..df980cb499 100644
--- a/java/org/apache/jasper/JspC.java
+++ b/java/org/apache/jasper/JspC.java
@@ -140,6 +140,7 @@ public class JspC extends Task implements Options {
protected static final String SWITCH_QUOTE_ATTRIBUTE_EL =
"-quoteAttributeEL";
protected static final String SWITCH_NO_QUOTE_ATTRIBUTE_EL =
"-no-quoteAttributeEL";
protected static final String SWITCH_THREAD_COUNT = "-threadCount";
+protected static final String SWITCH_USENONSTANDARD_TAG_OPTIMIZATIONS =
"-useNonstandardTagOptimizations";
protected static final String SHOW_SUCCESS = "-s";
protected static final String LIST_ERRORS = "-l";
protected static final int INC_WEBXML = 10;
@@ -271,6 +272,7 @@ public class JspC extends Task implements Options {
protected int argPos;
protected boolean fullstop = false;
protected String[] args;
+protected String useNonstandardTagOptimizations;
public static void main(String[] arg) {
if (arg.length == 0) {
@@ -403,6 +405,8 @@ public class JspC extends Task implements Options {
setQuoteAttributeEL(false);
} else if (tok.equals(SWITCH_THREAD_COUNT)) {
setThreadCount(nextArg());
+} else if (tok.equals(SWITCH_USENONSTANDARD_TAG_OPTIMIZATIONS)) {
+setUseNonstandardTagOptimizations(nextArg());
} else {
if (tok.startsWith("-")) {
throw new
JasperException(Localizer.getMessage("jspc.error.unknownOption", tok));
@@ -1030,6 +1034,15 @@ public class JspC extends Task implements Options {