This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 39a2f1dd76036215b319aee3f8e577ade0f7b491 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Sep 9 09:50:08 2021 +0100 More version updates --- BUILDING.txt | 2 +- RELEASE-NOTES | 2 +- build.xml | 4 ++-- java/org/apache/catalina/connector/CoyoteAdapter.java | 2 +- java/org/apache/jasper/Constants.java | 2 +- java/org/apache/jasper/compiler/Generator.java | 2 +- java/org/apache/jasper/compiler/Validator.java | 3 ++- java/org/apache/jasper/resources/LocalStrings.properties | 2 +- .../org/apache/jasper/resources/LocalStrings_es.properties | 2 +- .../org/apache/jasper/resources/LocalStrings_fr.properties | 2 +- .../org/apache/jasper/resources/LocalStrings_ja.properties | 2 +- .../org/apache/jasper/resources/LocalStrings_ko.properties | 2 +- .../apache/jasper/resources/LocalStrings_zh_CN.properties | 2 +- test/org/apache/jasper/compiler/TestJspDocumentParser.java | 12 +++++++++++- test/org/apache/tomcat/util/descriptor/web/TestWebXml.java | 5 +++++ .../{document-3.1.jspx => document-3.2.jspx} | 2 +- .../{document-3.1.jspx => document-4.0.jspx} | 2 +- .../document-3.1.jspx | 0 webapps/docs/appdev/deployment.xml | 2 +- webapps/docs/appdev/introduction.xml | 8 ++++---- webapps/docs/class-loader-howto.xml | 2 +- webapps/docs/index.xml | 14 +++++++------- webapps/docs/project.xml | 2 +- 23 files changed, 47 insertions(+), 31 deletions(-) diff --git a/BUILDING.txt b/BUILDING.txt index 0670db8..27fb422 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -20,7 +20,7 @@ ==================================================== This project contains the source code for Tomcat @VERSION_MAJOR_MINOR@, a container that -implements the Jakarta Servlet 6.0, JSP 3.0, EL 5.0, WebSocket 2.0 and +implements the Jakarta Servlet 6.0, JSP 3.1, EL 5.0, WebSocket 2.0 and Authentication 2.0 specifications from the Jakarta EE project at Eclipse <https://jakarta.ee//>. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 70e5abf..def4047 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -77,7 +77,7 @@ for use by web applications (by placing them in "lib"): * el-api.jar (EL 5.0 API) * jasper.jar (Jasper 2 Compiler and Runtime) * jasper-el.jar (Jasper 2 EL implementation) -* jsp-api.jar (JSP 3.0 API) +* jsp-api.jar (JSP 3.1 API) * servlet-api.jar (Servlet 6.0 API) * tomcat-api.jar (Interfaces shared by Catalina and Jasper) * tomcat-coyote.jar (Tomcat connectors and utility classes) diff --git a/build.xml b/build.xml index 428ce57..d010a4d 100644 --- a/build.xml +++ b/build.xml @@ -54,8 +54,8 @@ <!-- Exact spec versions (for the manifests etc.) --> <property name="servlet.spec.version" value="6.0" /> <property name="servlet.revision" value="-SNAPSHOT" /> - <property name="jsp.spec.version" value="3.0" /> - <property name="jsp.revision" value="0" /> + <property name="jsp.spec.version" value="3.1" /> + <property name="jsp.revision" value="-SNAPSHOT" /> <property name="el.spec.version" value="5.0" /> <property name="el.revision" value="-SNAPSHOT" /> <property name="websocket.spec.version" value="2.0" /> diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java index 3367425..053874f 100644 --- a/java/org/apache/catalina/connector/CoyoteAdapter.java +++ b/java/org/apache/catalina/connector/CoyoteAdapter.java @@ -67,7 +67,7 @@ public class CoyoteAdapter implements Adapter { // -------------------------------------------------------------- Constants - private static final String POWERED_BY = "Servlet/6.0 JSP/3.0 " + + private static final String POWERED_BY = "Servlet/6.0 JSP/3.1 " + "(" + ServerInfo.getServerInfo() + " Java/" + System.getProperty("java.vm.vendor") + "/" + System.getProperty("java.runtime.version") + ")"; diff --git a/java/org/apache/jasper/Constants.java b/java/org/apache/jasper/Constants.java index 16e2e96..7a0c058 100644 --- a/java/org/apache/jasper/Constants.java +++ b/java/org/apache/jasper/Constants.java @@ -30,7 +30,7 @@ import java.util.List; */ public class Constants { - public static final String SPEC_VERSION = "3.0"; + public static final String SPEC_VERSION = "3.1"; /** * These classes/packages are automatically imported by the diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java index 7c35a3d..61eec0c 100644 --- a/java/org/apache/jasper/compiler/Generator.java +++ b/java/org/apache/jasper/compiler/Generator.java @@ -818,7 +818,7 @@ class Generator { out.println(");"); if (ctxt.getOptions().isXpoweredBy()) { - out.printil("response.addHeader(\"X-Powered-By\", \"JSP/3.0\");"); + out.printil("response.addHeader(\"X-Powered-By\", \"JSP/3.1\");"); } out.printil("pageContext = _jspxFactory.getPageContext(this, request, response,"); diff --git a/java/org/apache/jasper/compiler/Validator.java b/java/org/apache/jasper/compiler/Validator.java index ae13967..61bc587 100644 --- a/java/org/apache/jasper/compiler/Validator.java +++ b/java/org/apache/jasper/compiler/Validator.java @@ -535,7 +535,8 @@ class Validator { String version = n.getTextAttribute("version"); if (!version.equals("1.2") && !version.equals("2.0") && !version.equals("2.1") && !version.equals("2.2") && - !version.equals("2.3") && !version.equals("3.0")) { + !version.equals("2.3") && !version.equals("3.0") && + !version.equals("3.1")) { err.jspError(n, "jsp.error.jsproot.version.invalid", version); } visitBody(n); diff --git a/java/org/apache/jasper/resources/LocalStrings.properties b/java/org/apache/jasper/resources/LocalStrings.properties index 25673d5..867c69f 100644 --- a/java/org/apache/jasper/resources/LocalStrings.properties +++ b/java/org/apache/jasper/resources/LocalStrings.properties @@ -106,7 +106,7 @@ jsp.error.jspoutput.doctypenamesystem=<jsp:output>: 'doctype-root-element' jsp.error.jspoutput.doctypepublicsystem=<jsp:output>: 'doctype-system' attribute must appear if 'doctype-public' attribute appears jsp.error.jspoutput.invalidUse=<jsp:output> must not be used in standard syntax jsp.error.jspoutput.nonemptybody=<jsp:output> must not have a body -jsp.error.jsproot.version.invalid=Invalid version number: [{0}], must be "1.2", "2.0", "2.1", "2.2", "2.3" or "3.0" +jsp.error.jsproot.version.invalid=Invalid version number: [{0}], must be "1.2", "2.0", "2.1", "2.2", "2.3", "3.0" or "3.1" jsp.error.jsptext.badcontent='<', when appears in the body of <jsp:text>, must be encapsulated within a CDATA jsp.error.lastModified=Unable to determine last modified date for file [{0}] jsp.error.library.invalid=JSP page is invalid according to library [{0}]: [{1}] diff --git a/java/org/apache/jasper/resources/LocalStrings_es.properties b/java/org/apache/jasper/resources/LocalStrings_es.properties index 6c27edf..4cb1c17 100644 --- a/java/org/apache/jasper/resources/LocalStrings_es.properties +++ b/java/org/apache/jasper/resources/LocalStrings_es.properties @@ -99,7 +99,7 @@ jsp.error.jspoutput.doctypenamesystem=<jsp:output>: atributos 'doctype-roo jsp.error.jspoutput.doctypepublicsystem=<jsp:output>: atributo 'doctype-system' debe de aparecer si aparece atributo 'doctype-public' jsp.error.jspoutput.invalidUse=<jsp:output> no se debe de usar en sintáxis estándar jsp.error.jspoutput.nonemptybody=<jsp:output> no debe de tener un cuerpo -jsp.error.jsproot.version.invalid=Número incorrecto de versión: [{0}], debe de ser "1.2" o "2.0" o "2.1" o "2.2" o "2.3" o "3.0" +jsp.error.jsproot.version.invalid=Número incorrecto de versión: [{0}], debe de ser "1.2" o "2.0" o "2.1" o "2.2" o "2.3" o "3.0" o "3.1" jsp.error.jsptext.badcontent='<', cuando aparece en el cuerpo de <jsp:text>, debe de estar encapsulado dentro de un CDATA jsp.error.lastModified=No puedo determinar la última fecha de modificación para el fichero [{0}] jsp.error.library.invalid=La página JSP es incorrecta de acuerdo a la biblioteca [{0}]: [{1}] diff --git a/java/org/apache/jasper/resources/LocalStrings_fr.properties b/java/org/apache/jasper/resources/LocalStrings_fr.properties index 19dd49f..788a06b 100644 --- a/java/org/apache/jasper/resources/LocalStrings_fr.properties +++ b/java/org/apache/jasper/resources/LocalStrings_fr.properties @@ -106,7 +106,7 @@ jsp.error.jspoutput.doctypenamesystem=<jsp:output> : les attributs "doctyp jsp.error.jspoutput.doctypepublicsystem=L'attribut <jsp:output> : 'doctype-system' doit être présent lorsque l'attribut 'doctype-public' l'est jsp.error.jspoutput.invalidUse=<jsp:output> ne doit pas être utilisé en syntaxe standard jsp.error.jspoutput.nonemptybody=<jsp:output> ne doit pas avoir de corps -jsp.error.jsproot.version.invalid=Le numéro de version [{0}] est invalide, il devrait être "1.2", "2.0", "2.1", "2.2", "2.3" ou "3.0" +jsp.error.jsproot.version.invalid=Le numéro de version [{0}] est invalide, il devrait être "1.2", "2.0", "2.1", "2.2", "2.3", "3.0" ou "3.1" jsp.error.jsptext.badcontent=Quand '<' apparaît dans le corps d'un <jsp:text>, il doit être encapsulé dans un CDATA\n jsp.error.lastModified=Impossible de déterminer la date de dernière modification pour le fichier [{0}] jsp.error.library.invalid=La page JSP page est incorrecte d''après la bibliothèque [{0}] : [{1}] diff --git a/java/org/apache/jasper/resources/LocalStrings_ja.properties b/java/org/apache/jasper/resources/LocalStrings_ja.properties index ef452f4..b4c4071 100644 --- a/java/org/apache/jasper/resources/LocalStrings_ja.properties +++ b/java/org/apache/jasper/resources/LocalStrings_ja.properties @@ -107,7 +107,7 @@ jsp.error.jspoutput.doctypenamesystem=<jsp:output>: 'doctype-root-element' jsp.error.jspoutput.doctypepublicsystem=<jsp:output>: 'doctype-public'属性を指定する場合は、'doctype-system' 属性も指定しなければいけません jsp.error.jspoutput.invalidUse=<jsp:output> 標準構文の中で使用してはいけません jsp.error.jspoutput.nonemptybody=<jsp:output> ボディを持ってはいけません -jsp.error.jsproot.version.invalid=無効なバージョン番号です: [{0}]、"1.2" "2.0" "2.1" "2.2" "2.3" 又は "3.0" でなければいけません +jsp.error.jsproot.version.invalid=無効なバージョン番号です: [{0}]、"1.2" "2.0" "2.1" "2.2" "2.3" "3.0" 又は "3.1" でなければいけません jsp.error.jsptext.badcontent='<'が<jsp:text>のボディの中に現れる時は、CDATAの中にカプセル化する必要があります jsp.error.lastModified=ファイル [{0}] の最終更新日時を取得できません。 jsp.error.library.invalid=ライブラリ[{0}]に従うとJSPページは無効です: [{1}] diff --git a/java/org/apache/jasper/resources/LocalStrings_ko.properties b/java/org/apache/jasper/resources/LocalStrings_ko.properties index 44f4893..8755802 100644 --- a/java/org/apache/jasper/resources/LocalStrings_ko.properties +++ b/java/org/apache/jasper/resources/LocalStrings_ko.properties @@ -107,7 +107,7 @@ jsp.error.jspoutput.doctypenamesystem=<jsp:output>: 'doctype-root-element' jsp.error.jspoutput.doctypepublicsystem=<jsp:output>: 'doctype-public' 속성이 나타나는 경우에는, 'doctype-system' 속성이 반드시 존재해야 합니다. jsp.error.jspoutput.invalidUse=<jsp:output>은 표준 문법에서 사용되서는 안됩니다. jsp.error.jspoutput.nonemptybody=<jsp:output>은 body를 포함해서는 안됩니다. -jsp.error.jsproot.version.invalid=유효하지 않은 버전: [{0}]. 반드시 다음 중 하나여야 합니다: "1.2", "2.0", "2.1", "2.2", "2.3", "3.0" +jsp.error.jsproot.version.invalid=유효하지 않은 버전: [{0}]. 반드시 다음 중 하나여야 합니다: "1.2", "2.0", "2.1", "2.2", "2.3", "3.0", "3.1" jsp.error.jsptext.badcontent='<'가 <jsp:text>의 body 내에 존재할 때에는 반드시 CDATA 내에 포함되어야 합니다. jsp.error.lastModified=파일 [{0}]을(를) 위한 최종 변경 시간을 결정할 수 없습니다. jsp.error.library.invalid=라이브러리 [{0}]에 의하면, JSP 페이지가 유효하지 않습니다: [{1}] diff --git a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties index 77e7c64..fd953a3 100644 --- a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties +++ b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties @@ -106,7 +106,7 @@ jsp.error.jspoutput.doctypenamesystem=<jsp:output>: 'doctype-root-element' jsp.error.jspoutput.doctypepublicsystem=&lt;jsp:output&gt;:如果显示“doctype public”属性,则必须显示“doctype system”属性 jsp.error.jspoutput.invalidUse=&lt;jsp:output&gt;不能在标准语法中使用 jsp.error.jspoutput.nonemptybody=<jsp:output>不能有正文 -jsp.error.jsproot.version.invalid=版本号 [{0}] 无效,版本号必须是"1.2"、"2.0"、"2.1"、"2.2"、"2.3"、"3.0"中的一个 +jsp.error.jsproot.version.invalid=版本号 [{0}] 无效,版本号必须是"1.2"、"2.0"、"2.1"、"2.2"、"2.3"、"3.0"、"3.1"中的一个 jsp.error.jsptext.badcontent='&lt;',当出现在&lt; jsp:text&gt;的主体中时,必须封装在CDATA中 jsp.error.lastModified=无法确定文件 [{0}] 的最后修改日期 jsp.error.library.invalid=根据库[{0}](:[{1}],jsp页无效 diff --git a/test/org/apache/jasper/compiler/TestJspDocumentParser.java b/test/org/apache/jasper/compiler/TestJspDocumentParser.java index f39b2f2..e1d2455 100644 --- a/test/org/apache/jasper/compiler/TestJspDocumentParser.java +++ b/test/org/apache/jasper/compiler/TestJspDocumentParser.java @@ -183,7 +183,17 @@ public class TestJspDocumentParser extends TomcatBaseTest { @Test public void testDocument_3_1() throws Exception { - doTestDocument(false, "3.1"); + doTestDocument(true, "3.1"); + } + + @Test + public void testDocument_3_2() throws Exception { + doTestDocument(false, "3.2"); + } + + @Test + public void testDocument_4_0() throws Exception { + doTestDocument(false, "4.0"); } @Test diff --git a/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java b/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java index d68605c..898cec6 100644 --- a/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java +++ b/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java @@ -177,6 +177,11 @@ public class TestWebXml { doTestValidateVersion("4.0"); } + @Test + public void testValidateVersion50() throws IOException, SAXException { + doTestValidateVersion("5.0"); + } + private void doTestValidateVersion(String version) throws IOException, SAXException { WebXml webxml = new WebXml(); diff --git a/test/webapp/jsp/doc-version-invalid/document-3.1.jspx b/test/webapp/jsp/doc-version-invalid/document-3.2.jspx similarity index 92% copy from test/webapp/jsp/doc-version-invalid/document-3.1.jspx copy to test/webapp/jsp/doc-version-invalid/document-3.2.jspx index 67f429d..7e9fba1 100644 --- a/test/webapp/jsp/doc-version-invalid/document-3.1.jspx +++ b/test/webapp/jsp/doc-version-invalid/document-3.2.jspx @@ -16,7 +16,7 @@ limitations under the License. --> <jsp:root - xmlns:jsp="http://java.sun.com/JSP/Page" version="3.1"> + xmlns:jsp="http://java.sun.com/JSP/Page" version="3.2"> <html> <body> <p>00-Hello World</p> diff --git a/test/webapp/jsp/doc-version-invalid/document-3.1.jspx b/test/webapp/jsp/doc-version-invalid/document-4.0.jspx similarity index 92% copy from test/webapp/jsp/doc-version-invalid/document-3.1.jspx copy to test/webapp/jsp/doc-version-invalid/document-4.0.jspx index 67f429d..9fcdc6b 100644 --- a/test/webapp/jsp/doc-version-invalid/document-3.1.jspx +++ b/test/webapp/jsp/doc-version-invalid/document-4.0.jspx @@ -16,7 +16,7 @@ limitations under the License. --> <jsp:root - xmlns:jsp="http://java.sun.com/JSP/Page" version="3.1"> + xmlns:jsp="http://java.sun.com/JSP/Page" version="4.0"> <html> <body> <p>00-Hello World</p> diff --git a/test/webapp/jsp/doc-version-invalid/document-3.1.jspx b/test/webapp/jsp/doc-version-valid/document-3.1.jspx similarity index 100% rename from test/webapp/jsp/doc-version-invalid/document-3.1.jspx rename to test/webapp/jsp/doc-version-valid/document-3.1.jspx diff --git a/webapps/docs/appdev/deployment.xml b/webapps/docs/appdev/deployment.xml index 38b349d..62aaa98 100644 --- a/webapps/docs/appdev/deployment.xml +++ b/webapps/docs/appdev/deployment.xml @@ -136,7 +136,7 @@ drivers that are required for both your application or internal Tomcat use <p>Out of the box, a standard Tomcat installation includes a variety of pre-installed shared library files, including:</p> <ul> -<li>The <em>Servlet 5.0</em> and <em>JSP 3.0</em> APIs that are fundamental +<li>The <em>Servlet 6.0</em> and <em>JSP 3.1</em> APIs that are fundamental to writing servlets and JSPs.<br/><br/></li> </ul> diff --git a/webapps/docs/appdev/introduction.xml b/webapps/docs/appdev/introduction.xml index 875f3a1..74e4fe0 100644 --- a/webapps/docs/appdev/introduction.xml +++ b/webapps/docs/appdev/introduction.xml @@ -62,16 +62,16 @@ the details of your particular environment.</p> information, documentation, and software that is useful in developing web applications with Tomcat.</p> <ul> -<li><p><a href="https://jakarta.ee/specifications/pages/3.0/">https://jakarta.ee/specifications/pages/3.0/</a> - - <i>Jakarta Server Pages (JSP), Version 3.0</i>. Describes +<li><p><a href="https://jakarta.ee/specifications/pages/3.1/">https://jakarta.ee/specifications/pages/3.1/</a> - + <i>Jakarta Server Pages (JSP), Version 3.1</i>. Describes the programming environment provided by standard implementations of the Jakarta Server Pages technology. In conjunction with the Servlet API Specification (see below), this document describes what a portable JSP page is allowed to contain. Specific information on scripting (Chapter 9), tag extensions (Chapter 7), and packaging JSP pages (Appendix A) is useful..</p></li> -<li><p><a href="https://jakarta.ee/specifications/servlet/5.0/">https://jakarta.ee/specifications/servlet/5.0/</a> - - <i>Jakarta Servlet API Specification, Version 5.0</i>. Describes the +<li><p><a href="https://jakarta.ee/specifications/servlet/6.0/">https://jakarta.ee/specifications/servlet/6.0/</a> - + <i>Jakarta Servlet API Specification, Version 6.0</i>. Describes the programming environment that must be provided by all servlet containers conforming to this specification. In particular, you will need this document to understand the web application diff --git a/webapps/docs/class-loader-howto.xml b/webapps/docs/class-loader-howto.xml index c3649ef..538626b 100644 --- a/webapps/docs/class-loader-howto.xml +++ b/webapps/docs/class-loader-howto.xml @@ -143,7 +143,7 @@ loaders as it is initialized:</p> <li><em>el-api.jar</em> — EL 5.0 API.</li> <li><em>jasper.jar</em> — Tomcat Jasper JSP Compiler and Runtime.</li> <li><em>jasper-el.jar</em> — Tomcat Jasper EL implementation.</li> - <li><em>jsp-api.jar</em> — JSP 3.0 API.</li> + <li><em>jsp-api.jar</em> — JSP 3.1 API.</li> <li><em>servlet-api.jar</em> — Servlet 6.0 API.</li> <li><em>tomcat-api.jar</em> — Several interfaces defined by Tomcat.</li> <li><em>tomcat-coyote.jar</em> — Tomcat connectors and utility classes.</li> diff --git a/webapps/docs/index.xml b/webapps/docs/index.xml index b0a17ba..16f4ad9 100644 --- a/webapps/docs/index.xml +++ b/webapps/docs/index.xml @@ -35,7 +35,7 @@ <p>This is the top-level entry point of the documentation bundle for the <strong>Apache Tomcat</strong> Servlet/JSP container. Apache Tomcat version -<version-major-minor/> implements the Servlet 6.0 and JavaServer Pages 3.0 +<version-major-minor/> implements the Servlet 6.0 and JavaServer Pages 3.1 <a href="https://wiki.apache.org/tomcat/Specifications">specifications</a> from <a href="https://jakarta.ee/">Jakarta EE</a>, and includes many additional features that make it a useful platform for developing and deploying @@ -164,16 +164,16 @@ are responsible for installing, configuring, and operating an Apache Tomcat serv - Complete documentation and HOWTOs on the JK native webserver connector, used to interface Apache Tomcat with servers like Apache HTTPd, IIS and others.</li> -<li>Servlet 5.0 - <a href="https://jakarta.ee/specifications/servlet/5.0/"> +<li>Servlet 6.0 + <a href="https://jakarta.ee/specifications/servlet/6.0/"> <strong>Specification</strong></a> and - <a href="https://jakarta.ee/specifications/servlet/5.0/apidocs"> + <a href="https://jakarta.ee/specifications/servlet/6.0/apidocs"> <strong>Javadoc</strong></a> </li> -<li>JSP 3.0 - <a href="https://jakarta.ee/specifications/pages/3.0/"> +<li>JSP 3.1 + <a href="https://jakarta.ee/specifications/pages/3.1/"> <strong>Specification</strong></a> and - <a href="https://jakarta.ee/specifications/pages/3.0/apidocs"> + <a href="https://jakarta.ee/specifications/pages/3.1/apidocs"> <strong>Javadoc</strong></a> </li> <li>EL 4.0 diff --git a/webapps/docs/project.xml b/webapps/docs/project.xml index d0b8f50..78752e4 100644 --- a/webapps/docs/project.xml +++ b/webapps/docs/project.xml @@ -84,7 +84,7 @@ <item name="Configuration" href="config/index.html"/> <item name="Tomcat Javadocs" href="api/index.html"/> <item name="Servlet 6.0 Javadocs" href="servletapi/index.html"/> - <item name="JSP 3.0 Javadocs" href="jspapi/index.html"/> + <item name="JSP 3.1 Javadocs" href="jspapi/index.html"/> <item name="EL 5.0 Javadocs" href="elapi/index.html"/> <item name="WebSocket 2.0 Javadocs" href="websocketapi/index.html"/> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org