From b0aea870276f1bd6897eeb47653cb063c49c6b85 Mon Sep 17 00:00:00 2001 From: Alwin Joseph Date: Wed, 17 Jan 2024 13:26:07 +0530 Subject: [PATCH 1/4] Pages TCK compliance with pages 4.0 and EL 6.0 --- jsp/pom.xml | 11 +- .../jsp/el/elexception/URLClientIT.java | 149 ------------ .../jsp/el/elparseexception/URLClientIT.java | 101 -------- .../jsp/el/elparseexception/build.xml | 42 ---- .../elparseexception/jsp_elparseexc_web.xml | 25 -- .../jsp/el/expression/URLClientIT.java | 87 ------- .../jsp/el/expression/build.xml | 46 ---- .../jsp/el/expression/jsp_expr_web.xml | 25 -- .../el/expressionevaluator/URLClientIT.java | 107 --------- .../jsp/el/expressionevaluator/build.xml | 47 ---- .../expressionevaluator/jsp_expreval_web.xml | 25 -- .../jsp/el/variableresolver/URLClientIT.java | 87 ------- .../jsp/el/variableresolver/build.xml | 43 ---- .../variableresolver/jsp_varresolver_web.xml | 25 -- .../jsp/common/util/JspResolverTest.java | 70 +++--- .../ts/tests/jsp/common/util/JspTestUtil.java | 6 +- .../tests/jsp/common/util/SimpleContext.java | 20 -- .../jsp/common/util/TSFunctionMapper.java | 114 --------- .../jsp/el/elexception/ELExceptionTest.jsp | 159 ------------ .../jsp/el/elexception/jsp_elexc_web.xml | 25 -- .../elparseexception/ELParseExceptionTest.jsp | 64 ----- .../elparseexception/jsp_elparseexc_web.xml | 25 -- .../jsp/el/expression/ExpressionTest.jsp | 134 ----------- .../jsp/el/expression/jsp_expr_web.xml | 25 -- .../ExpressionEvaluatorTest.jsp | 227 ------------------ .../expressionevaluator/jsp_expreval_web.xml | 25 -- .../variableresolver/VariableResolverTest.jsp | 97 -------- .../variableresolver/jsp_varresolver_web.xml | 25 -- 28 files changed, 46 insertions(+), 1790 deletions(-) delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/URLClientIT.java delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/URLClientIT.java delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/build.xml delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/jsp_elparseexc_web.xml delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/URLClientIT.java delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/build.xml delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/jsp_expr_web.xml delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/URLClientIT.java delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/build.xml delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/jsp_expreval_web.xml delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/URLClientIT.java delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/build.xml delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/jsp_varresolver_web.xml delete mode 100644 jsp/src/main/java/com/sun/ts/tests/jsp/common/util/TSFunctionMapper.java delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/ELExceptionTest.jsp delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/jsp_elexc_web.xml delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/ELParseExceptionTest.jsp delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/jsp_elparseexc_web.xml delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/ExpressionTest.jsp delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/jsp_expr_web.xml delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/ExpressionEvaluatorTest.jsp delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/jsp_expreval_web.xml delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/VariableResolverTest.jsp delete mode 100644 jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/jsp_varresolver_web.xml diff --git a/jsp/pom.xml b/jsp/pom.xml index 8b26faad43..aee30b5e5e 100644 --- a/jsp/pom.xml +++ b/jsp/pom.xml @@ -35,8 +35,6 @@ 1.7.0.Alpha14 5.9.1 - 11 - 11 @@ -55,6 +53,7 @@ jakarta.servlet.jsp jakarta.servlet.jsp-api + 4.0.0-M1 jakarta.servlet @@ -71,6 +70,7 @@ jakarta.el jakarta.el-api + 6.0.0-M1 jakarta.mail @@ -103,7 +103,10 @@ maven-compiler-plugin - 2.3.2 + 3.10.1 + + 17 + maven-surefire-plugin @@ -112,7 +115,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.3.0 diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/URLClientIT.java b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/URLClientIT.java deleted file mode 100644 index 9f6dd51f89..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/URLClientIT.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2007, 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0, which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the - * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - * version 2 with the GNU Classpath Exception, which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - */ - -/* - * $Id$ - */ - -package com.sun.ts.tests.jsp.api.jakarta_servlet.jsp.el.elexception; - - -import com.sun.ts.tests.jsp.common.client.AbstractUrlClient; -import com.sun.ts.tests.jsp.common.util.JspTestUtil; -import java.io.IOException; -import java.io.InputStream; - -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit5.ArquillianExtension; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.jboss.shrinkwrap.api.asset.UrlAsset; - - -@ExtendWith(ArquillianExtension.class) -public class URLClientIT extends AbstractUrlClient { - - - - - public URLClientIT() throws Exception { - - setContextRoot("/jsp_elexc_web"); - setTestJsp("ELExceptionTest"); - - } - - @Deployment(testable = false) - public static WebArchive createDeployment() throws IOException { - - String packagePath = URLClientIT.class.getPackageName().replace(".", "/"); - WebArchive archive = ShrinkWrap.create(WebArchive.class, "jsp_elexc_web.war"); - archive.addClasses(JspTestUtil.class); - archive.setWebXML(URLClientIT.class.getClassLoader().getResource(packagePath+"/jsp_elexc_web.xml")); - archive.add(new UrlAsset(URLClientIT.class.getClassLoader().getResource(packagePath+"/ELExceptionTest.jsp")), "ELExceptionTest.jsp"); - - - return archive; - } - - - /* Run tests */ - - // ============================================ Tests ====== - - /* - * @testName: elExceptionDefaultCtorTest - * - * @assertion_ids: JSP:JAVADOC:159 - * - * @test_Strategy: Validate default constructor of ELException - */ - @Test - public void elExceptionDefaultCtorTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "elExceptionDefaultCtorTest"); - invoke(); - } - - /* - * @testName: elExceptionMessageCtorTest - * - * @assertion_ids: JSP:JAVADOC:160 - * - * @test_Strategy: Validate contructor taking single string argument as the - * message of the Exception. - */ - @Test - public void elExceptionMessageCtorTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "elExceptionMessageCtorTest"); - invoke(); - } - - /* - * @testName: elExceptionCauseCtorTest - * - * @assertion_ids: JSP:JAVADOC:161 - * - * @test_Strategy: Validate constructor taking a Throwable signifying the root - * cause of the this ELException. - */ - @Test - public void elExceptionCauseCtorTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "elExceptionCauseCtorTest"); - invoke(); - } - - /* - * @testName: elExceptionCauseMessageCtorTest - * - * @assertion_ids: JSP:JAVADOC:162 - * - * @test_Strategy: Validate constructor taking both a message and a Throwable - * signifying the root cause of the ELException. - */ - @Test - public void elExceptionCauseMessageCtorTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "elExceptionCauseMessageCtorTest"); - invoke(); - } - - /* - * @testName: elExceptionGetRootCauseTest - * - * @assertion_ids: JSP:JAVADOC:163 - * - * @test_Strategy: Validate the behavior of ELException.getRootCause(). - */ - @Test - public void elExceptionGetRootCauseTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "elExceptionGetRootCauseTest"); - invoke(); - } - - /* - * @testName: elExceptionToStringTest - * - * @assertion_ids: JSP:JAVADOC:164 - * - * @test_Strategy: Validate the behavior of ELException.toString(). - */ - @Test - public void elExceptionToStringTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "elExceptionToStringTest"); - invoke(); - } -} diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/URLClientIT.java b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/URLClientIT.java deleted file mode 100644 index 767bea1265..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/URLClientIT.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2007, 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0, which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the - * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - * version 2 with the GNU Classpath Exception, which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - */ - -/* - * $Id$ - */ - -package com.sun.ts.tests.jsp.api.jakarta_servlet.jsp.el.elparseexception; - - -import com.sun.ts.tests.jsp.common.client.AbstractUrlClient; -import com.sun.ts.tests.jsp.common.util.JspTestUtil; -import com.sun.ts.tests.jsp.common.tags.tck.SetTag; -import com.sun.ts.tests.common.el.api.expression.ExpressionTest; - -import java.io.IOException; -import java.io.InputStream; - -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit5.ArquillianExtension; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.jboss.shrinkwrap.api.asset.UrlAsset; - - -@ExtendWith(ArquillianExtension.class) -public class URLClientIT extends AbstractUrlClient { - - - - - public URLClientIT() throws Exception { - - setContextRoot("/jsp_elparseexc_web"); - setTestJsp("ELParseExceptionTest"); - - } - - @Deployment(testable = false) - public static WebArchive createDeployment() throws IOException { - - String packagePath = URLClientIT.class.getPackageName().replace(".", "/"); - WebArchive archive = ShrinkWrap.create(WebArchive.class, "jsp_elparseexc_web.war"); - archive.addClasses( - JspTestUtil.class, - SetTag.class, - ExpressionTest.class); - archive.setWebXML(URLClientIT.class.getClassLoader().getResource(packagePath+"/jsp_elparseexc_web.xml")); - archive.add(new UrlAsset(URLClientIT.class.getClassLoader().getResource(packagePath+"/ELParseExceptionTest.jsp")), "ELParseExceptionTest.jsp"); - - - return archive; - } - - - /* Run tests */ - - // ============================================ Tests ====== - - /* - * @testName: elParseExceptionDefaultCtorTest - * - * @assertion_ids: JSP:JAVADOC:157 - * - * @test_Strategy: Validate default constructor of ELParseException - */ - @Test - public void elParseExceptionDefaultCtorTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "elParseExceptionDefaultCtorTest"); - invoke(); - } - - /* - * @testName: elParseExceptionMessageCtorTest - * - * @assertion_ids: JSP:JAVADOC:158 - * - * @test_Strategy: Validate contructor taking single string argument as the - * message of the Exception. - */ - @Test - public void elParseExceptionMessageCtorTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "elParseExceptionMessageCtorTest"); - invoke(); - } -} diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/build.xml b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/build.xml deleted file mode 100644 index f14210dd09..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/build.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/jsp_elparseexc_web.xml b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/jsp_elparseexc_web.xml deleted file mode 100644 index a6197dec86..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/jsp_elparseexc_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - ELParseException - - 5 - - diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/URLClientIT.java b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/URLClientIT.java deleted file mode 100644 index 2ebba4db8b..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/URLClientIT.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2007, 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0, which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the - * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - * version 2 with the GNU Classpath Exception, which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - */ - -/* - * $Id$ - */ - -package com.sun.ts.tests.jsp.api.jakarta_servlet.jsp.el.expression; - - -import com.sun.ts.tests.jsp.common.client.AbstractUrlClient; -import com.sun.ts.tests.jsp.common.util.JspTestUtil; -import com.sun.ts.tests.jsp.common.util.TSFunctionMapper; -import com.sun.ts.tests.jsp.common.util.JspFunctions; - -import java.io.IOException; -import java.io.InputStream; - -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit5.ArquillianExtension; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.jboss.shrinkwrap.api.asset.UrlAsset; - - -@ExtendWith(ArquillianExtension.class) -public class URLClientIT extends AbstractUrlClient { - - - - - public URLClientIT() throws Exception { - - setContextRoot("/jsp_expr_web"); - setTestJsp("ExpressionTest"); - - } - - @Deployment(testable = false) - public static WebArchive createDeployment() throws IOException { - - String packagePath = URLClientIT.class.getPackageName().replace(".", "/"); - WebArchive archive = ShrinkWrap.create(WebArchive.class, "jsp_expr_web.war"); - archive.addClasses( - JspTestUtil.class, - TSFunctionMapper.class, - JspFunctions.class); -archive.setWebXML(URLClientIT.class.getClassLoader().getResource(packagePath+"/jsp_expr_web.xml")); - archive.add(new UrlAsset(URLClientIT.class.getClassLoader().getResource(packagePath+"/ExpressionTest.jsp")), "ExpressionTest.jsp"); - - - return archive; - } - - - /* Run tests */ - - // ============================================ Tests ====== - - /* - * @testName: expressionEvaluateTest - * - * @assertion_ids: JSP:JAVADOC:174 - * - * @test_Strategy: Validate the behavior of Expression.evaluate(). - */ - @Test - public void expressionEvaluateTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "expressionEvaluateTest"); - invoke(); - } -} diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/build.xml b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/build.xml deleted file mode 100644 index 98e0f722db..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/build.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/jsp_expr_web.xml b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/jsp_expr_web.xml deleted file mode 100644 index 7ba5c0055a..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/jsp_expr_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - Expression - - 5 - - diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/URLClientIT.java b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/URLClientIT.java deleted file mode 100644 index d4548bf62b..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/URLClientIT.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2007, 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0, which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the - * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - * version 2 with the GNU Classpath Exception, which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - */ - -/* - * $Id$ - */ - -package com.sun.ts.tests.jsp.api.jakarta_servlet.jsp.el.expressionevaluator; - - -import com.sun.ts.tests.jsp.common.client.AbstractUrlClient; -import com.sun.ts.tests.jsp.common.util.JspTestUtil; -import com.sun.ts.tests.jsp.common.util.TSFunctionMapper; -import com.sun.ts.tests.jsp.common.util.JspFunctions; - -import java.io.IOException; -import java.io.InputStream; - -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit5.ArquillianExtension; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.jboss.shrinkwrap.api.asset.UrlAsset; - - -@ExtendWith(ArquillianExtension.class) -public class URLClientIT extends AbstractUrlClient { - - - public URLClientIT() throws Exception { - - setContextRoot("/jsp_expreval_web"); - setTestJsp("ExpressionEvaluatorTest"); - - } - - @Deployment(testable = false) - public static WebArchive createDeployment() throws IOException { - - String packagePath = URLClientIT.class.getPackageName().replace(".", "/"); - WebArchive archive = ShrinkWrap.create(WebArchive.class, "jsp_expreval_web.war"); - archive.addClasses( - JspTestUtil.class, - TSFunctionMapper.class, - JspFunctions.class); - archive.setWebXML(URLClientIT.class.getClassLoader().getResource(packagePath+"/jsp_expreval_web.xml")); - archive.add(new UrlAsset(URLClientIT.class.getClassLoader().getResource(packagePath+"/ExpressionEvaluatorTest.jsp")), "ExpressionEvaluatorTest.jsp"); - - - return archive; - } - - - /* Run tests */ - - // ============================================ Tests ====== - - /* - * @testName: expressionEvaluatorParseExpressionTest - * - * @assertion_ids: JSP:JAVADOC:168 - * - * @test_Strategy: Validate the following: - An expression can be prepared - * using a FunctionMapper. - An expression can be prepared passing a null - * reference for the FunctionMapper - If the expression uses a function an no - * prefix is provided, the default prefix will be used. - */ - @Test - public void expressionEvaluatorParseExpressionTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "expressionEvaluatorParseExpressionTest"); - invoke(); - } - - /* - * @testName: expressionEvaluatorEvaluateTest - * - * @assertion_ids: JSP:JAVADOC:171;JSP:JAVADOC:165 - * - * @test_Strategy: Validate the following: - Evaluation can occur using a - * FunctionMapper. - Evaluation can occur when a null reference passed as the - * FunctionMapper - If the expression uses a function an no prefix is - * provided, the default prefix will be used. - When the FunctionMapper is - * used, the resolveFunction method must be called. - Validate the the - * provided VariableResolver is used. - Validate the result of the - * expressions. - */ - @Test - public void expressionEvaluatorEvaluateTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "expressionEvaluatorEvaluateTest"); - invoke(); - } -} diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/build.xml b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/build.xml deleted file mode 100644 index b2c0c59136..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/build.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/jsp_expreval_web.xml b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/jsp_expreval_web.xml deleted file mode 100644 index 011f0c5eeb..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/jsp_expreval_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - ExpressionEvaluator - - 5 - - diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/URLClientIT.java b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/URLClientIT.java deleted file mode 100644 index 4dd8531ec6..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/URLClientIT.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2007, 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0, which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the - * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - * version 2 with the GNU Classpath Exception, which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - */ - -/* - * $Id$ - */ - -package com.sun.ts.tests.jsp.api.jakarta_servlet.jsp.el.variableresolver; - - -import com.sun.ts.tests.jsp.common.client.AbstractUrlClient; -import com.sun.ts.tests.jsp.common.util.JspTestUtil; -import com.sun.ts.tests.jsp.common.tags.tck.SetTag; -import com.sun.ts.tests.common.el.api.expression.ExpressionTest; - -import java.io.IOException; -import java.io.InputStream; - -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit5.ArquillianExtension; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.jboss.shrinkwrap.api.asset.UrlAsset; - - -@ExtendWith(ArquillianExtension.class) -public class URLClientIT extends AbstractUrlClient { - - - - - public URLClientIT() throws Exception { - - setContextRoot("/jsp_varresolver_web"); - setTestJsp("VariableResolverTest"); - - } - - @Deployment(testable = false) - public static WebArchive createDeployment() throws IOException { - - String packagePath = URLClientIT.class.getPackageName().replace(".", "/"); - WebArchive archive = ShrinkWrap.create(WebArchive.class, "jsp_varresolver_web.war"); - archive.addClasses( - JspTestUtil.class, - SetTag.class, - ExpressionTest.class); - archive.setWebXML(URLClientIT.class.getClassLoader().getResource(packagePath+"/jsp_varresolver_web.xml")); - archive.add(new UrlAsset(URLClientIT.class.getClassLoader().getResource(packagePath+"/VariableResolverTest.jsp")), "VariableResolverTest.jsp"); - - - return archive; - } - - - /* Run tests */ - - // ============================================ Tests ====== - - /* - * @testName: variableResolverResolveVariableTest - * - * @assertion_ids: JSP:JAVADOC:384 - * - * @test_Strategy: Validate behavior of VariableResolver.resolveVariable(). - */ - @Test - public void variableResolverResolveVariableTest() throws Exception { - TEST_PROPS.setProperty(APITEST, "variableResolverResolveVariableTest"); - invoke(); - } -} diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/build.xml b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/build.xml deleted file mode 100644 index 9fe37d13c5..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/build.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/jsp_varresolver_web.xml b/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/jsp_varresolver_web.xml deleted file mode 100644 index 59006b8121..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/jsp_varresolver_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - VariableResolver - - 5 - - diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspResolverTest.java b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspResolverTest.java index 9cb45afa82..f051d0da5a 100644 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspResolverTest.java +++ b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspResolverTest.java @@ -131,24 +131,25 @@ public static boolean testImplicitObjELResolver(ELContext elContext, buf.append("getCommonPropertyType() returns Class java.lang.String\n"); } + // avoid the usage of removed method getFeatureDescriptors from EL 6.0(EE11) // getFeatureDescriptors() - elContext.setPropertyResolved(false); - Iterator i = resolver.getFeatureDescriptors(elContext, base); - if (base != null) { - if (i == null) { - buf.append("getFeatureDescriptors() returned null for "); - buf.append("a non-null base as expected\n"); - } else { - buf.append("getFeatureDescriptors() returned non-null "); - buf.append("value for a non-null base\n"); - pass = false; - } - } else { - boolean fdPass = ResolverTest.testFeatureDescriptors(i, resolver, base, - buf); - if (!fdPass) - pass = false; - } + // elContext.setPropertyResolved(false); + // Iterator i = resolver.getFeatureDescriptors(elContext, base); + // if (base != null) { + // if (i == null) { + // buf.append("getFeatureDescriptors() returned null for "); + // buf.append("a non-null base as expected\n"); + // } else { + // buf.append("getFeatureDescriptors() returned non-null "); + // buf.append("value for a non-null base\n"); + // pass = false; + // } + // } else { + // boolean fdPass = ResolverTest.testFeatureDescriptors(i, resolver, base, + // buf); + // if (!fdPass) + // pass = false; + // } return pass; } @@ -249,24 +250,25 @@ public static boolean testScopedAttrELResolver(ELContext elContext, buf.append("getCommonPropertyType() returns Class java.lang.String\n"); } + // avoid the usage of removed method getFeatureDescriptors from EL 6.0(EE11) // getFeatureDescriptors() - elContext.setPropertyResolved(false); - Iterator i = resolver.getFeatureDescriptors(elContext, base); - if (base != null) { - if (i == null) { - buf.append("getFeatureDescriptors() returned null for "); - buf.append("a non-null base as expected\n"); - } else { - buf.append("getFeatureDescriptors() returned non-null "); - buf.append("value for a non-null base\n"); - pass = false; - } - } else { - boolean fdPass = ResolverTest.testFeatureDescriptors(i, resolver, base, - buf); - if (!fdPass) - pass = false; - } + // elContext.setPropertyResolved(false); + // Iterator i = resolver.getFeatureDescriptors(elContext, base); + // if (base != null) { + // if (i == null) { + // buf.append("getFeatureDescriptors() returned null for "); + // buf.append("a non-null base as expected\n"); + // } else { + // buf.append("getFeatureDescriptors() returned non-null "); + // buf.append("value for a non-null base\n"); + // pass = false; + // } + // } else { + // boolean fdPass = ResolverTest.testFeatureDescriptors(i, resolver, base, + // buf); + // if (!fdPass) + // pass = false; + // } return pass; } } diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspTestUtil.java b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspTestUtil.java index 46cb325c66..8953af3d83 100644 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspTestUtil.java +++ b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspTestUtil.java @@ -39,12 +39,12 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.jsp.JspWriter; import jakarta.servlet.jsp.PageContext; -import jakarta.servlet.jsp.el.ELException; import jakarta.servlet.jsp.tagext.BodyTag; import jakarta.servlet.jsp.tagext.IterationTag; import jakarta.servlet.jsp.tagext.Tag; import jakarta.servlet.jsp.tagext.ValidationMessage; - +//replacing the removed jakarta.servlet.jsp.el.ELException class from JSP 4.0 +import jakarta.el.ELException; /** * JSP TCK Utility class. */ @@ -122,7 +122,7 @@ public static void handleThrowable(Throwable t, JspWriter out, out.println("Type: " + t.getClass().getName()); out.println("Message: " + t.getMessage()); if (t instanceof ELException) { - Throwable sub = ((ELException) t).getRootCause(); + Throwable sub = ((ELException) t).getCause(); if (sub != null) { out.println("Root Cause: " + sub); out.println("Root Cause Message: " + sub.getMessage()); diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/SimpleContext.java b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/SimpleContext.java index 1b68f0f70e..bb6e676a37 100644 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/SimpleContext.java +++ b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/SimpleContext.java @@ -32,8 +32,6 @@ import jakarta.servlet.http.HttpSession; import jakarta.servlet.jsp.JspWriter; import jakarta.servlet.jsp.PageContext; -import jakarta.servlet.jsp.el.ExpressionEvaluator; -import jakarta.servlet.jsp.el.VariableResolver; /** * Simple class to validate release is called on the PageContext object provide @@ -115,24 +113,6 @@ public HttpSession getSession() { return null; } - /** - * Returns null. - * - * @return null - */ - public VariableResolver getVariableResolver() { - return null; - } - - /** - * Returns null. - * - * @return null - */ - public ExpressionEvaluator getExpressionEvaluator() { - return null; - } - /** * Returns null. * diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/TSFunctionMapper.java b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/TSFunctionMapper.java deleted file mode 100644 index 435d73c6c5..0000000000 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/TSFunctionMapper.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2007, 2020 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0, which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * This Source Code may also be made available under the following Secondary - * Licenses when the conditions for such availability set forth in the - * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - * version 2 with the GNU Classpath Exception, which is available at - * https://www.gnu.org/software/classpath/license.html. - * - * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - */ - -/* - * $Id$ - */ - -package com.sun.ts.tests.jsp.common.util; - -import java.lang.reflect.Method; - -import jakarta.servlet.jsp.el.FunctionMapper; - -/** - * Simple Function mapper. - */ - -public class TSFunctionMapper implements FunctionMapper { - - private boolean _resolveCalled = false; - - private String _prefixUsed = null; - - private String _methodCalled = null; - - private static final Class FUNCTIONS = com.sun.ts.tests.jsp.common.util.JspFunctions.class; - - /** - * Creates a new FuntionMapper instance. - */ - public TSFunctionMapper() { - } - - /** - * Resolves the specified local name and prefix into a java.lang.Method. - * Returns null if the prefix and local name are not found. - * - * This class does nothing more than perform refection against the - * JspFunctions class and return the methods. - * - * @param prefix - * - method refernce prefix - * @param localName - * - local name to identify the method - * @return - Resolve function as a java.lang.Method or null if unresolvable. - */ - public Method resolveFunction(String prefix, String localName) { - System.out.println("FUNCTION MAPPER CALLED"); - _resolveCalled = true; - _prefixUsed = prefix; - _methodCalled = localName; - if (prefix != null || localName != null) { - try { - System.out.println("RETURNING METHOD"); - Method meth = FUNCTIONS.getMethod(localName, - new Class[] { java.lang.String.class }); - return meth; - } catch (Throwable t) { - return null; - } - } - return null; - } - - /** - * Has the resolveFunction method been called? - * - * @return - true if resolveFunction has been called otherwise false. - */ - public boolean hasResolved() { - return _resolveCalled; - } - - /** - * Returns the prefix provided to the resolveFunction call. - * - * @return the prefix of the most recent resolveFunction call - */ - public String getPrefixUsed() { - return _prefixUsed; - } - - /** - * Returns the method provided to the resolveFunction call. - * - * @return the method of the most recent resolveFunction call - */ - public String getMethodCalled() { - return _methodCalled; - } - - /** - * Resets the state of this FunctionMapper - */ - public void reset() { - _resolveCalled = false; - _prefixUsed = null; - _methodCalled = null; - } - -} diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/ELExceptionTest.jsp b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/ELExceptionTest.jsp deleted file mode 100644 index 145689b7b1..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/ELExceptionTest.jsp +++ /dev/null @@ -1,159 +0,0 @@ -<%-- - - Copyright (c) 2003, 2020 Oracle and/or its affiliates. All rights reserved. - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License v. 2.0, which is available at - http://www.eclipse.org/legal/epl-2.0. - - This Source Code may also be made available under the following Secondary - Licenses when the conditions for such availability set forth in the - Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - version 2 with the GNU Classpath Exception, which is available at - https://www.gnu.org/software/classpath/license.html. - - SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - ---%> - -<%@ page import="com.sun.ts.tests.jsp.common.util.JspTestUtil, - java.io.IOException, - jakarta.servlet.jsp.el.ELException, - java.io.PrintWriter" %> -<%@ page contentType="text/plain" %> - -<%-- Begin test definitions --%> - -<%! - public void elExceptionDefaultCtorTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - ELException ee = new ELException(); - if (ee != null) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. No Exception created."); - } - } -%> - -<%! - public void elExceptionMessageCtorTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - ELException ee = new ELException("Exception Message"); - if (ee != null) { - String message = ee.getMessage(); - if (message != null && message.equals("Exception Message")) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. Expected a message of 'Exception Message'"); - out.println("Received: " + message); - } - } else { - out.println("Test FAILED. No Exception created."); - } - } -%> - -<%! - public void elExceptionCauseCtorTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - ELException ee = new ELException(new NullPointerException()); - if (ee != null) { - Throwable t = ee.getRootCause(); - if (t != null && t instanceof NullPointerException) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. Expected a Throwable of type NullPointerException"); - out.println("Received: " + t); - } - } else { - out.println("Test FAILED. No Exception created."); - } - } -%> - -<%! - public void elExceptionCauseMessageCtorTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - ELException ee = new ELException("Exception Message", - new ServletException()); - if (ee != null) { - String message = ee.getMessage(); - if (message != null && message.equals("Exception Message")) { - Throwable t = ee.getRootCause(); - if (t != null && t instanceof ServletException) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. Expected a Throwable of type ServletException"); - out.println("Received: " + t); - } - } else { - out.println("Test FAILED. Expected a message of 'Exception Message'"); - out.println("Received: " + message); - } - } else { - out.println("Test FAILED. No Exception created."); - } - } -%> - -<%! - public void elExceptionGetRootCauseTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - ELException ee = new ELException(new ServletException()); - ELException ee1 = new ELException("exception", new NullPointerException()); - - Throwable t = ee.getRootCause(); - Throwable t1 = ee1.getRootCause(); - if (t != null) { - if (t instanceof ServletException) { - if (t1 != null) { - if (t1 instanceof NullPointerException) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. ELException.getRootCause returned unexpected" + - " exception: " + t.getClass().getName()); - out.println("Expected: NullPointerException"); - } - } else { - out.println("Test FAILED. ELException.getRootCause returned null."); - } - } else { - out.println("Test FAILED. ELException.getRootCause returned unexpected" + - " exception: " + t.getClass().getName()); - out.println("Expected: ServletException"); - } - } else { - out.println("Test FAILED. ELException.getRootCause returned null."); - } - } -%> - -<%! - public void elExceptionToStringTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - ELException ee = new ELException(); - String str = ee.toString(); - if (str != null) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. Result of ELException.toString() was null."); - } - } -%> - -<%-- Test invocation --%> - -<% JspTestUtil.invokeTest(this, request, response, out); %> diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/jsp_elexc_web.xml b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/jsp_elexc_web.xml deleted file mode 100644 index 0f4155484a..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elexception/jsp_elexc_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - ELException - - 5 - - diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/ELParseExceptionTest.jsp b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/ELParseExceptionTest.jsp deleted file mode 100644 index 61268b599c..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/ELParseExceptionTest.jsp +++ /dev/null @@ -1,64 +0,0 @@ -<%-- - - Copyright (c) 2003, 2020 Oracle and/or its affiliates. All rights reserved. - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License v. 2.0, which is available at - http://www.eclipse.org/legal/epl-2.0. - - This Source Code may also be made available under the following Secondary - Licenses when the conditions for such availability set forth in the - Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - version 2 with the GNU Classpath Exception, which is available at - https://www.gnu.org/software/classpath/license.html. - - SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - ---%> - -<%@ page import="com.sun.ts.tests.jsp.common.util.JspTestUtil, - java.io.IOException, - jakarta.servlet.jsp.el.ELParseException" %> -<%@ page contentType="text/plain" %> - -<%-- Begin test definitions --%> - -<%! - public void elParseExceptionDefaultCtorTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - ELParseException epe = new ELParseException(); - if (epe != null) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. Unable to create an ELParseException" + - " with the default constructor."); - } - - } -%> - -<%! - public void elParseExceptionMessageCtorTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - ELParseException epe = new ELParseException("message"); - if (epe != null) { - String epeMess = epe.getMessage(); - if (epeMess.equals("message")) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. Unexpected message returned by " + - "ELParseException.getMessage(). \nExpected 'message'"); - out.println("Received: " + epeMess); - } - } else { - out.println("Test FAILED. Unable to create an ELParseException" + - " with the default constructor."); - } - } -%> - -<% JspTestUtil.invokeTest(this, request, response, out); %> diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/jsp_elparseexc_web.xml b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/jsp_elparseexc_web.xml deleted file mode 100644 index a6197dec86..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/elparseexception/jsp_elparseexc_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - ELParseException - - 5 - - diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/ExpressionTest.jsp b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/ExpressionTest.jsp deleted file mode 100644 index 284af93bbf..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/ExpressionTest.jsp +++ /dev/null @@ -1,134 +0,0 @@ -<%-- - - Copyright (c) 2003, 2020 Oracle and/or its affiliates. All rights reserved. - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License v. 2.0, which is available at - http://www.eclipse.org/legal/epl-2.0. - - This Source Code may also be made available under the following Secondary - Licenses when the conditions for such availability set forth in the - Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - version 2 with the GNU Classpath Exception, which is available at - https://www.gnu.org/software/classpath/license.html. - - SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - ---%> - -<%@ page import="com.sun.ts.tests.jsp.common.util.JspTestUtil, - java.io.IOException, - jakarta.servlet.jsp.el.ExpressionEvaluator, - com.sun.ts.tests.jsp.common.util.TSFunctionMapper, - jakarta.servlet.jsp.el.Expression, - jakarta.servlet.jsp.el.ELException, - jakarta.servlet.jsp.el.VariableResolver, - java.io.PrintWriter"%> -<%@ page contentType="text/plain" %> - -<%! - private static final String PAGECONTEXT_ATTR = - "com.sun.ts.tests.jsp.api.pageContext"; - private static final String QUAL_METHOD_EXPR = - "${ns:lowerCase('STRING')}"; - private static final String UNQUAL_METHOD_EXPR = - "${lowerCase('STRING')}"; - private static final String VARIABLE_EXPR = - "${requestScope['com.sun.ts.tests.jsp.api.pageContext']}"; -%> - -<%-- Begin test definitions --%> - -<%! - public void expressionEvaluateTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - PageContext pc = (PageContext) req.getAttribute(PAGECONTEXT_ATTR); - if (pc != null) { - TSFunctionMapper mapper = new TSFunctionMapper(); - ExpressionEvaluator eval = pc.getExpressionEvaluator(); - VariableResolver resolver = pc.getVariableResolver(); - if (eval != null) { - try { - Expression expr = eval.parseExpression(QUAL_METHOD_EXPR, - java.lang.String.class, mapper); - - if (expr != null) { - String result = (String) expr.evaluate(resolver); - - if (result != null) { - if (result.equals("string")) { - try { - Expression expr2 = eval.parseExpression(VARIABLE_EXPR, - jakarta.servlet.jsp.PageContext.class, null); - if (expr2 != null) { - - PageContext pageContext = (PageContext) expr2.evaluate(resolver); - if (pageContext != pc) { - out.println("Test FAILED. Resolution didn't return expected value."); - out.println("PageContext returned is not the same instance as expected."); - } - try { - mapper.reset(); - Expression expr3 = eval.parseExpression(UNQUAL_METHOD_EXPR, - java.lang.String.class, mapper); - if (expr3 != null) { - result = (String) expr3.evaluate(resolver); - if (result != null) { - if (result.equals("string")) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. (l3) Expression evaluation returned unexpected value."); - out.println("Expected 'string', received '" + result + "'"); - return; - } - } else { - out.println("Test FAILED. (l3) Expression evaluation returned null."); - } - } else { - out.println("Test FAILED. (l3) ExpressionEvaluator.parseExpression" + - " returned null."); - } - } catch (ELException ele) { - JspTestUtil.handleThrowable(ele, out, "(l3)"); - return; - } - } else { - out.println("Test FAILED. (l2) ExpressionEvaluator returned null."); - } - } catch (Throwable t) { - JspTestUtil.handleThrowable(t, out, "(l2)"); - return; - } - } else { - out.println("Test FAILED. (l1) Expression evaluation returned unexpected result."); - out.println("Expected 'string', Received '" + result + "'"); - } - } else { - out.println("Test FAILED. (l1) Expression evaluation returned null."); - } - } else { - out.println("Test FAILED. (l1) ExpressionEvaluator.parseExpression" + - "returned null."); - } - } catch (ELException ele) { - JspTestUtil.handleThrowable(ele, out, "(l1)"); - return; - } - } else { - out.println("Unable to obtain ExpressionEvaluator"); - } - } else { - out.println("Test FAILED. Unable to obtain PageContext."); - } - } -%> - - -<%-- test invocation --%> - -<% - request.setAttribute(PAGECONTEXT_ATTR, pageContext); - JspTestUtil.invokeTest(this, request, response, out); -%> diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/jsp_expr_web.xml b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/jsp_expr_web.xml deleted file mode 100644 index 7ba5c0055a..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expression/jsp_expr_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - Expression - - 5 - - diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/ExpressionEvaluatorTest.jsp b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/ExpressionEvaluatorTest.jsp deleted file mode 100644 index 3a9cc801ba..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/ExpressionEvaluatorTest.jsp +++ /dev/null @@ -1,227 +0,0 @@ -<%-- - - Copyright (c) 2003, 2020 Oracle and/or its affiliates. All rights reserved. - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License v. 2.0, which is available at - http://www.eclipse.org/legal/epl-2.0. - - This Source Code may also be made available under the following Secondary - Licenses when the conditions for such availability set forth in the - Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - version 2 with the GNU Classpath Exception, which is available at - https://www.gnu.org/software/classpath/license.html. - - SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - ---%> - -<%@ page import="com.sun.ts.tests.jsp.common.util.JspTestUtil, - java.io.IOException, - jakarta.servlet.jsp.el.ExpressionEvaluator, - com.sun.ts.tests.jsp.common.util.TSFunctionMapper, - jakarta.servlet.jsp.el.Expression, - jakarta.servlet.jsp.el.ELException, - jakarta.servlet.jsp.el.VariableResolver, - java.io.PrintWriter"%> -<%@ page contentType="text/plain" %> - -<%! - private static final String PAGECONTEXT_ATTR = - "com.sun.ts.tests.jsp.api.pageContext"; - private static final String QUAL_METHOD_EXPR = - "${ns:lowerCase('STRING')}"; - private static final String UNQUAL_METHOD_EXPR = - "${lowerCase('STRING')}"; - private static final String DEFAULT_PREFIX =""; - private static final String METHOD_PREFIX = "ns"; - private static final String METHOD_NAME = "lowerCase"; - private static final String VARIABLE_EXPR = - "${requestScope['com.sun.ts.tests.jsp.api.pageContext']}"; -%> - -<%-- Begin test definitions --%> - -<%! - public void expressionEvaluatorParseExpressionTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - PageContext pc = (PageContext) req.getAttribute(PAGECONTEXT_ATTR); - if (pc != null) { - TSFunctionMapper mapper = new TSFunctionMapper(); - ExpressionEvaluator eval = pc.getExpressionEvaluator(); - if (eval != null) { - try { - Expression expr = eval.parseExpression(QUAL_METHOD_EXPR, - java.lang.String.class, mapper); - if (expr != null) { - try { - Expression expr2 = eval.parseExpression(VARIABLE_EXPR, - jakarta.servlet.jsp.PageContext.class, null); - if (expr2 != null) { - try { - Expression expr3 = eval.parseExpression(UNQUAL_METHOD_EXPR, - java.lang.String.class, mapper); - if (expr3 != null) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. (l3) ExpressionEvaluator.parseExpression" + - " returned null."); - } - } catch (ELException ele) { - JspTestUtil.handleThrowable(ele, out, "(l3)"); - return; - } - } else { - out.println("Test FAILED. (l2) ExpressionEvaluator.parseExpression" + - " returned null."); - } - } catch (Throwable t) { - JspTestUtil.handleThrowable(t, out, "(l2)"); - return; - } - - } else { - out.println("Test FAILED. (l1) ExpressionEvaluator.parseExpression" + - " returned null."); - } - } catch (ELException ele) { - JspTestUtil.handleThrowable(ele, out, "(l1)"); - return; - } - } - } else { - out.println("Test FAILED. Unable to obtain PageContext."); - } - } -%> - -<%! - public void expressionEvaluatorEvaluateTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - PageContext pc = (PageContext) req.getAttribute(PAGECONTEXT_ATTR); - if (pc != null) { - ExpressionEvaluator eval = pc.getExpressionEvaluator(); - VariableResolver resolver = pc.getVariableResolver(); - if (eval != null) { - TSFunctionMapper mapper = new TSFunctionMapper(); - - // first part of this test will validate that - // the FunctionMapper is used property during - // the evaluation of the expression. - try { - Object o1 = eval.evaluate(QUAL_METHOD_EXPR, - java.lang.String.class, resolver, mapper); - if (!mapper.hasResolved()) { - out.println("Test FAILED. FunctionMapper.resolveFunction" + - " was not called on the provided FunctionMapper (l1)."); - return; - } - String prefix = mapper.getPrefixUsed(); - String method = mapper.getMethodCalled(); - - if (prefix == null || !prefix.equals(METHOD_PREFIX)) { - out.println("Test FAILED. FunctionMapper called with " + - "unexpected prefix: " + prefix + ". Expected 'ns'."); - return; - } - - if (method == null || !method.equals(METHOD_NAME)) { - out.println("Test FAILED. FunctionMapper called with " + - "unexpected method: " + method + ". Expected: lowerCase"); - return; - } - - if (o1 != null) { - - if (!o1.equals("string")) { - out.println("Test FAILED. (o1) Method return value was incorrect."); - out.println("Expected 'string', received: '" + o1.toString() +"'"); - return; - } - // next verify that a null FunctionMapper can be - // passed without an Exception occuring. This also - // validates that the VariableResolver is used properly. - try { - Object o2 = eval.evaluate(VARIABLE_EXPR, - jakarta.servlet.jsp.PageContext.class, resolver, null); - if (o2 != null) { - if (o2 != pc) { - out.println("Test FAILED. Variable resolution and thus expression evaluation failed."); - out.println("The request scoped PageContext returned by expression was not correct."); - return; - } - // next verify that the default namespace is used - // if no namespace is provided. - try { - mapper.reset(); - Object o3 = eval.evaluate(UNQUAL_METHOD_EXPR, - java.lang.String.class, resolver, mapper); - if (!mapper.hasResolved()) { - out.println("Test FAILED. FunctionMapper.resolveFunction" + - " was not called on the provided FunctionMapper (l2)."); - return; - } - - prefix = mapper.getPrefixUsed(); - method = mapper.getMethodCalled(); - - if (prefix == null || !prefix.equals(DEFAULT_PREFIX)) { - out.println("Test FAILED. FunctionMapper called with " + - "unexpected prefix: '" + prefix + "'. Expected ''."); - return; - } - - if (method == null || !method.equals(METHOD_NAME)) { - out.println("Test FAILED. FunctionMapper called with " + - "unexpected method: '" + method + "'. Expected 'lowerCase'."); - return; - } - - if (o3 != null) { - if (o3.equals("string")) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. (o3) Method return value was incorrect."); - out.println("Expected 'meth', received: '" + o3.toString() + "'"); - return; - } - } else { - out.println("Test FAILED. Null expression (expr2) returned."); - } - } catch (ELException ele) { - JspTestUtil.handleThrowable(ele, out, "(l3)"); - return; - } - } else { - out.println("Test FAILED. Null expression (expr1) returned."); - } - } catch (Throwable t) { - JspTestUtil.handleThrowable(t, out, "(l2)"); - return; - } - } else { - out.println("Test FAILED. Null expression (expr) returned."); - } - } catch (ELException ele) { - JspTestUtil.handleThrowable(ele, out, "(l1)"); - return; - } - } else { - out.println("Test FAILED. Unable to obtain ExpressionEvaluator."); - } - } else { - out.println("Test FAILED. Unable to obtain PageContext."); - } - } -%> - -<%-- test invocation --%> - -<% - request.setAttribute(PAGECONTEXT_ATTR, pageContext); - JspTestUtil.invokeTest(this, request, response, out); -%> diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/jsp_expreval_web.xml b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/jsp_expreval_web.xml deleted file mode 100644 index 011f0c5eeb..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/expressionevaluator/jsp_expreval_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - ExpressionEvaluator - - 5 - - diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/VariableResolverTest.jsp b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/VariableResolverTest.jsp deleted file mode 100644 index c0c678b417..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/VariableResolverTest.jsp +++ /dev/null @@ -1,97 +0,0 @@ -<%-- - - Copyright (c) 2003, 2018 Oracle and/or its affiliates. All rights reserved. - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License v. 2.0, which is available at - http://www.eclipse.org/legal/epl-2.0. - - This Source Code may also be made available under the following Secondary - Licenses when the conditions for such availability set forth in the - Eclipse Public License v. 2.0 are satisfied: GNU General Public License, - version 2 with the GNU Classpath Exception, which is available at - https://www.gnu.org/software/classpath/license.html. - - SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 - ---%> - -<%@ page import="com.sun.ts.tests.jsp.common.util.JspTestUtil, - java.io.IOException, - jakarta.servlet.jsp.el.VariableResolver, - jakarta.servlet.jsp.el.ELException" %> -<%@ page contentType="text/plain" %> - -<%! - private static final String PAGECONTEXT_ATTR = - "com.sun.ts.tests.jsp.api.pageContext"; -%> - -<%-- Begin test definitions --%> - -<%! - public void variableResolverResolveVariableTest(HttpServletRequest req, - HttpServletResponse res, - JspWriter out) - throws ServletException, IOException { - PageContext pc = (PageContext) req.getAttribute(PAGECONTEXT_ATTR); - if (pc != null) { - pc.setAttribute("myObj", "value"); - pc.setAttribute("myObj1", "value", PageContext.REQUEST_SCOPE); - VariableResolver resolver = pc.getVariableResolver(); - if (resolver != null) { - try { - String res1 = (String) - resolver.resolveVariable("myObj"); - if (res1.equals("value")) { - try { - String res2 = (String) - resolver.resolveVariable("myObj1"); - if (res2.equals("value")) { - try { - Object res3 = resolver.resolveVariable( - "com.sun.ts.tests.jsp.api.nonAttr"); - if (res3 == null) { - out.println("Test PASSED"); - } else { - out.println("Test FAILED. Expected null, but " + - "VariableResolver returned a non-null value."); - } - } catch (ELException elenn) { - out.println("Test FAILED. Unexpected Exception."); - } - - } else { - out.println("Test FAILED. Resolution failed."); - out.println("Expected a value of 'value'"); - out.println("Received: " + res2); - } - } catch (ELException elen) { - out.println("Test FAILED. Unable to resolve 'myObj1'"); - return; - } - } else { - out.println("Test FAILED. Resolution failed."); - out.println("Expected a value of 'value'"); - out.println("Received: " + res1); - } - } catch (ELException ele) { - out.println("Test FAILED. Unable to resolve 'myObj'"); - return; - } - } else { - out.println("Test FAILED. VariableResolver was null"); - } - } else { - out.println("Test FAILED. Unable to obtain PageContext."); - } - } -%> - - -<%-- Test invocation --%> - -<% - request.setAttribute(PAGECONTEXT_ATTR, pageContext); - JspTestUtil.invokeTest(this, request, response, out); -%> diff --git a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/jsp_varresolver_web.xml b/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/jsp_varresolver_web.xml deleted file mode 100644 index 59006b8121..0000000000 --- a/jsp/src/main/resources/com/sun/ts/tests/jsp/api/jakarta_servlet/jsp/el/variableresolver/jsp_varresolver_web.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - VariableResolver - - 5 - - From 5899213fe4373bb5959aaa7976786e97e4ade27b Mon Sep 17 00:00:00 2001 From: Alwin Joseph Date: Wed, 17 Jan 2024 13:31:20 +0530 Subject: [PATCH 2/4] remove instead of commenting the getFeatureDescriptors() usage --- .../jsp/common/util/JspResolverTest.java | 38 ------------------- 1 file changed, 38 deletions(-) diff --git a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspResolverTest.java b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspResolverTest.java index f051d0da5a..9bc7fdb846 100644 --- a/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspResolverTest.java +++ b/jsp/src/main/java/com/sun/ts/tests/jsp/common/util/JspResolverTest.java @@ -131,25 +131,6 @@ public static boolean testImplicitObjELResolver(ELContext elContext, buf.append("getCommonPropertyType() returns Class java.lang.String\n"); } - // avoid the usage of removed method getFeatureDescriptors from EL 6.0(EE11) - // getFeatureDescriptors() - // elContext.setPropertyResolved(false); - // Iterator i = resolver.getFeatureDescriptors(elContext, base); - // if (base != null) { - // if (i == null) { - // buf.append("getFeatureDescriptors() returned null for "); - // buf.append("a non-null base as expected\n"); - // } else { - // buf.append("getFeatureDescriptors() returned non-null "); - // buf.append("value for a non-null base\n"); - // pass = false; - // } - // } else { - // boolean fdPass = ResolverTest.testFeatureDescriptors(i, resolver, base, - // buf); - // if (!fdPass) - // pass = false; - // } return pass; } @@ -250,25 +231,6 @@ public static boolean testScopedAttrELResolver(ELContext elContext, buf.append("getCommonPropertyType() returns Class java.lang.String\n"); } - // avoid the usage of removed method getFeatureDescriptors from EL 6.0(EE11) - // getFeatureDescriptors() - // elContext.setPropertyResolved(false); - // Iterator i = resolver.getFeatureDescriptors(elContext, base); - // if (base != null) { - // if (i == null) { - // buf.append("getFeatureDescriptors() returned null for "); - // buf.append("a non-null base as expected\n"); - // } else { - // buf.append("getFeatureDescriptors() returned non-null "); - // buf.append("value for a non-null base\n"); - // pass = false; - // } - // } else { - // boolean fdPass = ResolverTest.testFeatureDescriptors(i, resolver, base, - // buf); - // if (!fdPass) - // pass = false; - // } return pass; } } From 2a3ec563dc37792f068bbad79084b895ea0fdb61 Mon Sep 17 00:00:00 2001 From: Alwin Joseph Date: Thu, 18 Jan 2024 19:24:43 +0530 Subject: [PATCH 3/4] copy jsp documentation from 3.1, bundle assembly --- .../JakartaServerPages3.1-ReleaseNotes.html | 97 + .../JakartaServerPagesJavadocAssertions.html | 4607 +++++++++++++++ .../JakartaServerPagesSpecAssertions.html | 4997 +++++++++++++++++ jsp/docs/index.html | 83 + jsp/docs/userguide/README.md | 77 + jsp/docs/userguide/pom.xml | 259 + .../userguide/src/main/jbake/assets/README.md | 4 + .../src/main/jbake/assets/_config.yml | 15 + .../src/main/jbake/assets/css/style.css | 313 ++ .../img/eclipse_foundation_logo_tiny.png | Bin 0 -> 3612 bytes .../userguide/src/main/jbake/content/README | 77 + .../src/main/jbake/content/attributes.conf | 37 + .../src/main/jbake/content/config.adoc | 353 ++ .../src/main/jbake/content/config.inc | 165 + .../src/main/jbake/content/debug-tips.inc | 0 .../src/main/jbake/content/debug.adoc | 174 + .../src/main/jbake/content/defns.inc | 6 + .../userguide/src/main/jbake/content/faq.adoc | 62 + .../main/jbake/content/install-server-vi.inc | 2 + .../src/main/jbake/content/install-server.inc | 8 + .../src/main/jbake/content/install.adoc | 86 + .../src/main/jbake/content/intro.adoc | 349 ++ .../src/main/jbake/content/intro.inc | 0 .../src/main/jbake/content/packages.inc | 5 + .../src/main/jbake/content/platforms.inc | 1 + .../src/main/jbake/content/preface.adoc | 147 + .../src/main/jbake/content/rebuild.adoc | 20 + .../src/main/jbake/content/rebuild.inc | 188 + .../src/main/jbake/content/req-software.inc | 12 + .../src/main/jbake/content/rules.adoc | 403 ++ .../src/main/jbake/content/rules.inc | 28 + .../src/main/jbake/content/tck-packages.inc | 7 + .../src/main/jbake/content/title.adoc | 42 + .../src/main/jbake/content/title.inc | 13 + .../src/main/jbake/content/using-examples.inc | 53 + .../src/main/jbake/content/using.adoc | 323 ++ .../src/main/jbake/content/using.inc | 0 .../userguide/src/main/jbake/jbake.properties | 24 + .../src/main/jbake/templates/footer.ftl | 44 + .../src/main/jbake/templates/header.ftl | 54 + .../src/main/jbake/templates/menu.ftl | 1 + .../src/main/jbake/templates/page.ftl | 8 + .../userguide/src/theme/jakartaee-theme.yml | 299 + jsp/src/main/assembly/assembly.xml | 77 + jsp/src/main/resources/LICENSE_EFTL.md | 83 + jsp/src/main/resources/LICENSE_EPL.md | 637 +++ .../resources/jakarta.servlet.jsp.sig_3.0 | 663 +++ 47 files changed, 14903 insertions(+) create mode 100644 jsp/docs/JakartaServerPages3.1-ReleaseNotes.html create mode 100644 jsp/docs/assertions/JakartaServerPagesJavadocAssertions.html create mode 100644 jsp/docs/assertions/JakartaServerPagesSpecAssertions.html create mode 100644 jsp/docs/index.html create mode 100644 jsp/docs/userguide/README.md create mode 100644 jsp/docs/userguide/pom.xml create mode 100644 jsp/docs/userguide/src/main/jbake/assets/README.md create mode 100644 jsp/docs/userguide/src/main/jbake/assets/_config.yml create mode 100644 jsp/docs/userguide/src/main/jbake/assets/css/style.css create mode 100644 jsp/docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png create mode 100644 jsp/docs/userguide/src/main/jbake/content/README create mode 100644 jsp/docs/userguide/src/main/jbake/content/attributes.conf create mode 100644 jsp/docs/userguide/src/main/jbake/content/config.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/config.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/debug-tips.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/debug.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/defns.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/faq.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/install-server-vi.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/install-server.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/install.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/intro.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/intro.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/packages.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/platforms.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/preface.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/rebuild.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/rebuild.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/req-software.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/rules.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/rules.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/tck-packages.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/title.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/title.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/using-examples.inc create mode 100644 jsp/docs/userguide/src/main/jbake/content/using.adoc create mode 100644 jsp/docs/userguide/src/main/jbake/content/using.inc create mode 100644 jsp/docs/userguide/src/main/jbake/jbake.properties create mode 100644 jsp/docs/userguide/src/main/jbake/templates/footer.ftl create mode 100644 jsp/docs/userguide/src/main/jbake/templates/header.ftl create mode 100644 jsp/docs/userguide/src/main/jbake/templates/menu.ftl create mode 100644 jsp/docs/userguide/src/main/jbake/templates/page.ftl create mode 100644 jsp/docs/userguide/src/theme/jakartaee-theme.yml create mode 100644 jsp/src/main/assembly/assembly.xml create mode 100644 jsp/src/main/resources/LICENSE_EFTL.md create mode 100644 jsp/src/main/resources/LICENSE_EPL.md create mode 100644 jsp/src/main/resources/jakarta.servlet.jsp.sig_3.0 diff --git a/jsp/docs/JakartaServerPages3.1-ReleaseNotes.html b/jsp/docs/JakartaServerPages3.1-ReleaseNotes.html new file mode 100644 index 0000000000..db19831389 --- /dev/null +++ b/jsp/docs/JakartaServerPages3.1-ReleaseNotes.html @@ -0,0 +1,97 @@ + + + + + Jakarta Server Pages TCK Release Notes + + + +
+

Jakarta EE Server Pages Technology Compatibility Kit, Version 3.1
+ Release Notes, May 2021

+
+

Kit Contents

+

The Jakarta EE Server Pages, Version 3.1 Technology Compatibility Kit + (TCK) includes the following items:

+
    +
  • +

    Jakarta EE Server Pages TCK tests signature, API, and + End-to-End tests:

    +
  • +
      +
    • +

      A signature test that checks that all of the + public APIs are supported in the Jakarta EE Server Pages Version 3.1 + implementation that is being tested

      +
    • +
    • +

      API tests for all of the public APIs under the javax.servlet.jsp + package

      +
    • +
    • +

      End-To-End tests that demonstrate compliance with + the Jakarta EE Server Pages 3.1 specification .

      +
    • +
    +
+
+

Platform Notes

+

The Jakarta EE Server Pages TCK tests have been built with JDK 8 (1.8) + and tested with JavaTM + Platform, Standard Edition 8 and 11.

+

The Jakarta EE Server Pages TCK tests have been run on the following + platforms:

+
    +
  • CentOS Linux 7
  • +
  • Alpine Linux v3.12
  • +
+

The Jakarta EE Server Pages TCK tests have been run against the Eclipse + Jakarta EE Server Pages Compatible Implementation Version 3.1.

+
+

Installing, Setting Up, and Running the + Jakarta EE Server Pages TCK

+

Refer to the Jakarta EE Server Pages TCK 3.1 User's Guide (HTML, + PDF) + for complete instructions on installing, setting up, and running the + Jakarta EE Server Pages TCK.

+

The online version of the JT Harness version 5.0 documentation is + available here.

+
+

Copyright © 2013, 2021 Oracle and/or its affiliates. All + rights reserved.

+ + diff --git a/jsp/docs/assertions/JakartaServerPagesJavadocAssertions.html b/jsp/docs/assertions/JakartaServerPagesJavadocAssertions.html new file mode 100644 index 0000000000..901b86a68c --- /dev/null +++ b/jsp/docs/assertions/JakartaServerPagesJavadocAssertions.html @@ -0,0 +1,4607 @@ + + + + + +JavaDoc Assertion Detail + + +
+
+

Jakarta Server Pages - 3.1
+ JavaDoc Assertion Detail +

+
+ + + + + + + + + + + +
TotalsTotalActiveDeprecatedRemoved
+ # of Assertions + 440414125
+ # of Required Assertions + 436410125
+ # of Optional Assertions + 4400
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDReturnMethod/FieldDescriptionRequiredDeprecatedTestable
JSP:JAVADOC:1ErrorDatajakarta.servlet.jsp.ErrorData.ErrorData
+ + ( + Throwable + ,
int + ,
String + ,
String + ) +
Creates a new ErrorData object + + true +
+
true
JSP:JAVADOC:2Throwablejakarta.servlet.jsp.ErrorData.getThrowable
+
Returns the Throwable that caused the error + + true +
+
true
JSP:JAVADOC:3intjakarta.servlet.jsp.ErrorData.getStatusCode
+
Returns the status code of the error + + true +
+
true
JSP:JAVADOC:4Stringjakarta.servlet.jsp.ErrorData.getRequestURI
+
Returns the request URI + + true +
+
true
JSP:JAVADOC:5Stringjakarta.servlet.jsp.ErrorData.getServletName
+
Returns the name of the servlet invoked + + true +
+
true
JSP:JAVADOC:6SkipPageExceptionjakarta.servlet.jsp.SkipPageException.SkipPageException
+
Creates a SkipPageException with no message. + + true +
+
true
JSP:JAVADOC:7SkipPageExceptionjakarta.servlet.jsp.SkipPageException.SkipPageException
+ + ( + String + ) +
Creates a SkipPageException with the provided message. + + true +
+
true
JSP:JAVADOC:8SkipPageExceptionjakarta.servlet.jsp.SkipPageException.SkipPageException
+ + ( + String + ,
Throwable + ) +
Creates a SkipPageException with the provided message and root cause. + + true +
+
true
JSP:JAVADOC:9SkipPageExceptionjakarta.servlet.jsp.SkipPageException.SkipPageException
+ + ( + Throwable + ) +
Creates a SkipPageException with the provided root cause. + + true +
+
true
JSP:JAVADOC:10PageContextjakarta.servlet.jsp.PageContext.PageContext
+
+
+
true +
+
true
JSP:JAVADOC:11voidjakarta.servlet.jsp.PageContext.initialize
+ + ( + Servlet + ,
ServletRequest + ,
ServletResponse + ,
String + ,
boolean + ,
int + ,
boolean + ) +
The initialize method is called to initialize an uninitialized PageContext so that it may be used by a JSP Implementation class to service an incoming request and response within it's _jspService() method. + This method is typically called from JspFactory.getPageContext() in order to initialize state. This method is required to create an initial JspWriter, and associate the "out" name in page scope with this newly created object. This method should not be used by page or tag library authors. + + true +
+
false
JSP:JAVADOC:12voidjakarta.servlet.jsp.PageContext.initialize
+ + ( + Servlet + ,
ServletRequest + ,
ServletResponse + ,
String + ,
boolean + ,
int + ,
boolean + ) +
throws + IOException
+
during creation of JspWritertrue +
+
false
JSP:JAVADOC:13voidjakarta.servlet.jsp.PageContext.initialize
+ + ( + Servlet + ,
ServletRequest + ,
ServletResponse + ,
String + ,
boolean + ,
int + ,
boolean + ) +
throws + IllegalStateException
+
if out not correctly initializedtrue +
+
false
JSP:JAVADOC:14voidjakarta.servlet.jsp.PageContext.initialize
+ + ( + Servlet + ,
ServletRequest + ,
ServletResponse + ,
String + ,
boolean + ,
int + ,
boolean + ) +
throws + IllegalArgumentException
+
If one of the given parameters is invalidtrue +
+
false
JSP:JAVADOC:15voidjakarta.servlet.jsp.PageContext.release
+
This method shall "reset" the internal state of a PageContext, releasing all internal references, and preparing the PageContext for potential reuse by a later invocation of initialize(). + This method is typically called from JspFactory.releasePageContext(). Subclasses shall envelope this method. This method should not be used by page or tag library authors. + + true +
+
false
JSP:JAVADOC:16HttpSessionjakarta.servlet.jsp.PageContext.getSession
+
The current value of the session object (an HttpSession). + + true +
+
true
JSP:JAVADOC:17Objectjakarta.servlet.jsp.PageContext.getPage
+
The current value of the page object (In a Servlet environment this is an isntance of jakarta.servlet.Servlet). + + true +
+
true
JSP:JAVADOC:18ServletRequestjakarta.servlet.jsp.PageContext.getRequest
+
The current value of the request object (a ServletRequest). + + true +
+
true
JSP:JAVADOC:19ServletResponsejakarta.servlet.jsp.PageContext.getResponse
+
The current value of the response object (a ServletResponse). + + true +
+
true
JSP:JAVADOC:20Exceptionjakarta.servlet.jsp.PageContext.getException
+
The current value of the exception object (an Exception). + + true +
+
true
JSP:JAVADOC:21ServletConfigjakarta.servlet.jsp.PageContext.getServletConfig
+
The ServletConfig instance. + + true +
+
true
JSP:JAVADOC:22ServletContextjakarta.servlet.jsp.PageContext.getServletContext
+
The ServletContext instance. + + true +
+
true
JSP:JAVADOC:23voidjakarta.servlet.jsp.PageContext.forward
+ + ( + String + ) +
This method is used to re-direct, or "forward" the current ServletRequest and ServletResponse to another active component in the application. If the relativeUrlPath begins with a "/" then the URL specified is calculated relative to the DOCROOT of the ServletContext for this JSP. true +
+
true
JSP:JAVADOC:24voidjakarta.servlet.jsp.PageContext.forward
+ + ( + String + ) +
This method is used to re-direct, or "forward" the current ServletRequest and ServletResponse to another active component in the application. If the path does not begin with a "/" then the URL specified is calculated relative to the URL of the request that was mapped to the calling JSP. true +
+
true
JSP:JAVADOC:25voidjakarta.servlet.jsp.PageContext.forward
+ + ( + String + ) +
It is only valid to call this method from a Thread executing within a _jspService(...) method of a JSP. Once this method has been called successfully, it is illegal for the calling Thread to attempt to modify the ServletResponse object. Any such attempt to do so, shall result in undefined behavior. Typically, callers immediately return from _jspService(...) after calling this method.true +
+
false
JSP:JAVADOC:26voidjakarta.servlet.jsp.PageContext.forward
+ + ( + String + ) +
throws + ServletException
+
if the page that was forwarded to throws a ServletExceptiontrue +
+
true
JSP:JAVADOC:27voidjakarta.servlet.jsp.PageContext.forward
+ + ( + String + ) +
throws + IOException
+
if an I/O error occurred while forwardingtrue +
+
true
JSP:JAVADOC:29voidjakarta.servlet.jsp.PageContext.forward
+ + ( + String + ) +
throws + IllegalStateException
+
if ServletResponse is not in a state where a forward can be performedtrue +
+
true
JSP:JAVADOC:31voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ) +
Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being processed by the calling Thread. The output of the target resources processing of the request is written directly to the ServletResponse output stream. The current JspWriter "out" for this JSP is flushed as a side-effect of this call, prior to processing the include. If the relativeUrlPath begins with a "/" then the URL specified is calculated relative to the DOCROOT of the ServletContext for this JSP. true +
+
true
JSP:JAVADOC:32voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ) +
Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being processed by the calling Thread. The output of the target resources processing of the request is written directly to the ServletResponse output stream. The current JspWriter "out" for this JSP is flushed as a side-effect of this call, prior to processing the include. If the path does not begin with a "/" then the URL specified is calculated relative to the URL of the request that was mapped to the calling JSP. true +
+
true
JSP:JAVADOC:33voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ) +
It is only valid to call this method from a Thread executing within a _jspService(...) method of a JSP.true +
+
false
JSP:JAVADOC:34voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ) +
throws + ServletException
+
if the inclusion throws a ServletException ??????true +
+
true
JSP:JAVADOC:35voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ) +
throws + IOException
+
if an I/O error occurred while includingtrue +
+
true
JSP:JAVADOC:38voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ,
boolean + ) +
Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being processed by the calling Thread. If the relativeUrlPath begins with a "/" then the URL specified is calculated relative to the DOCROOT of the ServletContext for this JSP. true +
+
true
JSP:JAVADOC:39voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ,
boolean + ) +
Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being processed by the calling Thread. If the path does not begin with a "/" then the URL specified is calculated relative to the URL of the request that was mapped to the calling JSP. true +
+
true
JSP:JAVADOC:40voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ,
boolean + ) +
Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being processed by the calling Thread. + The output of the target resources processing of the request is written directly to the current JspWriter returned by a call to getOut(). If flush is true, The current JspWriter "out" for this JSP is flushed as a side-effect of this call, prior to processing the include. + true +
+
true
JSP:JAVADOC:385voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ,
boolean + ) +
Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being processed by the calling Thread. + The output of the target resources processing of the request is written directly to the current JspWriter returned by a call to getOut(). If flush is false, "out" is not flushed. + true +
+
true
JSP:JAVADOC:41voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ,
boolean + ) +
It is only valid to call this method from a Thread executing within a _jspService(...) method of a JSP.true +
+
false
JSP:JAVADOC:42voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ,
boolean + ) +
throws + ServletException
+
if the page that was forwarded to throws a ServletException ???>???true +
+
true
JSP:JAVADOC:43voidjakarta.servlet.jsp.PageContext.include
+ + ( + String + ,
boolean + ) +
throws + IOException
+
if an I/O error occurred while includingtrue +
+
true
JSP:JAVADOC:46voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Exception + ) +
This method is intended to process an unhandled "page" level exception by forwarding the exception to the specified error page for this JSP.true +
+
true
JSP:JAVADOC:47voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Exception + ) +
If forwarding is not possible (for example because the response has already been committed) an implementation dependent mechanism should be used to invoke the error page (e.g. 'including' the error page instead).true +
+
false
JSP:JAVADOC:48voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Exception + ) +
A JSP implementation class shall typically clean up any local state prior to invoking this and will return immediately thereafter. It is illegal to generate any output to the client, or to modify any ServletResponse state after invoking this call. This method is kept for backwards compatiblity reasons. Newly generated code should use PageContext.handlePageException(Throwable).true +
+
false
JSP:JAVADOC:49voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Exception + ) +
throws + ServletException
+
if an error occurs while invoking the error pagetrue +
+
false
JSP:JAVADOC:50voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Exception + ) +
throws + IOException
+
if an I/O error occurred while invoking the error pagetrue +
+
false
JSP:JAVADOC:51voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Exception + ) +
throws + NullPointerException
+
if the exception is nulltrue +
+
true
JSP:JAVADOC:53voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Throwable + ) +
This method is identical to the handlePageException(Exception), except that it accepts a Throwable. + This is the preferred method to use as it allows proper implementation of the errorpage semantics. This method is intended to process an unhandled "page" level exception by redirecting the exception to either the specified error page for this JSP. + true +
+
true
JSP:JAVADOC:54voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Throwable + ) +
This method is identical to the handlePageException(Exception), except that it accepts a Throwable. + This is the preferred method to use as it allows proper implementation of the errorpage semantics. If no error page was specified, the result is implementation specific. + true +
+
false
JSP:JAVADOC:55voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Throwable + ) +
A JSP implementation class shall typically clean up any local state prior to invoking this and will return immediately thereafter. It is illegal to generate any output to the client, or to modify any ServletResponse state after invoking this call.true +
+
false
JSP:JAVADOC:56voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Throwable + ) +
throws + ServletException
+
if an error occurs while invoking the error pagetrue +
+
false
JSP:JAVADOC:57voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Throwable + ) +
throws + IOException
+
if an I/O error occurred while invoking the error pagetrue +
+
false
JSP:JAVADOC:58voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Throwable + ) +
throws + NullPointerException
+
if the exception is nulltrue +
+
true
JSP:JAVADOC:59voidjakarta.servlet.jsp.PageContext.handlePageException
+ + ( + Throwable + ) +
throws + SecurityException
+
if target resource cannot be accessed by callertrue +
+
true
JSP:JAVADOC:60BodyContentjakarta.servlet.jsp.PageContext.pushBody
+
Return a new BodyContent object, save the current "out" JspWriter, and update the value of the "out" attribute in the page scope attribute namespace of the PageContext + + true +
+
true
JSP:JAVADOC:61JspWriterjakarta.servlet.jsp.PageContext.popBody
+
Return the previous JspWriter "out" saved by the matching pushBody(), and update the value of the "out" attribute in the page scope attribute namespace of the JspConxtext + + true +
+
true
JSP:JAVADOC:62ErrorDatajakarta.servlet.jsp.PageContext.getErrorData
+
Provides convenient access to error information. + + true +
+
true
JSP:JAVADOC:63voidjakarta.servlet.jsp.JspWriter.newLine
+
Write a line separator. + The line separator string is defined by the system property line.separator, and is not necessarily a single newline ('\n') character. + + true +
+
true
JSP:JAVADOC:64voidjakarta.servlet.jsp.JspWriter.newLine
+
throws + IOException
+
If an I/O error occurstrue +
+
false
JSP:JAVADOC:65voidjakarta.servlet.jsp.JspWriter.print
+ + ( + boolean + ) +
Print a boolean value. + + + The string produced by is translated into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + true +
+
true
JSP:JAVADOC:66voidjakarta.servlet.jsp.JspWriter.print
+ + ( + boolean + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:67voidjakarta.servlet.jsp.JspWriter.print
+ + ( + char + ) +
Print a character. + + The character is translated into one or more bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + true +
+
true
JSP:JAVADOC:68voidjakarta.servlet.jsp.JspWriter.print
+ + ( + char + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:69voidjakarta.servlet.jsp.JspWriter.print
+ + ( + int + ) +
Print an integer. + + + The string produced by is translated into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + + true +
+
true
JSP:JAVADOC:70voidjakarta.servlet.jsp.JspWriter.print
+ + ( + int + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:71voidjakarta.servlet.jsp.JspWriter.print
+ + ( + long + ) +
Print a long integer. + + + The string produced by is translated into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + + true +
+
true
JSP:JAVADOC:72voidjakarta.servlet.jsp.JspWriter.print
+ + ( + long + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:73voidjakarta.servlet.jsp.JspWriter.print
+ + ( + float + ) +
Print a floating-point number. + + + The string produced by is translated into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + + true +
+
true
JSP:JAVADOC:74voidjakarta.servlet.jsp.JspWriter.print
+ + ( + float + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:75voidjakarta.servlet.jsp.JspWriter.print
+ + ( + double + ) +
Print a double-precision floating-point number. + + + The string produced by is translated into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + + true +
+
true
JSP:JAVADOC:76voidjakarta.servlet.jsp.JspWriter.print
+ + ( + double + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:77voidjakarta.servlet.jsp.JspWriter.print
+ + ( + char[] + ) +
Print an array of characters. + + The characters are converted into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + true +
+
true
JSP:JAVADOC:78voidjakarta.servlet.jsp.JspWriter.print
+ + ( + char[] + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:79voidjakarta.servlet.jsp.JspWriter.print
+ + ( + char[] + ) +
throws + NullPointerException
+
If <code>s</code> is <code>null</code>true +
+
true
JSP:JAVADOC:80voidjakarta.servlet.jsp.JspWriter.print
+ + ( + String + ) +
Print a string. + + If the argument is null then the string "null" is printed. Otherwise, the string's characters are converted into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + true +
+
true
JSP:JAVADOC:81voidjakarta.servlet.jsp.JspWriter.print
+ + ( + String + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:82voidjakarta.servlet.jsp.JspWriter.print
+ + ( + Object + ) +
Print an object. + + + The string produced by the method is translated into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the method. + + + true +
+
true
JSP:JAVADOC:83voidjakarta.servlet.jsp.JspWriter.print
+ + ( + Object + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:84voidjakarta.servlet.jsp.JspWriter.println
+
Terminate the current line by writing the line separator string. + The line separator string is defined by the system property line.separator, and is not necessarily a single newline character ('\n'). + + true +
+
true
JSP:JAVADOC:85voidjakarta.servlet.jsp.JspWriter.println
+
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:86voidjakarta.servlet.jsp.JspWriter.println
+ + ( + boolean + ) +
Print a boolean value and then terminate the line. + + + This method behaves as though it invokes and then . + + true +
+
true
JSP:JAVADOC:87voidjakarta.servlet.jsp.JspWriter.println
+ + ( + boolean + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:88voidjakarta.servlet.jsp.JspWriter.println
+ + ( + char + ) +
Print a character and then terminate the line. + + + This method behaves as though it invokes and then . + + true +
+
true
JSP:JAVADOC:89voidjakarta.servlet.jsp.JspWriter.println
+ + ( + char + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:90voidjakarta.servlet.jsp.JspWriter.println
+ + ( + int + ) +
Print an integer and then terminate the line. + + + This method behaves as though it invokes and then . + + true +
+
true
JSP:JAVADOC:91voidjakarta.servlet.jsp.JspWriter.println
+ + ( + int + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:92voidjakarta.servlet.jsp.JspWriter.println
+ + ( + long + ) +
Print a long integer and then terminate the line. + + + This method behaves as though it invokes and then . + + true +
+
true
JSP:JAVADOC:93voidjakarta.servlet.jsp.JspWriter.println
+ + ( + long + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:94voidjakarta.servlet.jsp.JspWriter.println
+ + ( + float + ) +
Print a floating-point number and then terminate the line. + + + This method behaves as though it invokes and then . + + true +
+
true
JSP:JAVADOC:95voidjakarta.servlet.jsp.JspWriter.println
+ + ( + float + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:96voidjakarta.servlet.jsp.JspWriter.println
+ + ( + double + ) +
Print a double-precision floating-point number and then terminate the line. + + + This method behaves as though it invokes and then . + + true +
+
true
JSP:JAVADOC:97voidjakarta.servlet.jsp.JspWriter.println
+ + ( + double + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:98voidjakarta.servlet.jsp.JspWriter.println
+ + ( + char[] + ) +
Print an array of characters and then terminate the line. + This method behaves as though it invokes print(char[]) and then println(). + + true +
+
true
JSP:JAVADOC:99voidjakarta.servlet.jsp.JspWriter.println
+ + ( + char[] + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:100voidjakarta.servlet.jsp.JspWriter.println
+ + ( + String + ) +
Print a String and then terminate the line. + + + This method behaves as though it invokes and then . + + true +
+
true
JSP:JAVADOC:101voidjakarta.servlet.jsp.JspWriter.println
+ + ( + String + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:102voidjakarta.servlet.jsp.JspWriter.println
+ + ( + Object + ) +
Print an Object and then terminate the line. + + + This method behaves as though it invokes and then . + + true +
+
true
JSP:JAVADOC:103voidjakarta.servlet.jsp.JspWriter.println
+ + ( + Object + ) +
throws + IOException
+
If an error occured while writingtrue +
+
false
JSP:JAVADOC:104voidjakarta.servlet.jsp.JspWriter.clear
+
Clear the contents of the buffer. + If the buffer has been already been flushed then the clear operation shall throw an IOException to signal the fact that some data has already been irrevocably written to the client response stream. + + true +
+
true
JSP:JAVADOC:105voidjakarta.servlet.jsp.JspWriter.clear
+
throws + IOException
+
If an I/O error occurstrue +
+
true
JSP:JAVADOC:106voidjakarta.servlet.jsp.JspWriter.clearBuffer
+
Clears the current contents of the buffer. + Unlike clear(), this method will not throw an IOException if the buffer has already been flushed. It merely clears the current content of the buffer and returns. + + true +
+
true
JSP:JAVADOC:107voidjakarta.servlet.jsp.JspWriter.clearBuffer
+
throws + IOException
+
If an I/O error occurstrue +
+
false
JSP:JAVADOC:108voidjakarta.servlet.jsp.JspWriter.flush
+
Flush the stream. + If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams. The method may be invoked indirectly if the buffer size is exceeded. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. + + true +
+
true
JSP:JAVADOC:109voidjakarta.servlet.jsp.JspWriter.flush
+
throws + IOException
+
If an I/O error occurstrue +
+
true
JSP:JAVADOC:110voidjakarta.servlet.jsp.JspWriter.close
+
Close the stream, flushing it first. + This method needs not be invoked explicitly for the initial JspWriter as the code generated by the JSP container will automatically include a call to close(). Closing a previously-closed stream, unlike flush(), has no effect. + + true +
+
true
JSP:JAVADOC:111voidjakarta.servlet.jsp.JspWriter.close
+
throws + IOException
+
If an I/O error occurstrue +
+
false
JSP:JAVADOC:112intjakarta.servlet.jsp.JspWriter.getBufferSize
+
This method returns the size of the buffer used by the JspWriter. + + true +
+
true
JSP:JAVADOC:113intjakarta.servlet.jsp.JspWriter.getRemaining
+
This method returns the number of unused bytes in the buffer. + + true +
+
true
JSP:JAVADOC:114booleanjakarta.servlet.jsp.JspWriter.isAutoFlush
+
This method indicates whether the JspWriter is autoFlushing. + + true +
+
true
JSP:JAVADOC:115JspTagExceptionjakarta.servlet.jsp.JspTagException.JspTagException
+ + ( + String + ) +
Constructs a new JspTagException with the specified message. + The message can be written to the server log and/or displayed for the user. + + true +
+
true
JSP:JAVADOC:116JspTagExceptionjakarta.servlet.jsp.JspTagException.JspTagException
+
Constructs a new JspTagException with no message. + + true +
+
true
JSP:JAVADOC:117JspTagExceptionjakarta.servlet.jsp.JspTagException.JspTagException
+ + ( + String + ,
Throwable + ) +
Constructs a new JspTagException when the JSP Tag needs to throw an exception and include a message about the "root cause" exception that interfered with its normal operation, including a description message. + + true +
+
true
JSP:JAVADOC:118JspTagExceptionjakarta.servlet.jsp.JspTagException.JspTagException
+ + ( + Throwable + ) +
Constructs a new JSP Tag exception when the JSP Tag needs to throw an exception and include a message about the "root cause" exception that interfered with its normal operation. + The exception's message is based on the localized message of the underlying exception. This method calls the getLocalizedMessage method on the Throwable exception to get a localized exception message. When subclassing JspTagException, this method can be overridden to create an exception message designed for a specific locale. + + true +
+
true
JSP:JAVADOC:119JspFactoryjakarta.servlet.jsp.JspFactory.JspFactory
+
+
+
true +
+
true
JSP:JAVADOC:120voidjakarta.servlet.jsp.JspFactory.setDefaultFactory
+ + ( + JspFactory + ) +
set the default factory for this implementation. + It is illegal for any principal other than the JSP Engine runtime to call this method. + + true +
+
false
JSP:JAVADOC:121JspFactoryjakarta.servlet.jsp.JspFactory.getDefaultFactory
+
Returns the default factory for this implementation. + + true +
+
true
JSP:JAVADOC:122PageContextjakarta.servlet.jsp.JspFactory.getPageContext
+ + ( + Servlet + ,
ServletRequest + ,
ServletResponse + ,
String + ,
boolean + ,
int + ,
boolean + ) +
obtains an instance of an implementation dependent jakarta.servlet.jsp.PageContext abstract class for the calling Servlet and currently pending request and response. + This method is typically called early in the processing of the _jspService() method of a JSP implementation class in order to obtain a PageContext object for the request being processed. Invoking this method shall result in the PageContext.initialize() method being invoked. The PageContext returned is properly initialized. All PageContext objects obtained via this method shall be released by invoking releasePageContext(). + + + true +
+
true
JSP:JAVADOC:123voidjakarta.servlet.jsp.JspFactory.releasePageContext
+ + ( + PageContext + ) +
called to release a previously allocated PageContext object. + Results in PageContext.release() being invoked. This method should be invoked prior to returning from the _jspService() method of a JSP implementation class. + + true +
+
true
JSP:JAVADOC:124JspEngineInfojakarta.servlet.jsp.JspFactory.getEngineInfo
+
called to get implementation-specific information on the current JSP engine. + + + true +
+
false
JSP:JAVADOC:125JspExceptionjakarta.servlet.jsp.JspException.JspException
+
Construct a JspException + + true +
+
true
JSP:JAVADOC:126JspExceptionjakarta.servlet.jsp.JspException.JspException
+ + ( + String + ) +
Constructs a new JSP exception with the specified message. + The message can be written to the server log and/or displayed for the user. + + true +
+
true
JSP:JAVADOC:127JspExceptionjakarta.servlet.jsp.JspException.JspException
+ + ( + String + ,
Throwable + ) +
Constructs a new JSP exception when the JSP needs to throw an exception and include a message about the "root cause" exception that interfered with its normal operation, including a description message. + + true +
+
true
JSP:JAVADOC:128JspExceptionjakarta.servlet.jsp.JspException.JspException
+ + ( + Throwable + ) +
Constructs a new JSP exception when the JSP needs to throw an exception and include a message about the "root cause" exception that interfered with its normal operation. + The exception's message is based on the localized message of the underlying exception. This method calls the getLocalizedMessage method on the Throwable exception to get a localized exception message. When subclassing JspException, this method can be overridden to create an exception message designed for a specific locale. + + true +
+
true
JSP:JAVADOC:129Throwablejakarta.servlet.jsp.JspException.getRootCause
+
Returns the exception that caused this JSP exception. + + true +
+
true
JSP:JAVADOC:130JspEngineInfojakarta.servlet.jsp.JspEngineInfo.JspEngineInfo
+
+
+
true +
+
true
JSP:JAVADOC:131Stringjakarta.servlet.jsp.JspEngineInfo.getSpecificationVersion
+
Return the version number of the JSP specification that is supported by this JSP engine. + Specification version numbers that consists of positive decimal integers separated by periods ".", for example, "2.0" or "1.2.3.4.5.6.7". This allows an extensible number to be used to represent major, minor, micro, etc versions. The version number must begin with a number. + + true +
+
true
JSP:JAVADOC:132JspContextjakarta.servlet.jsp.JspContext.JspContext
+
+
+
true +
+
true
JSP:JAVADOC:380JspWriterjakarta.servlet.jsp.JspContext.popBody
+
Return the previous JspWriter 'out' saved by the matching pushBody() and update the value of the 'out' attribute in the page scope attribute namespace of the JspContext. + + true +
+
true
JSP:JAVADOC:381JspWriterjakarta.servlet.jsp.JspContext.pushBody
+ + ( + Writer + ) +
Return a new JspWriter object that sends output to the provided writer.true +
+
true
JSP:JAVADOC:133voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ) +
Register the name and value specified with page scope semantics. + + true +
+
true
JSP:JAVADOC:396voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ) +
If the value passed is null, this has the same effect as calling removeAttribute(name, PageContext.PAGE_SCOPE). + + true +
+
true
JSP:JAVADOC:134voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ) +
throws + NullPointerException
+
if the name is nulltrue +
+
true
JSP:JAVADOC:135voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ,
int + ) +
register the name and value specified with appropriate scope semantics. + + true +
+
true
JSP:JAVADOC:397voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ,
int + ) +
If the value passed in is null this has the same effect as calling removeAttribute(name, scope). + + true +
+
true
JSP:JAVADOC:136voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ,
int + ) +
throws + NullPointerException
+
if the name is nulltrue +
+
true
JSP:JAVADOC:398voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ,
int + ) +
throws + IllegalArgumentException
+
if the scope is invalidtrue +
+
true
JSP:JAVADOC:399voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ,
int + ) +
throws + IllegalStateException
+
If the scope is PageContext.SESSION_SCOPE but the page that was requested does not participate in a session or the session has been invalidated.true +
+
true
JSP:JAVADOC:137voidjakarta.servlet.jsp.JspContext.setAttribute
+ + ( + String + ,
Object + ,
int + ) +
throws + IllegalArgumentException
+
if the scope is invalidtrue +
+
true
JSP:JAVADOC:138Objectjakarta.servlet.jsp.JspContext.getAttribute
+ + ( + String + ) +
Returns the object associated with the name in the page scope or null if not found. + + true +
+
true
JSP:JAVADOC:139Objectjakarta.servlet.jsp.JspContext.getAttribute
+ + ( + String + ) +
throws + NullPointerException
+
if the name is nulltrue +
+
true
JSP:JAVADOC:141Objectjakarta.servlet.jsp.JspContext.getAttribute
+ + ( + String + ,
int + ) +
Return the object associated with the name in the specified scope or null if not found. + + true +
+
true
JSP:JAVADOC:142Objectjakarta.servlet.jsp.JspContext.getAttribute
+ + ( + String + ,
int + ) +
throws + NullPointerException
+
if the name is nulltrue +
+
true
JSP:JAVADOC:143Objectjakarta.servlet.jsp.JspContext.getAttribute
+ + ( + String + ,
int + ) +
throws + IllegalArgumentException
+
if the scope is invalidtrue +
+
true
JSP:JAVADOC:390Objectjakarta.servlet.jsp.JspContext.getAttribute
+ + ( + String + ,
int + ) +
throws + IllegalStateException
+
if the scope is PageContext.SESSION_SCOPE but the page that was requested does not participate in a session or the session has been invalidatedtrue +
+
true
JSP:JAVADOC:144Objectjakarta.servlet.jsp.JspContext.findAttribute
+ + ( + String + ) +
Searches for the named attribute in page, request, session (if valid), and application scope(s) in order and returns the value associated or null. + + true +
+
true
JSP:JAVADOC:387Objectjakarta.servlet.jsp.JspContext.findAttribute
+ + ( + String + ) +
throws + NullPointerException
+
If the name is null + + true +
+
true
JSP:JAVADOC:145voidjakarta.servlet.jsp.JspContext.removeAttribute
+ + ( + String + ) +
Remove the object reference associated with the given name from all scopes. Does nothing if there is no such object. + + true +
+
true
JSP:JAVADOC:391voidjakarta.servlet.jsp.JspContext.removeAttribute
+ + ( + String + ) +
throws + NullPointerException
+
if the name is null + + true +
+
true
JSP:JAVADOC:146voidjakarta.servlet.jsp.JspContext.removeAttribute
+ + ( + String + ,
int + ) +
Remove the object reference associated with the specified name in the given scope. Does nothing if there is no such object. + + true +
+
true
JSP:JAVADOC:392voidjakarta.servlet.jsp.JspContext.removeAttribute
+ + ( + String + ,
int + ) +
throws + IllegalArgumentException
+
If the scope is invalid + + true +
+
true
JSP:JAVADOC:393voidjakarta.servlet.jsp.JspContext.removeAttribute
+ + ( + String + ,
int + ) +
throws + NullPointerException
+
If the name is null + + true +
+
true
JSP:JAVADOC:394voidjakarta.servlet.jsp.JspContext.removeAttribute
+ + ( + String + ,
int + ) +
throws + IllegalStateException
+
If the scope is PageContext.SESSION_SCOPE but the page that was requested does not particpate in a session or the session has been invalidated. + + true +
+
true
JSP:JAVADOC:147intjakarta.servlet.jsp.JspContext.getAttributesScope
+ + ( + String + ) +
Get the scope where a given attribute is defined. + + true +
+
true
JSP:JAVADOC:389intjakarta.servlet.jsp.JspContext.getAttributesScope
+ + ( + String + ) +
throws + NullPointerException
+
if the name is null + + true +
+
true
JSP:JAVADOC:148Enumerationjakarta.servlet.jsp.JspContext.getAttributeNamesInScope
+ + ( + int + ) +
Enumerate all the attributes in a given scope + + true +
+
true
JSP:JAVADOC:387Enumerationjakarta.servlet.jsp.JspContext.getAttributeNamesInScope
+ + ( + int + ) +
throws + IllegalArgumentException
+
if the scope is invalid + + true +
+
true
JSP:JAVADOC:388Enumerationjakarta.servlet.jsp.JspContext.getAttributeNamesInScope
+ + ( + int + ) +
throws + IllegalStateException
+
If the scope is PageContext.SESSION_SCOPE but the page that was requested does not participate in a session or the session has been invalidated. + + true +
+
true
JSP:JAVADOC:149JspWriterjakarta.servlet.jsp.JspContext.getOut
+
The current value of the out object (a JspWriter). + + true +
+
true
JSP:JAVADOC:150ExpressionEvaluatorjakarta.servlet.jsp.JspContext.getExpressionEvaluator
+
Provides programmatic access to the ExpressionEvaluator. + The JSP Container must return a valid instance of an ExpressionEvaluator that can parse EL expressions. + + true +
+
true
JSP:JAVADOC:151VariableResolverjakarta.servlet.jsp.JspContext.getVariableResolver
+
Returns an instance of a VariableResolver that provides access to the implicit objects specified in the JSP specification using this JspContext as the context object + + true +
+
true
JSP:JAVADOC:152voidjakarta.servlet.jsp.JspPage.jspInit
+
The jspInit() method is invoked when the JSP page is initialized. + It is the responsibility of the JSP implementation (and of the class mentioned by the extends attribute, if present) that at this point invocations to the getServletConfig() method will return the desired value. A JSP page can override this method by including a definition for it in a declaration element. A JSP page should redefine the init() method from Servlet. + + true +
+
false
JSP:JAVADOC:153voidjakarta.servlet.jsp.JspPage.jspDestroy
+
The jspDestroy() method is invoked when the JSP page is about to be destroyed. + A JSP page can override this method by including a definition for it in a declaration element. A JSP page should redefine the destroy() method from Servlet. + + true +
+
false
JSP:JAVADOC:154voidjakarta.servlet.jsp.HttpJspPage._jspService
+ + ( + HttpServletRequest + ,
HttpServletResponse + ) +
The _jspService() method corresponds to the body of the JSP page. + This method is defined automatically by the JSP container and should never be defined by the JSP page author. If a superclass is specified using the extends attribute, that superclass may choose to perform some actions in its service() method before or after calling the _jspService() method. See using the extends attribute in the JSP_Engine chapter of the JSP specification. + + true +
+
false
JSP:JAVADOC:155voidjakarta.servlet.jsp.HttpJspPage._jspService
+ + ( + HttpServletRequest + ,
HttpServletResponse + ) +
throws + ServletException
+
Thrown if an error occurred during the processing of the JSP and that the container should take appropriate action to clean up the request.true +
+
false
JSP:JAVADOC:156voidjakarta.servlet.jsp.HttpJspPage._jspService
+ + ( + HttpServletRequest + ,
HttpServletResponse + ) +
throws + IOException
+
Thrown if an error occurred while writing the response for this page.true +
+
false
JSP:JAVADOC:157ELParseExceptionjakarta.servlet.jsp.el.ELParseException.ELParseException
+
Creates an ELParseException with no detail message. + + true +
+
true
JSP:JAVADOC:158ELParseExceptionjakarta.servlet.jsp.el.ELParseException.ELParseException
+ + ( + String + ) +
Creates an ELParseException with the provided detail message. + + true +
+
true
JSP:JAVADOC:159ELExceptionjakarta.servlet.jsp.el.ELException.ELException
+
Creates an ELException with no detail message. + + true +
+
true
JSP:JAVADOC:160ELExceptionjakarta.servlet.jsp.el.ELException.ELException
+ + ( + String + ) +
Creates an ELException with the provided detail message. + + true +
+
true
JSP:JAVADOC:161ELExceptionjakarta.servlet.jsp.el.ELException.ELException
+ + ( + Throwable + ) +
Creates an ELException with the given root cause + + true +
+
true
JSP:JAVADOC:162ELExceptionjakarta.servlet.jsp.el.ELException.ELException
+ + ( + String + ,
Throwable + ) +
Creates an ELException with the given detail message and root cause. + + true +
+
true
JSP:JAVADOC:163Throwablejakarta.servlet.jsp.el.ELException.getRootCause
+
Returns the root cause + + true +
+
true
JSP:JAVADOC:165Methodjakarta.servlet.jsp.el.FunctionMapper.resolveFunction
+ + ( + String + ,
String + ) +
Resolves the specified local name and prefix into a Java.lang.Method. + Returns null if the prefix and local name are not found. + + true +
+
true
JSP:JAVADOC:384Objectjakarta.servlet.jsp.el.VariableResolver.resolveVariable
+ + ( + String + ) +
Resolves the specified variable. + Returns null if the variable is not found. + + true +
+
true
JSP:JAVADOC:167Objectjakarta.servlet.jsp.el.VariableResolver.resolveVariable
+ + ( + String + ,
Object + ) +
throws + ELException
+
if a failure occurred while trying to resolve the given variabletrue +
+
false
JSP:JAVADOC:379ExpressionEvaluatorjakarta.servlet.jsp.el.ExpressionEvaluator.ExpressionEvaluator
+
Default constructor.true +
+
false
JSP:JAVADOC:168Expressionjakarta.servlet.jsp.el.ExpressionEvaluator.parseExpression
+ + ( + String + ,
Class + ,
FunctionMapper + ,
String + ) +
Prepare an expression for later evaluation.true +
+
true
JSP:JAVADOC:169Expressionjakarta.servlet.jsp.el.ExpressionEvaluator.parseExpression
+ + ( + String + ,
Class + ,
FunctionMapper + ,
String + ) +
This method should perform syntactic validation of the expression; if in doing so it detects errors, it should raise an ELParseException. + + false +
+
false
JSP:JAVADOC:170Expressionjakarta.servlet.jsp.el.ExpressionEvaluator.parseExpression
+ + ( + String + ,
Class + ,
FunctionMapper + ,
String + ) +
throws + ELException
+
Thrown if parsing errors were found.false +
+
false
JSP:JAVADOC:171Objectjakarta.servlet.jsp.el.ExpressionEvaluator.evaluate
+ + ( + String + ,
Class + ,
VariableResolver + ,
FunctionMapper + ,
String + ) +
Evaluates an expression.true +
+
true
JSP:JAVADOC:172Objectjakarta.servlet.jsp.el.ExpressionEvaluator.evaluate
+ + ( + String + ,
Class + ,
VariableResolver + ,
FunctionMapper + ,
String + ) +
This method may perform some syntactic validation and, if so, it should raise an ELParseException error if it encounters syntactic errors. EL evaluation errors should cause an ELException to be raised.false +
+
false
JSP:JAVADOC:173Objectjakarta.servlet.jsp.el.ExpressionEvaluator.evaluate
+ + ( + String + ,
Class + ,
VariableResolver + ,
FunctionMapper + ,
String + ) +
throws + ELException
+
Thrown if the expression evaluation failed.true +
+
true
JSP:JAVADOC:378Expressionjakarta.servlet.jsp.el.Expression.Expression
+
Default constructortrue +
+
false
JSP:JAVADOC:174Objectjakarta.servlet.jsp.el.Expression.evaluate
+ + ( + VariableResolver + ) +
Evaluates an expression that was previously prepared.true +
+
true
JSP:JAVADOC:175Objectjakarta.servlet.jsp.el.Expression.evaluate
+ + ( + VariableResolver + ) +
In some implementations preparing an expression involves full syntactic validation, but others may not do so. Evaluating the expression may raise an ELParseException as well as other ELExceptions due to run-time evaluation. + + false +
+
false
JSP:JAVADOC:176Objectjakarta.servlet.jsp.el.Expression.evaluate
+ + ( + VariableResolver + ) +
throws + ELException
+
Thrown if the expression evaluation failed.true +
+
true
JSP:JAVADOC:177VariableInfojakarta.servlet.jsp.tagext.VariableInfo.VariableInfo
+ + ( + String + ,
String + ,
boolean + ,
int + ) +
Constructor These objects can be created (at translation time) by the TagExtraInfo instances. + + true +
+
true
JSP:JAVADOC:178Stringjakarta.servlet.jsp.tagext.VariableInfo.getVarName
+
Returns the name of the scripting variable + + true +
+
true
JSP:JAVADOC:179Stringjakarta.servlet.jsp.tagext.VariableInfo.getClassName
+
Returns the type of this variable + + true +
+
true
JSP:JAVADOC:180booleanjakarta.servlet.jsp.tagext.VariableInfo.getDeclare
+
Returns whether this is a new variable. + If so, in some languages this will require a declaration. + + true +
+
true
JSP:JAVADOC:181intjakarta.servlet.jsp.tagext.VariableInfo.getScope
+
Returns the lexical scope of the variable. + + + + + true +
+
true
JSP:JAVADOC:182ValidationMessagejakarta.servlet.jsp.tagext.ValidationMessage.ValidationMessage
+ + ( + String + ,
String + ) +
Create a ValidationMessage. + The message String should be non-null. The value of id may be null, if the message is not specific to any XML element, or if no jsp:id attributes were passed on. If non-null, the value of id must be the value of a jsp:id attribute for the PageData passed into the validate() method. + + true +
+
true
JSP:JAVADOC:183Stringjakarta.servlet.jsp.tagext.ValidationMessage.getId
+
Get the jsp:id. + Null means that there is no information available. + + true +
+
true
JSP:JAVADOC:184Stringjakarta.servlet.jsp.tagext.ValidationMessage.getMessage
+
Get the localized validation message. + + true +
+
true
JSP:JAVADOC:185TagVariableInfojakarta.servlet.jsp.tagext.TagVariableInfo.TagVariableInfo
+ + ( + String + ,
String + ,
String + ,
boolean + ,
int + ) +
Constructor for TagVariableInfo + + true +
+
true
JSP:JAVADOC:187Stringjakarta.servlet.jsp.tagext.TagVariableInfo.getNameGiven
+
The body of the <name-given> element + + true +
+
true
JSP:JAVADOC:188Stringjakarta.servlet.jsp.tagext.TagVariableInfo.getNameFromAttribute
+
The body of the <name-from-attribute> element. + This is the name of an attribute whose (translation-time) value will give the name of the variable. One of or is required. + + true +
+
true
JSP:JAVADOC:189Stringjakarta.servlet.jsp.tagext.TagVariableInfo.getClassName
+
The body of the <class-name> element. + + true +
+
true
JSP:JAVADOC:190booleanjakarta.servlet.jsp.tagext.TagVariableInfo.getDeclare
+
The body of the <declare> element + + true +
+
true
JSP:JAVADOC:191intjakarta.servlet.jsp.tagext.TagVariableInfo.getScope
+
The body of the <scope> element + + true +
+
true
JSP:JAVADOC:193TagSupportjakarta.servlet.jsp.tagext.TagSupport.TagSupport
+
Default constructor, all subclasses are required to define only a public constructor with the same signature, and to call the superclass constructor. + This constructor is called by the code generated by the JSP translator. + + true +
+
true
JSP:JAVADOC:194Tagjakarta.servlet.jsp.tagext.TagSupport.findAncestorWithClass
+ + ( + Tag + ,
Class + ) +
Find the instance of a given class type that is closest to a given instance. + This method uses the getParent method from the Tag interface. This method is used for coordination among cooperating tags. The current version of the specification only provides one formal way of indicating the observable type of a tag handler: its tag handler implementation class, described in the tag-class subelement of the tag element. This is extended in an informal manner by allowing the tag library author to indicate in the description subelement an observable type. The type should be a subtype of the tag handler implementation class or void. This addititional constraint can be exploited by a specialized container that knows about that specific tag library, as in the case of the JSP standard tag library. When a tag library author provides information on the observable type of a tag handler, client programmatic code should adhere to that constraint. Specifically, the Class passed to findAncestorWithClass should be a subtype of the observable type. + + true +
+
true
JSP:JAVADOC:195intjakarta.servlet.jsp.tagext.TagSupport.doStartTag
+
Default processing of the start tag, returning SKIP_BODY. + + + true +
+
true
JSP:JAVADOC:196intjakarta.servlet.jsp.tagext.TagSupport.doStartTag
+
throws + JspException
+
if an error occurs while processing this tagtrue +
+
false
JSP:JAVADOC:197intjakarta.servlet.jsp.tagext.TagSupport.doEndTag
+
Default processing of the end tag returning EVAL_PAGE. + + + true +
+
true
JSP:JAVADOC:198intjakarta.servlet.jsp.tagext.TagSupport.doEndTag
+
throws + JspException
+
if an error occurs while processing this tagtrue +
+
false
JSP:JAVADOC:199intjakarta.servlet.jsp.tagext.TagSupport.doAfterBody
+
Default processing for a body + + + true +
+
true
JSP:JAVADOC:200intjakarta.servlet.jsp.tagext.TagSupport.doAfterBody
+
throws + JspException
+
if an error occurs while processing this tagtrue +
+
false
JSP:JAVADOC:201voidjakarta.servlet.jsp.tagext.TagSupport.release
+
Release state. + + + true +
+
false
JSP:JAVADOC:202voidjakarta.servlet.jsp.tagext.TagSupport.setParent
+ + ( + Tag + ) +
Set the nesting tag of this tag. + + + true +
+
true
JSP:JAVADOC:203Tagjakarta.servlet.jsp.tagext.TagSupport.getParent
+
The Tag instance most closely enclosing this tag instance. + + + true +
+
true
JSP:JAVADOC:204voidjakarta.servlet.jsp.tagext.TagSupport.setId
+ + ( + String + ) +
Set the id attribute for this tag. + + true +
+
true
JSP:JAVADOC:205Stringjakarta.servlet.jsp.tagext.TagSupport.getId
+
The value of the id attribute of this tag; or null. + + true +
+
true
JSP:JAVADOC:206voidjakarta.servlet.jsp.tagext.TagSupport.setPageContext
+ + ( + PageContext + ) +
Set the page context. + + + true +
+
true
JSP:JAVADOC:207voidjakarta.servlet.jsp.tagext.TagSupport.setValue
+ + ( + String + ,
Object + ) +
Associate a value with a String key. + + true +
+
true
JSP:JAVADOC:208Objectjakarta.servlet.jsp.tagext.TagSupport.getValue
+ + ( + String + ) +
Get a the value associated with a key. + + true +
+
true
JSP:JAVADOC:209voidjakarta.servlet.jsp.tagext.TagSupport.removeValue
+ + ( + String + ) +
Remove a value associated with a key. + + true +
+
true
JSP:JAVADOC:210Enumerationjakarta.servlet.jsp.tagext.TagSupport.getValues
+
Enumerate the keys for the values kept by this tag handler. + + true +
+
true
JSP:JAVADOC:211TagLibraryValidatorjakarta.servlet.jsp.tagext.TagLibraryValidator.TagLibraryValidator
+
+
+
true +
+
true
JSP:JAVADOC:212voidjakarta.servlet.jsp.tagext.TagLibraryValidator.setInitParameters
+ + ( + Map + ) +
Set the init data in the TLD for this validator. + Parameter names are keys, and parameter values are the values. + + true +
+
true
JSP:JAVADOC:213Mapjakarta.servlet.jsp.tagext.TagLibraryValidator.getInitParameters
+
Get the init parameters data as an immutable Map. + Parameter names are keys, and parameter values are the values. + + true +
+
true
JSP:JAVADOC:214ValidationMessage[]jakarta.servlet.jsp.tagext.TagLibraryValidator.validate
+ + ( + String + ,
String + ,
PageData + ) +
Validate a JSP page. + This will get invoked once per directive in the JSP page. This method will return null if the page is valid; otherwise the method should return an array of ValidationMessage objects. An array of length zero is also interpreted as no errors. + + true +
+
true
JSP:JAVADOC:386ValidationMessage[]jakarta.servlet.jsp.tagext.TagLibraryValidator.validate
+ + ( + String + ,
String + ,
PageData + ) +
Validate a JSP page. + This will get invoked once per directive in the JSP page. An array of length greater than zero is interpreted as an error (translation error occurs). + + true +
+
true
JSP:JAVADOC:215voidjakarta.servlet.jsp.tagext.TagLibraryValidator.release
+
Release any data kept by this instance for validation purposes + + true +
+
true
JSP:JAVADOC:216Stringjakarta.servlet.jsp.tagext.TagLibraryInfo.getURI
+
The value of the uri attribute from the taglib directive for this library. + + true +
+
true
JSP:JAVADOC:218Stringjakarta.servlet.jsp.tagext.TagLibraryInfo.getPrefixString
+
The prefix assigned to this taglib from the taglib directive + + true +
+
true
JSP:JAVADOC:219Stringjakarta.servlet.jsp.tagext.TagLibraryInfo.getShortName
+
The preferred short name (prefix) as indicated in the TLD. + This may be used by authoring tools as the preferred prefix to use when creating an taglib directive for this library. + + true +
+
true
JSP:JAVADOC:220Stringjakarta.servlet.jsp.tagext.TagLibraryInfo.getReliableURN
+
The "reliable" URN indicated in the TLD (the uri element). + This may be used by authoring tools as a global identifier to use when creating a taglib directive for this library. + + true +
+
true
JSP:JAVADOC:221Stringjakarta.servlet.jsp.tagext.TagLibraryInfo.getInfoString
+
Information (documentation) for this TLD. + + true +
+
true
JSP:JAVADOC:222Stringjakarta.servlet.jsp.tagext.TagLibraryInfo.getRequiredVersion
+
A string describing the required version of the JSP container. + + + true +
+
true
JSP:JAVADOC:223TagInfo[]jakarta.servlet.jsp.tagext.TagLibraryInfo.getTags
+
An array describing the tags that are defined in this tag library. + + true +
+
true
JSP:JAVADOC:224TagFileInfo[]jakarta.servlet.jsp.tagext.TagLibraryInfo.getTagFiles
+
An array describing the tag files that are defined in this tag library. + + true +
+
true
JSP:JAVADOC:225TagInfojakarta.servlet.jsp.tagext.TagLibraryInfo.getTag
+ + ( + String + ) +
Get the TagInfo for a given tag name, looking through all the tags in this tag library. + Returns null if no tag is found. + + true +
+
true
JSP:JAVADOC:226TagFileInfojakarta.servlet.jsp.tagext.TagLibraryInfo.getTagFile
+ + ( + String + ) +
Get the TagFileInfo for a given tag name, looking through all the tag files in this tag library. + Returns null if no tag file is found. + + true +
+
true
JSP:JAVADOC:227FunctionInfo[]jakarta.servlet.jsp.tagext.TagLibraryInfo.getFunctions
+
An array describing the functions that are defined in this tag library. + + true +
+
true
JSP:JAVADOC:228FunctionInfojakarta.servlet.jsp.tagext.TagLibraryInfo.getFunction
+ + ( + String + ) +
Get the FunctionInfo for a given function name, looking through all the functions in this tag library. + + true +
+
true
JSP:JAVADOC:229TagInfojakarta.servlet.jsp.tagext.TagInfo.TagInfo
+ + ( + String + ,
String + ,
String + ,
String + ,
TagLibraryInfo + ,
TagExtraInfo + ,
TagAttributeInfo[] + ) +
Constructor for TagInfo from data in the JSP 2.0 format for TLD. + This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since TagLibibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on a taglib directive. This is probably a design error, which may be fixed in the future. + + true +
+
true
JSP:JAVADOC:230TagInfojakarta.servlet.jsp.tagext.TagInfo.TagInfo
+ + ( + String + ,
String + ,
String + ,
String + ,
TagLibraryInfo + ,
TagExtraInfo + ,
TagAttributeInfo[] + ,
String + ,
String + ,
String + ,
TagVariableInfo[] + ) +
Constructor for TagInfo from data in the JSP 1.2 format for TLD. + This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since TagLibibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on a taglib directive. This is probably a design error, which may be fixed in the future. + + true +
+
true
JSP:JAVADOC:231TagInfojakarta.servlet.jsp.tagext.TagInfo.TagInfo
+ + ( + String + ,
String + ,
String + ,
String + ,
TagLibraryInfo + ,
TagExtraInfo + ,
TagAttributeInfo[] + ,
String + ,
String + ,
String + ,
TagVariableInfo[] + ,
boolean + ) +
Constructor for TagInfo from data in the JSP 2.0 format for TLD. + This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since TagLibibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on a taglib directive. This is probably a design error, which may be fixed in the future. + + true +
+
true
JSP:JAVADOC:232Stringjakarta.servlet.jsp.tagext.TagInfo.getTagName
+
The name of the Tag. + + true +
+
true
JSP:JAVADOC:233TagAttributeInfo[]jakarta.servlet.jsp.tagext.TagInfo.getAttributes
+
Attribute information (in the TLD) on this tag. + The return is an array describing the attributes of this tag, as indicated in the TLD. or a zero-length array if the tag has no attributes. + + true +
+
true
JSP:JAVADOC:234VariableInfo[]jakarta.servlet.jsp.tagext.TagInfo.getVariableInfo
+ + ( + TagData + ) +
Information on the scripting objects created by this tag at runtime. + This is a convenience method on the associated TagExtraInfo class. Default is null if the tag has no "id" attribute, otherwise, {"id", Object} + + true +
+
true
JSP:JAVADOC:235booleanjakarta.servlet.jsp.tagext.TagInfo.isValid
+ + ( + TagData + ) +
Translation-time validation of the attributes. + This is a convenience method on the associated TagExtraInfo class. + + true +
+
true
JSP:JAVADOC:236ValidationMessage[]jakarta.servlet.jsp.tagext.TagInfo.validate
+ + ( + TagData + ) +
Translation-time validation of the attributes. + This is a convenience method on the associated TagExtraInfo class. + + true +
+
true
JSP:JAVADOC:237voidjakarta.servlet.jsp.tagext.TagInfo.setTagExtraInfo
+ + ( + TagExtraInfo + ) +
Set the instance for extra tag information + + true +
+
true
JSP:JAVADOC:238TagExtraInfojakarta.servlet.jsp.tagext.TagInfo.getTagExtraInfo
+
The instance (if any) for extra tag information + + true +
+
true
JSP:JAVADOC:239Stringjakarta.servlet.jsp.tagext.TagInfo.getTagClassName
+
Name of the class that provides the handler for this tag. + + true +
+
true
JSP:JAVADOC:240Stringjakarta.servlet.jsp.tagext.TagInfo.getBodyContent
+
The bodycontent information for this tag. If the bodycontent is not defined for thsi tag, the defaul of JSP will be returned. + + true +
+
true
JSP:JAVADOC:241Stringjakarta.servlet.jsp.tagext.TagInfo.getInfoString
+
The information string for the tag. + + true +
+
true
JSP:JAVADOC:242voidjakarta.servlet.jsp.tagext.TagInfo.setTagLibrary
+ + ( + TagLibraryInfo + ) +
Set the TagLibraryInfo property. + Note that a TagLibraryInfo element is dependent not just on the TLD information but also on the specific taglib instance used. This means that a fair amount of work needs to be done to construct and initialize TagLib objects. If used carefully, this setter can be used to avoid having to create new TagInfo elements for each taglib directive. + + true +
+
true
JSP:JAVADOC:243TagLibraryInfojakarta.servlet.jsp.tagext.TagInfo.getTagLibrary
+
The instance of TabLibraryInfo we belong to. + + true +
+
true
JSP:JAVADOC:244Stringjakarta.servlet.jsp.tagext.TagInfo.getDisplayName
+
Get the displayName or null if not defined. + + true +
+
true
JSP:JAVADOC:245Stringjakarta.servlet.jsp.tagext.TagInfo.getSmallIcon
+
Get the path to the small icon + + true +
+
true
JSP:JAVADOC:246Stringjakarta.servlet.jsp.tagext.TagInfo.getLargeIcon
+
Get the path to the large icon + + true +
+
true
JSP:JAVADOC:247TagVariableInfo[]jakarta.servlet.jsp.tagext.TagInfo.getTagVariableInfos
+
Get TagVariableInfo objects associated with this TagInfo + + true +
+
true
JSP:JAVADOC:248booleanjakarta.servlet.jsp.tagext.TagInfo.hasDynamicAttributes
+
Get dynamicAttributes associated with this TagInfo + + true +
+
true
JSP:JAVADOC:258TagFileInfojakarta.servlet.jsp.tagext.TagFileInfo.TagFileInfo
+ + ( + String + ,
String + ,
TagInfo + ) +
Constructor for TagFileInfo from data in the JSP 2.0 format for TLD. + This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since TagLibibraryInfo reflects both TLD information and taglib directive information, a TagFileInfo instance is dependent on a taglib directive. This is probably a design error, which may be fixed in the future. + + true +
+
true
JSP:JAVADOC:259Stringjakarta.servlet.jsp.tagext.TagFileInfo.getName
+
The unique action name of this tag. + + true +
+
true
JSP:JAVADOC:260Stringjakarta.servlet.jsp.tagext.TagFileInfo.getPath
+
Where to find the .tag file implementing this action. + + true +
+
true
JSP:JAVADOC:261TagInfojakarta.servlet.jsp.tagext.TagFileInfo.getTagInfo
+
Returns information about this tag, parsed from the directives in the tag file. + + true +
+
true
JSP:JAVADOC:262TagExtraInfojakarta.servlet.jsp.tagext.TagExtraInfo.TagExtraInfo
+
+
+
true +
+
true
JSP:JAVADOC:263VariableInfo[]jakarta.servlet.jsp.tagext.TagExtraInfo.getVariableInfo
+ + ( + TagData + ) +
information on scripting variables defined by the tag associated with this TagExtraInfo instance. + Request-time attributes are indicated as such in the TagData parameter. + + true +
+
true
JSP:JAVADOC:264booleanjakarta.servlet.jsp.tagext.TagExtraInfo.isValid
+ + ( + TagData + ) +
Translation-time validation of the attributes. + Request-time attributes are indicated as such in the TagData parameter. Note that the preferred way to do validation is with the validate() method, since it can return more detailed information. + + + true +
+
true
JSP:JAVADOC:265ValidationMessage[]jakarta.servlet.jsp.tagext.TagExtraInfo.validate
+ + ( + TagData + ) +
Translation-time validation of the attributes. + Request-time attributes are indicated as such in the TagData parameter. Because of the higher quality validation messages possible, this is the preferred way to do validation (although isValid() still works). JSP 2.0 and higher containers call validate() instead of isValid(). The default implementation of this method is to call isValid(). If isValid() returns false, a generic ValidationMessage[] is returned indicating isValid() returned false. + + true +
+
true
JSP:JAVADOC:266voidjakarta.servlet.jsp.tagext.TagExtraInfo.setTagInfo
+ + ( + TagInfo + ) +
Set the TagInfo for this class. + + true +
+
true
JSP:JAVADOC:267TagInfojakarta.servlet.jsp.tagext.TagExtraInfo.getTagInfo
+
Get the TagInfo for this class. + + true +
+
true
JSP:JAVADOC:268TagDatajakarta.servlet.jsp.tagext.TagData.TagData
+ + ( + Object[][] + ) +
Constructor for TagData. + A typical constructor may be static final Object[][] att = {{"connection", "conn0"}, {"id", "query0"}}; static final TagData td = new TagData(att); All values must be Strings except for those holding the distinguished object REQUEST_TIME_VALUE. + + true +
+
true
JSP:JAVADOC:269TagDatajakarta.servlet.jsp.tagext.TagData.TagData
+ + ( + Hashtable + ) +
Constructor for a TagData. + If you already have the attributes in a hashtable, use this constructor. + + true +
+
true
JSP:JAVADOC:270Stringjakarta.servlet.jsp.tagext.TagData.getId
+
The value of the tag's id attribute. + + true +
+
true
JSP:JAVADOC:271Objectjakarta.servlet.jsp.tagext.TagData.getAttribute
+ + ( + String + ) +
The value of the attribute. If a static value is specified for an attribute that accepts a request-time attribute expression then that static value is returned even if the value is provided in the body of an action. The distinguised object REQUEST_TIME_VALUE is only returned if the value is specified as a request-time attribute expression or via the jsp:attribute action with a body that contains dynamic content (scripts, scripting expressions, EL expressions, standard actions, or custom actions).true +
+
true
JSP:JAVADOC:272voidjakarta.servlet.jsp.tagext.TagData.setAttribute
+ + ( + String + ,
Object + ) +
Set the value of an attribute. + + true +
+
true
JSP:JAVADOC:273Stringjakarta.servlet.jsp.tagext.TagData.getAttributeString
+ + ( + String + ) +
Get the value for a given attribute. + + true +
+
true
JSP:JAVADOC:274Stringjakarta.servlet.jsp.tagext.TagData.getAttributeString
+ + ( + String + ) +
throws + ClassCastException
+
if attribute value is not a Stringtrue +
+
true
JSP:JAVADOC:275Enumerationjakarta.servlet.jsp.tagext.TagData.getAttributes
+
Enumerates the attributes. + + true +
+
true
JSP:JAVADOC:276TagAttributeInfojakarta.servlet.jsp.tagext.TagAttributeInfo.TagAttributeInfo
+ + ( + String + ,
boolean + ,
String + ,
boolean + ) +
Constructor for TagAttributeInfo. + This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). + + true +
+
true
JSP:JAVADOC:277TagAttributeInfojakarta.servlet.jsp.tagext.TagAttributeInfo.TagAttributeInfo
+ + ( + String + ,
boolean + ,
String + ,
boolean + ,
boolean + ) +
JSP 2.0 Constructor for TagAttributeInfo. + This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). + + true +
+
true
JSP:JAVADOC:278Stringjakarta.servlet.jsp.tagext.TagAttributeInfo.getName
+
The name of this attribute. + + true +
+
true
JSP:JAVADOC:279Stringjakarta.servlet.jsp.tagext.TagAttributeInfo.getTypeName
+
The type (as a String) of this attribute. + + true +
+
true
JSP:JAVADOC:280booleanjakarta.servlet.jsp.tagext.TagAttributeInfo.canBeRequestTime
+
Whether this attribute can hold a request-time value. + + true +
+
true
JSP:JAVADOC:281booleanjakarta.servlet.jsp.tagext.TagAttributeInfo.isRequired
+
Whether this attribute is required. + + true +
+
true
JSP:JAVADOC:282TagAttributeInfojakarta.servlet.jsp.tagext.TagAttributeInfo.getIdAttribute
+ + ( + TagAttributeInfo[] + ) +
Convenience static method that goes through an array of TagAttributeInfo objects and looks for "id". + + true +
+
true
JSP:JAVADOC:283booleanjakarta.servlet.jsp.tagext.TagAttributeInfo.isFragment
+
Whether this attribute is of type JspFragment + + true +
+
true
JSP:JAVADOC:284Stringjakarta.servlet.jsp.tagext.TagAttributeInfo.toString
+
Returns a String representation of this TagAttributeInfo, suitable for debugging purposes. + + true +
+
true
JSP:JAVADOC:285TagAdapterjakarta.servlet.jsp.tagext.TagAdapter.TagAdapter
+ + ( + SimpleTag + ) +
Creates a new TagAdapter that wraps the given SimeplTag and returns the parent tag when getParent() is called. + + true +
+
true
JSP:JAVADOC:286voidjakarta.servlet.jsp.tagext.TagAdapter.setPageContext
+ + ( + PageContext + ) +
Must not be called. + + true +
+
true
JSP:JAVADOC:287voidjakarta.servlet.jsp.tagext.TagAdapter.setPageContext
+ + ( + PageContext + ) +
throws + UnsupportedOperationException
+
Must not be calledtrue +
+
true
JSP:JAVADOC:288voidjakarta.servlet.jsp.tagext.TagAdapter.setParent
+ + ( + Tag + ) +
Must not be called. + The parent of this tag is always getAdaptee().getParent(). + + true +
+
true
JSP:JAVADOC:289voidjakarta.servlet.jsp.tagext.TagAdapter.setParent
+ + ( + Tag + ) +
throws + UnsupportedOperationException
+
Must not be called.true +
+
true
JSP:JAVADOC:290Tagjakarta.servlet.jsp.tagext.TagAdapter.getParent
+
Returns the value passed to setParent(). + This will either be the enclosing Tag (if parent implements Tag), or an adapter to the enclosing Tag (if parent does not implement Tag). + + true +
+
true
JSP:JAVADOC:291JspTagjakarta.servlet.jsp.tagext.TagAdapter.getAdaptee
+
Gets the tag that is being adapted to the Tag interface. + This should be an instance of SimpleTag in JSP 2.0, but room is left for other kinds of tags in future spec versions. + + true +
+
true
JSP:JAVADOC:292intjakarta.servlet.jsp.tagext.TagAdapter.doStartTag
+
Must not be called. + + true +
+
false
JSP:JAVADOC:293intjakarta.servlet.jsp.tagext.TagAdapter.doStartTag
+
throws + JspException
+
never throwntrue +
+
false
JSP:JAVADOC:294intjakarta.servlet.jsp.tagext.TagAdapter.doStartTag
+
throws + UnsupportedOperationException
+
Must not be calledtrue +
+
false
JSP:JAVADOC:295intjakarta.servlet.jsp.tagext.TagAdapter.doEndTag
+
Must not be called. + + true +
+
false
JSP:JAVADOC:296intjakarta.servlet.jsp.tagext.TagAdapter.doEndTag
+
throws + JspException
+
never throwntrue +
+
false
JSP:JAVADOC:297intjakarta.servlet.jsp.tagext.TagAdapter.doEndTag
+
throws + UnsupportedOperationException
+
Must not be calledtrue +
+
false
JSP:JAVADOC:298voidjakarta.servlet.jsp.tagext.TagAdapter.release
+
Must not be called. + + true +
+
false
JSP:JAVADOC:299voidjakarta.servlet.jsp.tagext.TagAdapter.release
+
throws + UnsupportedOperationException
+
Must not be calledtrue +
+
false
JSP:JAVADOC:300SimpleTagSupportjakarta.servlet.jsp.tagext.SimpleTagSupport.SimpleTagSupport
+
+
+
true +
+
true
JSP:JAVADOC:301voidjakarta.servlet.jsp.tagext.SimpleTagSupport.doTag
+
Default processing of the tag does nothing. + + + true +
+
true
JSP:JAVADOC:302voidjakarta.servlet.jsp.tagext.SimpleTagSupport.doTag
+
throws + JspException
+
Subclasses can throw JspException to indicate an error occurred while processing this tag.true +
+
false
JSP:JAVADOC:303voidjakarta.servlet.jsp.tagext.SimpleTagSupport.doTag
+
throws + IOException
+
Subclasses can throw IOException if there was an error writing to the output streamtrue +
+
false
JSP:JAVADOC:304voidjakarta.servlet.jsp.tagext.SimpleTagSupport.doTag
+
throws + SkipPageException
+
If the page that (either directly or indirectly) invoked this tag is to cease evaluation. A Simple Tag Handler generated from a tag file must throw this exception if an invoked Classic Tag Handler returned SKIP_PAGE or if an invoked Simple Tag Handler threw SkipPageException or if an invoked Jsp Fragment threw a SkipPageException.true +
+
true
JSP:JAVADOC:305voidjakarta.servlet.jsp.tagext.SimpleTagSupport.setParent
+ + ( + JspTag + ) +
Sets the parent of this tag, for collaboration purposes. + + true +
+
true
JSP:JAVADOC:306JspTagjakarta.servlet.jsp.tagext.SimpleTagSupport.getParent
+
Returns the parent of this tag, for collaboration purposes. + + true +
+
true
JSP:JAVADOC:307voidjakarta.servlet.jsp.tagext.SimpleTagSupport.setJspContext
+ + ( + JspContext + ) +
Stores the provided JSP context in the protected jspContext field. + + + true +
+
true
JSP:JAVADOC:308JspContextjakarta.servlet.jsp.tagext.SimpleTagSupport.getJspContext
+
Returns the page context passed in by the container via setJspContext. + + true +
+
true
JSP:JAVADOC:309voidjakarta.servlet.jsp.tagext.SimpleTagSupport.setJspBody
+ + ( + JspFragment + ) +
Stores the provided JspFragment. + + + true +
+
true
JSP:JAVADOC:310JspFragmentjakarta.servlet.jsp.tagext.SimpleTagSupport.getJspBody
+
Returns the body passed in by the container via setJspBody + + true +
+
true
JSP:JAVADOC:311JspTagjakarta.servlet.jsp.tagext.SimpleTagSupport.findAncestorWithClass
+ + ( + JspTag + ,
Class + ) +
Find the instance of a given class type that is closest to a given instance. + This method uses the getParent method from the Tag and/or SimpleTag interfaces. This method is used for coordination among cooperating tags. For every instance of TagAdapter encoutnered will traversing the ancestors the tag handler returned by TagAdapter.getAdatpee() - instead of the TagAdapter itself - is compared to klass. If the tag handler matches it - and not its TagAdapter - is returned. The current version of the specification only provides one formal way of indicating the observable type of a tag handler: its tag handler implementation class, described in the tag-class subelement of the tag element. This is extended in an informal manner by allowing the tag library author to indicate in the description subelement an observable type. The type should be a subtype of the tag handler implementation class or void. This addititional constraint can be exploited by a specialized container that knows about that specific tag library, as in the case of the JSP standard tag library. When a tag library author provides information on the observable type of a tag handler, client programmatic code should adhere to that constraint. Specifically, the Class passed to findAncestorWithClass should be a subtype of the observable type. + + true +
+
true
JSP:JAVADOC:312PageDatajakarta.servlet.jsp.tagext.PageData.PageData
+
+
+
true +
+
true
JSP:JAVADOC:313InputStreamjakarta.servlet.jsp.tagext.PageData.getInputStream
+
Returns an input stream on the XML view of a JSP page. The stream is encoded in UTF-8. + Recall tht the XML view of a JSP page has the include directives expanded. + + true +
+
true
JSP:JAVADOC:314FunctionInfojakarta.servlet.jsp.tagext.FunctionInfo.FunctionInfo
+ + ( + String + ,
String + ,
String + ) +
Constructor for FunctionInfo. + + true +
+
true
JSP:JAVADOC:315Stringjakarta.servlet.jsp.tagext.FunctionInfo.getName
+
The name of the function. + + true +
+
true
JSP:JAVADOC:316Stringjakarta.servlet.jsp.tagext.FunctionInfo.getFunctionClass
+
The class of the function. + + true +
+
true
JSP:JAVADOC:317Stringjakarta.servlet.jsp.tagext.FunctionInfo.getFunctionSignature
+
The signature of the function. + + true +
+
true
JSP:JAVADOC:318BodyTagSupportjakarta.servlet.jsp.tagext.BodyTagSupport.BodyTagSupport
+
Default constructor, all subclasses are required to only define a public constructor with the same signature, and to call the superclass constructor. + This constructor is called by the code generated by the JSP translator. + + true +
+
true
JSP:JAVADOC:319intjakarta.servlet.jsp.tagext.BodyTagSupport.doStartTag
+
Default processing of the start tag returning EVAL_BODY_BUFFERED + + + true +
+
true
JSP:JAVADOC:320intjakarta.servlet.jsp.tagext.BodyTagSupport.doStartTag
+
throws + JspException
+
if an error occurred while processing this tagtrue +
+
false
JSP:JAVADOC:321intjakarta.servlet.jsp.tagext.BodyTagSupport.doEndTag
+
Default processing of the end tag returning EVAL_PAGE. + + + true +
+
true
JSP:JAVADOC:322intjakarta.servlet.jsp.tagext.BodyTagSupport.doEndTag
+
throws + JspException
+
if an error occurred while processing this tagtrue +
+
false
JSP:JAVADOC:323voidjakarta.servlet.jsp.tagext.BodyTagSupport.setBodyContent
+ + ( + BodyContent + ) +
Prepare for evaluation of the body: stash the bodyContent away. + + + + + true +
+
true
JSP:JAVADOC:324voidjakarta.servlet.jsp.tagext.BodyTagSupport.doInitBody
+
Prepare for evaluation of the body just before the first body evaluation: no action. + + + + + true +
+
true
JSP:JAVADOC:325voidjakarta.servlet.jsp.tagext.BodyTagSupport.doInitBody
+
throws + JspException
+
if an error occurred while processing this tagtrue +
+
false
JSP:JAVADOC:326intjakarta.servlet.jsp.tagext.BodyTagSupport.doAfterBody
+
After the body evaluation: do not reevaluate and continue with the page. + By default nothing is done with the bodyContent data (if any). + + + + true +
+
true
JSP:JAVADOC:327intjakarta.servlet.jsp.tagext.BodyTagSupport.doAfterBody
+
throws + JspException
+
if an error occurred while processing this tagtrue +
+
false
JSP:JAVADOC:328voidjakarta.servlet.jsp.tagext.BodyTagSupport.release
+
Release state. + + + true +
+
false
JSP:JAVADOC:329BodyContentjakarta.servlet.jsp.tagext.BodyTagSupport.getBodyContent
+
Get current bodyContent. + + true +
+
true
JSP:JAVADOC:330JspWriterjakarta.servlet.jsp.tagext.BodyTagSupport.getPreviousOut
+
Get surrounding out JspWriter. + + true +
+
true
JSP:JAVADOC:331voidjakarta.servlet.jsp.tagext.BodyContent.flush
+
Redefined flush() so it is not legal. + It is not valid to flush a BodyContent because there is no backing stream behind it. + + true +
+
false
JSP:JAVADOC:332voidjakarta.servlet.jsp.tagext.BodyContent.flush
+
throws + IOException
+
always throwntrue +
+
true
JSP:JAVADOC:333voidjakarta.servlet.jsp.tagext.BodyContent.clearBody
+
Clear the body without throwing any exceptions. + + true +
+
true
JSP:JAVADOC:334Readerjakarta.servlet.jsp.tagext.BodyContent.getReader
+
Return the value of this BodyContent as a Reader. + + true +
+
true
JSP:JAVADOC:335Stringjakarta.servlet.jsp.tagext.BodyContent.getString
+
Return the value of the BodyContent as a String. + + true +
+
true
JSP:JAVADOC:336voidjakarta.servlet.jsp.tagext.BodyContent.writeOut
+ + ( + Writer + ) +
Write the contents of this BodyContent into a Writer. + Subclasses may optimize common invocation patterns. + + true +
+
true
JSP:JAVADOC:337voidjakarta.servlet.jsp.tagext.BodyContent.writeOut
+ + ( + Writer + ) +
throws + IOException
+
if an I/O error occurred while writing the contents of this BodyContent to the given Writertrue +
+
false
JSP:JAVADOC:338JspWriterjakarta.servlet.jsp.tagext.BodyContent.getEnclosingWriter
+
Get the enclosing JspWriter. + + true +
+
true
JSP:JAVADOC:339voidjakarta.servlet.jsp.tagext.TryCatchFinally.doCatch
+ + ( + Throwable + ) +
Invoked if a Throwable occurs while evaluating the BODY inside a tag or in any of the following methods: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody(). + This method is not invoked if the Throwable occurs during one of the setter methods. This method may throw an exception (the same or a new one) that will be propagated further up the nest chain. If an exception is thrown, doFinally() will be invoked. This method is intended to be used to respond to an exceptional condition. + + true +
+
true
JSP:JAVADOC:340voidjakarta.servlet.jsp.tagext.TryCatchFinally.doCatch
+ + ( + Throwable + ) +
throws + Throwable
+
Throwable if the exception is to be rethrown further up the next chaintrue +
+
false
JSP:JAVADOC:341voidjakarta.servlet.jsp.tagext.TryCatchFinally.doFinally
+
Invoked in all cases after doEndTag() for any class implementing Tag, IterationTag or BodyTag. + This method is invoked even if an exception has occurred in the BODY of the tag, or in any of the following methods: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody(). This method is not invoked if the Throwable occurs during one of the setter methods. This method should not throw an Exception. This method is intended to maintain per-invocation data integrity and resource management actions. + + true +
+
true
JSP:JAVADOC:342voidjakarta.servlet.jsp.tagext.Tag.setPageContext
+ + ( + PageContext + ) +
Set the current page context. + This method is invoked by the JSP page implementation object prior to doStartTag(). This value is *not* reset by doEndTag() and must be explicitly reset by a page implementation if it changes between calls to doStartTag(). + + true +
+
true
JSP:JAVADOC:343voidjakarta.servlet.jsp.tagext.Tag.setParent
+ + ( + Tag + ) +
Set the parent (closest enclosing tag handler) of this tag handler. + Invoked by the JSP page implementation object prior to doStartTag(). This value is *not* reset by doEndTag() and must be explicitly reset by a page implementation. + + true +
+
true
JSP:JAVADOC:344Tagjakarta.servlet.jsp.tagext.Tag.getParent
+
Get the parent (closest enclosing tag handler) for this tag handler. + The getParent() method can be used to navigate the nested tag handler structure at runtime for cooperation among custom actions; for example, the findAncestorWithClass() method in TagSupport provides a convenient way of doing this. The current version of the specification only provides one formal way of indicating the observable type of a tag handler: its tag handler implementation class, described in the tag-class subelement of the tag element. This is extended in an informal manner by allowing the tag library author to indicate in the description subelement an observable type. The type should be a subtype of the tag handler implementation class or void. This addititional constraint can be exploited by a specialized container that knows about that specific tag library, as in the case of the JSP standard tag library. + + + true +
+
true
JSP:JAVADOC:345intjakarta.servlet.jsp.tagext.Tag.doStartTag
+
Process the start tag for this instance. + This method is invoked by the JSP page implementation object. The doStartTag method assumes that the properties pageContext and parent have been set. It also assumes that any properties exposed as attributes have been set too. When this method is invoked, the body has not yet been evaluated. When a Tag returns EVAL_BODY_INCLUDE the result of evaluating the body (if any) is included into the current "out" JspWriter as it happens and then doEndTag() is invoked. + true +
+
true
JSP:JAVADOC:346intjakarta.servlet.jsp.tagext.Tag.doStartTag
+
Process the start tag for this instance. + This method is invoked by the JSP page implementation object. The doStartTag method assumes that the properties pageContext and parent have been set. It also assumes that any properties exposed as attributes have been set too. When this method is invoked, the body has not yet been evaluated. Returning BodyTag.EVAL_BODY_BUFFERED is only valid if the tag handler implements BodyTag. + true +
+
true
JSP:JAVADOC:347intjakarta.servlet.jsp.tagext.Tag.doStartTag
+
Process the start tag for this instance. + This method is invoked by the JSP page implementation object. The doStartTag method assumes that the properties pageContext and parent have been set. It also assumes that any properties exposed as attributes have been set too. When this method is invoked, the body has not yet been evaluated. When SKIP_PAGE is returned, the processing of the page will cease and no remainder tag methods, such as doEndTag() will be called within this JSP page implementation object. + true +
+
true
JSP:JAVADOC:348intjakarta.servlet.jsp.tagext.Tag.doStartTag
+
The JSP container will recynchronize the values of any AT_EBING and NESTED variables (defined by the associated TagExtraInfo or TLD) after the invocation of doStartTag() except for a tag handler implementing BodyTag whose doStartTag() method returns BodyTag.EVAL_BODY_BUFFERED. true +
+
true
JSP:JAVADOC:349intjakarta.servlet.jsp.tagext.Tag.doStartTag
+
throws + JspException
+
if an error occurred while processing this tagtrue +
+
false
JSP:JAVADOC:350intjakarta.servlet.jsp.tagext.Tag.doEndTag
+
Process the end tag for this instance. + This method is invoked by the JSP page implementation object on all Tag handlers. This method will be called after returning from doStartTag. The body of the action may or may not have been evaluated, depending on the return value of doStartTag. If this method returns EVAL_PAGE, the rest of the page continues to be evaluated. + true +
+
true
JSP:JAVADOC:351intjakarta.servlet.jsp.tagext.Tag.doEndTag
+
Process the end tag for this instance. + This method is invoked by the JSP page implementation object on all Tag handlers. This method will be called after returning from doStartTag. The body of the action may or may not have been evaluated, depending on the return value of doStartTag. If this method returns SKIP_PAGE, the rest of the page is not evaluated, the request is completed, and the doEndTag() methods of enclosing tags are not invoked. If this request was forwarded or included from another page (or Servlet), only the current page evaluation is stopped. + true +
+
true
JSP:JAVADOC:352intjakarta.servlet.jsp.tagext.Tag.doEndTag
+
Process the end tag for this instance. + This method is invoked by the JSP page implementation object on all Tag handlers. This method will be called after returning from doStartTag. The body of the action may or may not have been evaluated, depending on the return value of doStartTag. If this method returns EVAL_PAGE, the rest of the page continues to be evaluated. If this method returns SKIP_PAGE, the rest of the page is not evaluated, the request is completed, and the doEndTag() methods of enclosing tags are not invoked. If this request was forwarded or included from another page (or Servlet), only the current page evaluation is stopped. The JSP container will resynchronize any variable values that are indicated as so in TagExtraInfo after the invocation of doEndTag(). + + true +
+
true
JSP:JAVADOC:353intjakarta.servlet.jsp.tagext.Tag.doEndTag
+
The JSP container will resynchronize the values of any AT_BEGIN and AT_END variables (defined by the assocaited TagExtraInfo or TLD) after the invocation of doEndTag().true +
+
true
JSP:JAVADOC:354intjakarta.servlet.jsp.tagext.Tag.doEndTag
+
throws + JspException
+
if an error occurred while processing this tagtrue +
+
true
JSP:JAVADOC:355voidjakarta.servlet.jsp.tagext.Tag.release
+
Called on a Tag handler to release state. + The page compiler guarantees that JSP page implementation objects will invoke this method on all tag handlers, but there may be multiple invocations on doStartTag and doEndTag in between. + + true +
+
false
JSP:JAVADOC:356voidjakarta.servlet.jsp.tagext.SimpleTag.doTag
+
Called by the container to invoke this tag. + The implementation of this method is provided by the tag library developer, and handles all tag processing, body iteration, etc. + + true +
+
true
JSP:JAVADOC:400voidjakarta.servlet.jsp.tagext.SimpleTag.doTag
+
The JSP container will recynchronize any AT_BEGIN and AT_END variables (defined by the associated tag file TagExtraInfo or TLD) after the invocation of doTag().true +
+
true
JSP:JAVADOC:357voidjakarta.servlet.jsp.tagext.SimpleTag.doTag
+
throws + JspException
+
If an error occurred while processing this tag.true +
+
false
JSP:JAVADOC:358voidjakarta.servlet.jsp.tagext.SimpleTag.doTag
+
throws + IOException
+
If there was an error writing to the output stream.true +
+
false
JSP:JAVADOC:359voidjakarta.servlet.jsp.tagext.SimpleTag.doTag
+
throws + SkipPageException
+
If the page that (either directly or indirectly) invoked this tag is to cease evaluation. A Simple Tag Handler generated from a tag file must throw this exception if an invoked Classic Tag Handler returned SKIP_PAGE or if an invoked Simple Tag Handler threw SkipPageException or if an invoked Jsp Fragment threw a SkipPageException.true +
+
true
JSP:JAVADOC:360voidjakarta.servlet.jsp.tagext.SimpleTag.setParent
+ + ( + JspTag + ) +
Sets the parent of this tag, for collaboration purposes. + + true +
+
true
JSP:JAVADOC:361JspTagjakarta.servlet.jsp.tagext.SimpleTag.getParent
+
Returns the parent of this tag, for collaboration purposes. + + true +
+
true
JSP:JAVADOC:362voidjakarta.servlet.jsp.tagext.SimpleTag.setJspContext
+ + ( + JspContext + ) +
Stores the provided JSP context in the protected jspContext field. + + + true +
+
true
JSP:JAVADOC:363voidjakarta.servlet.jsp.tagext.SimpleTag.setJspBody
+ + ( + JspFragment + ) +
Provides the body of this tag as a JspFragment object, able to be invoked zero or more times by the tag handler. + This method is invoked by the JSP page implementation object prior to doTag(). + + true +
+
true
JSP:JAVADOC:403JspFragmentjakarta.servlet.jsp.tagext.JspFragment.JspFragment
+
+
+
true +
+
true
JSP:JAVADOC:404JspContextjakarta.servlet.jsp.tagext.JspFragment.getJspContext
+
Returns the JspContext that is bound to this JspFragment.true +
+
true
JSP:JAVADOC:382voidjakarta.servlet.jsp.tagext.JspFragment.invoke
+ + ( + Writer + ) +
Executes the fragment and directs all output to the given Writer, or the JspWriter returned by the getOut() method of the JspContext associated with the fragment if out is null.true +
+
true
JSP:JAVADOC:401voidjakarta.servlet.jsp.tagext.JspFragment.invoke
+ + ( + Writer + ) +
throws + JspException
+
Thrown if an error occured while invoking this fragment.true +
+
true
JSP:JAVADOC:402voidjakarta.servlet.jsp.tagext.JspFragment.invoke
+ + ( + Writer + ) +
throws + IOException
+
If there was an error writing to the stream.true +
+
true
JSP:JAVADOC:367voidjakarta.servlet.jsp.tagext.JspFragment.invoke
+ + ( + Writer + ) +
throws + SkipPageException
+
Thrown if the page that (either directly or indirectly) invoked the tag handler that invoked this fragment is to cease evaluation. The container must throw this exception if a Classic Tag Handler returned Tag.SKIP_PAGE or if a Simple Tag Handler threw SkipPageException.true +
+
true
JSP:JAVADOC:368intjakarta.servlet.jsp.tagext.IterationTag.doAfterBody
+
Process body (re)evaluation. + This method is invoked by the JSP Page implementation object after every evaluation of the body into the BodyEvaluation object. The method is not invoked if there is no body evaluation. + true +
+
true
JSP:JAVADOC:369intjakarta.servlet.jsp.tagext.IterationTag.doAfterBody
+
Process body (re)evaluation. + This method is invoked by the JSP Page implementation object after every evaluation of the body into the BodyEvaluation object. If doAfterBody returns EVAL_BODY_AGAIN, a new evaluation of the body will happen (followed by another invocation of doAfterBody). + true +
+
true
JSP:JAVADOC:386intjakarta.servlet.jsp.tagext.IterationTag.doAfterBody
+
Process body (re)evaluation. + This method is invoked by the JSP Page implementation object after every evaluation of the body into the BodyEvaluation object. If doAfterBody returns SKIP_PAGE no more body evaluations will occur and the doEndTag method will be invoked. + true +
+
true
JSP:JAVADOC:370intjakarta.servlet.jsp.tagext.IterationTag.doAfterBody
+
throws + JspException
+
+
+
true +
+
false
JSP:JAVADOC:371intjakarta.servlet.jsp.tagext.IterationTag.doAfterBody
+
+ The JSP container will resynchronize the values of any AT_BEGIN and NESTED variables (defined by the associated TagExtraInfo or TLD) after the invocation of doAfterBody(). + true +
+
true
JSP:JAVADOC:372voidjakarta.servlet.jsp.tagext.DynamicAttributes.setDynamicAttribute
+ + ( + String + ,
String + ,
Object + ) +
Called when a tag declared to accept dynamic attributes is passed an attribute that is not declared in the Tag Library Descriptor. + + true +
+
true
JSP:JAVADOC:373voidjakarta.servlet.jsp.tagext.DynamicAttributes.setDynamicAttribute
+ + ( + String + ,
String + ,
Object + ) +
throws + JspException
+
if the tag handler wishes to signal that it does not accept the given attribute. The container must not call doStartTag() or doTag() for this tag.true +
+
false
JSP:JAVADOC:374voidjakarta.servlet.jsp.tagext.BodyTag.setBodyContent
+ + ( + BodyContent + ) +
Set the bodyContent property. + This method is invoked by the JSP page implementation object at most once per action invocation. This method will be invoked before doInitBody. This method will not be invoked for empty tags or for non-empty tags whose doStartTag() method returns SKIP_BODY or EVAL_BODY_INCLUDE. When setBodyContent is invoked, the value of the implicit object out has already been changed in the pageContext object. The BodyContent object passed will have not data on it but may have been reused (and cleared) from some previous invocation. The BodyContent object is available and with the appropriate content until after the invocation of the doEndTag method, at which case it may be reused. + true +
+
true
JSP:JAVADOC:375voidjakarta.servlet.jsp.tagext.BodyTag.doInitBody
+
Prepare for evaluation of the body. + This method is invoked by the JSP page implementation object after setBodyContent and before the first time the body is to be evaluated. + true +
+
true
JSP:JAVADOC:376voidjakarta.servlet.jsp.tagext.BodyTag.doInitBody
+
Prepare for evaluation of the body. + This method will not be invoked for empty tags or for non-empty tags whose doStartTag() method returns SKIP_BODY or EVAL_BODY_INCLUDE. + true +
+
true
JSP:JAVADOC:377voidjakarta.servlet.jsp.tagext.BodyTag.doInitBody
+
The JSP container will resynchronize the values if AT_BEGIN and NESTED variabled (defined by the associated TagExtraInfo or TLD) after the invfocation of doInitBody().true +
+
true
JSP:JAVADOC:378voidjakarta.servlet.jsp.tagext.BodyTag.doInitBody
+
throws + JspException
+
If an error occurred while processing this tagtrue +
+
false
JSP:JAVADOC:406voidjakarta.servlet.jsp.HttpJspPage._jspService
+ + ( + HttpServletRequest + ,
HttpServletResponse + ) +
The _jspService()method corresponds to the body of the JSP page. + This method is defined automatically by the JSP container and should never be defined by the JSP page author. If a superclass is specified using the extends attribute, that superclass may choose to perform some actions in its service() method before or after calling the _jspService() method. See using the extends attribute in the JSP_Engine chapter of the JSP specification. + + true +
+
true
JSP:JAVADOC:407voidjakarta.servlet.jsp.HttpJspPage._jspService
+ + ( + HttpServletRequest + ,
HttpServletResponse + ) +
throws + ServletException
+
Thrown if an error occurred during the processing of the JSP and that the container should take appropriate action to clean up the request.true +
+
true
JSP:JAVADOC:408voidjakarta.servlet.jsp.HttpJspPage._jspService
+ + ( + HttpServletRequest + ,
HttpServletResponse + ) +
throws + IOException
+
Thrown if an error occurred while writing the response for this page.true +
+
true
JSP:JAVADOC:409voidjakarta.servlet.jsp.JspApplicationContext.addELContextListener
+ + ( + ELContextListener + ) +
Registers a ELContextListeners so that context objects can be added whenever a new ELContext is created. + + At a minimum, the ELContext objects created will contain a reference to the JspContext for this request, which is added by the JSP container. This is sufficient for all the default ELResolvers listed in #addELResolver. Note that JspContext.class is used as the key to ELContext.putContext() for the JspContext object reference. This method is generally used by frameworks and applications that register their own ELResolver that needs context other than JspContext. The listener will typically add the necessary context to the ELContext provided in the event object. Registering a listener that adds context allows the ELResolvers in the stack to access the context they need when they do a resolution. + + true +
+
true
JSP:JAVADOC:410voidjakarta.servlet.jsp.JspApplicationContext.addELResolver
+ + ( + ELResolver + ) +
Adds an ELResolver to affect the way EL variables and properties are resolved for EL expressions appearing in JSP pages and tag files. + + + + + + + For example, in the EL expression ${employee.lastName}, an ELResolver determines what object "employee" references and how to find its "lastName" property. When evaluating an expression, the JSP container will consult a set of standard resolvers as well as any resolvers registered via this method. The set of resolvers are consulted in the following order: jakarta.servlet.jsp.el.ImplicitObjectELResolver ELResolvers registered via this method, in the order in which they are registered. jakarta.el.MapELResolverjakarta.el.ListELResolverjakarta.el.ArrayELResolverjakarta.el.BeanELResolverjakarta.servlet.jsp.el.ScopedAttributeELResolver It is illegal to register an ELResolver after the application has received any request from the client. If an attempt is made to register an ELResolver after that time, an IllegalStateException is thrown. This restriction is in place to allow the JSP container to optimize for the common case where no additional ELResolvers are in the chain, aside from the standard ones. It is permissible to add ELResolvers before or after initialization to a CompositeELResolver that is already in the chain. It is not possible to remove an ELResolver registered with this method, once it has been registered. + + true +
+
true
JSP:JAVADOC:411ExpressionFactoryjakarta.servlet.jsp.JspApplicationContext.getExpressionFactory
+
Returns a factory used to create ValueExpressions and MethodExpressions so that EL expressions can be parsed and evaluated. + + true +
+
true
JSP:JAVADOC:412VariableResolverjakarta.servlet.jsp.JspContext.getVariableResolver
+
Returns an instance of a VariableResolver that provides access to the implicit objects specified in the JSP specification using this JspContext as the context object. + + truetruetrue
JSP:JAVADOC:413JspFactoryjakarta.servlet.jsp.JspFactory.getDefaultFactory
+
Returns the default factory for this implementation. + + true +
+
true
JSP:JAVADOC:414JspEngineInfojakarta.servlet.jsp.JspFactory.getEngineInfo
+
called to get implementation-specific information on the current JSP engine. + + + true +
+
true
JSP:JAVADOC:415JspApplicationContextjakarta.servlet.jsp.JspFactory.getJspApplicationContext
+ + ( + ServletContext + ) +
Obtains the JspApplicationContext instance associated with the web application for the given ServletContext. + + true +
+
true
JSP:JAVADOC:416PageContextjakarta.servlet.jsp.JspFactory.getPageContext
+ + ( + Servlet + ,
ServletRequest + ,
ServletResponse + ,
String + ,
boolean + ,
int + ,
boolean + ) +
obtains an instance of an implementation dependent jakarta.servlet.jsp.PageContext abstract class for the calling Servlet and currently pending request and response. + This method is typically called early in the processing of the _jspService() method of a JSP implementation class in order to obtain a PageContext object for the request being processed. Invoking this method shall result in the PageContext.initialize() method being invoked. The PageContext returned is properly initialized. All PageContext objects obtained via this method shall be released by invoking releasePageContext(). + + + true +
+
true
JSP:JAVADOC:417JspFactoryjakarta.servlet.jsp.JspFactory.JspFactory
+
Sole constructor. + (For invocation by subclass constructors, typically implicit.) + + true +
+
true
JSP:JAVADOC:418voidjakarta.servlet.jsp.JspFactory.releasePageContext
+ + ( + PageContext + ) +
called to release a previously allocated PageContext object. + Results in PageContext.release() being invoked. This method should be invoked prior to returning from the _jspService() method of a JSP implementation class. + + true +
+
true
JSP:JAVADOC:419voidjakarta.servlet.jsp.JspFactory.setDefaultFactory
+ + ( + JspFactory + ) +
set the default factory for this implementation. + It is illegal for any principal other than the JSP Engine runtime to call this method. + + true +
+
true
JSP:JAVADOC:420Classjakarta.servlet.jsp.el.ImplicitObjectELResolver.getCommonPropertyType
+ + ( + ELContext + ,
Object + ) +
If the base object is null, returns String.class. + Otherwise, returns null. + + true +
+
true
JSP:JAVADOC:421Iteratorjakarta.servlet.jsp.el.ImplicitObjectELResolver.getFeatureDescriptors
+ + ( + ELContext + ,
Object + ) +
If the base object is null, and the property matches the name of a JSP implicit object, returns an Iterator containing FeatureDescriptor objects with information about each JSP implicit object resolved by this resolver. + + + + Otherwise, returns null. The Iterator returned must contain one instance of java.beans.FeatureDescriptor for each of the EL implicit objects defined by the JSP spec. Each info object contains information about a single implicit object, and is initialized as follows: displayName - The name of the implicit object. name - Same as displayName property. shortDescription - A suitable description for the implicit object. Will vary by implementation. expert - false hidden - false preferred - true In addition, the following named attributes must be set in the returned FeatureDescriptors: ELResolver#TYPE - The runtime type of the implicit object. ELResolver#RESOLVABLE_AT_DESIGN_TIME - true. + + true +
+
true
JSP:JAVADOC:422Classjakarta.servlet.jsp.el.ImplicitObjectELResolver.getType
+ + ( + ELContext + ,
Object + ,
Object + ) +
If the base object is null, and the property matches the name of a JSP implicit object, returns null to indicate that no types are ever accepted to setValue(). + The propertyResolved property of the ELContext object must be set to true by this resolver before returning if an implicit object is matched. If this property is not true after this method is called, the caller should ignore the return value. + + true +
+
true
JSP:JAVADOC:423Objectjakarta.servlet.jsp.el.ImplicitObjectELResolver.getValue
+ + ( + ELContext + ,
Object + ,
Object + ) +
If the base object is null, and the property matches the name of a JSP implicit object, returns the implicit object. + The propertyResolved property of the ELContext object must be set to true by this resolver before returning if an implicit object is matched. If this property is not true after this method is called, the caller should ignore the return value. + + true +
+
true
JSP:JAVADOC:424ImplicitObjectELResolverjakarta.servlet.jsp.el.ImplicitObjectELResolver.ImplicitObjectELResolver
+
+
+
true +
+
true
JSP:JAVADOC:425booleanjakarta.servlet.jsp.el.ImplicitObjectELResolver.isReadOnly
+ + ( + ELContext + ,
Object + ,
Object + ) +
If the base object is null, and the property matches the name of a JSP implicit object, returns true to indicate that implicit objects cannot be overwritten. + The propertyResolved property of the ELContext object must be set to true by this resolver before returning if an implicit object is matched. If this property is not true after this method is called, the caller should ignore the return value. + + true +
+
true
JSP:JAVADOC:426voidjakarta.servlet.jsp.el.ImplicitObjectELResolver.setValue
+ + ( + ELContext + ,
Object + ,
Object + ,
Object + ) +
If the base object is null, and the property matches the name of a JSP implicit object, throws PropertyNotWritableException to indicate that implicit objects cannot be overwritten. + The propertyResolved property of the ELContext object must be set to true by this resolver before returning if an implicit object is matched. If this property is not true after this method is called, the caller should ignore the return value. + + true +
+
true
JSP:JAVADOC:427Classjakarta.servlet.jsp.el.ScopedAttributeELResolver.getCommonPropertyType
+ + ( + ELContext + ,
Object + ) +
If the base object is null, returns String.class. + Otherwise, returns null. + + true +
+
true
JSP:JAVADOC:428Iteratorjakarta.servlet.jsp.el.ScopedAttributeELResolver.getFeatureDescriptors
+ + ( + ELContext + ,
Object + ) +
If the base object is null, returns an Iterator containing FeatureDescriptor objects with information about each scoped attribute resolved by this resolver. + + + + Otherwise, returns null. The Iterator returned must contain one instance of java.beans.FeatureDescriptor for each scoped attribute found in any scope. Each info object contains information about a single scoped attribute, and is initialized as follows: displayName - The name of the scoped attribute. name - Same as displayName property. shortDescription - A suitable description for the scoped attribute. Should include the attribute's current scope (page, request, session, application). Will vary by implementation. expert - false hidden - false preferred - true In addition, the following named attributes must be set in the returned FeatureDescriptors: ELResolver#TYPE - The current runtime type of the scoped attribute. ELResolver#RESOLVABLE_AT_DESIGN_TIME - true. + + true +
+
true
JSP:JAVADOC:429Classjakarta.servlet.jsp.el.ScopedAttributeELResolver.getType
+ + ( + ELContext + ,
Object + ,
Object + ) +
If the base object is null, returns Object.class to indicate that any type is valid to set for a scoped attribute. + The propertyResolved property of the ELContext object must be set to true by this resolver before returning if base is null. If this property is not true after this method is called, the caller should ignore the return value. + + true +
+
true
JSP:JAVADOC:430Objectjakarta.servlet.jsp.el.ScopedAttributeELResolver.getValue
+ + ( + ELContext + ,
Object + ,
Object + ) +
If the base object is null, searches the page, request, session and application scopes for an attribute with the given name and returns it, or null if no attribute exists with the current name. + The propertyResolved property of the ELContext object must be set to true by this resolver before returning if base is null. If this property is not true after this method is called, the caller should ignore the return value. + + true +
+
true
JSP:JAVADOC:431booleanjakarta.servlet.jsp.el.ScopedAttributeELResolver.isReadOnly
+ + ( + ELContext + ,
Object + ,
Object + ) +
If the base object is null, returns false to indicate that scoped attributes are never read-only. + The propertyResolved property of the ELContext object must be set to true by this resolver before returning if base is null. If this property is not true after this method is called, the caller should ignore the return value. + + true +
+
true
JSP:JAVADOC:432ScopedAttributeELResolverjakarta.servlet.jsp.el.ScopedAttributeELResolver.ScopedAttributeELResolver
+
+
+
true +
+
true
JSP:JAVADOC:433voidjakarta.servlet.jsp.el.ScopedAttributeELResolver.setValue
+ + ( + ELContext + ,
Object + ,
Object + ,
Object + ) +
If the base object is null, sets an existing scoped attribute to the new value, or creates a new scoped attribute if one does not exist by this name. + If the provided attribute name matches the key of an attribute in page scope, request scope, session scope, or application scope, the corresponding attribute value will be replaced by the provided value. Otherwise, a new page scope attribute will be created with the given name and value. The propertyResolved property of the ELContext object must be set to true by this resolver before returning if base is null. If this property is not true after this method is called, the caller should ignore the return value. + + true +
+
true
JSP:JAVADOC:434voidjakarta.servlet.jsp.tagext.JspIdConsumer.setJspId
+ + ( + String + ) +
Called by the container generated code to set a value for the jspId attribute. + An unique identification string, relative to this page, is generated at translation time. + + true +
+
true
JSP:JAVADOC:435TagAttributeInfojakarta.servlet.jsp.tagext.TagAttributeInfo.TagAttributeInfo
+ + ( + String + ,
boolean + ,
String + ,
boolean + ,
boolean + ,
String + ,
boolean + ,
boolean + ,
String + ,
String + ) +
JSP 2.1 Constructor for TagAttributeInfo. + This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). + + true +
+
true
JSP:JAVADOC:436booleanjakarta.servlet.jsp.tagext.TagAttributeInfo.isDeferredValue
+
Returns true if this attribute is to be passed a ValueExpression so that expression evaluation can be deferred. + If this method returns true, then getTypeName() must return "jakarta.el.ValueExpression". The getExpectedType() method can be used to retrieve the expected type this value expression will be constructed with. + + true +
+
true
JSP:JAVADOC:437booleanjakarta.servlet.jsp.tagext.TagAttributeInfo.isDeferredMethod
+
Returns true if this attribute is to be passed a MethodExpression so that expression evaluation can be deferred. + If this method returns true, then getTypeName() must return "jakarta.el.MethodExpression". The getMethodSignature() method can be used to retrieve the expected method signature this method expression will be constructed with. + + true +
+
true
JSP:JAVADOC:438Stringjakarta.servlet.jsp.tagext.TagAttributeInfo.getExpectedTypeName
+
Returns the name of the expected type (as a String) of this deferred value attribute. + This method returns null if isDeferredValue() returns false. + + true +
+
true
JSP:JAVADOC:439Stringjakarta.servlet.jsp.tagext.TagAttributeInfo.getMethodSignature
+
Returns the expected method signature of this deferred method attribute. + This method returns null if isDeferredMethod() returns false. + + true +
+
true
JSP:JAVADOC:440TagLibraryInfo[]jakarta.servlet.jsp.tagext.TagLibraryInfo.getTagLibraryInfos
+
Returns an array of TagLibraryInfo objects representing the entire set of tag libraries (including this TagLibraryInfo) imported by taglib directives in the translation unit that references this TagLibraryInfo. + If a tag library is imported more than once and bound to different prefices, only the TagLibraryInfo bound to the first prefix must be included in the returned array. + + true +
+
true
+ + diff --git a/jsp/docs/assertions/JakartaServerPagesSpecAssertions.html b/jsp/docs/assertions/JakartaServerPagesSpecAssertions.html new file mode 100644 index 0000000000..21c5143003 --- /dev/null +++ b/jsp/docs/assertions/JakartaServerPagesSpecAssertions.html @@ -0,0 +1,4997 @@ + + + + + +Specification Assertion Detail + + +
+
+

Jakarta Server Pages - 3.1
+ Specification Assertion Detail +

+
+ + + + + + + + + + + +
TotalsTotalActiveDeprecatedRemoved
+ # of Assertions + 986960917
+ # of Required Assertions + 982956917
+ # of Optional Assertions + 4400
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDChapterSectionDescriptionRequiredDependencyImplementation SpecificDefined byStatusTestable
JSP:SPEC:2710N/AWhen used as a tag attribute value, the #{expr} syntax is evaluated by the container only if the the jsp-version element specified in the TLD has the value 2.1 or higher. If the version specified is less than 2.1, then the {expr} syntax is simply processed as a String literal. [EvaluationOf#{expr}]true +
+
falsetechnologyactivetrue
JSP:SPEC:2720N/AWhen used in template text, the #{ character sequence triggers a translation error, unless specifically allowed through a configuration setup. [TemplateTextPoundTranslationError] true +
+
falsetechnologyactivetrue
JSP:SPEC:2730N/AThe #{ character sequence triggers a translation error if used for a tag attribute of a tag library where the jsp-version is greater than or equal to 2.1, and for which the attribute is not marked as a deferred expression in the TLD. [TagLibraryPoundTranslationError]true +
+
falsetechnologyactivetrue
JSP:SPEC:113.6It is illegal JSP syntax, which must result in a translation error, to use both an XML element attribute and a <jsp:attribute> standard action to pass the value of the same attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:213.6A translation error will result if the custom action invocation has <jsp:attribute> elements but does not define the body using a <jsp:body> element.true +
+
falsetechnologyactivetrue
JSP:SPEC:313.8White space within the body text of a document is not significant, but is preserved.true +
+
falsetechnologyactivetrue
JSP:SPEC:414.1Fatal translation failures shall result in the failure of subsequent client requests for the translation target with the appropriate error specification: For HTTP protocols the error status code 500 (Server Error) is returned.true +
+
falsetechnologyactivefalse
JSP:SPEC:26114.3A JSP container must detect if a JSP error page is self-referencing and throw a translation error. [SelfReferencingErrorPage]true +
+
falsetechnologyactivetrue
JSP:SPEC:515.1HTML comments present within a particular translation unit are treated as uninterpreted template text by the JSP container.true +
+
falsetechnologyactivetrue
JSP:SPEC:615.1The body content of a JSP comment is ignored completely.true +
+
falsetechnologyactivetrue
JSP:SPEC:26215.2The body of the content of a comment in an XML document is ignored completely. [CommentsDocumentsXml]true +
+
falsetechnologyactivetrue
JSP:SPEC:26315.2Comments in JSP documents do not nest. [CommentsDocumentsNotNest]true +
+
falsetechnologyactivetrue
JSP:SPEC:26416There is no special quoting mechanism within EL expressions; use a literal ?${? if the literal ${ is desired and expressions are enabled for the page (similarly, use a literal ?#{? if the literal #{ is desired). [QuotingWithinElExpressions]true +
+
falsetechnologyactivetrue
JSP:SPEC:716For JSP's in standard syntax, a literal %> is quoted by %\>, a literal <% is quoted by <\%, a single quote (') is quotes as \', a double quite (") is quoted as \", a backslash (\) is quoted as \\, additionally, the entities \' and \" are available to describe single and double quotes.true +
+
falsetechnologyactivetrue
JSP:SPEC:26516Only when the EL is enabled for a page, a literal $ can be quoted by \$, and a literal # can be quoted by \#. [QuotingELSymbolsInTemplateText]true +
+
falsetechnologyactivetrue
JSP:SPEC:26616Only when the EL is enabled for a page, a literal $ can be quoted by \$, and a literal # can be quoted by \#. [QuotingELSymbolsInAttributes]true +
+
falsetechnologyactivetrue
JSP:SPEC:818.2Objects with page scope are accessible only within the target page they are created. All references to such an object shall be released after the response is sent back to the client from the JSP page or the request is forwareded somwhere else. References to objects with page scope are stored in the 'pageContext' object.true +
+
falsetechnologyactivetrue
JSP:SPEC:918.2Objects with request scope are accessible from pages processing the same request where they were created. References to the object shall be released after the request is processed. In particular, if the request is forwarded to a resource in the same runtime, the object is still reachable. References to objects with request scope are stored in the 'request' object.true +
+
falsetechnologyactivetrue
JSP:SPEC:1018.2Objects with session scope are accessible from pages processing requests that in the same session as the one in which they were created. It is not legal to define an object with session scope from within a page that is not session-aware. All references to the object shall be released after the associated session ends. References to objects with session scope are stored in the 'session' object associated with the page activation.true +
+
falsetechnologyactivetrue
JSP:SPEC:1118.2Objects with application scope are accessible from pages processing requests that are in the same application as the one in which they were created. Objects with application scope can be defined (and reached) from pages that are not session-aware. References to objects with application scope are stored in the 'application' object associated with a page activation. The 'application' object is the servlet context obtained from the servlet configuration object. All references to the object shall be released when the runtime environment reclaims the ServletContext.true +
+
falsetechnologyactivetrue
JSP:SPEC:1218.3The 'request' implicit object is an instance of jakarta.servlet.ServletRequest; if the protocol used is HTTP, then the request object is an instance of jakarta.servlet.http.HttpServletRequest (request scope).true +
+
falsetechnologyactivetrue
JSP:SPEC:1318.3The 'response' implicit object is an instance of jakarta.servlet.ServletResponse; if the protocol used is HTTP, then the response object is an instance of jakarta.servlet.http.HttpServletResponse (page scope)true +
+
falsetechnologyactivetrue
JSP:SPEC:1418.3The 'pageContext' implicit object is an instance of jakarta.servlet.jsp.PageContext (page scope).true +
+
falsetechnologyactivetrue
JSP:SPEC:1518.3The 'session' implicit object is an instance of jakarta.servlet.http.HttpSession and is only valid for HTTP protocols (session scope).true +
+
falsetechnologyactivetrue
JSP:SPEC:1618.3The 'application' implicit object is an instance of jakarta.servlet.ServletContext (same object as that returned from getServletConfig().getContext(); application scope).true +
+
falsetechnologyactivetrue
JSP:SPEC:1718.3The 'exception' implicit object is an instance of java.lang.Throwable (page scope) and is only available in errro pages.true +
+
falsetechnologyactivetrue
JSP:SPEC:18110White space may or may not be present after '<@%' and before '%>' within JSP directives.true +
+
falsetechnologyactivetrue
JSP:SPEC:19110Directives do not produce any output into the current 'out' stream.true +
+
falsetechnologyactivetrue
JSP:SPEC:20110.1The page directive can appear multiple times, and is position independent within a given translation unit.true +
+
falsetechnologyactivetrue
JSP:SPEC:21110.1A translation error will occur if the page directive defines duplicate attribute/values within a given translation unit, unless the values for the duplicate attributes are identical for all occurrences. The import and pageEncoding attributes are exempt from this rule and can appear multiple times.true +
+
falsetechnologyactivetrue
JSP:SPEC:22110.1The 'isScriptingEnabled' attribute of the page directive, if true, allows the presence of scripting elements (scriptlets, expressions, declarations) within a given translation unit.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:23110.1The 'isScriptingEnabled' attribute of the page directive, if false, disallows the presence of scripting elements (scriptlets, expressions, declarations) within a given translation unit and will generate a translation error if they are present.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:24110.1The default value for 'isScriptingEnabled' of the page directive, if not specified, is true.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:25110.1The 'isELEnabled' attribute of the page directive, if true, directs the container to evaluate EL expressions.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:26110.1The 'isELEnabled' attribute of the page directive , if false, will result in EL expressions not being evaluated by the container.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:27110.1If the JSP is part of a Web application that is using a Servlet 2.3 deployment descriptor, the default value for the 'isELEnabled' attribute of the page directive is false.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:28110.1If the JSP is part of a Web application that is using a Servlet 2.4 deployment descriptor, the default value for the 'isELEnabled' attribute of the page directive is true.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:29110.1All scripting languages, specifiable by the page directive's 'language' attribute, must provide some implicit objects that a JSP page author can use in declarations, scriptlets, and expressions (see Section JSP.1.3.8 for list of available implicit objects)true +
+
truetechnologyactivefalse
JSP:SPEC:30110.1All scripting languages, specifiable by the page directive's 'language' attribute, must expose the Java technology object model to the script environment, especially implicit variables, JavaBeans components properties, and public methods.true +
+
truetechnologyactivefalse
JSP:SPEC:31110.1It is a fatal translation error for a page directive with a non-"java" language attribute to appear after the first scripting has been encountered.true +
+
falsetechnologyactivetrue
JSP:SPEC:32110.1The only required scripting language value for the 'language' attribute is "java".true +
+
falsetechnologyactivetrue
JSP:SPEC:33110.1The 'extends' attribute of the page directive specifies a fully qualified Java programming language class name, that names the superclass of the class to which this JSP page is transformedtrue +
+
falsetechnologyactivetrue
JSP:SPEC:34110.1The 'import' attribute of the page directive specifies the fully qualified Java programming language type name denoting a particular type, or of a package name following by the ".*" string, denoting all the public types declared in that package, that shall be imported by the translated JSP page implementation and is thus available to the scripting language.true +
+
falsetechnologyactivetrue
JSP:SPEC:35110.1Packages java.lang.*, jakarta.servlet.*, jakarta.servlet.jsp.*, jakarta.servlet.http.* are imported implicitly by the JSP container. [DefaultImports]true +
+
falsetechnologyactivetrue
JSP:SPEC:267No packages other than java.lang.*, jakarta.servlet.*, jakarta.servlet.jsp.*, jakarta.servlet.http.* may be implicitly imported. [NoOtherPackagesImplicitlyImported]true +
+
falsetechnologyactivetrue
JSP:SPEC:36110.1The 'session' attribute of the page directive, when true, indicates that the JSP page requires participation in an HTTP session.true +
+
falsetechnologyactivetrue
JSP:SPEC:37110.1The 'session' attribute of the page directive, when false, indicates that the JSP page does not participate in an HTTP session; the 'session' implicit object is not available to the page, and any reference to it within the translation unit will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:38110.1If the 'session' attribute of the page directive is not specified by a page directive, then the page will, by default, participate in an HTTP session (default value of true).true +
+
falsetechnologyactivetrue
JSP:SPEC:39110.1If the 'buffer' attribute of the page directive is not specified, no buffering will be performed and all output will be written directly through to the ServletResponse PrintWriter.true +
+
falsetechnologyactivetrue
JSP:SPEC:40110.1The size value specified by the 'buffer' attribute of the page directive must be in kilobytes, and the suffix "kb" is mandatory.true +
+
falsetechnologyactivetrue
JSP:SPEC:41110.1The container must allocate a buffer at least as large as that specified by the 'buffer' attribute of the page directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:42110.1The default buffer size of 8kb will be used if the 'buffer' attribute of the page directive is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:43110.1If the 'autoFlush' attribute of the page directive is true, the output will be automatically flushed when the buffer is filled.true +
+
falsetechnologyactivetrue
JSP:SPEC:44110.1If the 'autoFlush' attribute of the page directive is false, an exception will be raised to indicate a buffer overflow when the buffer is filled.true +
+
falsetechnologyactivetrue
JSP:SPEC:45110.1It is a translation error to set the 'autoFlush' attribute of the page directive to false, if the 'buffer' attribute is set to none.true +
+
falsetechnologyactivetrue
JSP:SPEC:46110.1If the 'isThreadSafe' attribute of the page directive is false, the container must serialize requests to the JSP (it should behave like an SingleThreadModel servlet).true +
+
falsetechnologyactivetrue
JSP:SPEC:47110.1The 'info' attribute of the page directive specifies an arbitrary string that is incorporated into the translated page, that can subsequently be obtained from the page's implementation of Servlet.getServletInfo().true +
+
falsetechnologyactivetrue
JSP:SPEC:48110.1The 'isErrorPage' attribute of the page directive. when true, will cause the implicit script language variable "exception" to be defined and its value is a reference to the offending Throwable from the source JSP page in error.true +
+
falsetechnologyactivetrue
JSP:SPEC:49110.1If the 'isErrorPage' attribute of the page directive is defined as false, then the implicit script language variable "exception" will not be available, and any such reference to this variable will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:50110.1The 'errorPage' attribute of the page directive, specifies the URL, either page-relative or context-relative, of a resource to which any Java programming language Throwable object(s) thrown but not caught by the page implementation are forwarded for error processing. The following request attributes will be made available within the error page:true +
+
falsetechnologyactivetrue
JSP:SPEC:50.114.3jakarta.servlet.jsp.jspException - throw Throwable object of the offending exception (for backwards compatibility with JSP 1.2)true +
+
falsetechnologyactivetrue
JSP:SPEC:50.214.3jakarta.servlet.error.exception - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:50.314.3jakarta.servlet.error.status_code - as per the Servlet specificationtrue +
+
falsetechnologyactivetrue
JSP:SPEC:50.414.3jakarta.servlet.error.exception_type - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:50.514.3jakarta.servlet.error.message - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:50.614.3jakarta.servlet.error.request_uri - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:50.714.3jakarta.servlet.error.servlet_name - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:50.814.3An instance of jakarta.servlet.jsp.ErrorData must be provided to the error page via PageContext.getErrorData().true +
+
falsetechnologyactivetrue
JSP:SPEC:51110.1If the 'errorPage' attribute of the page directive is defined, it will take presendence over any error pages defined in the web application's deployment descriptor.true +
+
falsetechnologyactivetrue
JSP:SPEC:52110.1The character encoding (Content-Type response header) can be in the form of TYPE, or TYPE; Charset=CHARSET, with an optional white space after the ';'. Charset, if present, must be the IANA value for a character encoding. Similarly, if TYPE is a MIME type, see the IANA registry for values.true +
+
falsetechnologyactivetrue
JSP:SPEC:53110.1The default Content-Type for JSP Pages in classic syntax is "text/html;charset=ISO-8859-1".true +
+
falsetechnologyactivetrue
JSP:SPEC:54110.1If a charset portion of the value provided to the 'contentType' attribute is not specified, but the page encoding for the JSP page is specified, then the charset used will be that of the specified page encoding.true +
+
falsetechnologyactivetrue
JSP:SPEC:55110.1If a charset is not provided as part of the 'contentType' attribute value, and the page encoding does not specifiy a type, then the default charset is ISO-8859-1 for JSP pages in classic syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:56110.1If a charset is not provided as part of the 'contentType' attribute value, and the page encoding does not specifiy a type, then the default charset is UTF-8 for JSP pages in XML syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:57110.1The 'pageEncoding' attribute of the page directive specifies the character encoding of the page. The value is in the form of CHARSET which my be the IANA value for a character encoding. If no 'pageEncoding' attribute is specified, the default of ISO-8859-1 will be used.true +
+
falsetechnologyactivetrue
JSP:SPEC:26811.10If the isELIgnored attribute is true, EL expressions (of the form ${...} and #{...}) are ignored by the container. If false, EL expressions (of the form ${...} and #{...}) are recognized when they appear in template text or action attributes. [isELIgnored]true +
+
falsetechnologyactivetrue
JSP:SPEC:269110.1The deferredSyntaxAllowedAsLiteral page directive attribute indicates if the character sequence #{ is allowed or not when used as a String literal in this page and translation unit. If false (the default value), a translation error occurs when the character sequence is used as a String literal. [DeferredSyntaxAllowedAsLiteralPageDirective] true +
+
falsetechnologyactivetrue
JSP:SPEC:270110.1The trimDirectiveWhitespaces page attribute directive indicates how whitespaces in template text should be handled. If true, template text that contains only whitespaces is removed from the output. The default is not to trim whitespaces. [TrimDirectiveWhitespacesPageDirective]true +
+
falsetechnologyactivetrue
JSP:SPEC:58110.2It is a translation error for the taglib directive to appear after actions that use the prefix specified by the directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:59110.2The 'uri' attribute of the taglib directive specifies either an absolute or relative URI that uniquely identifies the tag library descriptor associated with this prefix.true +
+
falsetechnologyactivetrue
JSP:SPEC:60110.2The 'tagdir' attribute of the taglib directive indicates that the specified prefix is to be used to identify tag extensions installed in the /WEB-INF/tags directory or a subdirectory.true +
+
falsetechnologyactivetrue
JSP:SPEC:61110.2A translation error must occur if the value provided to the 'tagdir' attribute of the taglib directive doesn't start with '/WEB-INF/tags' and point to a directory that exists within the web application.true +
+
falsetechnologyactivetrue
JSP:SPEC:62110.2A translation error must occur if the 'prefix' attribute of the taglib directive is not present.true +
+
falsetechnologyactivetrue
JSP:SPEC:63110.2A translation error must occur if both the 'tagdir' and 'uri' attributes are present in the same taglib directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:64110.2The 'prefix' attribute of the taglib directive is used to distinguish a custom action, e.g <myPrefix:myTag>.true +
+
falsetechnologyactivetrue
JSP:SPEC:65110.2The value provided to the 'prefix' attribute of the taglib directive must follow the naming convention specified in the XML namespaces specification.true +
+
falsetechnologyactivefalse
JSP:SPEC:66110.2It is illegal to provide an empty prefix to the taglib directive.true +
+
falsetechnologyactivefalse
JSP:SPEC:67110.2A translation error will occur if the tag name provided in the custom action isn't found in the taglibrary designated by the prefix.true +
+
falsetechnologyactivetrue
JSP:SPEC:68110.3A JSP container can include a mechanism for being notified if an included file changes, so the container can recompile the JSP page. However, the JSP 2.0 specification does not have a way of directing the JSP container that included files have changed.false +
+
truetechnologyactivefalse
JSP:SPEC:69110.3The 'file' attribute of the include directive specifies the resource to be imported either relative to web appliation context path, or relative to the page performing the include.true +
+
falsetechnologyactivetrue
JSP:SPEC:257110.3With respect to the standard and XML syntaxes, a file included via the include directive can use either the same syntax as the including page, or a different syntax. the semantics for mixed syntax includes are described in Section JSP.1.10.5.true +
+
falsetechnologyactivetrue
JSP:SPEC:70110.3The include directive includes content at translation time meaning the bytes of the included resource are directly inserted into the page. true +
+
falsetechnologyactivefalse
JSP:SPEC:258110.4With respect to the standard and XML syntaxes, just as with the include directive, implicit includes can use either the same syntax as the including page, or a different syntax. The semantics for mixed syntax includes are described in Section JSP.1.10.5.true +
+
falsetechnologyactivetrue
JSP:SPEC:259110.5For translation-time includes, included content can use either the same syntax as the including page, or a different syntax. The following semantics for translation-time includes apply.true +
+
falsetechnologyactivefalse
JSP:SPEC:259.1110.5The JSP container must detect the syntax for each JSP file individually and parse each JSP file according to the syntax in which it is written.true +
+
falsetechnologyactivefalse
JSP:SPEC:259.2110.5A JSP file written using the XML syntax must be well-formed according to the "XML" and "Namespaces in XML" specifications, otherwise a translation error must occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:259.3110.5When including a JSP document (written in the XML syntax), in the resulting XML View of the translation unit the root element of the included segment must have the default namespace reset to "". This is so that any namespaces associated with the empty prefix in the including document are not carried over to the included document.true +
+
falsetechnologyactivetrue
JSP:SPEC:259.4110.5When a taglib directive is encountered in a standard syntax page, the namespace is applied globally, and is added to the <jsp:root> element of the resulting XML View of the translation unit.true +
+
falsetechnologyactivetrue
JSP:SPEC:259.5110.5If a taglib directive is encountered in a standard syntax page that attempts to redefine a prefix that is already defined in the current scope (by a JSP segment in either syntax), a translation error must occur unless that prefix is being redefined to the same namespace URI.true +
+
falsetechnologyactivetrue
JSP:SPEC:71112All JSP containers must support scripting elements based on the Java programming language.true +
+
falsetechnologyactivetrue
JSP:SPEC:72112Any other scripting languages that are supported by a particular JSP container must support: The manipulation of Java objects; Invocation of methods on Java objects; Catching of Java language excepitons.true +
+
truetechnologyactivefalse
JSP:SPEC:73112.1A declaration (<%! DECL_BODY %>) must be a complete declarative statment, or sequence thereof, according to the syntax of the scripting language specified, otherwise a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:74112.1Declartaions do not produce any output into the current out stream.true +
+
falsetechnologyactivetrue
JSP:SPEC:75112.1Declarations are initialized when the JSP page is initialized and are made available to other delcarations, scriptlets, and expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:76112.2Scriptlets (<% SCRIPTLET_BODY %>) can contain any code framents that are valid for the scripting language specified by the 'language' attribute of the page directive, and are executed at request time in the order that they appear on the JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:77112.3An expression element in a JSP page is a scripting language expression that is evaluated and the result is coerced to a String and emitted into the current JspWriter (out) object.true +
+
falsetechnologyactivetrue
JSP:SPEC:78112.3If the result of the expression cannot be coerced to a String, the following must happen: If the problem is detected at translation time, a translation time error shall occur. If the coercion cannot be detected during translation, a ClassCastException shall be raised at request time.true +
+
falsetechnologyactivefalse
JSP:SPEC:79112.3Expressions are evaluated left to right in the JSP page. true +
+
falsetechnologyactivetrue
JSP:SPEC:80112.3If an expression appears in more than one run-time attribute, they are evaluated left-to-right in the element.true +
+
falsetechnologyactivetrue
JSP:SPEC:81112.3A translation error will occur if the expression is not a complete expression in the scripting language in which it is written.true +
+
falsetechnologyactivetrue
JSP:SPEC:82114.1Request-time attribute values in the form of '<%= scriptlet_expr %>' are only usable by actions, and cannot be used in directives.true +
+
falsetechnologyactivetrue
JSP:SPEC:83114.1A translation error will occur if a request-time attribute expression does not appear by itself (multiple expressions, and mixing of expressions and string constands are not permitted).true +
+
falsetechnologyactivetrue
JSP:SPEC:84114.1Any attempt to provide an attribute value via a request-time expression that doesn't accept request-time expressions, will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:85114.2.1A type conversion failure for a static attribute lead to a failure at either request or translation time.true +
+
falsetechnologyactivefalse
JSP:SPEC:86114.2.1Conversion of string values to a JavaBean property is done via setAsText(string-literal).true +
+
falsetechnologyactivetrue
JSP:SPEC:87114.2.1Conversion of string values to boolean or Boolean is performed as indicated in java.lang.Boolean.valueOf(String).true +
+
falsetechnologyactivetrue
JSP:SPEC:88114.2.1Conversion of string values to byte or Byte is performed as indiciated in java.lang.Byte.valueOf(String).true +
+
falsetechnologyactivetrue
JSP:SPEC:89114.2.1Conversion of string values to char or Character is performed as indicated in String.charAt(0).true +
+
falsetechnologyactivetrue
JSP:SPEC:90114.2.1Conversion of string values to double or Double is performed as indiciated in java.lang.Double.valueOf(String).true +
+
falsetechnologyactivetrue
JSP:SPEC:91114.2.1Conversion of string values to int or Integer is performed as indiciated in java.lang.Integer.valueOf(String).true +
+
falsetechnologyactivetrue
JSP:SPEC:92114.2.1Conversion of string values to float or Float is performed as indicated in java.lang.Float.valueOf(String).true +
+
falsetechnologyactivetrue
JSP:SPEC:93114.2.1Conversion of string values to long or Long is perfomed as indicated in java.lang.Long.valueOf(String).true +
+
falsetechnologyactivetrue
JSP:SPEC:94114.2.1Conversion of string values to short or Short is performed as indicated in java.lang.Short.valueOf(String).true +
+
falsetechnologyactivetrue
JSP:SPEC:95114.2.1Conversion of string values to Object is performed as if new String(string).true +
+
falsetechnologyactivetrue
JSP:SPEC:96114.2.2No type conversion is perfomed against reqeust-time expressions, they are provided to the element as is.true +
+
falsetechnologyactivetrue
JSP:SPEC:9721An EL expression that is evaluated immediately is represented in JSP with the syntax ${}, while an EL expression whose evaluation is deferred is represented with the syntax #{}true +
+
falsetechnologyactivetrue
JSP:SPEC:9822.2If EL is being evaluated by the container, a translation error will occur if an EL expression is provided as a value to an attribute that does not accept request-time expressions.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:27422The EL can be used directly in template text, be it inside the body of a custom or standard actions or in template text outside of any action. [ELTemplateText]true +
+
falsetechnologyactivetrue
JSP:SPEC:9922EL expressions will not be evaluated if the tag body is 'tagdependent'.true +
+
falsetechnologyactivetrue
JSP:SPEC:27522Only the ${} syntax is allowed for expressions in template text. A translation error will result if #{} is used in template text unless #{} is turned off via a backwards compatibility mechanism.[ELTemplateTextRestriction]true +
+
falsetechnologyactivetrue
JSP:SPEC:27623.1The type of a static attribute is always java.lang.String.[ElExpressionStaticAttributeType]true +
+
falsetechnologyactivetrue
JSP:SPEC:27723.1The value of a static attribute must be a String literal. It is illegal to specify an expression. [ElExpressionStaticAttributeValue]true +
+
falsetechnologyactivetrue
JSP:SPEC:27823.2If the type of a dynamic attribute is not specified in the TLD, defaults to java.lang.Object.[ElExpressionDynamicAttributeType]true +
+
falsetechnologyactivetrue
JSP:SPEC:27923.2The value of a dynamic attribute can be a String literal, a scriptlet expression, or an EL expression using the ${} syntax. [ElExpressionDynamicAttributeValue]true +
+
falsetechnologyactivetrue
JSP:SPEC:28023.2After evaluation of a dynamic attribute, the value is coerced to the expected type. The resulting value is passed in to the setter method for the tag attribute.[ElExpressionDynamicAttributeEvaluation]true +
+
falsetechnologyactivetrue
JSP:SPEC:28123.3If type of a deferred-value attribute is not specified in the TLD, defaults to java.lang.Object.[ElDeferredValueType]true +
+
falsetechnologyactivetrue
JSP:SPEC:28223.3The value of a deferred-value attribute can be a String literal or an EL expression using the #{} syntax. [ElDeferredValueValue]true +
+
falsetechnologyactivetrue
JSP:SPEC:28323.3The result of parsing the expression of a deferred-value attribute is passed directly to the setter method of the tag attribute, whose argument type must be jakarta.el.ValueExpression. [ElDeferredValueProcessing] true +
+
falsetechnologyactivetrue
JSP:SPEC:28423.3When a deferred-value attribute is evaluated by the tag handler, the value is coerced to the expected type. [ElDeferredValueCoercion]true +
+
falsetechnologyactivetrue
JSP:SPEC:28523.3If a static value is provided for a deferred-value attribute, it is converted to a ValueExpression where isLiteralText() returns true.[ElDeferredValueStatic Evaluation]true +
+
falsetechnologyactivetrue
JSP:SPEC:28623.4If the method signature for a deferred-method attribute is not defined in the TLD, it defaults to void method().[ElDeferredMethodSignature]true +
+
falsetechnologyactivetrue
JSP:SPEC:28723.4The value of a deferred-method attribute can be a String literal or an EL expression using the #{} syntax. [ElDeferredMethodValue]true +
+
falsetechnologyactivetrue
JSP:SPEC:28823.4A String literal can be provided to a deferred-method attribute, as long as the return type of the deferred method signature is not void. A MethodExpression is created, which when invoked, returns the String literal coerced to expected return type.[ElDeferredMethodStringLiteral]true +
+
falsetechnologyactivetrue
JSP:SPEC:28923.4A translation error occurs if the return type of a string literal value for a deferred-method attribute is void or if the string literal cannot be coerced to the return type of the deferred method signature.[ElDeferredMethodStringLiteralError]true +
+
falsetechnologyactivetrue
JSP:SPEC:29023.5The value of a deferred-expression-or-dynamic attribute can be a String literal, a scriptlet expression, or an EL expression using the ${} or #{} syntax. [AllowedDynamicAttributeValueTypes]true +
+
falsetechnologyactivetrue
JSP:SPEC:29123.5The setter method argument of a deferred-expression-or dynamic attribute must be of type java.lang.Object. [ DynamicAttributeSetterMethod]true +
+
falsetechnologyactivetrue
JSP:SPEC:10022.2A container must support EL expressions provided in template text be it inside the body of a custom or standard action, or in template text outside of any action.true +
+
falsetechnologydeprecatedtrue
JSP:SPEC:10123.2The boolean literals in the EL are 'true' and 'false'true +
+
falsetechnologyactivetrue
JSP:SPEC:10223.2EL integer literals are equivelant to Java integer literals.true +
+
falsetechnologyactivetrue
JSP:SPEC:10323.2EL floating point literals are equivelant to Java floating point literals.true +
+
falsetechnologyactivetrue
JSP:SPEC:10423.2String literals are encapsulated by either double or single quotes (''' or '"' respectively). Quotes need to be escaped in the String if the string value enclosed is the same type of quote. Escaping definitions are the same as those defined in JSP.1.6.true +
+
falsetechnologyactivetrue
JSP:SPEC:10523.2The EL null literal is defined as 'null'.true +
+
falsetechnologyactivetrue
JSP:SPEC:10623.4The EL follows ECMAScript in unifying the treatment of the "." and "[]" operators. To evaluate expr-a[expr-b]:true +
+
falsetechnologyactivefalse
JSP:SPEC:106.123.4Evaluate expr-a into value-a, if value-a is null, return null.true +
+
falsetechnologyactivetrue
JSP:SPEC:106.223.4Evaluate expr-b into value-b, if value-b is null, return null.true +
+
falsetechnologyactivetrue
JSP:SPEC:106.323.4If value-a is a Map, then if !value-a.containsKey(value-b) then return null, otherwise, return the value of value-a.get(value-b).true +
+
falsetechnologyactivetrue
JSP:SPEC:106.423.4If value-a is a List or array:true +
+
falsetechnologyactivetrue
JSP:SPEC:106.4.123.4If value-b cannot be coerced into an int (using coercion rules) an error occurs.true +
+
falsetechnologyactivetrue
JSP:SPEC:106.4.223.4If value-a.get(value-b) or Array.get(value-a, value-b) throws an ArrayIndexOutofBoundException or IndexOutOfBoundsException, return null.true +
+
falsetechnologyactivetrue
JSP:SPEC:106.4.323.4If value-a.get(value-b) or Array.get(value-a, value-b) throws other exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:106.4.423.4Otherwise, return value-a.get(value-b) or Array.get(value-a, value-b) as appropriate.true +
+
falsetechnologyactivetrue
JSP:SPEC:106.523.4Otherwise (a JavaBeans object, coerce value-b to Stringtrue +
+
falsetechnologyactivetrue
JSP:SPEC:106.5.123.4If value-b is a readable property of value-a, return the result of the getter call.true +
+
falsetechnologyactivetrue
JSP:SPEC:106.5.223.4If value-b is not a readable property of value-a, return error.true +
+
falsetechnologyactivetrue
JSP:SPEC:106.5.323.4If the getter call throws an Exception: error.true +
+
falsetechnologyactivetrue
JSP:SPEC:10723.5.1Binary operators - A { +,-,* } Btrue +
+
falsetechnologyactivefalse
JSP:SPEC:107.123.5.1If A or B is null, return 0true +
+
falsetechnologyactivetrue
JSP:SPEC:107.223.5.1If A or B is Float, Double, or a String containing ".", "e", or "E", coerce both A and B to Double and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:107.323.5.1Otherwise coerce both A and B to Long and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:107.423.5.1If application of operator against A and B results in an exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:10823.5.2Binary operator - A { / or div } Btrue +
+
falsetechnologyactivefalse
JSP:SPEC:108.123.5.2If A or B is null, return 0true +
+
falsetechnologyactivetrue
JSP:SPEC:108.223.5.2Coerce both A and B to Double and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:108.323.5.2If application of operator against A and B results in an exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:10923.5.3Binary Operator - A { % or mod } Btrue +
+
falsetechnologyactivefalse
JSP:SPEC:109.123.5.3If application of operator against A and B results in an exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:109.223.5.3Otherwise coerce both A and B to Long and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:109.323.5.3If A or B is Float, Double, or a String containing ".", "e", or "E", coerce both A and B to Double and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:109.423.5.3If A or B is null, return 0true +
+
falsetechnologyactivetrue
JSP:SPEC:11023.5.4Unary minus operator - -Atrue +
+
falsetechnologyactivefalse
JSP:SPEC:110.123.5.4If A is null, return 0true +
+
falsetechnologyactivetrue
JSP:SPEC:110.223.5.4If A is a String:true +
+
falsetechnologyactivetrue
JSP:SPEC:110.2.123.5.4If A contains ".", "e", or "E", coerce to a Double and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:110.2.223.5.4If operation results in exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:110.2.323.5.4If A is Byte, Short, Integer, Long, Float, Double, retain type and apply operatortrue +
+
falsetechnologyactivetrue
JSP:SPEC:110.2.423.5.4If application of operator results in exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:110.2.523.5.4Otherwise error if operator cannot be applied to the given expression.true +
+
falsetechnologyactivetrue
JSP:SPEC:110.323.5.4If A is Byte, Short, Integer, Long, Float, Double:true +
+
falsetechnologyactivetrue
JSP:SPEC:110.3.123.5.4retain the type and apply the operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:110.3.223.5.4If application of operator results in exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:11123.5.6Relational operators - A { <,>,<=,=>,lt,gt,le,ge } Btrue +
+
falsetechnologyactivetrue
JSP:SPEC:111.123.5.6If A and B are equal, and operator is <=, le, >=, or ge, return true, otherwise return false.true +
+
falsetechnologyactivetrue
JSP:SPEC:111.223.5.6If A or B is null, return false.true +
+
falsetechnologyactivetrue
JSP:SPEC:111.323.5.6If A or B is Float or Double coerce both A and B to Double and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:111.423.5.6If A or B is Byte, Short, Character, Integer, or Long, coerce both A and B to Long and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:111.823.5.6If A or B is String coerce both A and B to String, compare lexically.true +
+
falsetechnologyactivetrue
JSP:SPEC:111.523.5.6If A is Comparable, and A.compareTo(B) throws an exception, error; otherwise return the result of A.compareTo(B)true +
+
falsetechnologyactivetrue
JSP:SPEC:111.623.5.6If B is Comparable, and B.compareTo(A) throws an exception, error; otherwise return the result of B.compareTo(A)true +
+
falsetechnologyactivetrue
JSP:SPEC:111.723.5.6Otherwise return error.true +
+
falsetechnologyactivetrue
JSP:SPEC:11223.5.7Relation Operatos - A { ==, !=, eq, ne } Btrue +
+
falsetechnologyactivefalse
JSP:SPEC:112.123.5.7If A == B, apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:112.223.5.7If A or B is null, return false for == (eq), true for != (ne)true +
+
falsetechnologyactivetrue
JSP:SPEC:112.323.5.7If A or B is Float or Double coerce both A and B to Double and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:112.423.5.7If A or B is Byte, Short, Character, Integer, or Long, coerce both A and B to Long and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:112.523.5.7If A or B is Boolean coerce both A and B to Boolean apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:112.623.5.7If A or B is String coerce both A and B to String, if error occurs calling A.equals(B), error; otherwise apply operator to result of A.equals(B).true +
+
falsetechnologyactivetrue
JSP:SPEC:112.6.123.5.7If error occurs calling A.equals(B), error otherwise apply operator to result of A.equals(B).true +
+
falsetechnologyactivetrue
JSP:SPEC:112.6.223.5.7Otherwise apply operator to result of A.equals(B).true +
+
falsetechnologyactivetrue
JSP:SPEC:11323.6.1Binary Operator - A { &&, ||, and, or } Btrue +
+
falsetechnologyactivefalse
JSP:SPEC:113.123.6.1Coerce both A and B to Boolean and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:11423.6.2Unary operator - { !, not } Atrue +
+
falsetechnologyactivefalse
JSP:SPEC:114.123.6.2Coerce A to Boolean and apply operator.true +
+
falsetechnologyactivetrue
JSP:SPEC:11523.7Empty operator - empty Atrue +
+
falsetechnologyactivefalse
JSP:SPEC:115.123.7If A is null, return truetrue +
+
falsetechnologyactivetrue
JSP:SPEC:115.223.7If A is an emtpy String, return true.true +
+
falsetechnologyactivetrue
JSP:SPEC:115.323.7If A is an empty array, then return true.true +
+
falsetechnologyactivetrue
JSP:SPEC:115.423.7If A is an emtpy Map, then return true.true +
+
falsetechnologyactivetrue
JSP:SPEC:115.523.7If A is an empty List, then return true.true +
+
falsetechnologyactivetrue
JSP:SPEC:115.623.7Otherwise return falsetrue +
+
falsetechnologyactivetrue
JSP:SPEC:11623.9Operator precedence (highest to lowest) - [] . then (), then -(unary) not ! emtpy, then * / div % mod, then + - (binary), then < > <= >= lt gt le ge, then == != eq ne, then && and, then || or.true +
+
falsetechnologyactivetrue
JSP:SPEC:11724The following words are reserved by the EL, and, or, not, eq, ne, lt, gt, le, ge, true, false, null, instanceof, empty, div, mod and should not be used as identifiers without being quoted.true +
+
falsetechnologyactivefalse
JSP:SPEC:11825If no scope qualifier is added to provided EL expression, the EL will lookup the attribute based on the behavior of PageContext.findAttribute(String), i.e, it will search the PageContext for the attribute first in the page, then request, then session, followed by application scopes and will return the value, otherwise null will be returned.true +
+
falsetechnologyactivetrue
JSP:SPEC:11926.2If the function class, as described in the TLD, is not a public non-abstract class, a translation error will occur.true +
+
falsetechnologyremovedtrue
JSP:SPEC:12026.2If the method, as described in the TLD, is not a public static method, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:12126.2If two functions within the same tag library have the same name, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:12226.4EL function invocation semantics:true +
+
falsetechnologyactivetrue
JSP:SPEC:122.126.4If the function has no namespace associated, then, if the function is used in an attribute value, assume the namespace as that of the custom action; if the function is used elsewhere, this shall be a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:122.226.4Locate the TLD associated with the namespace. If none can be found, a translation error shall occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:122.326.4Locate the function element with a name subelement with the provided function name. If none can be found, a translation error shall occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:122.426.4Locate the public class with name equal to the value of the funcion-class element. Locate the public static method with name and signature equal to the value of the function-signature element. If any of these don't exist, a translation error shall occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:122.526.4Evaluate each argument to the corresponding type indicated in the signature.true +
+
falsetechnologyactivetrue
JSP:SPEC:122.626.4Evaluate the public static Java method. The resulting type is that of the return value in the function-signature element.true +
+
falsetechnologyactivetrue
JSP:SPEC:12322.3The 'pageContext' implicit object corresponse to the PageContext object.true +
+
falsetechnologyactivetrue
JSP:SPEC:12422.3The 'pageScope' implicit object allows access to page scoped attribute values.true +
+
falsetechnologyactivetrue
JSP:SPEC:12522.3The 'requestScope' implicit object allows access to request scoped attribute values.true +
+
falsetechnologyactivetrue
JSP:SPEC:12622.3The 'sessionScope' implicit object allows access to session scoped attribute values.true +
+
falsetechnologyactivetrue
JSP:SPEC:12722.3The 'applicationScope' implicit object allows access to application scoped attribute values.true +
+
falsetechnologyactivetrue
JSP:SPEC:12822.3The 'param' implicit object allows access to a single parameter value (obtained via ServletRequest.getParameter(String name)).true +
+
falsetechnologyactivetrue
JSP:SPEC:12922.3The 'paramValues' implicit allows access to a String[] of all values for the specified parameter (obtained via ServletRequest.getParameterValues(String name)).true +
+
falsetechnologyactivetrue
JSP:SPEC:13022.3The 'header' implicit object allows access to a single request-header value (obtained by calling HttpServletRequest.getHeader(String name)).true +
+
falsetechnologyactivetrue
JSP:SPEC:13122.3The 'headerValues' implicit object returns the a String[] of all values for the specified header (obtained via HttpServletRequest.getHeaders(String name)).true +
+
falsetechnologyactivetrue
JSP:SPEC:13222.3The 'cookie' implicit object provides access the the named cookie.true +
+
falsetechnologyactivetrue
JSP:SPEC:132.122.3If there are multiple cookies identified by the same name, the implementation must return the first cookie in the array, but the cookie order provided to the implementation is currently not specified.true +
+
truetechnologyactivefalse
JSP:SPEC:13322.3The 'initParam' implicit object provides access to context initialization parameters (obtained via ServletContext.getInitParameter(String name)).true +
+
falsetechnologyactivetrue
JSP:SPEC:13428.1To coerce a value X to type Ytrue +
+
falsetechnologyactivetrue
JSP:SPEC:134.128.1If X is of a primitive type, Let X be the equivalent 'boxed form' of X, otherwise, Let X be the same as X.true +
+
falsetechnologyactivetrue
JSP:SPEC:134.228.1If Y is of a primitive type, Let Y be the equivalent 'boxed form' of Y. Otherwise, let Y be the same as Y.true +
+
falsetechnologyactivetrue
JSP:SPEC:134.328.1Apply conversion rules.true +
+
falsetechnologyactivetrue
JSP:SPEC:134.428.1If Y is a primitive type, then the result is found by 'unboxing' the result of the coercion. If the result of the coercion is null, then error.true +
+
falsetechnologyactivetrue
JSP:SPEC:134.528.1If Y is not a primitive type, the the result is the result of the coercion.true +
+
falsetechnologyactivetrue
JSP:SPEC:13528.2Coerce A to Stringtrue +
+
falsetechnologyactivetrue
JSP:SPEC:135.128.2If A is a String: return Atrue +
+
falsetechnologyactivetrue
JSP:SPEC:135.228.2If A is null, return and empty String ("").true +
+
falsetechnologyactivetrue
JSP:SPEC:135.328.2If A.toString() throws exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:135.428.2Otherwise return A.toString()true +
+
falsetechnologyactivetrue
JSP:SPEC:13628.3Coerce A to Number type Ntrue +
+
falsetechnologyactivetrue
JSP:SPEC:136.128.3If A is null or "", return 0true +
+
falsetechnologyactivetrue
JSP:SPEC:136.228.3If A is Character, convert to short, apply numeric rules below.true +
+
falsetechnologyactivetrue
JSP:SPEC:136.328.3If A is a Boolean, then error.true +
+
falsetechnologyactivetrue
JSP:SPEC:136.428.3If A is Number type N, return Atrue +
+
falsetechnologyactivetrue
JSP:SPEC:136.528.3If A is a Number, coerce quietly to type Ntrue +
+
truetechnologyactivetrue
JSP:SPEC:136.628.3If A is String, and N.valueOf(A) throws exception, then error.true +
+
falsetechnologyactivetrue
JSP:SPEC:136.728.3If A is String, and N.valueOf(A) does not throw an exception, return the value.true +
+
falsetechnologyactivetrue
JSP:SPEC:136.828.3All other types will result in an error.true +
+
falsetechnologyactivetrue
JSP:SPEC:13728.4Coerce A to Charactertrue +
+
falsetechnologyactivetrue
JSP:SPEC:137.128.4If A is null or "". return (char) 0true +
+
falsetechnologyactivetrue
JSP:SPEC:137.228.4If A is Character, then return Atrue +
+
falsetechnologyactivetrue
JSP:SPEC:137.328.4If A is Boolean, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:137.428.4If A is Number, coerce quietly to type Short, then return a Character whose numeric value is equivalent to that Short.true +
+
falsetechnologyactivetrue
JSP:SPEC:137.528.4If A is String, return A.charAt(0)true +
+
falsetechnologyactivetrue
JSP:SPEC:137.628.4All other types will result in an error.true +
+
falsetechnologyactivetrue
JSP:SPEC:13828.5Coerce A to Booleantrue +
+
falsetechnologyactivetrue
JSP:SPEC:138.128.5If A is null or "", return falsetrue +
+
falsetechnologyactivetrue
JSP:SPEC:138.228.5Otherwise if A is Boolean, return Atrue +
+
falsetechnologyactivetrue
JSP:SPEC:138.328.5Otherwise if A is String, and Boolean.valueOf(A) throws exception, error.true +
+
falsetechnologyactivetrue
JSP:SPEC:138.428.5Otherwise if A is String , and Bollean.valueOf(A) does not throw exception, return it.true +
+
falsetechnologyactivetrue
JSP:SPEC:138.528.5Any other type, return error.true +
+
falsetechnologyactivetrue
JSP:SPEC:13928.6Coerce A to any other type Ttrue +
+
falsetechnologyactivetrue
JSP:SPEC:139.128.6If A is null, return null.true +
+
falsetechnologyactivetrue
JSP:SPEC:139.228.6If A is assignable to T, coerce quietly.true +
+
falsetechnologyactivetrue
JSP:SPEC:139.328.6If A is String, and T has no Property Editor, then if A is "" return null, otherwise error.true +
+
falsetechnologyactivetrue
JSP:SPEC:139.428.6If A is String, and T's PropertyEditor throws exception, then if A is "" return null, otherwise error.true +
+
falsetechnologyactivetrue
JSP:SPEC:139.528.6Otherwise, apply T's PropertyEditortrue +
+
falsetechnologyactivetrue
JSP:SPEC:139.628.6Otherwise, errortrue +
+
falsetechnologyactivetrue
JSP:SPEC:14033A jsp-property-group will apply a set of properties to a specific group of resources identified via a URL pattern. If a resource matches URL patterns in more than one group, the pattern that is the most specific applies (follows the rules for URL pattern matching as defined in the Servlet Specification).true +
+
falsetechnologyactivetrue
JSP:SPEC:29229the setter method argument must be of type java.lang.Object. [ DynamicAttributeSetterMethod P1] true +
+
falsetechnologyactivefalse
JSP:SPEC:293210No function mapper needs to be provided at function evaluation time.[FunctionMappingInformation]true +
+
falsetechnologyactivefalse
JSP:SPEC:294If an exception is thrown during the method evaluation of a function, the exception must be wrapped in an ELException and the ELException must be thrown. [FunctionMappingELException]true +
+
falsetechnologyactivetrue
JSP:SPEC:14133.2EL expression evaluation can be activated for a group of JSP resources as specified by the URL pattern using the <el-ignored> subelement of the <jsp-property-group> element. If the value provided is true, EL expressions will be evaluated.true +
+
falsetechnologyactivetrue
JSP:SPEC:14233.2EL expression evaluation can be deactivated for a group of JSP resources as specified by the URL pattern using the <el-ignored> subelement of the <jsp-property-group> element. If the value provided is false, EL expressions will be treated as template text (or uninterpreted attribute values).true +
+
falsetechnologyactivetrue
JSP:SPEC:25233.2The container will not evaluated EL-like constructs (${expr}) found in deployed web applications based on Servlet 2.3 or earlier.true +
+
falsetechnologyactivetrue
JSP:SPEC:25433.2If are JSP page matches a URL of a property group and the el-ignored element is not specified, and the web application is 2.4 or later, than any EL expressions encounterd will be evaluated.true +
+
falsetechnologyactivetrue
JSP:SPEC:25533.2If a JSP page that matches a URL pattern of a property group specifies the isELIgnored attribute, this attribute will take precedence over any setting in the JSP property group.true +
+
falsetechnologyactivetrue
JSP:SPEC:14333.3Scripting elements can be allowed for a group of JSP resources as specified by the URL pattern using the <scripting-invalid> subelement of the <jsp-property-group> element. If the value is true, scripting elements such as scriptlets, classic expressions, and declarations will be allowed.true +
+
falsetechnologyactivetrue
JSP:SPEC:14433.3Scripting elements can be disallowed for a group of JSP resources as specified by the URL pattern using the <scripting-invalid> subelement of the <jsp-property-group> element. If the value is false, scripting elements such as scriptlets, classic expressions, and declarations present within this group will result in translation errors for any page containing such elements.true +
+
falsetechnologyactivetrue
JSP:SPEC:25633.3If a JSP page matches a URL pattern of a JSP property group and the property group contains no scripting-invalid element, scripting will be allowed in the page and no translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:25333.4The <page-encoding> element is used to set the pageEncoding property of a group of JSP pages.true +
+
falsetechnologyactivetrue
JSP:SPEC:14533.4A translation error will occur if the target translation unit specifies a different page encoding than that specified in the <page-encoding> subelement of the <jsp-property-group> element.true +
+
falsetechnologyactivetrue
JSP:SPEC:14633.4A translation error will not occur if the target translation unit specifies the same page encoding as that specified in the <page-encoding> subelement of the <jsp-property-group> element (provided no other issues exist within the translation unit).true +
+
falsetechnologyactivetrue
JSP:SPEC:14733.5The <include-prelude> subelement of the <jsp-property-group> element defines a context-relative path to a resource within the web application that will be automatically included into the beginning of all JSP resources of the particular group.true +
+
falsetechnologyactivetrue
JSP:SPEC:14833.5The <include-coda> subelement of the <jsp-property-group> element defines a context-relative path to a resource within the web application that will be automatically included into the end of all JSP resources of the particular group.true +
+
falsetechnologyactivetrue
JSP:SPEC:14933.5In both cases, <include-prelude> and <include-coda>, if there are multiple entries of these elements they will be included into the JSP page in the order they appear within the <jsp-property-group> element.true +
+
falsetechnologyactivetrue
JSP:SPEC:15033.6The <is-xml> subelement of the <jsp-property-group> element is used to denote that a group of files are JSP doucments, and thus must be interpreted as XML documents.true +
+
falsetechnologyactivetrue
JSP:SPEC:150.133.6If 'true', the files denoted must be interpreted as XML documents.true +
+
falsetechnologyactivetrue
JSP:SPEC:150.233.6If 'false', the files in the associated property group are assumed not to be JSP documents.true +
+
falsetechnologyactivetrue
JSP:SPEC:150.333.6If the <is-xml> subelement is false within one property-group, but another property-group identifying the same set of files sets <is-xml> to true, then the files will be processed as XML documents.true +
+
falsetechnologyactivetrue
JSP:SPEC:29533.7A translation error occurs if the #{ character sequence is used as a String literal (in template text of a JSP 2.1+ container or as an attribute value for a tag-library where jsp-version is 2.1+). [TranslationError#{Sequence]true +
+
falsetechnologyactivetrue
JSP:SPEC:29633.7Allowing the character sequence #{ when used as a String literal can be done by setting the deferred-syntax-allowed-as-literal element to true in the JSP configuration. [DeferredSyntaxAllowedAsLiteralElement]true +
+
falsetechnologyactivetrue
JSP:SPEC:29733.8Enabling the trimming of whitespaces can be done by setting the trim-directive-whitespaces element to true in the JSP configuration. [TrimDirectiveWhitespacesElement]true +
+
falsetechnologyactivetrue
JSP:SPEC:24941For JSP pages in standard syntax, the page character encoding is determined from the followed sources:true +
+
falsetechnologyactivefalse
JSP:SPEC:249.141A JSP configuration element page-encoding value whoe URL pattern matches the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:249.241The pageEncoding attribute of the page directive of the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:249.2.141It is a translation-time error to name different encodings in the pageEncoding attribute of the page directive of a JSP page and in a JSP configuration element whos URL pattern matches the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:249.341The charset value of the contentType attribute of the page directive. This is used to determine the page character encoding if neither a JSP configuration element page-encoding nor the pageEncoding attribute are provided.true +
+
falsetechnologyactivetrue
JSP:SPEC:249.441If neither the JSP configuration page-encoding element, nor the pageEncoding attribute, nor the charset of the contentType attribute are present, ISO-8859-1 will be used as the encoding for the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:249.541Files included using the include directive are read using the character encoding of the including page.true +
+
falsetechnologyactivetrue
JSP:SPEC:25042The JSP container will call ServletResponse.setContentType() after determining the content type as follows:true +
+
falsetechnologyactivefalse
JSP:SPEC:250.142If the TYPE value of the contentType attribute is present in the current translation unit, this TYPE will be used to set the initial response content type.true +
+
falsetechnologyactivetrue
JSP:SPEC:250.242If the contentType attribute is omitted in a JSP page using standard syntax, the initial content type is 'text/html'.true +
+
falsetechnologyactivetrue
JSP:SPEC:250.342If the contentType attribute is omitted in a JSP document, the initial content type is 'text/xml'.true +
+
falsetechnologyactivetrue
JSP:SPEC:250.442The intial response encoding will be the CHARSET value of the contentType attribute of the page directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:250.542For JSP documents, where the contentType attribute is not present, or is present, but doesn't specify a chaset, the response encoding will be UTF-8.true +
+
falsetechnologyactivetrue
JSP:SPEC.250.642For JSP pages in standard syntax that do not have a contentType attribute, or the attribute is present without a charset specification:true +
+
falsetechnologyactivefalse
JSP:SPEC:250.6.142The response encoding used will be that of the pageEncoding attribute or that specified by the JSP configuration element page-encoding whise URL pattern matches the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:250.6.242If the page has no pageEncoding attribute, or there is no matching jsp configuration, the response encoding will be ISO-8859-1.true +
+
falsetechnologyactivetrue
JSP:SPEC:25142The XML view character encoding is always UTF-8true +
+
falsetechnologyactivefalse
JSP:SPEC:249.541For JSP documents, the page character encoding is determined as described in section 4.3.3 and appendix F.1 of the XML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:249.641The pageEncoding of a JSP document can also be described via the JSP configuration element page-encoding or a pageEncoding attribute of the page directive of the page, as long as long as they are consistent with the encoding as determined in section 4.3.3 and appendix F.1 of the XML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:249.741It is translation-time error to name different encodings in two or more of the following: the XML prolog of a JSP page, the pageEncoding attribute of the page directive of the JSP page, and in a JSP configuration element whose URL pattern matches the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:249.841The JSP container must raise a translation-time error if an unsupported page character encoding is requested.true +
+
falsetechnologyactivetrue
JSP:SPEC:29841.1For tag files in standard syntax, the page character encoding is determined from a BOM or the pageEncoding attribute of the tag directive of the tag file (in this precedence order), or is ISO-8859-1 if neither is specified. [PageCharacterEncodingDetermination]true +
+
falsetechnologyactivefalse
JSP:SPEC:29941.1When using a BOM, it is legal to describe the character encoding in a JSP configuration element page-encoding or a pageEncoding attribute of the page directive of the page, as long as they are consistent. [BOMCharacterEncodingDescription ]true +
+
falsetechnologyactivetrue
JSP:SPEC:30041.2For JSP documents in XML syntax, it is legal to also describe the character encoding in a JSP configuration element page-encoding or a pageEncoding attribute of the page directive of the document, as long as they are consistent. [BOMLegalCharacterEncoding]true +
+
falsetechnologyactivetrue
JSP:SPEC:15151If the <jsp:useBean> action is used within a scriptless context, then the variable exported will be available via EL expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:15251If both 'type' and 'class' attributes of the <jsp:useBean> standard action are present, and 'class' is not assignable to 'type', a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:15351A translation error will occur of both the 'beanName' and 'class' attributes are specified within the same useBean action.true +
+
falsetechnologyactivetrue
JSP:SPEC:15451The 'beanName' attribute can accept dynamic attribute values (RT or EL).true +
+
falsetechnologyactivetrue
JSP:SPEC:15551The 'beanName' attribute of the <jsp:useBean> action must be of the form "a.b.c", which can resolve to:true +
+
falsetechnologyactivetrue
JSP:SPEC:155.151A java class that will be resolved in the current ClassLoadertrue +
+
falsetechnologyactivetrue
JSP:SPEC:155.251A serialized bean instance in the form similar to a/b/c.ser that will be resolved in the current ClassLoader.true +
+
falsetechnologyactivetrue
JSP:SPEC:155.351If the resource identified by 'beanName' attribute of the <jsp:useBean> action cannot be resolved, a request-time exception, as indicated in the semantics of the instantiate() method of the java.beans.Beans class, will be raised.true +
+
falsetechnologyactivetrue
JSP:SPEC:15651The 'id' attribute of the <jsp:useBean> actions provides the name used to identify the object instance in the specified scopes namespace, and also the scripting variable name declared and initialized with that reference.true +
+
falsetechnologyactivetrue
JSP:SPEC:156.151The name specified is case sensitive.true +
+
falsetechnologyactivetrue
JSP:SPEC:15751The value's provided to the 'id' attribute of the <jsp:useBean> action must be unique within the given translation unit. Any duplicate id's found, will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:15851The 'scope' attribute of the <jsp:useBean> action specifies the scope or namespace within which the object reference is available.true +
+
falsetechnologyactivetrue
JSP:SPEC:158.151If the 'scope' attribute is not specified, the default scope will be 'page'.true +
+
falsetechnologyactivetrue
JSP:SPEC:158.251If a value of 'page' is provided to the 'scope' attribute, the object will be exported to the page scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:158.351If a value of 'request' is provided to the 'scope' attribute, the object will be exported to the request scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:158.451If a value of 'session' is provided to the 'scope' attribute, the object will be exported to the session scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:158.551If a value of 'application' is provided to the 'scope' attribute, the object will be exported to the application scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:158.651If the value provided to the 'scope' attribute is not one of 'page', 'request', 'session', or 'application', a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:15951A translation error will occur if the <jsp:useBean> action attempts to export an object to the session scope and sessions have been disabled for the target page.true +
+
falsetechnologyactivetrue
JSP:SPEC:16051For all scopes, it is illegal to change the value of an instance object associated with a particular scope, such that its new runtime type is a subset of the type(s) of the object previously so associated.true +
+
truetechnologyactivefalse
JSP:SPEC:16151Sematics: The actions performed in jsp:useBean action are:true +
+
falsetechnologyactivefalse
JSP:SPEC:161.151The action searches for objects in scope, the search is done synchronized per scope namespace to avoid non-deterministic behavior.true +
+
falsetechnologyactivefalse
JSP:SPEC:161.251A scripting language variable of the specified type (if given) or class (if type is not give) is defined with the given 'id' int he current lexical scope of the scripting language.true +
+
falsetechnologyactivetrue
JSP:SPEC:161.351If the 'class' attribute of the action is provided a value that referrs to an Abstract class, an Interface, or a class with no public no-arg constructor, the implementation may throw a java.lang.InstantiationException, or may raise a translation error.true +
+
truetechnologyactivetrue
JSP:SPEC:161.451If the object, as identified by the 'id' and 'scope' attributes of the action is found, and the object is not castable to the type as specified by the 'type' attribute, a java.lang.ClassCastException shall occur. The action will cease processing at this point.true +
+
falsetechnologyactivetrue
JSP:SPEC:161.551If the jsp:useBean has a non-empty body, it will be ignored (i.e. template text, as well as standard and custom actions will not be processed) and the action will cease processing.true +
+
falsetechnologyactivetrue
JSP:SPEC:161.651If the specified object is not found in the specified scope, and neither 'class' nor 'beanName' are given, a java.lang.InstantiationException shall occur and the action will cease processing.true +
+
falsetechnologyactivetrue
JSP:SPEC:161.751If the specified object is not found in the specified scope, and the 'class' attribute specifies a non-abstract class that defines a public no-args constructor, then the class is instantiated and the object reference is associated with a scripting variable name as identified by the 'id' attribute and exported to the scope as indicated by the 'scope' attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:161.7.151If the action has a non-empty body, then the body will be processed. Template text will be passed through, and standard and custom actions will be processed by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:161.851If the specified object is not found in the specified scope, and the 'beanName' attribute is specified, then the method instantiate() of java.beans.Beans will be invoked with the ClassLoader of the Servlet object with the value of the 'beanName' attribute as the argument. If the method succeeds, the object refernece is associated with the scripting variable identified by the 'id' attribute and expored to the scope as indicated by the 'scope' attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:161.8.151If the action has a non-empty body, then the body will be processed. Template text will be passed through, and standard and custom actions will be processed by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:161.8.1.1511The body of the action can be specified via the <jsp:body> action.true +
+
falsetechnologyactivetrue
JSP:SPEC:16252The <jsp:setProperty> action sets the values of properties in a Bean.true +
+
falsetechnologyactivefalse
JSP:SPEC:162.152The 'name' attribute specifies the name of a Bean instance defined by a <jsp:useBean> action or some other action. true +
+
falsetechnologyactivetrue
JSP:SPEC:162.1.152The Bean instance must contain the property that is being set.true +
+
falsetechnologyactivefalse
JSP:SPEC:162.1.252If the object in which the property will be set was not introduced before the jsp:setProperty call, the container implementation is recommended, but not required to raise a translation error.false +
+
truetechnologyactivefalse
JSP:SPEC:162.252The 'property' attribute specifies the bean property whose value is to be set.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.2.152If '*' is provided to the property attribute, the action will iterate over the current ServletRequest parameters matching parameter names and value types(s) to property names and setter method type(s), setting each matched property to the value of the matching parameter.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.2.252If a parameter has a value of "", the corresponding property is not modified.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.352The 'param' attribute specifies the name of the request parameter whose value will be given to a Bean property.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.452If the 'param' attribute is omitted from the action, the request parameter name is assumed to be the same as the Bean property name.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.552If the param is not set in the Request object, or if it has the value of "", the action has no effect (a noop).true +
+
falsetechnologyactivetrue
JSP:SPEC:162.652A translation error will occur if both the 'param' and 'value' attributes both specified within the same action.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.752The 'value' attribute specifies the value to assign to the given property.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.7.152The 'value' attribute can accept request-time expressions (RT and EL).true +
+
falsetechnologyactivetrue
JSP:SPEC:162.7.2510The 'value' attribute can be described via the <jsp:attribute> standard action.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.852A translation error will occur if the 'property' attribute value is '*', and any other attributes are provided to the action.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.952When assigning values from a parameter in the request object, the conversions described in JSP.1.14.2.1 are applied, using the target property to determine the target type.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.1052When assigning from a value given as a String constant, the conversions described in JSP.1.14.2.1 are applied, using the target property to determine the target type.true +
+
falsetechnologyactivetrue
JSP:SPEC:162.1152When assigning from a value given as a request-time attribute, no type conversions are applied, as indicated in Section JSP.1.14.2.2true +
+
falsetechnologyactivetrue
JSP:SPEC:162.1252When assinging values to indexed properties the values must be an array; the rules, as indicated in Section JSP.1.14.2.2 apply.true +
+
falsetechnologyactivetrue
JSP:SPEC:16353The <jsp:getProperty> action places the value of a Bean instance property, converted to a String, into the implicit out object.true +
+
falsetechnologyactivetrue
JSP:SPEC:163.153The 'name' attribute specifies the name of the Bean instance from which the property is obtained.true +
+
falsetechnologyactivetrue
JSP:SPEC:163.253The 'property' attribute specifies the name of the property to access within the specified Bean instance.true +
+
falsetechnologyactivetrue
JSP:SPEC:163.353If the object referenced by the 'name' attribute was not 'introduced' via <jsp:useBean> or a custom action with an associated VariableInfo entry, the container implementation, is recommended (but nore required) to raise a translation error, since this page implementation is in violation of the specification.false +
+
truetechnologyactivefalse
JSP:SPEC:163.453The conversion to String is done as in the println() methods, i.e. the toString() method of the object is used for Object instances, and primitive types are converted directly.true +
+
falsetechnologyactivetrue
JSP:SPEC:163.553A translation error will occur if the 'property' attribute is not specified within the action.true +
+
falsetechnologyactivetrue
JSP:SPEC:16454The <jsp:include> action provides for inclusion of static and dynamic resources in the same context as the current page.true +
+
falsetechnologyactivetrue
JSP:SPEC:164.154The 'page' attribute specifies a relative URL (either page or context relative) to a resource within the same web application context.true +
+
falsetechnologyactivetrue
JSP:SPEC:164.254The 'flush' attribute, if true, will immediately flush the buffer prior to inclusion.true +
+
falsetechnologyactivetrue
JSP:SPEC:164.354The 'flush' attribute, if false, will not flush the buffer prior to inclusion.true +
+
falsetechnologyactivetrue
JSP:SPEC:164.454The default value for the 'flush' attribute is false.true +
+
falsetechnologyactivetrue
JSP:SPEC:164.554A translation error will occur of the 'page' attribute is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:164.654An included page only has access to the JspWriter object (out).true +
+
falsetechnologyactivetrue
JSP:SPEC:164.754Any attempt by an included page to set headers, will be ignored by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:164.854An include action may use <jsp:param> action present as body content to provide request parameters for the included resource.true +
+
falsetechnologyactivetrue
JSP:SPEC:164.954The 'page' attribute can accept request-time expressions (either classic RT or EL).true +
+
falsetechnologyactivetrue
JSP:SPEC:164.10510The 'page' attribute can be described via the <jsp:attribute> standard action.true +
+
falsetechnologyactivetrue
JSP:SPEC:16555The <jsp:forward> action will forward the current request to the target resource, be it a static resource, a JSP page, or a servlet class in the same context as the current page.true +
+
falsetechnologyactivetrue
JSP:SPEC:165.155The 'page' attribute specifies the target resource (either via a page relative or context relative path) to which to dispatch the current request to.true +
+
falsetechnologyactivetrue
JSP:SPEC:165.255The request object will be adjusted according to the value of the page attribute.true +
+
falsetechnologyactivefalse
JSP:SPEC:165.355If the page is buffered, the buffer is cleard prior to forwarding.true +
+
falsetechnologyactivetrue
JSP:SPEC:165.455If the page output is buffered, and the buffer was flushed, and attempt to forward the request will result in an IllegalStateExceptiontrue +
+
falsetechnologyactivetrue
JSP:SPEC:165.555If the page output was unbuffered and anything has been written to it, an attempt to forward the request will result in an IllegalStateException.true +
+
falsetechnologyactivetrue
JSP:SPEC:165.655The forward action can accept <jsp:param> actions as body content to provide request parameters for the target resource.true +
+
falsetechnologyactivetrue
JSP:SPEC:165.755A translation error will occur of the 'page' attribute is omitted from the action.true +
+
falsetechnologyactivetrue
JSP:SPEC:165.855The 'page' attribute accepts request-time expressions (either classic RT or EL expressions).true +
+
falsetechnologyactivetrue
JSP:SPEC:165.9510The 'page' attribute can be described via the <jsp:attribute> standard action.true +
+
falsetechnologyactivetrue
JSP:SPEC:16656The <jsp:param> action specifies key/value information.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.156The 'name' attribute specifies the name of the parameter.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.256The 'value' attribute specifies the value for this particular parameter.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.356A translation error will occur if the <jsp:param> action is not a child of a <jsp:include>, <jsp:forward>, <jsp:invoke>, <jsp:doBody>, or a <jsp:params> action.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.456If used in conjunction with <jsp:include> the target resource will see the original request object including the augmented parameters provided by the <jsp:param> action, with the new parameters taking precendence over the originals.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.1056If used in conjunction with <jsp:forward>, the target resource will see the original request object including the augmented parameters provided by the <jsp:param> action, with the new parameters taking precendence over the originals.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.556If used in conjuntion with <jsp:include> or <jsp:forward>, the new parameters will not apply after the action returns.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.656The 'value' attribute can accept request-time (either classic RT or EL) expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.756A translation error will occur if either the 'name' or 'value' attributes is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.8510The 'value' attribute can be described via the <jsp:attribute> standard action.true +
+
falsetechnologyactivetrue
JSP:SPEC:166.9510The 'name' attribute can be described via the <jsp:attribute> standard action.true +
+
falsetechnologyactivetrue
JSP:SPEC:16757The <jsp:plugin> action enables an JSP page author to generate plugin re-lated HTML.true +
+
falsetechnologyactivefalse
JSP:SPEC:167.157Depending on the browser's user-agent, the action will generate either an HTML OBJECT or EMBED tag.true +
+
truetechnologyactivetrue
JSP:SPEC:167.257The <jsp:params> action specifies a set of parameters (each parameter is defined by a one or more <jsp:param> actions).true +
+
falsetechnologyactivetrue
JSP:SPEC:167.2.157A translation error will occur of the <jsp:params> action is present, but contains no <jsp:param> sub-actions.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.2.258A translation error will occur if the <jsp:params> action is used in any other context outside of the <jsp:plugin> action.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.357The <jsp:fallback> attribute specifies alternate text if the plugin cannot be started.true +
+
falsetechnologyactivefalse
JSP:SPEC:167.3.157The alternate text generated by the <jsp:fallback> action is provided as body content.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.3.2511The body of the <jsp:fallback> attribute can be provided via the <jsp:body> action.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.3.359The use of <jsp:fallback> in any other context (either independent action or child or another) will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.457The 'type' attribute will specifiy the type of component that will generally be either an applet or a Bean.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.4.157A translation error will occur if a value other than 'bean' or 'applet' is provided to the actiontrue +
+
falsetechnologyactivetrue
JSP:SPEC:167.557The 'code' attribute specifies the code attribute of the object per the HTML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.657The 'codebase' attribute specifies the codebase of the object per the HTML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.757The 'align' attribute provides the alignment of the object per the HTML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.857The 'archive' attribute provides the archive used by the object per the HTML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.957The 'height' attribute specifies the height of the object per the HTML specificationtrue +
+
falsetechnologyactivetrue
JSP:SPEC:167.9.157The 'height' attribute accepts request-time (either classic RT or EL) expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.9.2510The 'height' attribute can be described via the <jsp:attribute> standard action.true +
+
falsetechnologyremovedtrue
JSP:SPEC:167.1057The 'hspace' attribute specifies the hspace of the object per the HTML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.1157The 'jreversion' attribute specifies the version of JRE required for the object to fuction properly.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.11.157If the 'jreversion' attribute is not specified, the default version present in the generated HTML will be "1.2".true +
+
falsetechnologyactivefalse
JSP:SPEC:167.1257The 'name' attribute specifies the logical name for the embedded object per the HTML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.1357The 'vspace' attribute specifies the vspace to be used by the embedded object per the HTML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.1457The 'title' attribute specifies the title of the embedded object per the HTML specification.true +
+
falsetechnologyremovedtrue
JSP:SPEC:167.1557The 'width' attribute specifies the width of the embedded object per the HTML specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.15.157The 'width' attribute can accep request-time (either classic RT or EL) expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.15.2510The 'width' attribute can be described via the <jsp:attribute> standard action.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.1657The 'nspluginurl' attribute specifies the URL where the JRE plugin can be downloaded for netscape.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.16.157If the 'nspluginurl' attribute is not specified, the url returned in the generated HTML is implementation specific.true +
+
truetechnologyactivefalse
JSP:SPEC:167.1757The 'iepluginurl' attribute specifies the URL where the JRE plugin for IE can be downloaded.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.17.157If the 'iepluginurl' attribute is not specified, the url returned in the generated HTML is implementation specific.true +
+
truetechnologyactivefalse
JSP:SPEC:167.1857A translation error will occur if the 'code' attribute is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.1957A translation error will occur if the 'codebase' attribute is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.2057All of the attributes of the jsp:plugin action can be described using the jsp:attribute action.true +
+
falsetechnologyactivetrue
JSP:SPEC:167.2157The body of the jsp:params action can be provided using the jsp:body action.true +
+
falsetechnologyactivetrue
JSP:SPEC:168510The <jsp:attribute> action allows a page author to define the value of a tag handler attribute in an XML element instead of in the value of the XML attribute.true +
+
falsetechnologyactivefalse
JSP:SPEC:168.1510The 'name' attribute specifies the name of the attribute of the attribute for the tag being invoked.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.1.1510If the attribute does not accept dynamic attributes, and the specified attribute name doesn't exist in the surrounding action, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.1.2510A translation error will occur if both an XML element attribute and a <jsp:attribute> element are used to specify the value for the same attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.1.3510A translation error will occur if the 'name' attribute is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.1.4510If the value provided to the 'name' attribute is a QName with a prefix that doesn't match that of the applicable action, and the action does not accept dynamic attributes, or the parent action is not jsp:element, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.2510Any attempt to use the <jsp:attribute> action outside of a JSP standard action, or a JSP custom action must result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.3510JSP containers must support the use of <jsp:attribute> for both Classic and Simple Tag Handlers.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.4510For custom action (both Classic and Simple) attribute types of type jakarta.servlet.jsp.tagext.JspFragment, the container must create a JspFragment out of the body of the <jsp:attribute> action and pass it to the tag handler.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.5510A translation error will occur if the attribute type is jakarta.servlet.jsp.tagext.JspFragment, and the body of the <jsp:attribute> action is not scriptless.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.6510If the custom action accepts dynamic attributes, and the name of the attribute is not one explicity indeicated for the tag, then the container will evaluate the body of <jsp:attribute> and assign the computed value to the attribute using the dynamic attribute machinery.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.7510For standard or custom actions attributes that accept a runtime expression value, the container must evaluate the body of the <jsp:attribute> action and use the result of theis evaluation as the value of the attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.8510A translation error must occur if the body of the <jsp:attribute> action contains anything but template text when the standard or custom action attributes do not accept dynamic values.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.9510If the enclosing action is <jsp:element> then the values of the name attribute and the body of the attribute will be used to construct the element dynamically.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.10510If the body of the <jsp:attribute> is empty, it is the equivalent of specifying "" (an empty String) as the value of the attributetrue +
+
falsetechnologyactivetrue
JSP:SPEC:168.11510A translation-time error must occur if jsp:attribute is used to define the value of an attfibute of jsp:attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.12510Attribute names must be accetped and have the appropriate attribute set when jsp:attribute specifies the attribute name using a QName.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.13510If the trim attribute is not specified, then by default, strings will be trimmed at translation time, and not at runtime.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.14510If the value of the trim attribute is true, strings will be trimmed at translation time, and not at runtime.true +
+
falsetechnologyactivetrue
JSP:SPEC:168.15510If the value of the trim attribute is false, strings will not be trimmed at translation or runtime.true +
+
falsetechnologyactivetrue
JSP:SPEC:169511The body of the <jsp:body> action can be specified via the <jsp:body> action.true +
+
falsetechnologyremovedtrue
JSP:SPEC:248511The <jsp:body> allows for the explicit definition of a body for a custom action.true +
+
falsetechnologyremovedtrue
JSP:SPEC:248.1511If one or more <jsp:attribute> elements appear in the body of a tag invocation but no <jsp:body> element appears or an empty <jsp:body> element appears, it is the equivalent of the tag having an empty body.true +
+
falsetechnologyactivetrue
JSP:SPEC:248.2511It is illegal to use <jsp:body> to provide a body to the <jsp:body> and <jsp:attribute> actions.true +
+
falsetechnologyactivetrue
JSP:SPEC:248.3511It is illegal for the <jsp:body> action to be present in a translation unit without a valid standard action or custom action as a parent.true +
+
falsetechnologyactivetrue
JSP:SPEC:170511The <jsp:body> allows for the explicit definition of a body for a custom action.true +
+
falsetechnologyremovedtrue
JSP:SPEC:170.1511The 'value' attribute allows the author to provide the body of the action as an attribute value.true +
+
falsetechnologyremovedtrue
JSP:SPEC:170.1.1511The value of this attribute must evaluate to an instance of jakarta.servlet.jsp.tagext.JspFragment, otherwise a JspException must result.true +
+
falsetechnologyremovedtrue
JSP:SPEC:170.1.2511If the 'value' attribute of <jsp:body> is specified and the action has a body, translation error must occur.true +
+
falsetechnologyremovedtrue
JSP:SPEC:170.1.3511If the 'value' attribute of <jsp:body> is not specified, and the action has no body, a translation error must occur.true +
+
falsetechnologyremovedtrue
JSP:SPEC:170.1.4511The 'value' attribute can accept dynamic attribute values (both EL and RT).true +
+
falsetechnologyremovedtrue
JSP:SPEC:170.2511If the 'value' attribute is used to specify the value of a custom action defined using a Classic Tag Handler, the container must generate code to invoke the fragment, sending the output to the current JspWriter, and passing in a Map of paramters for all AT_BEGIN and NESTED variables provided by the tag handler.true +
+
falsetechnologyremovedtrue
JSP:SPEC:170.3511Any attempt to use the value attribute to define the body of a standard action must result in a translation error.true +
+
falsetechnologyremovedtrue
JSP:SPEC:171512The <jsp:invoke> action will invoke the specified fragment and write the result to the current JspWriter, or to a scoped variable.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.1512The 'fragment' attribute specifies the name used to identify this fragment during this tag invocation.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.2512The 'varReader' attribute specifies the scoped attribute in which to store the result of the fragment invocation. true +
+
falsetechnologyactivetrue
JSP:SPEC:171.2.1512The type of the scoped attribute must be java.io.Reader.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.3512The 'var' attribute specifies the scoped attribute in which to store the result of the fragment invocation.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.3.1512The type of the scoped attribute must be java.lang.String.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.4512The 'scope' attribute specifies the scope in which to store the attribute specified by the 'varReader' or 'var' attributes.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.4.1512A value of 'page' will result in the attribute being stored in the page scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.4.2512A value of 'request' will result in the attribute being stored in the request scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.4.3512A value of 'session' will result in the attribute being stored in the session scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.4.4512A value of 'application' will result in the attribute being stroed in the application scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.4.5512If the 'scope' attribute is not specified, the default value of 'page' will be used.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.4.6512/XXX FIXME What happens if client not in session and session scope is specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.4.7512A translation error will occur if the scope attribute is provided an invalid value.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.5512A translation error will occur of the <jsp:invoke> is present outside of a tag file context.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.6512.2If neither 'var' nor 'varReader' attribute is specified, the result of the invocation will be written to the current JspWriter.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.7512.2When the 'varReader' attribute is specified, the object must produce the content sent by the fragment to the provided writer.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.8512.2When the 'var' attribute is specified, the object must store the content sent by the fragment in a String object.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.9512A translation error must occur of both 'var' and 'varReader' are specified within the same action.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.10512.2When 'varReader' attribute is specified, the Reader exported must be resettable, such that if its reset() method is called, the result of the invoked fragment must be able to be read again without re-executing the fragment.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.11512.3A translation error will occur if there is not a one-to-one correlation between the number of <jsp:param> elements present within the body of the <jsp:invoke> action and the required variables as defined by the 'variable' directive.true +
+
falsetechnologyremovedtrue
JSP:SPEC:171.12512.3A translation error must not occur because a <jsp:param> element appears without a corresponding variable directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.13512.3A translation error will occur if the body of the <jsp:invoke> action contains body content other than white space and <jsp:param> subelements.true +
+
falsetechnologyactivetrue
JSP:SPEC:171.14512A translation error will occur of the 'fragment' attribute is not specified for a particular <jsp:invoke> action.true +
+
falsetechnologyactivetrue
JSP:SPEC:172513The <jsp:doBody> standard action invokes the body of a tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.1513The 'varReader' attribute specifies the scoped attribute in which to store the result of the body invocation.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.1.1513The type of the scoped attribute must be java.io.Reader.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.2513The 'var' attribute specifies the scoped attribute in which to store the result of the body invocation.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.2.1513The type of the scoped attribute must be java.lang.String.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.3513The 'scope' attribute specifies the scope in which to store the attribute specified by the 'varReader' attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.3.1513A value of 'page' will result in the attribute being stored in the page scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.3.2513A value of 'request' will result in the attribute being stored in the request scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.3.3513A value of 'session' will result in the attribute being stored in the session scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.3.4513A value of 'application' will result in the attribute being stroed in the application scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.3.5513If the 'scope' attribute is not specified, the default value of 'page' will be used.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.3.6513/XXX FIXME What happens if client not in session and session scope is specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.3.7513A translation error will occur if the 'scope' attribute is provided an invalid value.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.4513A translation error will occur if the 'var' and 'varReader' attributes are both specified within the same action.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.5513A translation error will occur if the <jsp:doBody> action contains body content other than white space and <jsp:param> subelements.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.6512A translation error will occur if there is not a one-to-one correlation between the number of <jsp:param> elements present within the body of the <jsp:doBody> action and the required fragment inputs as defined by the 'variable' directive.true +
+
falsetechnologyremovedtrue
JSP:SPEC:172.7512A translation error must not occur because a <jsp:param> element appears without a corresponding variable directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.8512A translation error must occur if a <jsp:param> is specified with the same name as a variable with a scope of AT_BEGIN, or NESTED.true +
+
falsetechnologyactivetrue
JSP:SPEC:172.9512A translation error must not occur because a <jsp:param> is specified with the same name as a variable with a scope of AT_END.true +
+
falsetechnologyactivetrue
JSP:SPEC:17361A JSP document is identified though the following algorithm in order or precedence:true +
+
falsetechnologyactivetrue
JSP:SPEC:173.161If a <jsp-property-group> explicitly identifies a set of files as JSP Documents (through the use of <is-xml>), then that indication overrides any other determination.true +
+
falsetechnologyactivetrue
JSP:SPEC:173.261If there is no explicit association and the extension is ".jspx", then the file is a JSP document.true +
+
falsetechnologyactivetrue
JSP:SPEC:173.361If the file is explicitly or implicitly defined as a JSP page and the top element is a jsp:root element, then the file is identified as a JSP doucment (provided for backwards compatibility).true +
+
falsetechnologyactivetrue
JSP:SPEC:173.461It is a translation error for a file that id identified as a JSP document to not be a well-formed XML document.true +
+
falsetechnologyactivetrue
JSP:SPEC:17461RT expressions must be expressed in JSP Documents using the following syntax: "%= expr %".true +
+
falsetechnologyactivetrue
JSP:SPEC:174.161Whitespace after the starting '%=' and before the ending '%" is optional.true +
+
falsetechnologyactivetrue
JSP:SPEC:174.2112.3If an expression appears in more than one run-time attribute, they are evaluated left-to-right in the element.true +
+
falsetechnologyactivetrue
JSP:SPEC:17561It is legal to use any prefix for JSP standard actions within JSP documents as long as the require URI, 'http://java.sun.com/JSP/page" is associated with the specified prefix.true +
+
falsetechnologyactivetrue
JSP:SPEC:17663.2JSP documents and tag files in XML syntax need not have a jsp:root element as its root element.true +
+
falsetechnologyactivetrue
JSP:SPEC:17763.2The jsp:root element can only appear as the root element in a JSP document or in a tag file in XMLsyntax; otherwise a translation error shall occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:17861.4The jsp:directive.page, a child element of the jsp:root element, defines page level properties with the same semantics as the page directive in JSP syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.1110.1jsp:directive.page can appear multiple times, and is position independent within a given translation unit.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.2110.1A translation error will occur if jsp:directive.page defines duplicate attribute/values within a given translation unit, with the exception of the import attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.3110.1The 'isScriptingEnabled' attribute of jsp:directive.page, if true, allows the presence of scripting elements (scriptlets, expressions, declarations) within a given translation unit.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.4110.1The 'isScriptingEnabled' attribute of jsp:directive.page, if false, disallows the presence of scripting elements (scriptlets, expressions, declarations) within a given translation unit and will generate a translation error if they are present.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.5110.1The default value for 'isScriptingEnabled' of jsp:directive.page, if not specified, is true.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.6110.1The 'isELEnabled' attribute of jsp:directive.page, if true, directs the container to evaluate EL expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.7110.1The 'isELEnabled' attribute of jsp:directive.page , if false, will result in EL expression not being evaluated by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.8110.1If the JSP is part of a Web application that is using a Servlet 2.3 or lower deployment descriptor, the default value for the 'isELEnabled' attribute of jsp:directive.page is false.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.9110.1If the JSP is part of a Web application that is using a Servlet 2.4 deployment descriptor, the default value for the 'isELEnabled' attribute of jsp:directive.page is true.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.10110.1All scripting languages, specifiable by jsp:directive.page's 'language' attribute, must provide some implicit objects that a JSP page author can use in declarations, scriptlets, and expressions (see Section JSP.1.3.8 for list of available implicit objects)true +
+
truetechnologyactivefalse
JSP:SPEC:178.11110.1All scripting languages, specifiable by jsp:directive.page's 'language' attribute, must expose the Java technology object model to the script environment, especially implicit variables, JavaBeans components properties, and public methods.true +
+
truetechnologyactivefalse
JSP:SPEC:178.12110.1It is a fatal translation error for a page directive with a non-"java" language attribute to appear after the first scripting has been encountered.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.13110.1The only required scripting language value for the 'language' attribute is "java".true +
+
falsetechnologyactivetrue
JSP:SPEC:178.14110.1The 'extends' attribute of jsp:directive.page specifies a fully qualified Java programming language class name, that names the superclass of the class to which this JSP page is transformedtrue +
+
falsetechnologyactivetrue
JSP:SPEC:178.15110.1The 'import' attribute of jsp:directive.page specifies the fully qualified Java programming language type name denoting a particular type, or of a package name following by the ".*" string, denoting all the public types declared in that package, that shall be imorted by the translated JSP page implementation and is thus available to the scripting language.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.16110.1The default import list for a JSP page is java.lang.*, jakarta.servlet.*, jakarta.servlet.jsp.*, jakarta.servlet.http.*true +
+
falsetechnologyactivetrue
JSP:SPEC:178.17110.1The 'session' attribute of jsp:directive.page, when true, indicates that the JSP page requires participation in an HTTP session.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.18110.1The 'session' attribute of jsp:directive.page, when false, indicates that the JSP page does not participate in an HTTP session; the 'session' implicit object is not available to the page, and any reference to it within the translation unit will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.19110.1If the 'session' attribute of jsp:directive.page is not specified, then the page will, by default, participate in an HTTP session (default value of true).true +
+
falsetechnologyactivetrue
JSP:SPEC:178.20110.1If the 'buffer' attribute of jsp:directive.page is not specified, no buffering will be performed and all output will be written directly through to the ServletResponse PrintWriter.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.21110.1The size value specified by the 'buffer' attribute of jsp:directive.page must be in kilobytes, and the suffix "kb" is mandatory.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.22110.1The container must allocate a buffer at least as large as that specified by the 'buffer' attribute of jsp:directive.page.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.23110.1The default buffer size of 8kb will be used if the 'buffer' attribute of the page directive is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.24110.1If the 'autoFlush' attribute of the page directive is true, the output will be automatically flushed when the buffer is filled.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.25110.1If the 'autoFlush' attribute of the page directive is false, an exception will be raised to indicate a buffer overflow.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.26110.1It is illegal to set the 'autoFlush' attribute of jsp:directive.page to false, if the 'buffer' attribute is set to none.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.27110.1If the 'isThreadSafe' attribute of jsp:directive.page is false, the container must serialize requests to the JSP (it should behave like an STM servlet).true +
+
falsetechnologyactivetrue
JSP:SPEC:178.28110.1The 'info' attribute of jsp:directive.page specifies an arbitrary string that is incorporated into the translated page, that can subsequently be obtained from the page's implementation of Servlet.getServletInfo().true +
+
falsetechnologyactivetrue
JSP:SPEC:178.29110.1The 'isErrorPage' attribute of jsp:directive.page. when true, will cause the implicit script language variable "exception" to be defined and its value is a reference to the offending Throwable from the source JSP page in error.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.30110.1If the 'isErrorPage' attribute of jsp:directive.page is defined as false, then the implicit script language variable "exception" will not be available, and any such reference to this variable will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.31110.1The 'errorPage' attribute of jsp:directive.page, specifies the URL, either page-relative or context-relative, of a resource to which any Java programming language Throwable object(s) thrown but not caught by the page implementation are forwarded for error processing. The following request attributes will be made available within the error page:true +
+
falsetechnologyactivetrue
JSP:SPEC:178.31.114.3jakarta.servlet.jsp.jspException - throw Throwable object of the offending exception (for backwards compatibility with JSP 1.2)true +
+
falsetechnologyactivetrue
JSP:SPEC:178.31.214.3jakarta.servlet.error.exception - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.31.314.3jakarta.servlet.error.status_code - as per the Servlet specificationtrue +
+
falsetechnologyactivetrue
JSP:SPEC:178.31.414.3jakarta.servlet.error.exception_type - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.31.514.3jakarta.servlet.error.message - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.31.614.3jakarta.servlet.error.request_uri - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.31.714.3jakarta.servlet.error.servlet_name - as per the Servlet specification.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.31.814.3An instance of jakarta.servlet.jsp.ErrorData must be provided to the error page.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.32110.1If the 'errorPage' attribute of jsp:directive.page is defined, it will take presendence over any error pages defined in the web application's deployment descriptor.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.33110.1The character encoding (Content-Type response header) can be in the form of TYPE, or TYPE; Charset=CHARSET, with an optional white space after the ';'. Charset, if present, must be the IANA value for a character encoding. Similarly, if TYPE is a MIME type, see the IANA registry for values.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.34110.1The default Content-Type for JSP Pages in XML syntax is "text/xml".true +
+
falsetechnologyactivetrue
JSP:SPEC:178.35110.1If a charset portion of the value provided to the 'contentType' attribute is not specified, but the page encoding for the JSP page is specified, then the charset used will be that of the specified page encoding.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.36110.1If a charset is not provided as part of the 'contentType' attribute value, and the page encoding does not specifiy a type, then the default charset is ISO-8859-1 for JSP pages in classic syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.37110.1If a charset is not provided as part of the 'contentType' attribute value, and the page encoding does not specifiy a type, then the default charset is UTF-8 for JSP pages in XML syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.38110.1The 'pageEncoding' attribute of jsp:directive.page specifies the character encoding of the page. The value is in the form of CHARSET which my be the IANA value for a character encoding. If no 'pageEncoding' attribute is specified, the default of ISO-8859-1 will be used.true +
+
falsetechnologyactivetrue
JSP:SPEC:178.3961.1A JSP container must support the presence of the jsp:directive.page element within a JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:17961.5The jsp:directive.include element, like the include directive, is used to subsitute test and/or code during JSP page translation and has the same semantics as the include directive for JSP pages.true +
+
falsetechnologyactivetrue
JSP:SPEC:179.161.5The jsp:directive:include element can appear anywhere within a JSP document.true +
+
falsetechnologyactivetrue
JSP:SPEC:179.2110.5A JSP container can include a mechanism for being notified if an included file changes, so the container can recompile the JSP page. However, the JSP 2.0 specification does not have a way of directing the JSP container that included files have changed.false +
+
truetechnologyactivefalse
JSP:SPEC:179.3110.5The 'file' attribute of jsp:directive.include specifies the resource to be imported either relative to web appliation context path, or relative to the page performing the include.true +
+
falsetechnologyactivetrue
JSP:SPEC:179.4110.5The jsp:directive.include element includes content at translation time meaning the bytes of the included resource are directly inserted into the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:179.561.1A JSP container must support the presence of the jsp:directive.include element within a JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:18061.6The jsp:declaration element is used to declare scripting language constructs that are available to all other scripting elements and follows the same semantics as declarations in standard JSP syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:180.1112.1A declaration (<jsp:declaration>DECL_BODY</jsp:declaration>) must be a complete declarative statment, or sequence thereof, according to the syntax of the scripting language specified, otherwise a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:180.2112.1Declartaions do not produce any output into the current out stream.true +
+
falsetechnologyactivetrue
JSP:SPEC:180.3112.1Declarations are initialized when the JSP page is initialized and are made available to other delcarations, scriptlets, and expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:180.461.1A JSP container must support the presence of the jsp:declaration element within a JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:180.561.1A JSP container must support the presence of the jsp:declaration element within a JSP page.true +
+
falsetechnologyremovedtrue
JSP:SPEC:18161.7The jsp:scriptlet element are program fragments with the same semantics as scriptlets in standard JSP syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:181.1112.2Scriptlets (<jsp:scriptlet>SCR_BODY</jsp:scriptlet>) can contain any code framents that are valid for the scripting language specified by the 'language' attribute of the page directive, and are executed at request time in the order that they appear on the JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:181.261.1A JSP container must support the presence of the jsp:scriptlet element within a JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:18261.8The jsp:expression element is used to describe complete expressions in the scripting language that get evaluated at response time. The semantics are the same as expressions in standard JSP syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:182.1112.3The result of the expression is coerced to a String and emitted into the current JspWriter (out) object.true +
+
falsetechnologyactivetrue
JSP:SPEC:182.2112.3If the result of the expression cannot be coerced to a String, the following must happen: If the problem is detected at translation time, a translation time error shall occur. If the coercion cannot be detected during translation, a ClassCaseException shall be raised at request time.true +
+
falsetechnologyactivefalse
JSP:SPEC:182.3112.3Expressions are evaluated left to right in the JSP document.true +
+
falsetechnologyactivetrue
JSP:SPEC:182.4112.3A translation error will occur if the expression is not a complete expression in the scripting language in which it is written.true +
+
falsetechnologyactivetrue
JSP:SPEC:182.561.1A JSP container must support the presence of the jsp:expression element within a JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:18361.9The jsp:element element is used to dynamically define an XML elementtrue +
+
falsetechnologyactivetrue
JSP:SPEC:183.161.9The name of the element can be provided via the 'name' attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:183.261.9The value of the 'name' attribute can be provided via the jsp:attribute element.true +
+
falsetechnologyactivetrue
JSP:SPEC:183.361.9The body of the jsp:element element will be the body of the generated element.true +
+
falsetechnologyactivetrue
JSP:SPEC:183.461.9The body of the jsp:element element can be provided by the jsp:body element.true +
+
falsetechnologyactivetrue
JSP:SPEC:183.521.1JSP containers must support the presence of the jsp:element within standard JSP pages.true +
+
falsetechnologyactivetrue
JSP:SPEC:18461.12The jsp:text element can be used to enclose template text that will be emitted to the current JspWriter (retaining any whitespace within the element).true +
+
falsetechnologyactivetrue
JSP:SPEC:184.161.1JSP contianer's must support the presence of jsp:text elements within standard JSP files.true +
+
falsetechnologyactivetrue
JSP:SPEC:18561.13Any elements that are not standard or custom actions are to be passed to the current JspWriter after whitespace processing.true +
+
falsetechnologyactivetrue
JSP:SPEC:18662.1The following steps must be taken by containers when converting a JSP document to it's internal XML view:true +
+
falsetechnologyactivefalse
JSP:SPEC:186.162.1Expand all include directives into the JSP framgments they include.true +
+
falsetechnologyactivetrue
JSP:SPEC:186.262.1Add the jsp:id attributetrue +
+
falsetechnologyactivetrue
JSP:SPEC:18762.2The following steps must be taken by a container to convert a JSP page into its XML view:true +
+
falsetechnologyactivetrue
JSP:SPEC:187.162.2Expand all include directives into the JSP framgments the include.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.262.2Add a jsp:root element as the root, with appropriate xmlns:jsp attribute, and convert the taglib directive into xmlns:attributes of the jsp:root element.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.362.2Convert declarations, scriptlets, and expressions into their equivalent XML forms.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.3.152.7JSP declarations are translated into jsp:declaration elements.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.3.252.8JSP scriptlets are translated into jsp:scriptlet elements.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.3.362.9JSP expressions are translated into jsp:expression elements.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.462.2Convert request-time attribute expressions into their equivalent XML forms.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.562.2Convert JSP quotations to XML quitations.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.662.2Create jsp:text elements for all template text.true +
+
truetechnologyactivetrue
JSP:SPEC:187.762.2Add the jsp:id attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.862.3JSP comments (<%-- comment --%>) are not passed through to the XML view of a JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.962.4JSP page directives are translated into <jsp:directive.page> elements.true +
+
falsetechnologyactivetrue
JSP:SPEC:187.1052.5JSP taglib directives are translated into xmlns:prefix attributes of the jsp:root element.true +
+
falsetechnologyactivetrue
JSP:SPEC:26062.4A JSP Document with a DOCTYPE declaration must be validated by the container in the translation phase. Validation errors must be handled the same way as any other translation phase errors, as described in Section JSP.1.4.1.true +
+
falsetechnologyactivetrue
JSP:SPEC:18862.13As of JSP 2.0, the JSP container must support the jsp:id attribute which is only present in the XML view of a JSP page to improve the quality of translation time errors.true +
+
falsetechnologyactivetrue
JSP:SPEC:18971.4.7Scripting variables can be defined in one of two ways:true +
+
falsetechnologyactivetrue
JSP:SPEC:189.171.4.7Directly within the TLD for a particular action via the <variable> element.true +
+
falsetechnologyactivetrue
JSP:SPEC:189.271.4.7Using a subclass of the TagExtraInfo interface, specifically providing a method body to the getVariableInfo() call.true +
+
falsetechnologyactivetrue
JSP:SPEC:30171.5The <body-content> of a SimpleTag cannot be "JSP". [BodyContentSimpleTagNotJsp] true +
+
falsetechnologyactivetrue
JSP:SPEC:19071.6A translation error must occur if a piece of JSP code that is to be translated into a JSPFragment (any JSP code in the body of a named attribute (<jsp:attribute), that is declared to be a fragment in the TLD, or for the body of any tag handled by a Simple Tag Handler).true +
+
falsetechnologyactivetrue
JSP:SPEC:19171.9A tag library can define listener classes (See Servlet.2.4 specification) which will be instantiated and registered by the JSP container.true +
+
falsetechnologyactivetrue
JSP:SPEC:19271.9Listeners must be instantiated before the start of the application, however, the order in which listeners are registered is undefined.true +
+
truetechnologyactivefalse
JSP:SPEC:30271.11 Tag handlers which implement interfaces jakarta.servlet.jsp.tagext.Tag and jakarta.servlet.jsp.tagext.SimpleTag may be annotated for injection. [TagHandlerResourceInjection]true +
+
falsetechnologyactivetrue
JSP:SPEC:30371.11Resource injection occurs immediately after an instance of a tag handler is constructed, and before any of the tag properties are initialized. [TagHandlerResourceInjectionTiming]true +
+
falsetechnologyactivetrue
JSP:SPEC:30471.11Event Listeners can be annotated for resource injection. [EventListenerResourceInjection]true +
+
falsetechnologyactivetrue
JSP:SPEC:30571.11Resource injection occurs immediately after an instance of an event handler is constructed, and before it is registered. [EventListenerResourceInjectionTiming P1]true +
+
falsetechnologyactivetrue
JSP:SPEC:19372.1When tag libraries are deployed in a JSP container as a JAR file, the standard JAR conventions described in the Servlet 2.4 specification apply, including the conventions for dependencies on extensions.true +
+
falsetechnologyactivetrue
JSP:SPEC:19472.1Packaged tag libraries must have at least one tag library descript file.true +
+
falsetechnologyactivefalse
JSP:SPEC:19572.1Both classic and simple tag handlers (implemented in either Java or as tag files) can be packaged together in the same JAR file.true +
+
falsetechnologyactivetrue
JSP:SPEC:19672.3If a JSP container cannot locate a TLD resource path for a given URI, a fatal translation error shall result.true +
+
falsetechnologyactivetrue
JSP:SPEC:19772.3If the URI resolves to two different TLD resource paths, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:19873.1A TLD must end with the extension ".tld" to be recognized by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:19973.1When taglibraries are deployed in a JAR file, the TLDs must be present in the META-INF directory in order to be recognized by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:20073.1When deployed directly in the web application, the TLD's must be be in the WEB-INF directory, or some subdirectory thereof.true +
+
falsetechnologyactivetrue
JSP:SPEC:20173.1A translation error will occur if the TLD resource path doesn't ultimately resolve directly to a TLD within the web application, or to a JAR file that has the taglib.tld file in the META-INF directory of the JAR.true +
+
falsetechnologyactivetrue
JSP:SPEC:30673.1TLD files must not be placed inside /WEB-INF/tags or a subdirectory of it, unless named implicit.tld and intended to configure an implicit tag library with its JSP version and tlib-version. [TldPlacementInWEB-INFtags]true +
+
falsetechnologyactivetrue
JSP:SPEC:20273.3Explicit taglib map entries between URI's and TLD resource paths can be described using taglib elements of the Web Application Deployment descriptor (web.xml).true +
+
falsetechnologyactivetrue
JSP:SPEC:20373.4Implicit taglib map entries can be described via a TLD file(s) located in the META-INF directory of the JAR file (TLD is not named taglib.tld).true +
+
falsetechnologyactivetrue
JSP:SPEC:203.173.4Each TLD file is examined. If it has a <uri> element, then a new <taglib> element is created, with a <taglib-uri> subelement whose value is that of the <uri> element, and with a <taglib-location> subelement that refers to the TLD file.true +
+
falsetechnologyactivetrue
JSP:SPEC:203.273.4If the created <taglib> element has a different <taglib-uri> to any in the taglib map, it is added to the map.true +
+
falsetechnologyactivetrue
JSP:SPEC:20473.9The JSP container may "know of" some specific URIs and may provide alternate implementations for the tag libraries described by these URI's.true +
+
truetechnologyactivefalse
JSP:SPEC:204.173.9When the container does provide an alternate implementation, the implementation must provide the same behavior as that described by the required, portable tag library description described by the URI.true +
+
truetechnologyactivefalse
JSP:SPEC:204.273.9A JSP container must always use the mapping specified for a URI in the web.xml deployment descriptor if present. If the deployer wishes to use the platform-specific implementation of the well-known URI, the mapping for that URI should be removed at deployment time.true +
+
truetechnologyactivefalse
JSP:SPEC:20573.6.1The <taglib-uri> element may be URI of the following types:true +
+
falsetechnologyactivetrue
JSP:SPEC:205.173.6.1An absolute URI.true +
+
falsetechnologyactivetrue
JSP:SPEC:205.273.6.1A context-relative URI (URI starting with '/').true +
+
falsetechnologyactivetrue
JSP:SPEC:205.373.6.1A page-relative URI (URI that doesn't start with '/').true +
+
falsetechnologyactivetrue
JSP:SPEC:20673.6.1If the <taglib-location> sublement is a relative URI without a leading slash, the resolution of the taglib location will be relative to /WEB-INF.true +
+
falsetechnologyactivetrue
JSP:SPEC:206.173.6.1The result of the resolution will be a context-relative path (starts with "/").true +
+
falsetechnologyactivefalse
JSP:SPEC:20773.6.2The following describes the resolution process of the taglib directive to compute the TLD resource path.true +
+
falsetechnologyactivetrue
JSP:SPEC:207.173.6.2If the URI is an absolute URI, check the taglib map for an entry whose URI is the specified absolute URI. If found, the corresponding taglib location is the TLD resource path. The taglib will be usable in the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:207.273.6.2If the absolute URI is not found in the taglib map, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:207.373.6.2If the URI is a context-relative path (URI starts with '/'), look in taglib amp for an entry whose taglib URI matchs the provided URI. If found, the corresponding location is the TLD resource path. The tag library will be available to the pagetrue +
+
falsetechnologyactivetrue
JSP:SPEC:207.473.6.2If the context-relative URI is not found in the taglib map, then the URI provided by the taglib directive is the TLD resource path.true +
+
falsetechnologyactivetrue
JSP:SPEC:207.573.6.2If at translation time, the resource (either a TLD or a JAR where taglib.tld is in the META-INF directory) doesn't exist as specified by the provided context-relative path, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:207.673.6.2If the URI is a page-relative path (the URI doesn't start with a '/') look in the taglib map for the same page-relative path. If found, the corresponding taglib location in the map is the TLD resource path. The tag library will be available to the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:207.773.6.2If the page-relative URI is not found in the taglib map, resolve the page relative path to the current JSP page where the directive appears. This will be used as the TLD resource path. If the resource is found at the resolved location, the tag library will be available to the page.true +
+
falsetechnologyactivetrue
JSP:SPEC:207.873.6.2If, at translation time, the resource identified by the resolved page-relative path doesn't exist (either a TLD or a JAR file with a taglib.tld in META-INF), a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:20873.10JSP containers must not alter their behavior based on the content, the presence, or the absence of a particular Tag or Tag Library Extension Element.true +
+
falsetechnologyactivetrue
JSP:SPEC:20973.10JSP containers must consider invalid any tag library that specifies mustUnderstand='true' for any Tag or Tag Library Extension element.true +
+
falsetechnologyactivefalse
JSP:SPEC:21074.1.1All attribute constraints as described in the TLD must be enforced by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:21183The following must hold true for all tag handlers defined as tag files:true +
+
falsetechnologyactivetrue
JSP:SPEC:211.183The tag file implementation must keep a copy of the JspContext instance passed to it by the invoking page via setJspContext(). This is called the 'Invoking JSP Context'.true +
+
falsetechnologyactivetrue
JSP:SPEC:211.283The tag file implementation must create and maintain a second instance of JspContext called a 'JSP Context Wrapper'. If the Invoking JSP Context is an instance of PageContext, the JSP Context Wrapper must also be an instance of PageContext.true +
+
falsetechnologyactivetrue
JSP:SPEC:211.383For each invocation of the tag, the JSP Context Wrapper must present a clean page scope containing no initial elements. true +
+
falsetechnologyactivetrue
JSP:SPEC:211.483All scopes other than the page scope must be identical to this in the Invoking JSP Context and must be modified accordingly when updates are made to those scopes in the JSP Context Wrapper.true +
+
falsetechnologyactivetrue
JSP:SPEC:211.583Any modifications to the page scope, however, must not affect the Invoking JSP Context.true +
+
falsetechnologyactivetrue
JSP:SPEC:211.683For each attribute declared and specified, a page-scoped variable must be created in the page scope of the JSP Context Wrapper.true +
+
falsetechnologyactivetrue
JSP:SPEC:211.783The name of the variable must be the same as the declared attribute name. true +
+
falsetechnologyactivetrue
JSP:SPEC:211.883The value of the variable must be the value of the attribute passed in during invocation.true +
+
falsetechnologyactivetrue
JSP:SPEC:211.983For each attribute declared as optional and not specified, no page-scoped variable is created.true +
+
falsetechnologyactivetrue
JSP:SPEC:211.1083If the tag accepts dynamic attributes, then page-scoped variables must also be made available for each dynamic attribute passed in.true +
+
falsetechnologyactivetrue
JSP:SPEC:211.1183The 'pageContext' scripting variable must point to the JSP Context Wrapper instead of the Invoking JSP Contexttrue +
+
falsetechnologyactivetrue
JSP:SPEC:211.1283The tag handler must behave as through a tag library descriptor entry was defined for it, in accordance with the tag, attribute, and variable directives that appear in the tag file translation unit.true +
+
falsetechnologyactivetrue
JSP:SPEC:21283If <jsp:forward> is used within a tag file, the generated tag handler must stop processing upon the return of RequestDispatcher.forward() and throw a jakarta.servlet.jsp.SkipPageExceptiontrue +
+
falsetechnologyactivetrue
JSP:SPEC:21383If a tag file invokes a Classic Tag Handler which returns SKIP_PAGE, from doEndTag() , tag file must terminate and SkipPageException must be thrown.true +
+
falsetechnologyactivetrue
JSP:SPEC:21483If a tag file invokes a Classic Tag Handler invokes a a Simple Tag Handler which throws SkipPageException, the tag file must terminate and SkipPageException must be thrown.true +
+
falsetechnologyactivetrue
JSP:SPEC:21583If a tag file invokes a Simple Tag Handler which throws a SkipPageException, processing must terminate with the tag file throwing a SkipPageExceptiontrue +
+
falsetechnologyactivetrue
JSP:SPEC:21683In the case of either Simple or Classic Tag Handlers, the doFinally() method must be called on enclosing tags that implement the TryCatchFinally interface before returning.true +
+
falsetechnologyactivetrue
JSP:SPEC:21783The doEndTag() methods of enclosing classic tags must not be called when SkipPageException is thrown.true +
+
falsetechnologyactivetrue
JSP:SPEC:21883When a tag file attempts to invoke a classic tag handler (i.e one that implements the Tag interface), it must cast the JspContext passed to the SimpleTag into a PageContexttrue +
+
falsetechnologyactivetrue
JSP:SPEC:21983If the cast by a Simple Tag Handler of a JspContext to a PageContext fails, the invocation of the classic tag files, and a JspException must be thrown.true +
+
falsetechnologyactivefalse
JSP:SPEC:22084.1Tag files can be packaged in the /META-INF/tags directory of a JAR file installed in the /WEB-INF/lib directory.true +
+
falsetechnologyactivetrue
JSP:SPEC:220.184.2Any tag files packaged in a JAR file must have a Tag Library Descriptor (TLD) present within the JAR file with a reference for each tag that is to be recognized by the container in the TLD.true +
+
falsetechnologyactivetrue
JSP:SPEC:220.284.2Any tag files within a JAR file that are not defined within a TLD must be ignored by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:220.384.2A tag library is considered invalid and must be rejected by the container if a <tag-file> element has a <name> subelement with the same content as a <name> subelement in a <tag> element.true +
+
falsetechnologyactivefalse
JSP:SPEC:31484.2Tag files packaged in a JAR inherit the JSP version of the TLD that references them. [JspVersionInheritanceInJarPackagedTagFiles]true +
+
falsetechnologyactivetrue
JSP:SPEC:22184.3Tag files can be packaged in the /WEB-INF/tags/ directory of a web application or a subdirectory thereof.true +
+
falsetechnologyactivetrue
JSP:SPEC:221.184.3The JSP container must interpret the '/WEB-INF/tags/' directory and each subdirectory under it, as another implicitly defined tag library containing tag handlers defined by the tag files that appear in the directory.true +
+
falsetechnologyactivetrue
JSP:SPEC:221.284.3The JSP container must generate an implicit tag library for each directory under and included /WEB-INF/tags/.true +
+
falsetechnologyactivetrue
JSP:SPEC:221.384.3The tag library can only be imported via the tagdir attribute of the taglib directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:221.3.184.3The <tlib-version> element will be defined as 1.0true +
+
falsetechnologyactivefalse
JSP:SPEC:221.3.284.3<short-name> is derived from the directory name that that tag file resides in.true +
+
falsetechnologyactivefalse
JSP:SPEC:221.3.2.184.3 +
+
true +
+
falsetechnologyremovedfalse
JSP:SPEC:221.3.384.3The <tag-file> element is considered to exist for each tag file in this directory. true +
+
falsetechnologyactivefalse
JSP:SPEC:221.3.3.184.3The <name> for each is the filename of the tag file, withouth the .tag extensiontrue +
+
falsetechnologyactivetrue
JSP:SPEC:221.3.3.284.3The <path> element for each is the path of the tag file, relative to the root of the web application.true +
+
falsetechnologyactivefalse
JSP:SPEC:30784.3The JSP version of an implicit tag library defaults to 2.0. [ImplicitTldDefaultJspVersion]true +
+
falsetechnologyactivetrue
JSP:SPEC:30884.3The JSP version and tlib-version of an implicit tag library may be configured by placing a TLD with the reserved name implicit.tld in the same directory as the implicit tag library?s constituent tag files. [ImplicitTldReservedName]true +
+
falsetechnologyactivetrue
JSP:SPEC:30984.3A JSP 2.1 container must consider only the JSP version and tlib-version specified by an implicit.tld file, and ignore its short-name element. [ImplicitTldVersionInfo]true +
+
falsetechnologyactivetrue
JSP:SPEC:31084.3Any elements in addition to jsp-version, tlib-version, and short-name in an implicit.tld file must cause a translation error. [ImplicitTldAdditionalElements]true +
+
falsetechnologyactivetrue
JSP:SPEC:31184.3The JSP version specified in an implicit.tld file must be equal to or greater than 2.0, or else a translation error must be reported. [ImplicitTldMinimumJspVersion]true +
+
falsetechnologyactivetrue
JSP:SPEC:22284.3Upon deployment, the JSP container must seach for and process all tag files appearing in these directories and subdirectories. In processing a tag file, the container makes the custom actions defined in these tags available to JSP files.true +
+
falsetechnologyactivetrue
JSP:SPEC:31284.3If a tag library directory contains two files with the same tag name, the tag library is considered invalid. [TwoFilesSameTagName]true +
+
falsetechnologyactivetrue
JSP:SPEC:31384.3It a tag file is referenced by both a TLD as well as an implicit TLD, the JSP versions of the TLD and implicit TLD do not need to match. [TldImplicitTldJspVersionNotMatch]true +
+
falsetechnologyactivetrue
JSP:SPEC:22385A translation error will occur of a page directive is present within a tag file.true +
+
falsetechnologyactivetrue
JSP:SPEC:22485The taglib directive is legal within Tag files. The semantics of the taglib directive within a tag file are identical to those of a JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:22585The include directive is legal within Tag files. The semantics of the include directive within a tag file are identical to those of a JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:225.185If the included file contains syntax unsuitable for tag files, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:22685The tag directive is only applicable to tag files. Any attempt to use the tag directive in a JSP page will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:22785The attribute directive is only applicable to tag files. Any attempt to use the attribute directive in a JSP page will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:22885The variable directive is only applicable to tag files. Any attempt to use the variable directive in a JSP page will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:22985.1The 'tag' directive is similar to the page directive, but applied to tag files instead of JSP's.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.185.1A translation unit can container more than one instance of the tag directive, all the attributes will apply to the complete translation unit (i.e. tag directives are position independent).true +
+
falsetechnologyactivetrue
JSP:SPEC:229.285.1Unrecoginized attributes or values will result in a fatal translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.385.1The 'display-name' attribute provides a short name that is intended to be displayed by tools.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.485.1Multiple 'display-name' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.585.1The 'body-content' attribute specifies the body content of this tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.5.185.1A valid value is 'empty' meaning no body.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.5.285.1A valid value is 'tagdependent'.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.5.385.1A valid value is 'scriptless'true +
+
falsetechnologyactivetrue
JSP:SPEC:229.5.485.1If the 'body-content' attribute is not specified, it will default to 'scriptless'true +
+
falsetechnologyactivetrue
JSP:SPEC:229.5.585.1Any other value provided to the 'body-content' attribute aside from 'empty', 'tagdependent', or 'scriptless' will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.685.1Multiple 'body-content' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.785.1The 'dynamic-attributes' attribute indicates whether this tag supports additional attributes with dynamic names.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.7.185.1If 'true', the generated tag handler must implement the jakarta.servlet.jsp.tagext.DynamicAttributes interface.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.7.285.1If 'false' the generated tag handler will not implement the jakarta.servlet.jsp.tagext.DynamicAttributes interface.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.7.385.1The default value is 'false'.true +
+
falsetechnologyactivefalse
JSP:SPEC:229.7.485.1If any values are provided to the 'dynamic-attributes' attribute aside from 'true' or 'false' a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.885.1Multiple 'dyanmic-attribute' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.985.1The 'small-icon' attribute specifies a relative path, from the tag source file, of an image file containg a small icon that can be used by tools.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.9.185.1If the 'small-icon' attribute is not specified, no icon will be used.true +
+
falsetechnologyactivefalse
JSP:SPEC:229.1085.1Multiple 'small-icon' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.1185.1The 'large-icon' attribute specifies a relative path from the tag source file, of an image file containing a large icon that can be used by tools.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.11.185.1If the 'large-icon' attribute is not specified, no icon will be used.true +
+
falsetechnologyactivefalse
JSP:SPEC:229.1285.1Multiple 'large-icon' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.1385.1The 'description' attribute provides an arbitrary string that describes this tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.13.185.1If the 'description' attribute is not specified, no description will be available.true +
+
falsetechnologyactivefalse
JSP:SPEC:229.1485.1Multiple 'description' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.1585.1The 'example' attribute defines an arbitraty string describing the use of this action.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.15.185.1If the 'example' attribute is not specified, no example string will be available.true +
+
falsetechnologyactivefalse
JSP:SPEC:229.1685.1Multiple 'example' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.1785.1The 'language' attribute specifies the scripting language used by the tag file.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.17.1110.1All scripting languages, specifiable by the tag directive's 'language' attribute, must provide some implicit objects that a JSP page author can use in declarations, scriptlets, and expressions (see Section JSP.1.3.8 for list of available implicit objects)true +
+
truetechnologyactivefalse
JSP:SPEC:229.17.2110.1All scripting languages, specifiable by the tag directive's 'language' attribute, must expose the Java technology object model to the script environment, especially implicit variables, JavaBeans components properties, and public methods.true +
+
truetechnologyactivefalse
JSP:SPEC:229.17.3110.1It is a fatal translation error for a tag directive with a non-"java" language attribute to appear after the first scripting has been encountered.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.17.4110.1The only required scripting language value for the 'language' attribute is "java".true +
+
falsetechnologyactivetrue
JSP:SPEC:229.1885.1Multiple 'language' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.1985.1The 'import' attribute of the tag directive specifies the fully qualified Java programming language type name denoting a particular type, or of a package name following by the ".*" string, denoting all the public types declared in that package, that shall be imorted by the translated JSP page implementation and is thus available to the scripting language.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.19.1110.1The default import list for a tag is java.lang.*, jakarta.servlet.*, jakarta.servlet.jsp.*, jakarta.servlet.http.*true +
+
falsetechnologyactivetrue
JSP:SPEC:229.19.285.1multiple uses of this attribute are cumulative (with ordered set union semantics).true +
+
falsetechnologyactivetrue
JSP:SPEC:229.2085.1The 'pageEncoding' attribute of the tag directive specifies the character encoding of the tag. The value is in the form of CHARSET which my be the IANA value for a character encoding. If no 'pageEncoding' attribute is specified, the default of ISO-8859-1 will be used.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.2185.1Multiple 'pageEncoding' attribute/value (re)definitions will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.2285.1The 'pageEncoding' attribute of the tag directive is not influenced at all by any global configuration present in the web.xmltrue +
+
falsetechnologyactivetrue
JSP:SPEC:229.2385.1The 'isScriptingEnabled' attribute specified whether scripting elements are legal within the tag file.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.23.1110.1The 'isScriptingEnabled' attribute of the tag directive, if false, disallows the presence of scripting elements (scriptlets, expressions, declarations) within a given translation unit and will generate a translation error if they are present.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.23.2110.1The default value for 'isScriptingEnabled' of the tag directive, if not specified, is true.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.23.385.1Any value other than 'true' or 'false' provided to the 'isScriptingEnabled' attribute will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.2485.1Multiple 'isScriptingEnabled' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.2585.1The 'isELEnabled' attribute of the tag directive specifies whether or not the container should evaluate EL expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.25.1110.1The 'isELEnabled' attribute of the page directive , if false, will result in EL expressions not being evaluated by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.25.2110.1The default value, if 'isELEnabled' is not specified, is true.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.25.385.1Any value other than 'true' or 'false' provided to the 'isELEnabled' attribute will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:229.2685.1The deferredSyntaxAllowedAsLiteral attribute of the tag directive carries the same syntax and semantics of the deferredSyntaxAllowedAsLiteral attribute of the page directive. [DeferredSyntaxAllowedAsLiteralTagDirectiveAttribute]true +
+
falsetechnologyactivetrue
JSP:SPEC:229.26.185.1The deferredSyntaxAllowedAsLiteral attribute of the tag directive causes a translation error if specified in a tag file with a JSP version less than 2.1. [deferredSyntaxAllowedAsLiteralMinimumJspVersion]true +
+
falsetechnologyactivetrue
JSP:SPEC:229.2785.1The trimDirectiveWhiteSpaces attribute of the tag directive carries the same syntax and semantics of the trimDirectiveWhitespaces attribute of the page directive. [TrimDirectiveWhitespacesTagDirectiveAttribute]true +
+
falsetechnologyactivetrue
JSP:SPEC:229.2685.1Multiple 'isELEnabled' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:23085.2The attribute directive is analogous to the <attribute> element in the Tag Library Descriptor, and allows for the declaration of custom action attributes.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.185.2The 'name' attribute specifies the unique name of the attribute being declared.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.1.185.2A translation error will occur if the 'name' attribute is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.1.285.2A translation error will result if there is an attribute directive with a name attribute equal to the value of the name-given attribute of a variable directive in this translation unit.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.1.385.2A translation error will result if there is an attribute directive with a name attribute equal to the value of the dynamicattributes attribute of a tag directive in this translation unit.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.285.2A translation error will occur if more than one attribute directive appears in the same translation unit with the same name.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.385.2The 'required' attribute indicates whether or not the attribute must be present.true +
+
falsetechnologyactivefalse
JSP:SPEC:230.3.185.2If 'true' the attribute is requried and a translation error will occur if the attribute is not provided.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.3.285.2If 'false', the attribute need not be present.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.3.385.2If the 'required' attribute is not specified, the value of 'false' will be assumed.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.485.2The 'fragment' attribute specifies whether this attribute is a fragment to be evaluated by the tag handler or a normal attribute to be evaluated by the container prior to being passed to the tag handler.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.4.185.2If 'true', the type of the attribute is fixed to jakarta.servlet.jsp.tagext.JspFragment.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.4.585.2If the 'fragment' attribute is true, and the 'type' attribute is specified, a translation error will occurtrue +
+
falsetechnologyactivetrue
JSP:SPEC:230.4.285.2If 'true' the 'rtexprvalue' attribute is fixed at true.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.4.2.185.2A translation error will occur if the 'fragment' attribute is 'true' and the 'rtexprvalue' attribute is specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.4.385.2If 'false', the container will evaluate the attribute before passing it to the tag handler.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.4.485.2If the 'fragment' attribute is not specified, the behavior will be as if it was defined as 'false'true +
+
falsetechnologyactivetrue
JSP:SPEC:230.585.2The 'rtexprevalue' attribute specifies whether this attribute accepts dynamic attribute value.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.5.185.2If 'true', the attribute can accept dynamic values.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.5.285.2If 'false', the attribute cannot accept a dynamic value. Any attempt to pass a dynamic value when false will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.5.385.2If 'rtexprvalue' is not specified, the default of 'false' will be assumed.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.5.485.2A translation error will occur if any other value outside of 'true' or 'false' is provided.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.685.2The 'type' attribute specifies the runtime type of the attribute being described.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.6.185.2If the 'type' attribute is not specified, the default of java.lang.String will be assumed.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.6.285.2It is a translation error to specify a primitive type.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.785.2The 'description' attribute specifies a description of the attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:230.7.185.2If the 'description' attribute is not specified, no description will be available.true +
+
falsetechnologyactivefalse
JSP:SPEC:230.885.2The deferredValue attribute of the attribute directive determines whether the attribute's value represents a deferred value expressiontrue +
+
falsetechnologyactivefalse
JSP:SPEC:230.8.185.2Only one of deferredValue or deferredMethod attribute directive attributes may be true. [OnlyOneOfDeferredValueOrMethod]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.8.285.2If the deferredValueType of the attribute directive is specified, default for deferredValue is true, otherwise default is false.[DefaultDeferredValue]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.8.385.2The deferredValue attribute causes a translation error if specified in a tag file with a JSP version less than 2.1. [deferredValueMinimumJspVersion]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.985.2The deferredValueType attribute of the attribute directive is the expected type resulting from the evaluation of the attribute's value expression.true +
+
falsetechnologyactivefalse
JSP:SPEC:230.9.185.2The deferredValueType attribute defaults to java.lang.String if not specified. [DeferredValueTypeNotSpecified]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.9.285.2If both deferredValueType and deferredValue are specified, deferredValue must be true. [BothDeferredValueTypeAndDeferredValue] true +
+
falsetechnologyactivetrue
JSP:SPEC:230.9.385.2 deferredValue is true, the default for deferredValueType is java.lang.Object.[DeferredValueTypeDefaultWhenDeferredValueTrue]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.9.485.2 The deferredValueType attribute causes a translation error if specified in a tag file with a JSP version less than 2.1. [deferredValueTypeMinimumJspVersion]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.1085.2The deferredMethod attribute of the attribute directive determines whether the attribute's value represents a deferred method expression.true +
+
falsetechnologyactivefalse
JSP:SPEC:230.10.185.2If deferredMethodSignature is specified, the default of the deferredMethod attribute is true, otherwise default is false. [DefaultDeferredMethod]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.10.285.2The deferredMethod attribute causes a translation error if specified in a tag file with a JSP version less than 2.1. +[deferredMethodMinimumJspVersion] + true +
+
falsetechnologyactivetrue
JSP:SPEC:230.1185.2The deferredMethodSignature attribute of the attribute directive represents the signature, as defined in the Java Language Specification, of the method to be invoked in the attribute's method expression.true +
+
falsetechnologyactivefalse
JSP:SPEC:230.11.185.2If both deferredMethod and deferredMethodSignature are specified, deferredMethod must be true. [BothDeferredMethodAndSignature]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.11.285.2If deferredMethod is true and deferredMethodSignature is not specified, deferredMethodSignature defaults to void methodname(). [DefaultDeferredMethodSignature]true +
+
falsetechnologyactivetrue
JSP:SPEC:230.11.395.2The deferredMethodSignature attribute causes a translation error if specified in a tag file with a JSP version less than 2.1. +[deferredMethodSignatureMinimumJspVersion] + true +
+
falsetechnologyactivetrue
JSP:SPEC:23185.3The variable directive is analogous to the <variable> element in the Tag Library Descriptor, and defines the details of a variable exposed by the tag handler to the calling page.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.185.3The 'name-given' attribute specifies the name of the scripting variable to be exposed by the tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.1.185.3A translation error will occur if two variable directives have the same value for the 'name-given' attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.285.3The 'name-from-attribute' directive specifies the name of an attribute whose (translation-time) value will give the name of the variable.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.2.185.3A translation error will occur if two variable directives have the same value for the 'name-from-attribute' attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.385.3A translation error will occur if both the 'name-given' and the 'name-from-attribute' attributes are specified within the same directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.485.3A translation error will occur if neither the 'name-given' or the 'name-from-attribute' attributes are not specified wihin a variable directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.585.3The 'variable-class' attribute specifies the class of the variable.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.5.185.3If the 'variable-class' attribute is not specified, the default class of java.lang.String will be assumed.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.685.3The 'scope' attribute specifies the scope of the variable being declared.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.6.185.3Valid values are AT_BEGIN, AT_END, or NESTED.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.6.285.3If the 'scope' attribute is not specified, the default scope of NESTED will be used.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.6.385.3If any other value is provided outside of AT_BEGIN, NESTED, or AT_END, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.6.485.3A translation error must occur if both 'scope' and 'fragment' are specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.785.3The 'declare' attribute specifies whether the variable is declared or not.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.7.185.3If 'true', the variable will be declared and available based on the specified scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.7.285.3If 'false', the variable will not be declared.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.7.385.3A translation error must occur if both 'declare' and 'fragment' are specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.885.3The 'fragment' attribute specifies that the value of this variable is scoped to the specified fragment and does not appear in the body of the tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.8.185.3A translation error will occur if the value of 'fragment' does not match the name of an attribute declared earier in this page with 'fragment=true'.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.8.285.3A translation error will occur if 'fragment' is specified and either 'scope' or 'declare' is specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.985.3The 'description' attribute provides an optional description for the variable being declared.true +
+
falsetechnologyactivetrue
JSP:SPEC:231.9.185.3If the 'description' attribute is not specified, no description will be available.true +
+
falsetechnologyactivefalse
JSP:SPEC:23286XML view of Tag Filestrue +
+
falsetechnologyactivefalse
JSP:SPEC:232.186The XML equivalent of the tag directive is the jsp:directive.tag element. The semantics followed are the same as the tag directive in standard syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.185.1A translation unit can contain more than one instance of the tag directive, all the attributes will apply to the complete translation unit (i.e. tag directives are position independent).true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.285.1Unrecoginized attributes or values will result in a fatal translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.385.1The 'display-name' attribute provides a short name that is intended to be displayed by tools.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.485.1Multiple 'display-name' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.585.1The 'body-content' attribute specifies the body content of this tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.5.185.1A valid value is 'empty' meaning no body.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.5.285.1A valid value is 'tagdependent'.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.5.385.1A valid value is 'scriptless'true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.5.485.1If the 'body-content' attribute is not specified, it will default to 'scriptless'true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.5.585.1Any other value provided to the 'body-content' attribute aside from 'empty', 'tagdependent', or 'scriptless' will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.685.1Multiple 'body-content' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.785.1The 'dynamic-attributes' attribute indicates whether this tag supports additional attributes with dynamic sata.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.7.185.1If 'true', the generated tag handler must implement the jakarta.servlet.jsp.tagext.DynamicAttributes interface.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.7.285.1If 'false' the generated tag handler will not implement the jakarta.servlet.jsp.tagext.DynamicAttributes interface.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.7.385.1The default value is 'false'.true +
+
falsetechnologyactivefalse
JSP:SPEC:232.1.7.485.1If any values are provided to the 'dynamic-attributes' attribute aside from 'true' or 'false' a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.885.1Multiple 'dyanmic-attribute' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.985.1The 'small-icon' attribute specifies a relative path, from the tag source file, of an image file containg a small icon that can be used by tools.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.9.185.1If the 'small-icon' attribute is not specified, no icon will be used.true +
+
falsetechnologyactivefalse
JSP:SPEC:232.1.1085.1Multiple 'small-icon' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.1185.1The 'large-icon' attribute specifies a relative path from the tag source file, of an image file containing a large icon that can be used by tools.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.11.185.1If the 'large-icon' attribute is not specified, no icon will be used.true +
+
falsetechnologyactivefalse
JSP:SPEC:232.1.1285.1Multiple 'large-icon' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.1385.1The 'decription' attribute provides an arbitrary string that describes this tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.13.185.1If the 'description' attribute is not specified, no description will be available.true +
+
falsetechnologyactivefalse
JSP:SPEC:232.1.1485.1Multiple 'description' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.1585.1The 'example' attribute defines an arbitraty string describe the use of this action.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.15.185.1If the 'example' attribute is not specified, no example string will be available.true +
+
falsetechnologyactivefalse
JSP:SPEC:232.1.1685.1Multiple 'example' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.1785.1The 'language' attribute specifies the scripting language used by the tag file.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.17.1110.1All scripting languages, specifiable by the tag directive's 'language' attribute, must provide some implicit objects that a JSP page author can use in declarations, scriptlets, and expressions (see Section JSP.1.3.8 for list of available implicit objects)true +
+
truetechnologyactivefalse
JSP:SPEC:232.1.17.2110.1All scripting languages, specifiable by the tag directive's 'language' attribute, must expose the Java technology object model to the script environment, especially implicit variables, JavaBeans components properties, and public methods.true +
+
truetechnologyactivefalse
JSP:SPEC:232.1.17.3110.1It is a fatal translation error for a tag directive with a non-"java" language attribute to appear after the first scripting has been encountered.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.17.4110.1The only required scripting language value for the 'language' attribute is "java".true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.1885.1Multiple 'language' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.1985.1The 'import' attribute of the tag directive specifies the fully qualified Java programming language type name denoting a particular type, or of a package name following by the ".*" string, denoting all the public types declared in that package, that shall be imorted by the translated JSP page implementation and is thus available to the scripting language.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.19.1110.1The default import list for a tag is java.lang.*, jakarta.servlet.*, jakarta.servlet.jsp.*, jakarta.servlet.http.*true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.2085.1The 'pageEncoding' attribute of the tag directive specifies the character encoding of the tag. The value is in the form of CHARSET which my be the IANA value for a character encoding. If no 'pageEncoding' attribute is specified, the default of ISO-8859-1 will be used.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.2185.1Multiple 'pageEncoding' attribute/value (re)definitions will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.2285.1The 'pageEncoding' attribute of the tag directive is not influenced at all by any global configuration present in the web.xmltrue +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.2385.1The 'isScriptingEnabled' attribute specified whether scripting elements are legal within the tag file.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.23.1110.1The 'isScriptingEnabled' attribute of the tag directive, if false, disallows the presence of scripting elements (scriptlets, expressions, declarations) within a given translation unit and will generate a translation error if they are present.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.23.2110.1The default value for 'isScriptingEnabled' of the tag directive, if not specified, is true.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.23.385.1Any value other than 'true' or 'false' provided to the 'isScriptinEnabled' attribute will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.2485.1Multiple 'isScriptingEnabled' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.2585.1The 'isELEnabled' attribute of the tag directive specifies whether or not the container should evaluate EL expressions.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.25.1110.1The 'isELEnabled' attribute of the page directive , if false, will result in EL expressions not being evaluated by the container.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.25.2110.1The default value, if 'isELEnabled' is not specified, is true.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.25.385.1Any value other than 'true' or 'false' provided to the 'isELEnabled' attribute will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.1.2685.1Multiple 'isELEnabled' attribute/value (re)definitions will result in a translation error if values do not match.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.286The attribute directive of a tag file can be described in XML using the jsp:directive.attribute element. The semantics of this element are the same as the attribute directive in standard syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.185.2The 'name' attribute specified the unique name of the attribute being declared.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.1.185.2A translation error will occur if the 'name' attribute is not specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.285.2A translation error will occur if mnore than one attribute directive appears in the same translation unit with the same name.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.385.2The 'required' attribute indicates whether or not the attribute must be present.true +
+
falsetechnologyactivefalse
JSP:SPEC:232.2.3.185.2If 'true' the attribute is requried and a translation error will occur if the attribute is not provided.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.3.285.2If 'false', the attribute need not be present.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.3.385.2If the 'required' attribute is not specified, the value of 'false' will be assumed.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.485.2The 'fragment' attribute specifies whether this attribute is a fragment to be evaluated by the tag handler or a normal attribute to be evaluated by the container prior to being passed to the tag handler.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.4.185.2If 'true', the type of the attribute is fixed to jakarta.servlet.jsp.tagext.JspFragment and a translation error will occur if the 'type' attribute is specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.4.285.2If 'true' the 'rtexprvalue' attribute is fixed at true.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.4.2.185.2A translation error will occur if the 'fragment' attribute is 'true' and the 'rtexprvalue' attribute is specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.4.385.2If 'false', the container will evaluate the attribute before passing it to the tag handler.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.4.485.2If the 'fragment' attribute is not specified, the behavior will be as if it was defined as 'false'true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.585.2The 'rtexprevalue' attribute specifies whether this attribute accepts dynamic attribute value.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.5.185.2If 'true', the attribute can accept dynamic values.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.5.285.2If 'false', the attribute cannot accept a dynamic value. Any attempt to pass a dynamic value when false will result in a translation error.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.5.385.2If 'rtexprvalue' is not specified, the default of 'false' will be assumed.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.5.485.2A translation error will occur if any other value outside of 'true' or 'false' is provided.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.685.2The 'type' attribute specifies the runtime type of the attribute being described.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.6.185.2If the 'type' attribute is not specified, the default of java.lang.String will be assumed.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.785.2The 'description' attribute specifies a description of the attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.2.7.185.2If the 'description' attribute is not specified, no description will be available.true +
+
falsetechnologyactivefalse
JSP:SPEC:232.385.2The variable directive of a tag file can be described in XML using the jsp:directive.variable element. The semantics are the same as the variable directive in standard syntax.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.185.3The 'name-given' attribute specifies the name of the scriptin variable to be exposed by the tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.1.185.3A translation error will occur if two variable directives have the same value for the 'name-given' attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.285.3The 'name-from-attribute' directive specifies the name of an attribute whose (translation-time) value will give the name of the variable.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.2.185.3A translation error will occur if two variable directives have the same value for the 'name-from-attribute' attribute.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.385.3A translation error will occur if both the 'name-given' and the 'name-from-attribute' attributes are specified within the same directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.485.3A translation error will occur if neither the 'name-given' or the 'name-from-attribute' attributes are not specified wihin a variable directive.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.585.3The 'variable-class' attribute specifies the class of the variable.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.5.185.3If the 'variable-class' attribute is not specified, the default class of java.lang.String will be assumed.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.685.3The 'scope' attribute specifies the scope of the variable being declared.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.6.185.3Valid values are AT_BEGIN, AT_END, or NESTED.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.6.285.3If the 'scope' attribute is not specified, the default scope of NESTED will be used.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.6.385.3If any other value is provided outside of AT_BEGIN, NESTED, or AT_END, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.6.485.3A translation error must occur if both 'scope' and 'fragment' are specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.785.3The 'declare' attribute specifies whether the variable is declared or not.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.7.185.3If 'true', the variable will be declared and available based on the specified scope.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.7.285.3If 'false', the variable will not be declared.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.7.385.3A translation error must occur if both 'declare' and 'fragment' are specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.885.3The 'fragment' attribute specifies that the value of this variable is scoped to the specified fragment and does not appear in the boyd of the tag.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.8.185.3A translation error will occur if the value of 'fragment' does not match the name of an attribute declared earier in this page with 'fragment=true'.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.8.285.3A translation error will occur if 'fragment' is specified and either 'scope' or 'declare' is specified.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.985.3The 'description' attribute provides an optional description for the variable being declared.true +
+
falsetechnologyactivetrue
JSP:SPEC:232.3.9.185.3If the 'description' attribute is not specified, no description will be available.true +
+
falsetechnologyactivefalse
JSP:SPEC:23391.1A JSP page is valid for a Java Platform if and only if the JSP page implementation class, together with any other classes defined by the JSP container, is a valid program for the given Java Platform, and if it passes the validation methods for all the tag libraries associated with the JSP page.true +
+
falsetechnologyactivetrue
JSP:SPEC:234101In JSP 2.0 only 'init' and 'destroy' events are allowed events.true +
+
falsetechnologyactivefalse
JSP:SPEC:235101A JSP page author may provide a jspInit() method, which if present, must be called by the container to prepare the page before the first request is delivered.true +
+
falsetechnologyactivetrue
JSP:SPEC:236101.1.1A JSP page author may provide a jspDestroy() method that can be called by a Container, when a request is not being serviced by the JSP page, to reclaim resources.true +
+
truetechnologyactivefalse
JSP:SPEC:237101.1.1A translation error will occur if a JSP page author attempts to override any Servlet methods through a declaration scripting element.true +
+
falsetechnologyactivefalse
JSP:SPEC:238101.1.2The enforcement of the contract between the JSP container and the JSP page author is aided by the requirement that the Servlet class corresponding to the JSP page must implement the HttpJspPage interface if the protocol is HTTP.true +
+
falsetechnologyactivetrue
JSP:SPEC:239101.1.2The enforcement of the contract between the JSP container and the JSP page author is aided by the requirement that the Servlet class corresponding to the JSP page must implement the JspPage interface of the protocol is not HTTP.true +
+
falsetechnologyactivefalse
JSP:SPEC:240102The name of the JSP implementation class is implementation dependent.true +
+
truetechnologyactivefalse
JSP:SPEC:241102The package that the JSP implementation class belongs to is implementation dependent.true +
+
truetechnologyactivefalse
JSP:SPEC:242102.1All JSP implementation classes must implement the following methodstrue +
+
falsetechnologyactivetrue
JSP:SPEC:242.1102.1Method with signature: public void jspInit()true +
+
falsetechnologyactivetrue
JSP:SPEC:242.2102.1Method with signature: public void jspDestroy()true +
+
falsetechnologyactivetrue
JSP:SPEC:242.3102.1Method with signature: public void _jspService(<ServletRequestSubType>, <ServletResponseSubType>) throws IOException, ServletException -- NOTE: The request/response subtype indicates that the request and response object provided must implement the jakarta.servlet.ServletRequest and jakarta.servlet.ServletResponse interfaces respectively.true +
+
falsetechnologyactivetrue
JSP:SPEC:242.3.1102,1The _jspService(ServletRequest, ServletResponse) method may not be declared in a JSP page via the JSP declaration mechanism.true +
+
falsetechnologyactivefalse
JSP:SPEC:243102.1JSP containers that conform to this specification (in both JSP page implementation classes, and JSP container runtime) must implement the jakarta.servlet.ServletRequest and jakarta.servlet.ServletResponse interfaces.true +
+
falsetechnologyactivefalse
JSP:SPEC:244104All JSP 2.0 compliant containers must support a simple precompilation protocol, as well as some basic reserved parameter names.true +
+
falsetechnologyactivetrue
JSP:SPEC:244.1104A request to a page with the request parameter 'jsp_precompile" is a precompilation request.true +
+
falsetechnologyactivetrue
JSP:SPEC:244.1.1104.2If the value of the request parameter 'jsp_precompile' is 'true' the request will not be delivered to the target page.true +
+
falsetechnologyactivetrue
JSP:SPEC:244.1.2104.2If the value of the request parameter 'jsp_precompile' is 'false', the request will not be delivered to the target page.true +
+
falsetechnologyactivetrue
JSP:SPEC:244.1.3104.2If the value of the request parameter 'jsp_precompile' is 'debug', the request will not be delivered to the target page.true +
+
falsetechnologyactivetrue
JSP:SPEC:244.1.4104.2If the value of the request parameter 'jsp_precompile' is empty (i.e. ""), the request will not be delivered to the target page.true +
+
falsetechnologyactivetrue
JSP:SPEC:244.1.5104.2If the value of the request parameter 'jsp_precompile' is any other value aside from 'true', 'false', 'debug', or an empty parameter, a translation error will occur.true +
+
falsetechnologyactivetrue
JSP:SPEC:245105All JSP 2.0 containers must implement JSR-045 by generating source map debugging information for JSP pages written in either standard or XML syntax.true +
+
falsetechnologyactivefalse
JSP:SPEC:246105The JSP compiler, when producing a class with JSP-045 debug extensions must produce a .class file with a SourceDebugExtension attribute, mapping each line or lines of JSP code to the corresponding generated line or lines of Java code.true +
+
falsetechnologyactivefalse
JSP:SPEC:247105The strata, as defined by JSP-045, that maps to the original JSP source must be named JSP in the Source Debug Extension.true +
+
falsetechnologyactivefalse
JSP:SPEC:315101.11The XML view of an escaped EL expression using the #{expr} syntax follows the same rules as the ${expr} syntax, where ${ is simply substituted with #{.[#{expr}SameAs${expr}]true +
+
falsetechnologyactivetrue
JSP:SPEC:316101.12The same rules for deriving the XML view of escaped expressions for the ${expr} syntax apply for the #{expr} syntax, where ${ is simply substituted with #{[TemplateTextPoundSign]true +
+
falsetechnologyactivetrue
JSP:SPEC:317115SP 2.1 containers are required to provide support for JSR-45 for JSP pages and tag files written in either standard or XML syntax. [JSR45DebuggingSupport]true +
+
falsetechnologyactivetrue
JSP:SPEC:318D1In determining the page encoding of a JSP file where the file is preceded by a BOM: +Read the file using the encoding indicated by the BOM, and search for a pageEncoding attribute in a page declaration. +Report an error if any of the following conditions are met: +There is a <page-encoding> configuration element whose URL pattern matches this page and whose encoding does not match the encoding indicated by the BOM. +There is a pageEncoding page directive attribute whose encoding does not match the encoding indicated by the BOM. +[BOMErrorReporting] + true +
+
falsetechnologyactivetrue
+ + diff --git a/jsp/docs/index.html b/jsp/docs/index.html new file mode 100644 index 0000000000..e9f3f134fc --- /dev/null +++ b/jsp/docs/index.html @@ -0,0 +1,83 @@ + + + + + + Welcome to the Jakarta Server Pages TCK + + + +
+

Welcome to the Jakarta Server Pages TCK, Version 3.1

+

Your Starting Point

+
+
+

Guide to Jakarta Server Pages TCK 3.1 Documentation

+

The Jakarta Server Pages TCK 3.1 documentation includes the following:

+ +

JT Harness Documentation

+

The online version of the JT Harness version 5.0 documentation is + available here.

+
+

+
+ Copyright © 2013, 2021 Oracle and/or its affiliates. All rights + reserved. +
+ +

+
+ + diff --git a/jsp/docs/userguide/README.md b/jsp/docs/userguide/README.md new file mode 100644 index 0000000000..a3ec2b697b --- /dev/null +++ b/jsp/docs/userguide/README.md @@ -0,0 +1,77 @@ +# A JBake project template + +## About JBake + +JBake is a static site generator, it's inspired from jekyll and written +in java. The basic idea is to have templates for the structure of the +page, and the body generated from asciidoc content. + +## Pre requisites + +- Maven +- JDK8+ + +Deploying to Github will require password less authentication. + +This is done by exporting your SSH public key into your Github account. + +## Build the site locally + +The site is generated under target/staging. + +Open file:///PATH_TO_PROJECT_DIR/target/staging in a browser to view the site. + +``` +mvn generate-resources +``` + +Or you can invoke the JBake plugin directly. + +``` +mvn jbake:build +``` + +### Rebuild the site on changes + +``` +mvn jbake:watch +``` + +If you keep this command running, changes to the sources will be +detected and the site will be rendered incrementally. + +This is convenient when writing content. + +### Serve the site locally + +``` +mvn jbake:serve +``` + +If a webserver is required (e.g. absolute path are used), this command +will start a webserver (jetty) at http://localhost:8820. It will also +watch for changes and rebuild incrementally. + +## Deploy the site to Github Pages + +``` +mvn deploy +``` + +## Produce a zip file for download + +To produce a zip file containing the generated html files, use: + +``` +mvn package +``` + +When making a release on GitHub, this zip file should be added to the release. + +## Links + +- [JBake maven plugin documentation](https://github.com/Blazebit/jbake-maven-plugin) +- [JBake documentation](http://jbake.org/docs/2.5.1) +- [Freemarker documentation](http://freemarker.org/docs) +- [AsciiDoc User Guide](http://asciidoc.org/userguide.html) +- [Asciidoctor quick reference](http://asciidoctor.org/docs/asciidoc-syntax-quick-reference) diff --git a/jsp/docs/userguide/pom.xml b/jsp/docs/userguide/pom.xml new file mode 100644 index 0000000000..b75d03b8f9 --- /dev/null +++ b/jsp/docs/userguide/pom.xml @@ -0,0 +1,259 @@ + + + + + 4.0.0 + + org.eclipse.ee4j + project + 1.0.5 + + org.glassfish + tck_jsp + pom + 3.1.0 + Eclipse Foundation Technology Compatibility Kit User's Guide for Jakarta Server Pages for Jakarta EE, Release 3.1 + + + UTF-8 + ${project.build.directory}/staging + true + 2.4.2 + 2.1.0 + 2.1.0 + 1.5.3 + 0.3.3 + 2.3.30 + + + Jakarta-Server-Pages-TCK-Users-Guide.pdf + true + + + + + scm:git:git@github.com:eclipse-ee4j/jakartaee-tck.git + + + + + package + + + org.apache.maven.plugins + maven-clean-plugin + + + + src/main/jbake/content + + toc.adoc + + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + + + enforce-versions + + enforce + + + + + [1.8.0,) + You need JDK8 or newer + + + + + + + + org.glassfish.doc + glassfish-doc-maven-plugin + + + generate-toc + generate-resources + + toc + + + + [0-9]+\s.*,Preface.*,Part\s.* + + + + + generate-book + generate-resources + + book + + + + + + org.jbake + jbake-maven-plugin + + ${site.output.dir} + + ${status} + + + + + build-site + generate-resources + + generate + + + + + + org.asciidoctor + asciidoctor-maven-plugin + + ${project.build.directory}/book + book.adoc + + ${project.build.directory}/staging/ + pdf + ${doc.pdf} + + ${project.basedir}/src/theme + jakartaee + book + ${status} + + + font + + + font + true + + - + true + true + + + + + generate-pdf-doc + generate-resources + + process-asciidoc + + + + + + org.apache.maven.plugins + maven-scm-publish-plugin + + + deploy-site + deploy + + publish-scm + + + gh-pages + false + Update site + + + + + + + + + + org.apache.maven.plugins + maven-clean-plugin + 3.1.0 + + + org.glassfish.doc + glassfish-doc-maven-plugin + 1.3 + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.0.0-M3 + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + org.apache.maven.plugins + maven-scm-publish-plugin + 3.1.0 + + + org.jbake + jbake-maven-plugin + ${jbake.maven.plugin.version} + + + org.asciidoctor + asciidoctorj + ${asciidoctorj.version} + + + org.asciidoctor + asciidoctorj-diagram + ${asciidoctorj.diagram.version} + + + org.freemarker + freemarker + ${freemarker.version} + + + + + org.asciidoctor + asciidoctor-maven-plugin + ${asciidoctorj.maven.plugin.version} + + + org.asciidoctor + asciidoctorj-pdf + ${asciidoctorj.pdf.version} + + + + + + + diff --git a/jsp/docs/userguide/src/main/jbake/assets/README.md b/jsp/docs/userguide/src/main/jbake/assets/README.md new file mode 100644 index 0000000000..f8f962c0ab --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/assets/README.md @@ -0,0 +1,4 @@ +# About + +The {{site.title}} project contains the [AsciiDoc](http://asciidoc.org/) +source code for the ... diff --git a/jsp/docs/userguide/src/main/jbake/assets/_config.yml b/jsp/docs/userguide/src/main/jbake/assets/_config.yml new file mode 100644 index 0000000000..68f72a0915 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/assets/_config.yml @@ -0,0 +1,15 @@ +remote_theme: jakartaee/jekyll-theme-jakarta-ee + +title: [tck_jsp_v3_1] +description: [Oracle Technology Compatibility Kit User's Guide for Jakarta Server Pages 3.1 for Technology Licensees, + Release 3.1] + +# sidebar links url +links: + source: https://github.com/eclipse-ee4j/jakartaee-tck + download: https://jakarta.ee/specifications/pages/3.1/ + #mailinglist: https://javaee.groups.io/g/tck_jsp_v2_3 + #javadocs: + docs: https://jakarta.ee/specifications/pages/3.1/apidocs + #faq: + diff --git a/jsp/docs/userguide/src/main/jbake/assets/css/style.css b/jsp/docs/userguide/src/main/jbake/assets/css/style.css new file mode 100644 index 0000000000..182f7559b6 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/assets/css/style.css @@ -0,0 +1,313 @@ +/* CSS */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ +html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/* HTML5 display definitions ========================================================================== */ +/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } + +/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ +audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } + +/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ +audio:not([controls]) { display: none; height: 0; } + +/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ +[hidden], template { display: none; } + +/* Links ========================================================================== */ +/** Remove the gray background color from active links in IE 10. */ +a { background-color: transparent; } + +/** Improve readability when focused and also mouse hovered in all browsers. */ +a:active, a:hover { outline: 0; } + +/* Text-level semantics ========================================================================== */ +/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ +abbr[title] { border-bottom: 1px dotted; } + +/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ +b, strong { font-weight: bold; } + +/** Address styling not present in Safari and Chrome. */ +dfn { font-style: italic; } + +/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/** Address styling not present in IE 8/9. */ +mark { background: #ff0; color: #000; } + +/** Address inconsistent and variable font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sup { top: -0.5em; } + +sub { bottom: -0.25em; } + +/* Embedded content ========================================================================== */ +/** Remove border when inside `a` element in IE 8/9/10. */ +img { border: 0; } + +/** Correct overflow not hidden in IE 9/10/11. */ +svg:not(:root) { overflow: hidden; } + +/* Grouping content ========================================================================== */ +/** Address margin not present in IE 8/9 and Safari. */ +figure { margin: 1em 40px; } + +/** Address differences between Firefox and other browsers. */ +hr { box-sizing: content-box; height: 0; } + +/** Contain overflow in all browsers. */ +pre { overflow: auto; } + +/** Address odd `em`-unit font size rendering in all browsers. */ +code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } + +/* Forms ========================================================================== */ +/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ +/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ +button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } + +/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ +button { overflow: visible; } + +/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ +button, select { text-transform: none; } + +/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ +button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } + +/** Re-set default cursor for disabled elements. */ +button[disabled], html input[disabled] { cursor: default; } + +/** Remove inner padding and border in Firefox 4+. */ +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ +input { line-height: normal; } + +/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ +input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } + +/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ +input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; } + +/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** Define consistent border, margin, and padding. */ +fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } + +/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ +legend { border: 0; /* 1 */ padding: 0; /* 2 */ } + +/** Remove default vertical scrollbar in IE 8/9/10/11. */ +textarea { overflow: auto; } + +/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ +optgroup { font-weight: bold; } + +/* Tables ========================================================================== */ +/** Remove most spacing between table cells. */ +table { border-collapse: collapse; border-spacing: 0; } + +td, th { padding: 0; } + +/* LAYOUT STYLES */ + +p { margin-top: 0; } + +code, pre { margin-bottom: 30px; font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; font-size: 13px; color: #222; } + +code { padding: 0 3px; background-color: #f2f8fc; border: solid 1px #dbe7f3; } + +pre { padding: 20px; overflow: auto; text-shadow: none; background: #fff; border: solid 1px #f2f2f2; } + +pre code { padding: 0; color: #2879d0; background-color: #fff; border: none; } + +ul, ol, dl { margin-bottom: 20px; } + +/* COMMON STYLES */ + +td.halign-right { text-align: right; } + +td.halign-center { text-align: center; } + +form { padding: 20px; background: #f2f2f2; } + +h2 { + font-size: 2em; + line-height: 1.2em; + font-weight: 200; + letter-spacing: 0; +} + +h3 { + font-size: 1.4em; + line-height: 1.2em; + font-weight: normal; + letter-spacing: 0; +} + +.sect1 { + margin-left: 4%; + margin-right: 4%; + font: 13px/20px Arial, Helvetica, sans-serif +} + +a:link { + text-decoration: none; + color: #09569d; +} + +#preamble hr{ + margin-left: 0%; + margin-right: 0%; +} + +#preamble .sectionbody table { + font-weight: 200; + margin-left: 4%; + margin-right: 4%; +} + +hr { + margin-bottom: 12px; +} + +table.tableblock.frame-all.grid-all.spread { + font-size: 12px; +} + +code { + font-size:.9em; + border: 1px solid #eaeaea; + background-color: #f6f6f6; + border-radius: 3px; + padding: 1px; + padding-left:2px; + padding-right:2px; +} + +pre.prettyprint.highlight { + border: 1px solid #eaeaea; + background-color: #f6f6f6; + border-radius: 4px; + padding: 8px; + padding-top:4px; + padding-bottom:4px; +} + +.language-oac_no_warn { + font-size:.9em; + color:#222; + background-color: transparent; +} + +#doc-title { + margin-left: 4%; +} + +#top-nav { + margin-left: 4%; + font-size: 12px; +} + +#bottom-nav { + margin-left: 4%; + font-size: 12px; +} + +.vector-font { + color:grey; + font-size: 20px; +} + +#copyright { + padding-top: 10px; + padding-bottom: 4px; + display: table; + margin:0 auto; + color: grey; + font-size: 12px; + vertical-align: middle; +} + +.beta {color: #FF0000} + +/* GENERAL ELEMENT TYPE STYLES */ + +/* #Media Queries +================================================== */ +/* Smaller than standard 960 (devices and browsers) */ +/* Tablet Portrait size to standard 960 (devices and browsers) */ +@media only screen and (min-width: 768px) and (max-width: 959px) { .inner { width: 740px; } + header h1, header h2 { width: 340px; } + header h1 { font-size: 60px; } + header h2 { font-size: 30px; } +} +/* All Mobile Sizes (devices and browser) */ +@media only screen and (max-width: 767px) { .inner { width: 93%; } + header { padding: 20px 0; } + header .inner { position: relative; } + header h1, header h2 { width: 100%; } + header h1 { font-size: 48px; } + header h2 { font-size: 24px; } + header a.button { position: relative; display: inline-block; width: auto; height: auto; padding: 5px 10px; margin-top: 15px; font-size: 13px; line-height: 1; color: #2879d0; text-align: center; background-color: #9ddcff; background-image: none; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; } + header a.button small { display: inline; font-size: 13px; } +} +/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ +/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ + +header h1 { padding-top: 14px; font-size: 2em; font-weight: 200; line-height: 1.4; color: #FFFFFF; letter-spacing: 0px; border-bottom: 0px; } + +header h2 { font-size: 1.2em; margin-top: 0; margin-bottom: 0; font-weight: 200; line-height: .8; color: #ec7D11; letter-spacing: 0; } + +//header a.button { background: transparent url(../images/logo.png) 0 0 no-repeat; padding-left: 32px; } + +header a:hover { text-decoration: none; } + +/* Admonition (Note) block */ +.admonitionblock > table { + border: 0; + background: none; + width: 100%; + table-layout: auto; + margin-bottom: 10.5px; +} +.admonitionblock > table td.icon { + text-align: center; + width: 60px; +} +.admonitionblock > table td.icon img { + max-width: none; +} +.admonitionblock > table td.icon .title { + text-transform: uppercase; +} +.admonitionblock > table td.content { + padding-left: 1em; + padding-right: 1em; + border-left: 3px solid #ddd; +} +.admonitionblock > table td.content > :last-child > :last-child { + margin-bottom: 0; +} +.admonitionblock td.icon [class^="fa icon-"]:before { + font-size: 2.5em; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); + cursor: default; +} +.admonitionblock td.icon .icon-note:before { + content: "\f05a"; + color: #5bc0de; +} diff --git a/jsp/docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png b/jsp/docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..ee830aeb9332b27a4b4b16ab4b7b452d3db1b23b GIT binary patch literal 3612 zcmV+%4&(8OP)}6qTo5r>1r>2e8xyQrMLX89RqIk)9c`5wb*#8BBG!#o z#8z#rjJDOfOjQ(G?Lt))663gn3xXRF5s=3s5A+du+pmA*M6P+s@0Z^L3Oeu1WL|z* zZtlHjx#xV(xvxM9g^rG92kP%`Ko4MF;4okyP!F^Ki-1|cOF$E_PP2n{x@fDSLaCdf zqxS`d13v{$0cwGEVeV(Z7s6~!UU7kGz`MXwpr{H=7i~GJNoq2HW(S0hek3p&_`cj; z2s{D!z&pUlnjM6R_jd!n4eTbGy{c=9w=#_uCKoh2D29%H888m$Be%x@j{u7_J7_Is z=H*%esL|}8rE7|}GK#f1boB9|qZj3PH+1y9Lr1StpNpR@)lTxfi?$L5%lRb=ll{=q zcj;o-H-l77Jp#C1e!c~qrP;yaG}GKgU(+=@boAc9gTRTvI^ZzP4&Lly@;6VThYOPd zF5Xm3woIeb_tWm>z1EpFH@2OPnS+fTS1yefFyvm~Y~XF+K+O(XRYuE4yH(hBtLyn~ zSp#rAKmOfIK$!kwVHN-p>A=i_JPceN507G2M8u2A@D6#@TBA1%`;2v(4VFBIjS zc6B^z|I)5org4abse1w4fmOhpz*Da02U+b{rcnb_S2*wMg;zx&j*!}Gh!C!m<-!D@ zEsmuV@%Fk3KX^NES=!(&)6gu_I2yPbFftf2S^6^@Xj3NQN?^P)sO}Z^YaTF2&aVY- zQtk~Ez-Om2!m<*09JoWkp`tRjxSv&)X&eLm0oXHZjx5ud3S8xS{s$?{o}yUVytISN zTX$eCa3pYXl}K4npaFPMvx8!WB-07WN@H?AU=r|D7L$ce1zrHIvrMChG68D4YdX=d z&$Id{LjHMhPdV^o>^1regC&gaR%)0S!Mn_?N7DjeGvVy*51 zo(1ZFXMjO9vOYtERezSFv7$Uz3eT=rCrn{-E$}EXBJuq5z(>;N?!eJ{ufo0eC;BhO`2vG*rr)Pt%M^2_{b!^SumcmQL0I+XJ@%`v5-! zR%NY)n~~Z98j;~8c(~PzfOFRoq!>VVvKM-e{sUXO#}V|+z8wc z{Jl(n?f~vCqhRg83h^OUD%Tg*upuF_w1TWtgX{Tuv|rWc{eT}Sw;lv8a6LavI4+^< z`Kv9{I0dM8J-=xSFgd11*Yg`w9LXmv)7S<0oj6N_g|V~c(cVfM?X_>|~ zL>a$bVi{2w-zID5rg|iatXzHCX{6dIraliwM@fs zJ%4TqW^XG;DcU{@?5Pp%PXmUD)-BI50c*>|);$s$->jfCg}B38xkgt3Gjc$YD}me6 z#^ZYarxG@ewoGG)Ab^8`1AxQD5w4bbe-7BO#C$XpRr6#~w-j8U1LAc*@K>N;4n{Wv zdkBn|7cg0&gk#kbyWjma(CBjXF>tNx`CcM&=pewZ=g$*VE`FxFAbb}KANpCQagyu# z|H$~(4T3hdm9apn!cZd>B{L+BJ|T4UIc3)B0uaWIR!--o%`%O51PG}Dj<8H)pzHYy zGBDoGc%_?z0>KtkbJ!v%;%wki*YoEH5>`~#ak zT8TzF<#nUkK||>1w}^z@q1nOuO%Yxt%-+MYR%wDYUuT)d`62{g;>3xGI?(m}*S8Rp z+XV}skpN8EfTkEnkUkexZI%dQ954Vl%Juw4RalkrR3+xJl(x2amdOA$aonug!NZ}W zj|6T8Mwf}Fhg+txx{PPO$o2eB6e)krGL5Hz(-g0@zhxR1x}HB@odC-;4iFS*U&}Pk zOu&mJz2XW&qFfND>-kG64F3v(a_uU=eakdXjI&e;Ix~S3zFOi_11-}yyo4|m#1DGQ z_57AJ(~ZLHvqMLp5jwh|*?}JeD91h8!JB?M$0SVzu1H)v3)r6xK>snohn8ssz#O@D zFtD@o&Sc9p4stzzPRciSuuP*Iv+s00|I$t>LZOo(*%;s<`MozV-!hGvz)V>Rb^=BU z#2eE**Ylq((e6cZl=Gi<2bQFHmT`G6a(<+&)q`@z)wx0w(W+M9J0d7*HK`8#K#rXg z4&6T!j$c)U{b)_GHd$>Il>1ekVYF!YyVfIRa1b-}pJB*I`-z5@DcX39-jsL8@Si?{Dmn? zOd$Pj$!UGoWP07|4~5z7p`*`IB)&}~vb_S6wnb3K18aGzxwQ-E&)+sFYCc>g)D z-1Yo5DQoOhqO@i)XFrlzv`g4fMUwP07K+1Is{%WfYP9sX8F<7pjsMCR`^eu~2{l)W zrD}*16)Efe1i-0atnK7WHH%npqT1{%upz5Ps$A_Hj^Ch()B6Rc`;CsLanjL&7*Xkuy3)D8` z-j0IEwMw5?0WWBF5QdIkNUM>H#}PXES-=OtD=GWSdIQI%c0b^d;yCnl{ii`<|0`hR81_3iCiz? zXFIT7vx8;{PxFrD1fqJg(=zKO=;gqNa?GdW z?u|B)vH?JKVr|(~)}Jisu1AWgYbznC^_m_0k*Jz<98oQGISe}PPY(evR;76M!^KoD z3myGZqMZ&+$WGJEu!T4VmiAPakhiSmUoJ+A&d%$*t0t0Yt@m z4Zw@ZXhD35UPL866T~Up1~@)+^u0F2?$YVvWj~Ox1e4_NBc-5b%?_RcMv34S%VOP? zfaYoLyFydM1AIJm^!LT<9wyGqxQur$73rK8I{JK~eC`6GeM?D36h+Hp4P6pC`WW$A zv$hjyfU9U@6Ywj|4rV7p!oi{)6E!=yLechqM0>1$E!cJ1H_E}o?aBVhx0i&DemU^x z(9zclj=u*{xz#Am4i;vljMeWwAj`|pjn(KP(awq44%SG*;#}Z$G4WRs?YUl+ z7Vv9!@D@=v=OJ)hF{*bhbVK0000/bin/ts.jte +:jtxFileName: /bin/ts.jtx +:TCKPackageName: jakarta-pages-tck-3.1.0.zip +// Directory names used in examples in using.adoc. +:sigTestDirectoryExample: /src/com/sun/ts/tests/signaturetest/jsp +:singleTestDirectoryExample: /src/com/sun/ts/tests/jsp +:subsetTestDirectoryExample: /src/com/sun/ts/tests/jsp +// Define this attribute (uncomment it) if the TCK needs the rebuild appendix. +// :rebuild: diff --git a/jsp/docs/userguide/src/main/jbake/content/config.adoc b/jsp/docs/userguide/src/main/jbake/content/config.adoc new file mode 100644 index 0000000000..7608705fcf --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/config.adoc @@ -0,0 +1,353 @@ +type=page +status=published +title=Setup and Configuration +next=using.html +prev=install.html +~~~~~~ +include::attributes.conf[] +Setup and Configuration +======================= + +[[GBFVV]] + + + +[[setup-and-configuration]] +4 Setup and Configuration +------------------------- + + +[NOTE] +==== +The Jakarta EE Specification process provides for any number of compatible implementations. +As additional implementations become available, refer to project or product documentation from +those vendors for specific TCK setup and operational guidance. + +==== + +This chapter describes how to set up the {TechnologyShortName} TCK and +JavaTest harness software. Before proceeding with the instructions in +this chapter, be sure to install all required software, as described in +link:install.html#GBFTP[Chapter 3, "Installation."] + +After completing the instructions in this chapter, proceed to +link:using.html#GBFWO[Chapter 5, "Executing Tests,"] for instructions on +running the {TechnologyShortName} TCK. + +include::config.inc[] + +[[GHGDH]][[custom-configuration-handlers]] + +4.4 Custom Configuration Handlers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Configuration handlers are used to configure and unconfigure a +{TechnologyShortName} {TechnologyVersion} implementation during the +certification process. These are similar to deployment handlers but +used for configuration. A configuration handler is an Ant build file +that contains at least the required targets listed below: + + * `config.vi` - to configure the vendor implementation + * `clean.vi` - to unconfigure the vendor implementation + +These targets are called from the `/bin/build.xml` file and +call down into the implementation-specific configuration handlers. + +To provide your own configuration handler, create a config.vi.xml file +with the necessary configuration steps for your implementation and place +the file under the `/bin/xml/impl/` directory. + +For more information, you may wish to view `/bin/xml/impl/glassfish/config.vi.xml`, +the configuration file for Jakarta EE {JakartaEEVersion} Compatible Implementation, {TechnologyRI}. + +[[GBFWG]][[custom-deployment-handlers]] + +4.5 Custom Deployment Handlers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Deployment handlers are used to deploy and undeploy the WAR files that +contain the tests to be run during the certification process. A deployment +handler is an Ant build file that contains at least the required targets +listed in the table below. + +The {TechnologyShortName} TCK provides these deployment handlers: + +* `/bin/xml/impl/none/deploy.xml` +* `/bin/xml/impl/glassfish/deploy.xml` +* `/bin/xml/impl/tomcat/deploy.xml` + +The `deploy.xml` files in each of these directories are used to control +deployment to a specific container (no deployment, deployment to +the Eclipse GlassFish Web container, deployment to the Tomcat Web container) +denoted by the name of the directory in which each `deploy.xml` file +resides. The primary `build.xml` file in the `/bin` directory +has a target to invoke any of the required targets (`-deploy`, `-undeploy`, +`-deploy.all`, `-undeploy.all`). + +[[GBFVA]][[create-custom-deployment-handler]] + +4.5.1 To Create a Custom Deployment Handler +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To deploy tests to another {TechnologyShortName} implementation, you +must create a custom handler. + +1. Create a new directory in the `/bin/xml/impl` directory tree. + For example, create the `/bin/xml/impl/my_deployment_handler` directory. + Replace my_deployment_handler with the value of the impl.vi + property that you set in Step 5 of the configuration procedure + described in Section 4.2, "Configuring Your Environment to Repackage + and Run the TCK Against the Vendor Implementation". + +2. Copy the deploy.xml file from the `/bin/xml/impl/none` + directory to the directory that you created. + +3. Modify the required targets in the `deploy.xml` file. This is what + the `deploy.xml` file for the "none" deployment handler looks like. + ++ +[source,oac_no_warn] +---- + + + + + + + + + + + + + + + +---- ++ +Although this example just echoes messages, it does include the four +required Ant targets (`-deploy`, `-undeploy`, `-deploy.all`, `-undeploy.all`) +that your custom `deploy.xml` file must contain. With this as your +starting point, look at the required targets in the `deploy.xml` files +in the Tomcat and Eclipse Glassfish directories for guidance as you create +the same targets for the Web container in which you will run your +implementation of {TechnologyShortName}. + +The following Ant targets can be called from anywhere under the +`/src` directory: + +* `deploy` +* `undeploy` +* `deploy.all` +* `undeploy.all` + +The `deploy.all` and `undeploy.all` targets can also be called from the +`/bin` directory. + +[NOTE] +======================================================================= +The targets in the `deploy.xml` file are never called directly. +They are called indirectly by the targets listed above. +======================================================================= + +[[GBFUY]][[using-the-javatest-harness-software]] + +4.6 Using the JavaTest Harness Software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +There are two general ways to run the {TechnologyShortName} TCK test +suite using the JavaTest harness software: + +* Through the JavaTest GUI; if using this method, please continue on to +link:#GBFWG[Section 4.7, "Using the JavaTest Harness Configuration +GUI."] +* In JavaTest batch mode, from the command line in your shell +environment; if using this method, please proceed directly to +link:using.html#GBFWO[Chapter 5, "Executing Tests."] + +[[GBFWG]][[using-the-javatest-harness-configuration-gui]] + +4.7 Using the JavaTest Harness Configuration GUI +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can use the JavaTest harness GUI to modify general test settings and +to quickly get started with the default {TechnologyShortName} TCK test +environment. This section covers the following topics: + +* link:#GBFVA[Configuration GUI Overview] +* link:#GBFVD[Starting the Configuration GUI] +* link:#GBFVX[To Configure the JavaTest Harness to Run the +{TechnologyShortName} TCK Tests] +* link:#GBFUU[Modifying the Default Test Configuration] + + +[NOTE] +======================================================================= + +It is only necessary to proceed with this section if you want to run the +JavaTest harness in GUI mode. If you plan to run the JavaTest harness in +command-line mode, skip the remainder of this chapter, and continue with +link:using.html#GBFWO[Chapter 5, "Executing Tests."] + +======================================================================= + + +[[GBFVA]][[configuration-gui-overview]] + +4.7.1 Configuration GUI Overview +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In order for the JavaTest harness to execute the test suite, it requires +information about how your computing environment is configured. The +JavaTest harness requires two types of configuration information: + +* Test environment: This is data used by the tests. For example, the +path to the Java runtime, how to start the product being tested, network +resources, and other information required by the tests in order to run. +This information does not change frequently and usually stays constant +from test run to test run. +* Test parameters: This is information used by the JavaTest harness to +run the tests. Test parameters are values used by the JavaTest harness +that determine which tests in the test suite are run, how the tests +should be run, and where the test reports are stored. This information +often changes from test run to test run. + +The first time you run the JavaTest harness software, you are asked to +specify the test suite and work directory that you want to use. (These +parameters can be changed later from within the JavaTest harness GUI.) + +Once the JavaTest harness GUI is displayed, whenever you choose Start, +then Run Tests to begin a test run, the JavaTest harness determines +whether all of the required configuration information has been supplied: + +* If the test environment and parameters have been completely +configured, the test run starts immediately. +* If any required configuration information is missing, the +configuration editor displays a series of questions asking you the +necessary information. This is called the configuration interview. When +you have entered the configuration data, you are asked if you wish to +proceed with running the test. + +[[GBFVD]][[starting-the-configuration-gui]] + +4.7.2 Starting the Configuration GUI +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Before you start the JavaTest harness software, you must have a valid +test suite and Java SE {SEversion} installed on your system. + +The {TechnologyShortName} TCK includes an Ant script that is used to execute the +JavaTest harness from the `` directory. Using this Ant script +to start the JavaTest harness is part of the procedure described in +link:#GBFVX[Section 4.7.3, "To Configure the JavaTest Harness to Run the +TCK Tests."] + +When you execute the JavaTest harness software for the first time, the +JavaTest harness displays a Welcome dialog box that guides you through +the initial startup configuration. + +* If it is able to open a test suite, the JavaTest harness displays a +Welcome to JavaTest dialog box that guides you through the process of +either opening an existing work directory or creating a new work +directory as described in the JavaTest online help. +* If the JavaTest harness is unable to open a test suite, it displays a +Welcome to JavaTest dialog box that guides you through the process of +opening both a test suite and a work directory as described in the +JavaTest documentation. + +After you specify a work directory, you can use the Test Manager to +configure and run tests as described in link:#GBFVX[Section 4.7.3, "To +Configure the JavaTest Harness to Run the TCK Tests."] + +[[GBFVX]][[to-configure-the-javatest-harness-to-run-the-tck-tests]] + +4.7.3 To Configure the JavaTest Harness to Run the TCK Tests +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The answers you give to some of the configuration interview questions +are specific to your site. For example, the name of the host on which +the JavaTest harness is running. Other configuration parameters can be +set however you wish. For example, where you want test report files to +be stored. + +Note that you only need to complete all these steps the first time you +start the JavaTest test harness. After you complete these steps, you can +either run all of the tests by completing the steps in +link:using.html#GBFUZ[Section 5.1, "Starting JavaTest,"] or run a subset +of the tests by completing the steps in link:using.html#GBFWM[Section +5.2, "Running a Subset of the Tests."] + +1. Change to the `/bin` directory and start the JavaTest test +harness: + +`cd /bin` + +`ant gui` +2. From the File menu, click *Open Quick Start Wizard*. + +The Welcome screen displays. +3. Select *Start a new test run*, and then click *Next*. + +You are prompted to create a new configuration or use a configuration +template. +4. Select *Create a new configuration*, and then click *Next*. + +You are prompted to select a test suite. +5. Accept the default suite (`/src`), and then click *Next*. + +You are prompted to specify a work directory to use to store your test +results. +6. Type a work directory name or use the *Browse* button to select a work +directory, and then click *Next*. + +You are prompted to start the configuration editor or start a test run. +At this point, the {TechnologyShortName} TCK is configured to run the +default test suite. +7. Deselect the *Start the configuration editor* option, and then click +*Finish*. +8. Click *Run Tests*, then click *Start*. + +The JavaTest harness starts running the tests. +9. To reconfigure the JavaTest test harness, do one of the following: +* Click *Configuration*, then click *New Configuration*. +* Click *Configuration*, then click *Change Configuration*. +10. Click *Report*, and then click *Create Report*. +11. Specify the directory in which the JavaTest test harness will write +the report, and then click *OK*. + +A report is created, and you are asked whether you want to view it. +12. Click *Yes* to view the report. + +[[GBFUU]][[modifying-the-default-test-configuration]] + +4.7.4 Modifying the Default Test Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The JavaTest GUI enables you to configure numerous test options. These +options are divided into two general dialog box groups: + +* Group 1: Available from the JavaTest *Configure/Change Configuration* +submenus, the following options are displayed in a tabbed dialog box: + +** *Tests to Run* + +** *Exclude List* + +** *Keywords* + +** *Prior Status* + +** *Test Environment* + +** *Concurrency* + +** *Timeout Factor* +* Group 2: Available from the JavaTest *Configure/Change +Configuration/Other Values* submenu, or by pressing `Ctrl+E`, the following +options are displayed in a paged dialog box: + +** *Environment Files* + +** *Test Environment* + +** *Specify Tests to Run* + +** *Specify an Exclude List* + +Note that there is some overlap between the functions in these two +dialog boxes; for those functions use the dialog box that is most +convenient for you. Please refer to the JavaTest Harness documentation +or the online help for complete information about these various options. + + diff --git a/jsp/docs/userguide/src/main/jbake/content/config.inc b/jsp/docs/userguide/src/main/jbake/content/config.inc new file mode 100644 index 0000000000..72ae898dae --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/config.inc @@ -0,0 +1,165 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +The following sections should be customized for the technology. +This text was originally from the JAX-RS TCK. Most references +to JAX-RS have been parameterized to serve as a simple starting +point for customization. There are still many details that will +need to be changed or removed. The major sections 4.1, 4.2, and +4.3 should be preserved. If their titles are changed, the links +at the top of config.adoc will need to be changed as well as well +as toc.adoc. +/////////////////////////////////////////////////////////////////////// + +[[GBFVU]][[configuring-your-environment-to-run-the-tck-against-the-reference-implementation]] + +4.1 Configuring Your Environment to Run the TCK Against the Reference Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +After configuring your environment as described in this section, +continue with the instructions in link:#GBFUY[Section 4.6, "Using the +JavaTest Harness Software."] + + +[NOTE] +======================================================================= + +In these instructions, variables in angle brackets need to be expanded +for each platform. For example, `` becomes `$TS_HOME` on +Solaris/Linux and `%TS_HOME%` on Windows. In addition, the forward +slashes (`/`) used in all of the examples need to be replaced with +backslashes (`\`) for Windows. Finally, be sure to use the appropriate +separator for your operating system when specifying multiple path +entries (`;` on Windows, `:` on UNIX/Linux). + +On Windows, you must escape any backslashes with an extra backslash in +path separators used in any of the following properties, or use forward +slashes as a path separator instead. + +======================================================================= + + +1. Set the following environment variables in your shell environment: + a. `JAVA_HOME` to the directory in which Java SE {SEversion} is installed + b. `TS_HOME` to the directory in which the {TechnologyShortName} TCK + {TechnologyVersion} software is installed + c. +{TechnologyHomeEnv}+ to the directory in which the {TechnologyShortName} + {TechnologyVersion} CI has been installed + d. `PATH` to include the following directories: `JAVA_HOME/bin`, + +{TechnologyHomeEnv}/bin+, and `ANT_HOME/bin` +2. Copy /bin/ts.jte.jdk11 as /bin/ts.jte if JAVA_HOME is Java SE 11. +Edit your `/bin/ts.jte` file and set the following +environment variables: + a. Set the `webServerHost` property to the name of the host on which + Jakarta EE {JakartaEEVersion} CI (for example {TechnologyRI}) is running. + + The default setting is `localhost`. + b. Set the `webServerPort` property to the port number of the host on + which your Jakarta EE {JakartaEEVersion} CI is running. + + The default setting is `8080`. + c. Set the `webServerHome` property to the installation directory of Jakarta EE + {JakartaEEVersion} CI. + d. `web.deployment.handler` to an Ant file that contains at least a + single target named `deploy`. + + When `ant deploy` is invoked, this target will be invoked to handle the + deployment of the web applications to the target server. To use a custom + handler, copy the handler to the `/bin/deploy` directory and + provide only the filename as the property value. + + The {TechnologyShortName} TCK includes the following handlers: + + * `noop`: No deployment; default setting + * `glassfish`: Deploy to the Jakarta EE {JakartaEEVersion} CI server {TechnologyRI} + * `jwsdp`: Deploy to a server running the Java Web Services Developers + Pack or to a Tomcat server + + See link:#GCRVD[Section 4.5, "Custom Deployment Handlers,"] for + information about creating your own deployment handler and setting the + `web.deployment.handler` property to use that handler. + e. `jspservlet.classes` to the path to the Servlet and {TechnologyShortName} API classes + that are used for building. + + The `ts.jte` file includes examples that show how to set the classes + properties for {TechnologyRI} servers. + f. `jstl.classes` to the path to the Jakarta Standard Tag Library JAR files. + g. `report.dir` to the default directory in which JavaTest creates a + test report for the most recent test run. + + This property is a required property for the TCK Ant targets; it must be + set. To disable reporting, set the `report.dir` property to `"none"`. + h. `work.dir` to the default directory in which JavaTest writes + temporary files that are created during test execution. + + This property is required for the TCK Ant targets. + i. When the signature tests are run, the `sigTestClasspath` property + must be set to a list of JAR files and directories which contain the + Jakarta EE and Java SE classes. + + Paths must be separated by the appropriate path separator ("`;`" on + Windows, "`:`" on Solaris/Linux). + j. `porting.ts.url.class.1` to the class names of your porting class + implementations. + + By default, the property settings point to the {TechnologyShortName} TCK CI-specific + classes. ++ +3. Provide your own implementation of the porting package interface +provided with the {TechnologyShortName} TCK. + +The porting package interface, `TSURLInterface.java`, obtains URL +strings for web resources in an implementation-specific manner. API +documentation for the `TSURLInterface.java` porting package interface is +available in the {TechnologyShortName} TCK documentation bundle. + + +[[GCLHU]][[configuring-your-environment-to-repackage-and-run-the-tck-against-the-vendor-implementation]] + +4.2 Configuring Your Environment to Repackage and Run the TCK Against the Vendor Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +After configuring your environment as described in this section, +continue with the instructions in link:#GBFUY[Section 4.4, "Using the +JavaTest Harness Software."] + + +[NOTE] +======================================================================= + +In these instructions, variables in angle brackets need to be expanded +for each platform. For example, `` becomes `$TS_HOME` on +Solaris/Linux and `%TS_HOME%` on Windows. In addition, the forward +slashes (`/`) used in all of the examples need to be replaced with +backslashes (`\`) for Windows. Finally, be sure to use the appropriate +separator for your operating system when specifying multiple path +entries (`;` on Windows, `:` on UNIX/Linux). + +On Windows, you must escape any backslashes with an extra backslash in +path separators used in any of the following properties, or use forward +slashes as a path separator instead. + +======================================================================= + + +[[sthref9]] + +4.2.1 Before You Begin +^^^^^^^^^^^^^^^^^^^^^^ + +Decide against which {TechnologyShortName} implementation the tests +will be run and determine to which Servlet–compliant Web server the +{TechnologyShortName} TCK applications will be published. + +Adapt the instructions above for the vendor implementation. + + +[[GCFQK]][[preparing-the-war-files-for-deployment]] + +4.3 Preparing the WAR Files for Deployment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Complete this step only if you intend to package a {TechnologyShortName} implementation in +the WAR files, thereby overriding the default {TechnologyShortName} implementation for the +application server under test. This procedure adds to and rebuilds the +{TechnologyShortName} TCK WAR files. + +1. Copy one or more of the JAR files required by the {TechnologyShortName} implementation +that will replace the application server's default {TechnologyShortName} implementation to +the `/weblib` directory. + +This JAR file (or files) must contain all of the TLDs (located in the +`META-INF` directory of the archive) for the tag libraries, as defined +by the {TechnologyShortName} specification and any additional support JAR files upon which +the {TechnologyShortName} implementation is dependent. +2. Change to the `/src/com/sun/ts/tests` directory and run +`ant build` to package the web archives. + +This adds one or more JAR files from the `/weblib` directory to +each of the WAR files. diff --git a/jsp/docs/userguide/src/main/jbake/content/debug-tips.inc b/jsp/docs/userguide/src/main/jbake/content/debug-tips.inc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/jsp/docs/userguide/src/main/jbake/content/debug.adoc b/jsp/docs/userguide/src/main/jbake/content/debug.adoc new file mode 100644 index 0000000000..5208c401a6 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/debug.adoc @@ -0,0 +1,174 @@ +type=page +status=published +title=Debugging Test Problems +next=faq.html +prev=using.html +~~~~~~ +include::attributes.conf[] +Debugging Test Problems +======================= + +[[GBFUV]] + + +[[debugging-test-problems]] +6 Debugging Test Problems +------------------------- + +There are a number of reasons that tests can fail to execute properly. +This chapter provides some approaches for dealing with these failures. +Please note that most of these suggestions are only relevant when +running the test harness in GUI mode. + +This chapter includes the following topics: + +* link:#GBFYP[Overview] +* link:#GBFVF[Test Tree] +* link:#GBFWI[Folder Information] +* link:#GBFVP[Test Information] +* link:#GBFVZ[Report Files] +* link:#GBFYF[Configuration Failures] + +[[GBFYP]][[overview]] + +6.1 Overview +~~~~~~~~~~~~ + +The goal of a test run is for all tests in the test suite that are not +filtered out to have passing results. If the root test suite folder +contains tests with errors or failing results, you must troubleshoot and +correct the cause to satisfactorily complete the test run. + +* Errors: Tests with errors could not be executed by the JavaTest +harness. These errors usually occur because the test environment is not +properly configured. +* Failures: Tests that fail were executed but had failing results. + +The Test Manager GUI provides you with a number of tools for effectively +troubleshooting a test run. See the JavaTest User's Guide and JavaTest +online help for detailed descriptions of the tools described in this +chapter. Ant test execution tasks provide command-line users with +immediate test execution feedback to the display. Available JTR report +files and log files can also help command-line users troubleshoot test +run problems. + +For every test run, the JavaTest harness creates a set of report files +in the reports directory, which you specified by setting the +`report.dir` property in the +{jteFileName}+ file. The report files contain +information about the test description, environment, messages, +properties used by the test, status of the test, and test result. After +a test run is completed, the JavaTest harness writes HTML reports for +the test run. You can view these files in the JavaTest ReportBrowser +when running in GUI mode, or in the Web browser of your choice outside +the JavaTest interface. To see all of the HTML report files, enter the +URL of the `report.html` file. This file is the root file that links to +all of the other HTML reports. + +The JavaTest harness also creates a `summary.txt` file in the report +directory that you can open in any text editor. The `summary.txt` file +contains a list of all tests that were run, their test results, and +their status messages. + +The work directory, which you specified by setting the `work.dir` +property in the +{jteFileName}+ file, contains several files that were +deposited there during test execution: `harness.trace`, `log.txt`, +`lastRun.txt`, and `testsuite`. Most of these files provide information +about the harness and environment in which the tests were executed. + +[NOTE] +======================================================================= + +You can set `harness.log.traceflag=true` in +{jteFileName}+ to +get more debugging information. + +======================================================================= + +If a large number of tests failed, you should read +link:#GBFYF[Configuration Failures] to see if a +configuration issue is the cause of the failures. + + +[[GBFVF]][[test-tree]] + +6.2 Test Tree +~~~~~~~~~~~~~ + +Use the test tree in the JavaTest GUI to identify specific folders and +tests that had errors or failing results. Color codes are used to +indicate status as follows: + +* Green: Passed +* Blue: Test Error +* Red: Failed to pass test +* White: Test not run +* Gray: Test filtered out (not run) + +[[GBFWI]][[folder-information]] + +6.3 Folder Information +~~~~~~~~~~~~~~~~~~~~~~ + +Click a folder in the test tree in the JavaTest GUI to display its tabs. + +Choose the Error and the Failed tabs to view the lists of all tests in +and under a folder that were not successfully run. You can double-click +a test in the lists to view its test information. + +[[GBFVP]][[test-information]] + +6.4 Test Information +~~~~~~~~~~~~~~~~~~~~ + +To display information about a test in the JavaTest GUI, click its icon +in the test tree or double-click its name in a folder status tab. The +tab contains detailed information about the test run and, at the bottom +of the window, a brief status message identifying the type of failure or +error. This message may be sufficient for you to identify the cause of +the error or failure. + +If you need more information to identify the cause of the error or +failure, use the following tabs listed in order of importance: + +* Test Run Messages contains a Message list and a Message section that +display the messages produced during the test run. +* Test Run Details contains a two-column table of name/value pairs +recorded when the test was run. +* Configuration contains a two-column table of the test environment +name/value pairs derived from the configuration data actually used to +run the test. + + +[NOTE] +======================================================================= + +You can set `harness.log.traceflag=true` in +{jteFileName}+ to +get more debugging information. + +======================================================================= + + +[[GBFVZ]][[report-files]] + +6.5 Report Files +~~~~~~~~~~~~~~~~ + +Report files are another good source of troubleshooting information. You +may view the individual test results of a batch run in the JavaTest +Summary window, but there are also a wide range of HTML report files +that you can view in the JavaTest ReportBrowser or in the external +browser or your choice following a test run. See +link:using.html#GBFVK[Section 5.5, "Test Reports,"] for more information. + +[[GBFYF]][[configuration-failures]] + +6.6 Configuration Failures +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Configuration failures are easily recognized because many tests fail the +same way. When all your tests begin to fail, you may want to stop the +run immediately and start viewing individual test output. However, in +the case of full-scale launching problems where no tests are actually +processed, report files are usually not created (though sometimes a +small `harness.trace` file in the report directory is written). + +include::debug-tips.inc[] diff --git a/jsp/docs/userguide/src/main/jbake/content/defns.inc b/jsp/docs/userguide/src/main/jbake/content/defns.inc new file mode 100644 index 0000000000..64b6df545b --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/defns.inc @@ -0,0 +1,6 @@ +|Jakarta Server Page |A text-based document that uses Jakarta Server +Pages technology. + +|Jakarta Server Page Implementation Class |A program constructed by +transforming the Jakarta Server Page text into a Java language program +using the transformation rules described in the Specifications. diff --git a/jsp/docs/userguide/src/main/jbake/content/faq.adoc b/jsp/docs/userguide/src/main/jbake/content/faq.adoc new file mode 100644 index 0000000000..97ca394c55 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/faq.adoc @@ -0,0 +1,62 @@ +type=page +status=published +title=Appendix A: Frequently Asked Questions +next=rebuild.html +prev=debug.html +~~~~~~ +include::attributes.conf[] +Appendix A: Frequently Asked Questions +====================================== + +[[GBFYD]] + + +[[a-frequently-asked-questions]] +A Frequently Asked Questions +---------------------------- + +This appendix contains the following questions. + +* link:#GBFYQ[Where do I start to debug a test failure?] +* link:#GBFYR[How do I restart a crashed test run?] +* link:#GBFWU[What would cause tests be added to the exclude list?] + +[[GBFYQ]][[a.1-where-do-i-start-to-debug-a-test-failure]] + +A.1 Where do I start to debug a test failure? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +From the JavaTest GUI, you can view recently run tests using the Test +Results Summary, by selecting the red Failed tab or the blue Error tab. +See link:debug.html#GBFUV[Chapter 6, "Debugging Test Problems,"] for more +information. + +[[GBFYR]][[a.2-how-do-i-restart-a-crashed-test-run]] + +A.2 How do I restart a crashed test run? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you need to restart a test run, you can figure out which test crashed +the test suite by looking at the `harness.trace` file. The +`harness.trace` file is in the report directory that you supplied to the +JavaTest GUI or parameter file. Examine this trace file, then change the +JavaTest GUI initial files to that location or to a directory location +below that file, and restart. This will overwrite only `.jtr` files that +you rerun. As long as you do not change the value of the GUI work +directory, you can continue testing and then later compile a complete +report to include results from all such partial runs. + +[[GBFWU]][[a.3-what-would-cause-tests-be-added-to-the-exclude-list]] + +A.3 What would cause tests be added to the exclude list? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The JavaTest exclude file (+{jtxFileName}+) contains all tests that are not +required to be run. The following is a list of reasons for a test to be +included in the Exclude List: + +* An error in a Compatible Implementation that does not allow the test to +execute properly has been discovered. +* An error in the specification that was used as the basis of the test +has been discovered. +* An error in the test has been discovered. diff --git a/jsp/docs/userguide/src/main/jbake/content/install-server-vi.inc b/jsp/docs/userguide/src/main/jbake/content/install-server-vi.inc new file mode 100644 index 0000000000..5637912e12 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/install-server-vi.inc @@ -0,0 +1,2 @@ +. Install a Web server on which the {TechnologyShortName} TCK test +applications can be published for testing the VI. diff --git a/jsp/docs/userguide/src/main/jbake/content/install-server.inc b/jsp/docs/userguide/src/main/jbake/content/install-server.inc new file mode 100644 index 0000000000..834e3b1719 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/install-server.inc @@ -0,0 +1,8 @@ +. Install the Jakarta EE {JakartaEEVersion} CI software, for example {TechnologyRI} (which hosts the servlet Web container used +for running the {TechnologyShortName} TCK with the +{TechnologyShortName} {TechnologyVersion} CI), if it is not already +installed. + +. Download and install the Servlet Web container with the +{TechnologyShortName} {TechnologyVersion} CI used for running the +{TechnologyShortName} TCK {TechnologyVersion}. For example you could use {TechnologyRI}. +This software may be obtained from {TechnologyRIURL}. \ No newline at end of file diff --git a/jsp/docs/userguide/src/main/jbake/content/install.adoc b/jsp/docs/userguide/src/main/jbake/content/install.adoc new file mode 100644 index 0000000000..a3b93e73ac --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/install.adoc @@ -0,0 +1,86 @@ +type=page +status=published +title=Installation +next=config.html +prev=rules.html +~~~~~~ +include::attributes.conf[] +Installation +============ + +[[GBFTP]] + + +[[installation]] +3 Installation +-------------- + +This chapter explains how to install the {TechnologyFullName} TCK software. + +After installing the software according to the instructions in this +chapter, proceed to link:config.html#GBFVV[Chapter 4, "Setup and +Configuration,"] for instructions on configuring your test environment. + +[[GBFUD]][[obtaining-the-reference-implementation]] + +3.1 Obtaining a Compatible Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Each compatible implementation (CI) will provide instructions for obtaining +their implementation. +{TechnologyRI} is a compatible implementation which may be obtained +from {TechnologyRIURL} + +[[GBFTS]][[installing-the-software]] + +3.2 Installing the Software +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Before you can run the {TechnologyShortName} TCK tests, you must +install and set up the following software components: + +include::req-software.inc[] +* Java SE {SEversion} +* Apache Ant {AntVersion} +* A CI for {TechnologyShortName} {TechnologyVersion}, one example is {TechnologyRI} +* {TechnologyShortName} TCK version {TechnologyVersion}, which includes: +include::tck-packages.inc[] +* The {TechnologyShortName} {TechnologyVersion} Vendor Implementation (VI) + +Follow these steps: + +. Install the Java SE {SEversion} software, if it is not already installed. + +Download and install the Java SE {SEversion} software from +http://www.oracle.com/technetwork/java/javase/downloads/index.html. +Refer to the installation instructions that accompany the software for +additional information. +. Install the Apache Ant {AntVersion} software, if it is not already installed. + +Download and install Apache Ant {AntVersion} software from Apache Ant +Project. For complete information about Ant, refer to the extensive documentation +on the Apache Ant Project site. The Apache Ant Manual is available at +`http://ant.apache.org/manual/index.html`. +Apache Ant is protected under the Apache Software, License 2.0, which is +is available on the Apache Ant Project license page at +`http://ant.apache.org/license.html`. +. Install the {TechnologyShortName} TCK {TechnologyVersion} software. + a. Copy or download the {TechnologyShortName} TCK software to your + local system. + + You can obtain the {TechnologyShortName} TCK software from the + Jakarta EE site {SpecificationURL}. + b. Use the `unzip` command to extract the bundle in the directory of + your choice: + + +unzip {TCKPackageName}+ + + This creates the TCK directory. The TCK is the test suite home, + ``. +include::install-server.inc[] +. Install a {TechnologyShortName} {TechnologyVersion} Compatible +Implementation. + +A Compatible Implementation is used to validate your initial +configuration and setup of the {TechnologyShortName} TCK +{TechnologyVersion} tests, which are explained further in +link:config.html#GBFVV[Chapter 4, "Setup and Configuration."] + +The Compatible Implementations for {TechnologyShortName} are listed on +the Jakarta EE Specifications web site: {SpecificationURL}. +include::install-server-vi.inc[] +. Install the {TechnologyShortName} VI to be tested. + +Follow the installation instructions for the particular VI under test. diff --git a/jsp/docs/userguide/src/main/jbake/content/intro.adoc b/jsp/docs/userguide/src/main/jbake/content/intro.adoc new file mode 100644 index 0000000000..774adfd371 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/intro.adoc @@ -0,0 +1,349 @@ +type=page +status=published +title=Introduction +next=rules.html +prev=preface.html +~~~~~~ +include::attributes.conf[] +Introduction +============ + +[[GBFOW]] + + +[[introduction]] +1 Introduction +-------------- + +This chapter provides an overview of the principles that apply +generally to all Technology Compatibility Kits (TCKs) and describes the +{TechnologyFullName} TCK ({TechnologyShortName} {TechnologyVersion} TCK). +It also includes a high level listing +of what is needed to get up and running with the {TechnologyShortName} +TCK. + +This chapter includes the following topics: + +* link:#GBFTK[Compatibility Testing] +* link:#GBFQR[About the TCK] +* link:#GBFQW[Getting Started With the TCK] + +[[GBFTK]][[compatibility-testing]] + +1.1 Compatibility Testing +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Compatibility testing differs from traditional product testing in a +number of ways. The focus of compatibility testing is to test those +features and areas of an implementation that are likely to differ across +other implementations, such as those features that: + +* Rely on hardware or operating system-specific behavior +* Are difficult to port +* Mask or abstract hardware or operating system behavior + +Compatibility test development for a given feature relies on a complete +specification and compatible implementation (CI) for that feature. +Compatibility testing is not primarily concerned with robustness, +performance, nor ease of use. + +[[GBFQN]][[why-compatibility-testing-is-important]] + +1.1.1 Why Compatibility Testing is Important +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Jakarta platform compatibility is important to different groups involved +with Jakarta technologies for different reasons: + +* Compatibility testing ensures that the Jakarta platform does not become +fragmented as it is ported to different operating systems and hardware +environments. +* Compatibility testing benefits developers working in the Jakarta +programming language, allowing them to write applications once and then +to deploy them across heterogeneous computing environments without +porting. +* Compatibility testing allows application users to obtain applications +from disparate sources and deploy them with confidence. +* Conformance testing benefits Jakarta platform implementors by ensuring a +level playing field for all Jakarta platform ports. + +[[GBFPR]][[tck-compatibility-rules]] + +1.1.2 TCK Compatibility Rules +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Compatibility criteria for all technology implementations are embodied +in the TCK Compatibility Rules that apply to a specified technology. +Each TCK tests for adherence to these Rules as described in +link:rules.html#GBFSN[Chapter 2, "Procedure for Certification."] + +[[GBFPW]][[tck-overview]] + +1.1.3 TCK Overview +^^^^^^^^^^^^^^^^^^ + +A TCK is a set of tools and tests used to verify that a vendor's compatible +implementation of a Jakarta EE technology conforms to the applicable +specification. All tests in the TCK are based on the written +specifications for the Jakarta EE platform. A TCK tests compatibility of a +vendor's compatible implementation of the technology to the applicable +specification of the technology. Compatibility testing is a means of +ensuring correctness, completeness, and consistency across all +implementations developed by technology licensees. + +The set of tests included with each TCK is called the test suite. Most +tests in a TCK's test suite are self-checking, but some tests may +require tester interaction. Most tests return either a Pass or Fail +status. For a given platform to be certified, all of the required tests +must pass. The definition of required tests may change from platform to +platform. + +The definition of required tests will change over time. Before your +final certification test pass, be sure to download the latest version +of this TCK. + +[[GBFPB]][[java-community-process-jcp-program-and-compatibility-testing]] + +1.1.4 Jakarta EE Specification Process (JESP) Program and Compatibility Testing +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The Jakarta EE Specification Process (JESP) program is the formalization of the +open process that has been used since 2019 to develop and revise Jakarta EE +technology specifications in cooperation with the international Jakarta EE +community. The JESP program specifies that the following three major +components must be included as deliverables in a final Jakarta EE technology +release under the direction of the responsible Expert Group: + +* Technology Specification +* Compatible Implementation (CI) +* Technology Compatibility Kit (TCK) + +For further information about the JESP program, go to Jakarta EE Specification +Process community page https://jakarta.ee/specifications. + +[[GBFQR]][[about-the-tck]] + +1.2 About the TCK +~~~~~~~~~~~~~~~~~ + +The {TechnologyShortName} TCK {TechnologyVersion} is designed as a +portable, configurable, automated test suite for verifying the +compatibility of a vendor's implementation of the +{TechnologyShortName} {TechnologyVersion} Specification. + +[[GBFQV]][[tck-specifications-and-requirements]] + +1.2.1 TCK Specifications and Requirements +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This section lists the applicable requirements and specifications. + +* Specification Requirements: Software requirements for a +{TechnologyShortName} implementation are described in detail in the +{TechnologyShortName} {TechnologyVersion} Specification. Links to the +{TechnologyShortName} specification and other product information can +be found at {SpecificationURL}. +* {TechnologyShortName} Version: The {TechnologyShortName} {TechnologyVersion} TCK +is based on the {TechnologyShortName} +Specification, Version {TechnologyVersion}. +* Compatible Implementation: One {TechnologyShortName} +{TechnologyVersion} Compatible Implementation, {TechnologyRI} is +available from the Eclipse EE4J project +(https://projects.eclipse.org/projects/ee4j). See the CI documentation page at +{TechnologyRIURL} for more information. + +See the {TechnologyShortName} TCK Release Notes for more specific +information about Java SE version requirements, supported platforms, +restrictions, and so on. + +[[GBFSQ]][[tck-components]] + +1.2.2 TCK Components +^^^^^^^^^^^^^^^^^^^^ + +The {TechnologyShortName} TCK {TechnologyVersion} includes the +following components: + +* JavaTest harness version {JavaTestVersion} and related documentation. See +link:https://wiki.openjdk.java.net/display/CodeTools/JT+Harness[JT Harness web site] +for additional information. +* {TechnologyShortName} TCK signature tests; check that all public APIs +are supported and/or defined as specified in the {TechnologyShortName} +Version {TechnologyVersion} implementation under test. +* If applicable, an exclude list, which provides a list of tests that your +implementation is not required to pass. +ifndef::no-api-tests[] +* API tests for all of the {TechnologyShortName} API in all related packages: +include::packages.inc[] +endif::no-api-tests[] +ifdef::end-to-end-tests[] +* End-to-end tests that demonstrate compliance with the {TechnologyFullName} +Specification. +endif::end-to-end-tests[] + +The {TechnologyShortName} TCK tests run on the following platforms: + +include::platforms.inc[] + +[[GBFSA]][[javatest-harness]] + +1.2.3 JavaTest Harness +^^^^^^^^^^^^^^^^^^^^^^ + +The JavaTest harness version {JavaTestVersion} is a set of tools +designed to run and manage test suites on different Java platforms. +To JavaTest, Jakarta EE can be considered another platform. +The JavaTest harness can be described as both a Java application and a set +of compatibility testing tools. It can run tests on different kinds of +Java platforms and it allows the results to be browsed online within +the JavaTest GUI, or offline in the HTML reports that the JavaTest +harness generates. + +The JavaTest harness includes the applications and tools that are used +for test execution and test suite management. It supports the following +features: + +* Sequencing of tests, allowing them to be loaded and executed automatically +* Graphic user interface (GUI) for ease of use +* Automated reporting capability to minimize manual errors +* Failure analysis +* Test result auditing and auditable test specification framework +* Distributed testing environment support + +To run tests using the JavaTest harness, you specify which tests in the +test suite to run, how to run them, and where to put the results as +described in link:config.html#GBFVV[Chapter 4, "Setup and +Configuration."] + +[[GBFRA]][[tck-compatibility-test-suite]] + +1.2.4 TCK Compatibility Test Suite +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The test suite is the collection of tests used by the JavaTest harness +to test a particular technology implementation. In this case, it is the +collection of tests used by the {TechnologyShortName} TCK +{TechnologyVersion} to test a {TechnologyShortName} {TechnologyVersion} +implementation. The tests are designed to verify that a vendor's +runtime implementation of the technology complies with the appropriate +specification. The individual tests correspond to assertions of the +specification. + +The tests that make up the TCK compatibility test suite are precompiled +and indexed within the TCK test directory structure. When a test run is +started, the JavaTest harness scans through the set of tests that are +located under the directories that have been selected. While scanning, +the JavaTest harness selects the appropriate tests according to any +matches with the filters you are using and queues them up for execution. + +[[GBFSH]][[exclude-lists]] + +1.2.5 Exclude Lists +^^^^^^^^^^^^^^^^^^^ + +Each version of a TCK includes an Exclude List contained in a `.jtx` +file. +This is a list of test file URLs that identify tests which do not +have to be run for the specific version of the TCK being used. +Whenever tests are run, the JavaTest harness automatically excludes +any test on the Exclude List from being executed. + +A vendor's compatible implementation is not required to pass or run any test on the Exclude List. +The Exclude List file, +{jtxFileName}+, is included in the +{TechnologyShortName} TCK. + + +[NOTE] +======================================================================= + +From time to time, updates to the Exclude List are made available. +The exclude list is included in the Jakarta TCK ZIP archive. +Each time an update is approved and released, the version number +will be incremented. +You should always make sure you are using an up-to-date copy of the +Exclude List before running the {TechnologyShortName} TCK to verify your +implementation. + +======================================================================= + + +A test might be in the Exclude List for reasons such as: + +* An error in an underlying implementation API has been discovered which +does not allow the test to execute properly. +* An error in the specification that was used as the basis of the test +has been discovered. +* An error in the test itself has been discovered. +* The test fails due to a bug in the tools (such as the JavaTest +harness, for example). + +In addition, all tests are run against the compatible implementations. +Any tests that fail when run on a compatible Jakarta platform are put on the +Exclude List. Any test that is not specification-based, or for which the +specification is vague, may be excluded. Any test that is found to be +implementation dependent (based on a particular thread scheduling model, +based on a particular file system behavior, and so on) may be excluded. + + +[NOTE] +======================================================================= + +Vendors are not permitted to alter or modify Exclude Lists. Changes to +an Exclude List can only be made by using the procedure described in +link:rules.html#CJAJEAEI[Section 2.3.1, "TCK Test Appeals Steps."] + +======================================================================= + + +[[GBFRR]][[tck-configuration]] + +1.2.6 TCK Configuration +^^^^^^^^^^^^^^^^^^^^^^^ + +You need to set several variables in your test environment, modify +properties in the +{jteFileName}+ file, and then use the JavaTest +harness to configure and run the {TechnologyShortName} tests, as described in +link:config.html#GBFVV[Chapter 4, "Setup and Configuration."] + +include::intro.inc[] + +[[GBFQW]][[getting-started-with-the-tck]] + +[NOTE] +==== +The Jakarta EE Specification Process support multiple compatible implementations. +These instructions explain how to get started with the {TechnologyRI} CI. +If you are using another compatible implementation, refer to material provided +by that implementation for specific instructions and procedures. + +==== + +1.3 Getting Started With the TCK +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section provides an general overview of what needs to be done to +install, set up, test, and use the {TechnologyShortName} TCK. These +steps are explained in more detail in subsequent chapters of this +guide. + +1. Make sure that the following software has been correctly installed +on the system hosting the JavaTest harness: +include::req-software.inc[] +* Java SE {SEversion} +* Apache Ant {AntVersion} +* A CI for {TechnologyShortName} {TechnologyVersion}. One example is {TechnologyRI}. +* {TechnologyShortName} TCK version {TechnologyVersion}, which includes: +include::tck-packages.inc[] +* The {TechnologyShortName} {TechnologyVersion} Vendor Implementation (VI) + +See the documentation for each of these software applications for +installation instructions. See link:install.html#GBFTP[Chapter 3, +"Installation,"] for instructions on installing the {TechnologyShortName} TCK. +2. Set up the {TechnologyShortName} TCK software. + +See link:config.html#GBFVV[Chapter 4, "Setup and Configuration,"] for +details about the following steps. + a. Set up your shell environment. + b. Modify the required properties in the +{jteFileName}+ file. + c. Configure the JavaTest harness. +3. Test the {TechnologyShortName} {TechnologyVersion} implementation. + +Test the {TechnologyShortName} implementation installation by running +the test suite. See link:using.html#GBFWO[Chapter 5, "Executing Tests."] diff --git a/jsp/docs/userguide/src/main/jbake/content/intro.inc b/jsp/docs/userguide/src/main/jbake/content/intro.inc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/jsp/docs/userguide/src/main/jbake/content/packages.inc b/jsp/docs/userguide/src/main/jbake/content/packages.inc new file mode 100644 index 0000000000..1565b7935b --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/packages.inc @@ -0,0 +1,5 @@ +** `jakarta.servlet.jsp` + +** `jakarta.servlet.jsp.el` + +** `jakarta.servlet.tagext` diff --git a/jsp/docs/userguide/src/main/jbake/content/platforms.inc b/jsp/docs/userguide/src/main/jbake/content/platforms.inc new file mode 100644 index 0000000000..236beed78f --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/platforms.inc @@ -0,0 +1 @@ +* CentOS Linux 7 \ No newline at end of file diff --git a/jsp/docs/userguide/src/main/jbake/content/preface.adoc b/jsp/docs/userguide/src/main/jbake/content/preface.adoc new file mode 100644 index 0000000000..ea10c28728 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/preface.adoc @@ -0,0 +1,147 @@ +type=page +status=published +title=Preface +next=intro.html +prev=title.html +~~~~~~ +include::attributes.conf[] +Preface +======= + +[[TCJRS00001]][[GBFTI]] + + +[[preface]] +Preface +------- + +This guide describes how to install, configure, and run the Technology +Compatibility Kit (TCK) that is used to test the {TechnologyFullName} +({TechnologyShortName} {TechnologyVersion}) technology. + +The {TechnologyShortName} TCK is a portable, configurable automated +test suite for verifying the compatibility of a vendor's +implementation of the {TechnologyShortName} {TechnologyVersion} +Specification (hereafter referred to as the vendor implementation or VI). +The {TechnologyShortName} TCK uses the JavaTest harness version +{JavaTestVersion} to run the test suite + + +[NOTE] +======================================================================= + +Note All references to specific Web URLs are given for the sake of your +convenience in locating the resources quickly. These references are +always subject to changes that are in many cases beyond the control of +the authors of this guide. + +======================================================================= + +Jakarta EE is a community sponsored and community run program. +Organizations contribute, along side individual contributors who use, evolve +and assist others. +Commercial support is not available through the Eclipse Foundation resources. +Please refer to the Eclipse EE4J project site +(https://projects.eclipse.org/projects/ee4j). +There, you will find additional details as well as a list of all the associated sub-projects +(Implementations and APIs), that make up Jakarta EE and define these specifications. +If you have questions about this Specification you may +send inquiries to {SpecificationInquiryList}. +If you have questions about this TCK, you may send inquiries to +{TCKInquiryList}. + +[[TCJRS00034]][[GBFUS]] + + +[[who-should-use-this-book]] +Who Should Use This Book +~~~~~~~~~~~~~~~~~~~~~~~~ + +This guide is for vendors that implement the {TechnologyShortName} +{TechnologyVersion} technology to assist them in running the test suite +that verifies compatibility of their implementation of the +{TechnologyShortName} {TechnologyVersion} Specification. + + +[[TCJRS00035]][[GBFPO]] + + +[[before-you-read-this-book]] +Before You Read This Book +~~~~~~~~~~~~~~~~~~~~~~~~~ + +You should be familiar with the {TechnologyShortName} +{TechnologyVersion}, version {TechnologyVersion} Specification, +which can be found at {SpecificationURL}. + +Before running the tests in the {TechnologyShortName} TCK, you should +familiarize yourself with the JavaTest documentation which can be +accessed at the +link:https://wiki.openjdk.java.net/display/CodeTools/JT+Harness[JT Harness web site]. + +[[TCJRS00036]][[GBFWF]] + + +[[typographic-conventions]] +Typographic Conventions +~~~~~~~~~~~~~~~~~~~~~~~ + +The following table describes the typographic conventions that are used +in this book. + +[width="100%",cols="15%,40%,45%",options="header",] +|======================================================================= +|Convention |Meaning |Example +|*Boldface* |Boldface type indicates graphical user interface elements +associated with an action, terms defined in text, or what you type, +contrasted with onscreen computer output. a| +From the *File* menu, select *Open Project*. + +A *cache* is a copy that is stored locally. + +`machine_name% *su*` + +`Password:` + +|`Monospace` |Monospace type indicates the names of files and +directories, commands within a paragraph, URLs, code in examples, text +that appears on the screen, or text that you enter. a| +Edit your `.login` file. + +Use `ls` `-a` to list all files. + +`machine_name% you have mail.` + +|_Italic_ |Italic type indicates book titles, emphasis, or placeholder +variables for which you supply particular values. a| +Read Chapter 6 in the _User's Guide_. + +Do _not_ save the file. + +The command to remove a file is `rm` _filename_. + +|======================================================================= + + +[[TCJRS00037]][[FWBSD]] + + +[[shell-prompts-in-command-examples]] +Shell Prompts in Command Examples +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following table shows the default UNIX system prompt and superuser +prompt for the C shell, Bourne shell, and Korn shell. + +[width="100%",cols="50%,50%",options="header",] +|===================================================== +|Shell |Prompt +|C shell |`machine_name%` +|C shell for superuser |`machine_name#` +|Bourne shell and Korn shell |`$` + +|Bourne shell and Korn shell for superuser |`#` + +|Bash shell |`shell_name-shell_version$` +|Bash shell for superuser |`shell_name-shell_version#` +|===================================================== + + + diff --git a/jsp/docs/userguide/src/main/jbake/content/rebuild.adoc b/jsp/docs/userguide/src/main/jbake/content/rebuild.adoc new file mode 100644 index 0000000000..e4021cfa19 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/rebuild.adoc @@ -0,0 +1,20 @@ +type=page +status=published +title=Appendix B: Rebuild Rules +prev=faq.html +~~~~~~ +include::attributes.conf[] + +Appendix B: Rebuild Rules +========================= + + +ifdef::rebuild[] +include::rebuild.inc[] +endif::rebuild[] +ifndef::rebuild[] + +<<< +Appendix B is not used for the {TechnologyShortName} TCK. + +endif::rebuild[] diff --git a/jsp/docs/userguide/src/main/jbake/content/rebuild.inc b/jsp/docs/userguide/src/main/jbake/content/rebuild.inc new file mode 100644 index 0000000000..fe3d5ac586 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/rebuild.inc @@ -0,0 +1,188 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +The following sections should be customized for the technology. +This text was originally from the JAX-RS TCK. Most references +to JAX-RS have been parameterized to serve as a simple starting +point for customization. There are still many details that will +need to be changed or removed. +/////////////////////////////////////////////////////////////////////// + +[[GCLIZ]] + + +[[b-packaging-the-test-applications-in-servlet-compliant-war-files-with-vi-specific-information]] +B Packaging the Test Applications in Servlet-Compliant WAR Files With VI-Specific Information +--------------------------------------------------------------------------------------------- + +The {TechnologyShortName} {TechnologyVersion} specification specifies +how {TechnologyShortName} applications are to be published in a Java SE +environment, JAX-WS endpoint, or Servlet–compliant Web container. + +{TechnologyShortName} TCK test application classes that are to be +published in a Java SE environment are located under +`$TS_HOME/classes`. + +The {TechnologyShortName} TCK comes with prebuilt test WAR files for +deployment on Jakarta EE {JakartaEEVersion} CI , which provides a Servlet–compliant Web +container. The WAR files are {TechnologyRI}-specific, with {TechnologyRI}'s servlet +class and {TechnologyRI}'s servlet defined in the `web.xml` deployment +descriptor. To run the TCK tests against the VI in a Servlet–compliant +Web container, the tests need to be repackaged to include the +VI-specific servlet, and the VI-specific servlet must be defined in the +deployment descriptor. + +The {TechnologyShortName} TCK makes it easier for the vendor by +including template WAR files that contain all of the necessary files +except for the VI-specific servlet adaptor class. The +{TechnologyShortName} TCK provides a tool to help with the repackaging +task. + +This appendix contains the following sections: + +* link:#GCLIO[Overview] +* link:#GCLLW[Creating the VI-Specific Servlet–Compliant WAR +Files] + +[[GCLIO]][[b.1-overview]] + +B.1 Overview +~~~~~~~~~~~~ + +The set of prebuilt archives and classes that ship with the +{TechnologyShortName} TCK were built using the Reference +Implementation, and must be deployed on Jakarta EE {JakartaEEVersion} CI and run against +the {TechnologyRI} CI. + +The prebuilt {TechnologyRI}-specific Servlet–compliant WAR files are located +under $TS_HOME`/dist`, and have `jersey` as part of their name; for +example: + +[source,oac_no_warn] +---- +$TS_HOME/dist/com/sun/ts/tests/jaxrs/ee/rs/get/jaxrs_rs_get_web.war.jersey +---- + +The names are made unique by including `jersey` to minimize the chances +that the files will be overwritten or modified. + +The Vendor must create VI-specific Servlet–compliant WAR files if the +Vendor chooses to publish on a Servlet–compliant Web container, so that +the VI-specific Servlet class will be included instead of the +{TechnologyRI}-specific Servlet class. + +[[GCLLW]][[b.2-creating-the-vi-specific-servletcompliant-war-files]] + +B.2 Creating the TCK VI-Specific Servlet–Compliant WAR Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All resource and application class files are already compiled. The +Vendor needs to package these files. All tests also come with a +`web.xml.template` file to be used for generating deployment descriptor +files with a VI-specific Servlet definition. + +Each test that has a {TechnologyShortName} resource class to publish comes with a +template deployment descriptor file. For example, the file +`$TS_HOME/src/com/sun/ts/tests/jaxrs/ee/rs/get/web.xml.template` +contains the following elements: + +[source,oac_no_warn] +---- + + + + CTSJAX-RSGET + servlet_adaptor + + jakarta.ws.rs.Application + com.sun.ts.tests.jaxrs.ee.rs.get.TSAppConfig + + 1 + + + CTSJAX-RSGET + /* + + + 30 + + +---- + +In this example, the `` element has a value of +`servlet_adaptor`, which is a placeholder for the +implementation-specific Servlet class. A {TechnologyRI}-specific +deployment descriptor also comes with the {TechnologyShortName} TCK, +and has the values for the +`com.sun.jersey.spi.container.servlet.ServletContainer`: + +[source,oac_no_warn] +---- + + + + CTSJAX-RSGET + + org/glassfish/jersey/servlet/ServletContainer + + + jakarta.ws.rs.Application + com.sun.ts.tests.jaxrs.ee.rs.get.TSAppConfig + + 1 + + + CTSJAX-RSGET + /* + + + 30 + + +---- + +The {TechnologyShortName} TCK provides a tool, +`${ts.home}/bin/xml/impl/glassfish/jersey.xml`, for the Jakarta EE {JakartaEEVersion} CI +that you can use as a model to help you create your own VI-specific Web +test application. + +[[GCLMA]][[b.2.1-to-create-a-vi-specific-deployment-descriptor]] + +B.2.1 To Create a VI-Specific Deployment Descriptor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Create a VI handler file. + +Create a VI-specific handler file +`$TS_HOME/bin/xml/impl/${`impl.vi`}/`jaxrs_impl_name`.xml` if one does +not already exist. Make sure the `jaxrs_impl_name` property is set in +the +{jteFileName}+, file and that it has a unique name so no file will be +overwritten. +2. Set the VI Servlet class property. + +Set the `servlet_adaptor` property in the +{jteFileName}+ file. This property +will be used to set the value of the `` element in the +deployment descriptor. +3. Create VI Ant tasks. + +Create a `update.jaxrs.wars` target in the VI handler file. Reference +this `update.jaxrs.wars` target in the `jersey.xml` file. + +This target will create a `web.xml.${`jaxrs_impl_name`}` for each test +that has a deployment descriptor template. The +`web.xml.${`jaxrs_impl_name`}` will contain the VI-specific Servlet +class name. It will also create the test WAR files under +`$TS_HOME/dist`; for example: + ++ +[source,oac_no_warn] +---- +ls $TS_HOME/dist/com/sun/ts/tests/jaxrs/ee/rs/get/ +jaxrs_rs_get_web.war.jersey +jaxrs_rs_get_web.war.${impl_name} +---- ++ +4. Change to the `$TS_HOME/bin` directory and execute the +`update.jaxrs.wars` Ant target. + +This creates a `web.xml.`VI_name file for each test based on the VI's +servlet class name and repackage the tests. diff --git a/jsp/docs/userguide/src/main/jbake/content/req-software.inc b/jsp/docs/userguide/src/main/jbake/content/req-software.inc new file mode 100644 index 0000000000..30cdadc4d2 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/req-software.inc @@ -0,0 +1,12 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +This is a list of software required in addition to the TCK and the CI. +For many Jakarta EE APIs, the Jakarta EE CI will be required, as described below. +For standalone technologies, no other software may be required, and the +below line can be removed. + +This is used in intro.adoc in section 1.3 and install.adoc in section 3.2. +/////////////////////////////////////////////////////////////////////// + +* Jakarta EE {JakartaEEVersion} CI (for example {TechnologyRI}, from {TechnologyRIURL}) or, at a minimum, a Web server with a Servlet +container diff --git a/jsp/docs/userguide/src/main/jbake/content/rules.adoc b/jsp/docs/userguide/src/main/jbake/content/rules.adoc new file mode 100644 index 0000000000..f6b08cebb9 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/rules.adoc @@ -0,0 +1,403 @@ +type=page +status=published +title=Procedure for Certification +next=install.html +prev=intro.html +~~~~~~ +include::attributes.conf[] +Procedure for Certification +=========================== + +[[GBFSN]] + + +[[procedure-for-certification]] +2 Procedure for Certification +----------------------------- + +This chapter describes the compatibility testing procedure and +compatibility requirements for {TechnologyFullName}. +This chapter contains the following sections: + +* link:#CJAFFDGI[Certification Overview] +* link:#CJAFGIGG[Compatibility Requirements] +* link:#CJAIIBDJ[Test Appeals Process] +* link:#CJAJECIE[Specifications for {TechnologyFullName}] +* link:#CJABAHGI[Libraries for {TechnologyFullName}] + +[[CJAFFDGI]][[certification-overview]] + +2.1 Certification Overview +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The certification process for {technologyShortName} {TechnologyVersion} +consists of the following activities: + +* Install the appropriate version of the Technology Compatibility Kit +(TCK) and execute it in accordance with the instructions in this User's +Guide. +* Ensure that you meet the requirements outlined in +link:#CJAFGIGG[Compatibility Requirements] below. +* Certify to the Eclipse Foundation that you have finished +testing and that you meet all of the compatibility requirements, +as required by the Eclipse Foundation TCK License. + +[[CJAFGIGG]][[compatibility-requirements]] + +2.2 Compatibility Requirements +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The compatibility requirements for {TechnologyShortName} +{TechnologyVersion} consist of meeting the requirements set forth by +the rules and associated definitions contained in this section. + +[[sthref4]][[definitions]] + +2.2.1 Definitions +^^^^^^^^^^^^^^^^^ + +These definitions are for use only with these compatibility requirements +and are not intended for any other purpose. + +[[sthref5]][[sthref6]] + +Table 2-1 Definitions  + +[width="100%",cols="25%,75%",options="header",] +|======================================================================= +|Term |Definition +|API Definition Product |A Product for which the only Java class files +contained in the product are those corresponding to the application +programming interfaces defined by the Specifications, and which is +intended only as a means for formally specifying the application +programming interfaces defined by the Specifications. + +|Computational Resource a| +A piece of hardware or software that may vary in quantity, existence, or +version, which may be required to exist in a minimum quantity and/or at +a specific or minimum revision level so as to satisfy the requirements +of the Test Suite. + +Examples of computational resources that may vary in quantity are RAM +and file descriptors. + +Examples of computational resources that may vary in existence (that is, +may or may not exist) are graphics cards and device drivers. + +Examples of computational resources that may vary in version are +operating systems and device drivers. + +|Configuration Descriptor |Any file whose format is well defined by a +specification and which contains configuration information for a set of +Java classes, archive, or other feature defined in the specification. + +|Conformance Tests |All tests in the Test Suite for an indicated +Technology Under Test, as released and distributed by the +Eclipse Foundation, excluding those tests on the +published Exclude List for the Technology Under Test. + +|Container |An implementation of the associated Libraries, as specified +in the Specifications, and a version of a Java Platform, Standard +Edition Runtime Product, as specified in the Specifications, or a later +version of a Java Platform, Standard Edition Runtime Product that also +meets these compatibility requirements. + +|Documented |Made technically accessible and made known to users, +typically by means such as marketing materials, product documentation, +usage messages, or developer support programs. + +|Exclude List |The most current list of tests, released and distributed by the +Eclipse Foundation, that are not required to be passed to certify +conformance. The Jakarta EE Specification Committee may add to the Exclude List for that +Test Suite as needed at any time, in which case the updated TCK version +supplants any previous Exclude Lists for that Test Suite. + +|Libraries a| +The class libraries, as specified through the Jakarta EE Specification Process +(JESP), for the Technology Under Test. + +The Libraries for {TechnologyFullName} are listed at the end of this chapter. + +|Location Resource a| +A location of classes or native libraries that are components of the +test tools or tests, such that these classes or libraries may be +required to exist in a certain location in order to satisfy the +requirements of the test suite. + +For example, classes may be required to exist in directories named in a +CLASSPATH variable, or native libraries may be required to exist in +directories named in a PATH variable. + +|Maintenance Lead |The corresponding Jakarta EE Specification Project +is responsible for maintaining the Specification, and the TCK for the +Technology. The Specification Project Team will propose revisions and +updates to the Jakarta EE Specification Committee which will approve +and release new versions of the specification and TCK. + +|Operating Mode a| +Any Documented option of a Product that can be changed by a user in +order to modify the behavior of the Product. + +For example, an Operating Mode can be binary (enable/disable +optimization), an enumeration (select from a list of protocols), or a +range (set the maximum number of active threads). + +Note that an Operating Mode may be selected by a command line switch, an +environment variable, a GUI user interface element, a configuration or +control file, etc. + +|Product |A vendor's product in which the Technology Under Test is +implemented or incorporated, and that is subject to compatibility +testing. + +|Product Configuration a| +A specific setting or instantiation of an Operating Mode. + +For example, a Product supporting an Operating Mode that permits user +selection of an external encryption package may have a Product +Configuration that links the Product to that encryption package. + +|Rebuildable Tests |Tests that must be built using an +implementation-specific mechanism. This mechanism must produce +specification-defined artifacts. Rebuilding and running these tests +against a known compatible implementation verifies that the mechanism generates +compatible artifacts. + +|Resource |A Computational Resource, a Location Resource, or a Security +Resource. + +|Rules |These definitions and rules in this Compatibility Requirements +section of this User's Guide. + +|Runtime |The Containers specified in the Specifications. + +|Security Resource a| +A security privilege or policy necessary for the proper execution of the +Test Suite. + +For example, the user executing the Test Suite will need the privilege +to access the files and network resources necessary for use of the +Product. + +|Specifications a| +The documents produced through the Jakarta EE Specification Process (JESP) +that define a particular Version of a Technology. + +The Specifications for the Technology Under Test are referenced later in +this chapter. + +|Technology |Specifications and one or more compatible implementations produced +through the Jakarta EE Specification Process (JESP). + +|Technology Under Test |Specifications and a compatible implementation +for {TechnologyFullName} Version {TechnologyVersion}. + +|Test Suite |The requirements, tests, and testing tools distributed by +the Maintenance Lead as applicable to a given Version of the Technology. + +|Version |A release of the Technology, as produced through the +Jakarta EE Specification Process (JESP). + +include::defns.inc[] +|======================================================================= + + +[[sthref7]][[rules-for-products]] + +2.2.2 Rules for {TechnologyFullName} Products +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following rules apply for each version of an operating system, +software component, and hardware platform Documented as supporting the +Product: + +*{techID}1* The Product must be able to satisfy all applicable compatibility +requirements, including passing all Conformance Tests, in every Product +Configuration and in every combination of Product Configurations, except +only as specifically exempted by these Rules. + +For example, if a Product provides distinct Operating Modes to optimize +performance, then that Product must satisfy all applicable compatibility +requirements for a Product in each Product Configuration, and +combination of Product Configurations, of those Operating Modes. + +*{techID}1.1* If an Operating Mode controls a Resource necessary for the +basic execution of the Test Suite, testing may always use a Product +Configuration of that Operating Mode providing that Resource, even if +other Product Configurations do not provide that Resource. +Notwithstanding such exceptions, each Product must have at least one set +of Product Configurations of such Operating Modes that is able to pass +all the Conformance Tests. + +For example, a Product with an Operating Mode that controls a security +policy (i.e., Security Resource) which has one or more Product +Configurations that cause Conformance Tests to fail may be tested using +a Product Configuration that allows all Conformance Tests to pass. + +*{techID}1.2* A Product Configuration of an Operating Mode that causes the +Product to report only version, usage, or diagnostic information is +exempted from these compatibility rules. + +*{techID}1.3* An API Definition Product is exempt from all functional +testing requirements defined here, except the signature tests. + +*{techID}2* Some Conformance Tests may have properties that may be changed. +Properties that can be changed are identified in the configuration +interview. Properties that can be changed are identified in the JavaTest +Environment (.jte) files in the Test Suite +installation. Apart from changing such properties and other allowed +modifications described in this User's Guide (if any), no source or +binary code for a Conformance Test may be altered in any way without +prior written permission. Any such allowed alterations to the +Conformance Tests will be provided via the Jakarta EE Specification Project +website and apply to all vendor compatible implementations. + +*{techID}3* The testing tools supplied as part of the Test Suite or as +updated by the Maintenance Lead must be used to certify compliance. + +*{techID}4* The Exclude List associated with the Test Suite cannot be +modified. + +*{techID}5* The Maintenance Lead can define exceptions to these Rules. Such +exceptions would be made available as above, and will apply to all vendor implementations. + +*{techID}6* All hardware and software component additions, deletions, and +modifications to a Documented supporting hardware/software platform, +that are not part of the Product but required for the Product to satisfy +the compatibility requirements, must be Documented and available to +users of the Product. + +For example, if a patch to a particular version of a supporting +operating system is required for the Product to pass the Conformance +Tests, that patch must be Documented and available to users of the +Product. + +*{techID}7* The Product must contain the full set of public and protected +classes and interfaces for all the Libraries. Those classes and +interfaces must contain exactly the set of public and protected methods, +constructors, and fields defined by the Specifications for those +Libraries. No subsetting, supersetting, or modifications of the public +and protected API of the Libraries are allowed except only as +specifically exempted by these Rules. + +*{techID}7.1* If a Product includes Technologies in addition to the +Technology Under Test, then it must contain the full set of combined +public and protected classes and interfaces. The API of the Product +must contain the union of the included Technologies. No further +modifications to the APIs of the included Technologies are allowed. + +ifdef::subset-allowed[] +*{techID}7.2* The Product may contain a subset of the classes and +interfaces for the Libraries. +endif::subset-allowed[] + +*{techID}8* Except for tests specifically required by this TCK to be rebuilt +(if any), the binary Conformance Tests supplied as part of the Test +Suite or as updated by the Maintenance Lead must be used to certify +compliance. + +*{techID}9* The functional programmatic behavior of any binary class or +interface must be that defined by the Specifications. + +include::rules.inc[] + +[[CJAIIBDJ]][[test-appeals-process]] + +2.3 Test Appeals Process +~~~~~~~~~~~~~~~~~~~~~~~~ + +Jakarta has a well established process for managing challenges to its +TCKs. Any implementor may submit a challenge to one or more tests in the +{TechnologyShortName} TCK as it relates to their implementation. Implementor +means the entity as a whole in charge of producing the final certified release. +*Challenges filed should represent the consensus of that entity*. + +2.3.1 Valid Challenges +^^^^^^^^^^^^^^^^^^^^^^ +Any test case (e.g., test class, @Test method), test case configuration (e.g., deployment descriptor), test beans, annotations, and other resources considered part of the TCK may be challenged. + +The following scenarios are considered in scope for test challenges: + +* Claims that a test assertion conflicts with the specification. +* Claims that a test asserts requirements over and above that of the specification. +* Claims that an assertion of the specification is not sufficiently implementable. +* Claims that a test is not portable or depends on a particular implementation. + +2.3.2 Invalid Challenges +^^^^^^^^^^^^^^^^^^^^^^^^ +The following scenarios are considered out of scope for test challenges and will be immediately closed if filed: + +* Challenging an implementation’s claim of passing a test. Certification is an honor system and these issues must be raised directly with the implementation. +* Challenging the usefulness of a specification requirement. The challenge process cannot be used to bypass the specification process and raise in question the need or relevance of a specification requirement. +* Claims the TCK is inadequate or missing assertions required by the specification. See the Improvement section, which is outside the scope of test challenges. +* Challenges that do not represent a consensus of the implementing community will be closed until such time that the community does agree or agreement cannot be made. The test challenge process is not the place for implementations to initiate their own internal discussions. +* Challenges to tests that are already excluded for any reason. +* Challenges that an excluded test should not have been excluded and should be re-added should be opened as a new enhancement request + +Test challenges must be made in writing via the {TechnologyShortName} specification project issue tracker +as described in link:#CJAJEAEI[Section 2.3.3, "TCK Test Appeals Steps."] + +All tests found to be invalid will be placed on the Exclude List +for that version of the {TechnologyShortName} TCK. + + +[[CJAJEAEI]][[tck-test-appeals-steps]] + +2.3.3 TCK Test Appeals Steps +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Challenges should be filed via the {TechnologyFullName} specification project’s issue tracker using the label `challenge` and include the following information: +* The relevant specification version and section number(s) +* The coordinates of the challenged test(s) +* The exact TCK and exclude list versions +* The implementation being tested, including name and company +* The full test name +* A full description of why the test is invalid and what the correct behavior is believed to be +* Any supporting material; debug logs, test output, test logs, run scripts, etc. + + + +2. Specification project evaluates the challenge. + +Challenges can be resolved by a specification project lead, or a project challenge triage team, after a consensus of the specification project committers is reached or attempts to gain consensus fails. +Specification projects may exercise lazy consensus, voting or any practice that follows the principles of Eclipse Foundation Development Process. +The expected timeframe for a response is two weeks or less. +If consensus cannot be reached by the specification project for a prolonged period of time, the default recommendation is to exclude the tests and address the dispute in a future revision of the specification. + +3. Accepted Challenges. + +A consensus that a test produces invalid results will result in the exclusion of that test from certification requirements, and an immediate update and release of an official distribution of the TCK including the new exclude list. The associated `challenge` issue must be closed with an `accepted` label to indicate it has been resolved. + +4. Rejected Challenges and Remedy. + +When a`challenge` issue is rejected, it must be closed with a label of `invalid` to indicate it has been rejected. +There appeal process for challenges rejected on technical terms is outlined in Escalation Appeal. +If, however, an implementer feels the TCK challenge process was not followed, an appeal issue should be filed with specification project’s TCK issue tracker using the label `challenge-appeal`. +A project lead should escalate the issue with the Jakarta EE Specification Committee via email (jakarta.ee-spec@eclipse.org). +The committee will evaluate the matter purely in terms of due process. +If the appeal is accepted, the original TCK challenge issue will be reopened and a label of `appealed-challenge` added, along with a discussion of the appeal decision, and the `challenge-appeal` issue with be closed. +If the appeal is rejected, the `challenge-appeal` issue should closed with a label of `invalid`. + +5. Escalation Appeal. + +If there is a concern that a TCK process issue has not been resolved satisfactorily, the +https://www.eclipse.org/projects/dev_process/#6_5_Grievance_Handling[Eclipse Development Process Grievance Handling] procedure should be followed to escalate the resolution. Note that this is not a mechanism to attempt to handle implementation specific issues. + + +[[CJAJECIE]][[specifications-for-technology]] + +2.4 Specifications for {TechnologyFullName} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The {TechnologyFullName} specification is available from the specification +project web-site: {SpecificationURL}. + +[[CJABAHGI]][[libraries-for-technology]] + +2.5 Libraries for {TechnologyFullName} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following is a list of the packages comprising the required class +libraries for {TechnologyShortName} {TechnologyVersion}: + +include::packages.inc[] + +For the latest list of packages, also see: + +{SpecificationURL} diff --git a/jsp/docs/userguide/src/main/jbake/content/rules.inc b/jsp/docs/userguide/src/main/jbake/content/rules.inc new file mode 100644 index 0000000000..9b4f464960 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/rules.inc @@ -0,0 +1,28 @@ +*{techID}10* Each Container must make technically accessible all Java SE +Runtime interfaces and functionality, as defined by the Specifications, +to programs running in the Container, except only as specifically +exempted by these Rules. + +*{techID}10.1* Containers may impose security constraints, as defined by +the Specifications. + +*{techID}11* A web Container must report an error, as defined by the +Specifications, when processing a {TechnologyShortName} Page that does not conform to the +Specifications. + +*{techID}12* The presence of a Java language comment or Java language +directive in a {TechnologyShortName} Page that specifies â€java†as the scripting +language, when processed by a web Container, must not cause the +functional programmatic behavior of that {TechnologyShortName} Page to vary from the +functional programmatic behavior of that {TechnologyShortName} Page in the absence of +that Java language comment or Java language directive. + +*{techID}13* The contents of any fixed template data (defined by the +Specifications) in a {TechnologyShortName} Page, when processed by a web Container, must +not affect the functional programmatic behavior of that {TechnologyShortName} Page, +except as defined by the Specifications. + +*{techID}14* The functional programmatic behavior of a {TechnologyShortName} Page that +specifies â€java†as the scripting language must be equivalent to the +functional programmatic behavior of the {TechnologyShortName} Page Implementation Class +constructed from that {TechnologyShortName} Page. diff --git a/jsp/docs/userguide/src/main/jbake/content/tck-packages.inc b/jsp/docs/userguide/src/main/jbake/content/tck-packages.inc new file mode 100644 index 0000000000..5ca50031cc --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/tck-packages.inc @@ -0,0 +1,7 @@ +** JDOM 1.1.3 + +** Apache Commons HTTP Client 3.1 + +** Apache Commons Logging 1.1.3 + +** Apache Commons Codec 1.9 diff --git a/jsp/docs/userguide/src/main/jbake/content/title.adoc b/jsp/docs/userguide/src/main/jbake/content/title.adoc new file mode 100644 index 0000000000..232172d727 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/title.adoc @@ -0,0 +1,42 @@ +type=page +status=published +title=TCK User's Guide for Technology Implementors +next=preface.html +prev=toc.html +~~~~~~ +include::attributes.conf[] + +TCK User's Guide for {TechnologyFullName}, Release {TechnologyVersion} for Jakarta EE +===================================================================================== + +[[eclipse-foundation]] +Eclipse Foundation +------------------ + +Technology Compatibility Kit User's Guide for {TechnologyFullName} + +Release {TechnologyVersion} for Jakarta EE + +{ReleaseDate} + +[[sthref1]] + +''''' + +Technology Compatibility Kit User's Guide for {TechnologyFullName}, +Release {TechnologyVersion} for Jakarta EE + +Copyright © {CopyrightDates} Oracle and/or its affiliates. All rights reserved. + +This program and the accompanying materials are made available under +the terms of the Eclipse Public License v. 2.0, which is available at +http://www.eclipse.org/legal/epl-2.0. + +SPDX-License-Identifier: EPL-2.0 + +Oracle and Java are registered trademarks of Oracle and/or its +affiliates. Other names may be trademarks of their respective owners. + +include::title.inc[] + + diff --git a/jsp/docs/userguide/src/main/jbake/content/title.inc b/jsp/docs/userguide/src/main/jbake/content/title.inc new file mode 100644 index 0000000000..afe281ccb5 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/title.inc @@ -0,0 +1,13 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +This is included at the tail end of the Title page. +The following section should be customized for the technology. +This is provided to allow each technology to customize legacy acronym names +that are used in this TCK. +Be sure to customize LegacyAcronym in attributes.conf +Add additional lines as needed for acronyms found in your TCK user guide. +/////////////////////////////////////////////////////////////////////// + +References in this document to {LegacyAcronym} refer to the {TechnologyFullName} unless otherwise noted. + +References in this document to JSTL refer to the Jakarta Standard Tag Library unless otherwise noted. \ No newline at end of file diff --git a/jsp/docs/userguide/src/main/jbake/content/using-examples.inc b/jsp/docs/userguide/src/main/jbake/content/using-examples.inc new file mode 100644 index 0000000000..1b3d96607c --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/using-examples.inc @@ -0,0 +1,53 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +These CLI examples can be customized as necessary. +/////////////////////////////////////////////////////////////////////// + +1. Change to any subdirectory under `/src/com/sun/ts/tests`. +2. Start JavaTest using the following command: ++ +-- +[source,oac_no_warn] +---- +ant runclient +---- +-- + +[[GCMCU]] + +==== Example 5-1 {TechnologyShortName} TCK Signature Tests + +To run the {TechnologyShortName} TCK signature tests, enter the +following commands: + +[source,subs="attributes"] +---- +cd {sigTestDirectoryExample} +ant runclient +---- + +[[GCMBV]] + + +==== Example 5-2 Single Test Directory + +To run a single test directory, enter the following commands: + +[source,subs="attributes"] +---- +cd {singleTestDirectoryExample} +ant runclient +---- + +[[GCMCA]] + + +==== Example 5-3 Subset of Test Directories + +To run a subset of test directories, enter the following commands: + +[source,subs="attributes"] +---- +cd {subsetTestDirectoryExample} +ant runclient +---- diff --git a/jsp/docs/userguide/src/main/jbake/content/using.adoc b/jsp/docs/userguide/src/main/jbake/content/using.adoc new file mode 100644 index 0000000000..9189c9f962 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/content/using.adoc @@ -0,0 +1,323 @@ +type=page +status=published +title=Executing Tests +next=debug.html +prev=config.html +~~~~~~ +include::attributes.conf[] +Executing Tests +=============== + +[[GBFWO]] + + +[[executing-tests]] +5 Executing Tests +----------------- + +The {TechnologyShortName} TCK uses the JavaTest harness to execute the +tests in the test suite. For detailed instructions that explain how to +run and use JavaTest, see the JavaTest User's Guide and Reference in +the documentation bundle. + +This chapter includes the following topics: + +* link:#GBFUZ[Starting JavaTest] +* link:#GBFWM[Running a Subset of the Tests] +* link:#GCLRR[Running the TCK Against your selected CI] +* link:#GCLRZ[Running the TCK Against a Vendor's Implementation] +* link:#GBFVK[Test Reports] + + +[NOTE] +======================================================================= + +The instructions in this chapter assume that you have installed and +configured your test environment as described in +link:install.html#GBFTP[Chapter 3, "Installation,"] and +link:config.html#GBFVV[Chapter 4, "Setup and Configuration,"], +respectively. + +======================================================================= + +ifdef::rebuild[] +As explained in link:rebuild.html#GCLIZ[Appendix B, "Packaging the +Test Applications in Servlet-Compliant WAR +Files With VI-Specific Information,"] the {TechnologyShortName} TCK +introduces the concept of repackaging the TCK tests. +endif::rebuild[] + + +[[GBFUZ]][[starting-javatest]] + +5.1 Starting JavaTest +~~~~~~~~~~~~~~~~~~~~~ + +There are two general ways to run the {TechnologyShortName} TCK using +the JavaTest harness software: + +* Through the JavaTest GUI +* From the command line in your shell environment + + +[NOTE] +======================================================================= + +The `ant` command referenced in the following +two procedures and elsewhere in this guide is the Apache Ant +build tool, which will need to be downloaded separately. +The `build.xml` file in `/bin` contains the various Ant +targets for the {TechnologyShortName} TCK test suite. + +======================================================================= + + +[[GBFWH]][[to-start-javatest-in-gui-mode]] + +5.1.1 To Start JavaTest in GUI Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Execute the following commands: + +[source,oac_no_warn] +---- +cd /bin +ant gui +---- + +[[GBFVW]][[to-start-javatest-in-command-line-mode]] + +5.1.2 To Start JavaTest in Command-Line Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +include::using-examples.inc[] + +[[GBFWM]][[running-a-subset-of-the-tests]] + +5.2 Running a Subset of the Tests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Use the following modes to run a subset of the tests: + +* link:#GBFVT[Section 5.2.1, "To Run a Subset of Tests in GUI Mode"] +* link:#GBFWK[Section 5.2.2, "To Run a Subset of Tests in Command-Line Mode"] +* link:#GBFVL[Section 5.2.3, "To Run a Subset of Tests in Batch Mode +Based on Prior Result Status"] + +[[GBFVT]][[to-run-a-subset-of-tests-in-gui-mode]] + +5.2.1 To Run a Subset of Tests in GUI Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. From the JavaTest main menu, click *Configure*, then click *Change +Configuration*, and then click *Tests to Run*. + +The tabbed Configuration Editor dialog box is displayed. +2. Click *Specify* from the option list on the left. +3. Select the tests you want to run from the displayed test tree, and +then click *Done*. + +You can select entire branches of the test tree, or use `Ctrl+Click` or +`Shift+Click` to select multiple tests or ranges of tests, respectively, +or select just a single test. +4. Click *Save File*. +5. Click *Run Tests*, and then click *Start* to run the tests you selected. + +Alternatively, you can `right-click` the test you want from the test tree +in the left section of the JavaTest main window, and choose *Execute +These Tests* from the menu. +6. Click *Report*, and then click *Create Report*. +7. Specify the directory in which the JavaTest test harness will write +the report, and then click *OK* + +A report is created, and you are asked whether you want to view it. +8. Click *Yes* to view the report. + +[[GBFWK]][[to-run-a-subset-of-tests-in-command-line-mode]] + +5.2.2 To Run a Subset of Tests in Command-Line Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Change to the directory containing the tests you want to run. +2. Start the test run by executing the following command: + ++ +[source] +---- +ant runclient +---- ++ +The tests in the directory and its subdirectories are run. + +[[GBFVL]][[to-run-a-subset-of-tests-in-batch-mode-based-on-prior-result-status]] + +5.2.3 To Run a Subset of Tests in Batch Mode Based on Prior Result Status +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can run certain tests in batch mode based on the test's prior run +status by specifying the `priorStatus` system property when invoking +`ant` + +Invoke `ant` with the `priorStatus` property. + +The accepted values for the `priorStatus` property are any combination +of the following: + +* `fail` +* `pass` +* `error` +* `notRun` + +For example, you could run all the {TechnologyShortName} tests with a +status of failed and error by invoking the following commands: + +[source,oac_no_warn] +---- +ant -DpriorStatus="fail,error" runclient +---- + +Note that multiple `priorStatus` values must be separated by commas. + +[[GCLRR]][[running-the-tck-against-the-ci]] + +5.3 Running the TCK Against another CI +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Some test scenarios are designed to ensure that the configuration and deployment of +all the prebuilt {TechnologyShortName} TCK tests against one Compatible +Implementation are successful operating with other compatible implementations, and that the TCK is ready for +compatibility testing against the Vendor and Compatible Implementations. + +1. Verify that you have followed the configuration instructions in +link:config.html#GBFVU[Section 4.1, "Configuring Your Environment to Run +the TCK Against the Compatible Implementation."] +2. If required, verify that you have completed the steps in +link:config.html#GCLIW[Section 4.3.2, "Deploying the Prebuilt Archives."] +3. Run the tests, as described in link:#GBFUZ[Section 5.1, "Starting +JavaTest,"] and, if desired, link:#GBFWM[Section 5.2, "Running a Subset +of the Tests."] + +[[GCLRZ]][[running-the-tck-against-a-vendors-implementation]] + +5.4 Running the TCK Against a Vendor's Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This test scenario is one of the compatibility test phases that all +Vendors must pass. + +1. Verify that you have followed the configuration instructions in +link:config.html#GCLHU[Section 4.2, "Configuring Your Environment to +Repackage and Run the TCK Against the Vendor Implementation."] +2. If required, verify that you have completed the steps in +link:config.html#GCLIL[Section 4.3.3, "Deploying the +Test Applications Against the Vendor Implementation."] +3. Run the tests, as described in link:#GBFUZ[Section 5.1, "Starting +JavaTest,"] and, if desired, link:#GBFWM[Section 5.2, "Running a Subset +of the Tests."] + +[[GBFVK]][[test-reports]] + +5.5 Test Reports +~~~~~~~~~~~~~~~~ + +A set of report files is created for every test run. These report files +can be found in the report directory you specify. After a test run is +completed, the JavaTest harness writes HTML reports for the test run. +You can view these files in the JavaTest ReportBrowser when running in +GUI mode, or in the web browser of your choice outside the JavaTest +interface. + +To see all of the HTML report files, enter the URL of the `report.html` +file. This file is the root file that links to all of the other HTML +reports. + +The JavaTest harness also creates a `summary.txt` file in the report +directory that you can open in any text editor. The `summary.txt` file +contains a list of all tests that were run, their test results, and +their status messages. + +[[GBFWD]][[creating-test-reports]] + +5.5.1 Creating Test Reports +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Use the following modes to create test reports: + +* link:#GBFVH[Section 5.5.1.1, "To Create a Test Report in GUI Mode"] +* link:#GBFVC[Section 5.5.1.2, "To Create a Test Report in Command-Line Mode"] + +[[GBFVH]][[to-create-a-test-report-in-gui-mode]] + +5.5.1.1 To Create a Test Report in GUI Mode ++++++++++++++++++++++++++++++++++++++++++++ + +1. From the JavaTest main menu, click *Report*, then click *Create Report*. + +You are prompted to specify a directory to use for your test reports. +2. Specify the directory you want to use for your reports, and then +click *OK*. + +Use the Filter list to specify whether you want to generate reports for +the current configuration, all tests, or a custom set of tests. + +You are asked whether you want to view report now. +3. Click *Yes* to display the new report in the JavaTest ReportBrowser. + +[[GBFVC]][[to-create-a-test-report-in-command-line-mode]] + +5.5.1.2 To Create a Test Report in Command-Line Mode +++++++++++++++++++++++++++++++++++++++++++++++++++++ + +1. Specify where you want to create the test report. +a. To specify the report directory from the command line at runtime, +use: ++ +[source] +---- +ant -Dreport.dir="report_dir" +---- ++ +Reports are written for the last test run to the directory you specify. +2. To specify the default report directory, set the `report.dir` +property in +{jteFileName}+. + +For example: ++ +[source] +---- +report.dir="/home/josephine/reports" +---- ++ +3. To disable reporting, set the `report.dir` property to `"none"`, +either on the command line or in +{jteFileName}+. + +For example: ++ +[source] +---- +ant -Dreport.dir="none" +---- ++ + +[[GBFVB]][[viewing-an-existing-test-report]] + +5.5.2 Viewing an Existing Test Report +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Use the following modes to view an existing test report: + +* link:#GBFVO[Section 5.5.2.1, "To View an Existing Report in GUI Mode"] +* link:#GBFWB[Section 5.5.2.2, "To View an Existing Report in +Command-Line Mode"] + +[[GBFVO]][[to-view-an-existing-report-in-gui-mode]] + +5.5.2.1 To View an Existing Report in GUI Mode +++++++++++++++++++++++++++++++++++++++++++++++ + +1. From the JavaTest main menu, click *Report*, then click *Open Report*. + +You are prompted to specify the directory containing the report you want +to open. +2. Select the report directory you want to open, and then click *Open*. + +The selected report set is opened in the JavaTest ReportBrowser. + +[[GBFWB]][[to-view-an-existing-report-in-command-line-mode]] + +5.5.2.2 To View an Existing Report in Command-Line Mode ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Use the Web browser of your choice to view the `report.html` file in the +report directory you specified from the command line or in +{jteFileName}+. + +include::using.inc[] + diff --git a/jsp/docs/userguide/src/main/jbake/content/using.inc b/jsp/docs/userguide/src/main/jbake/content/using.inc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/jsp/docs/userguide/src/main/jbake/jbake.properties b/jsp/docs/userguide/src/main/jbake/jbake.properties new file mode 100644 index 0000000000..05c7056f0a --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/jbake.properties @@ -0,0 +1,24 @@ +# +# Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License v. 2.0, which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# This Source Code may also be made available under the following Secondary +# Licenses when the conditions for such availability set forth in the +# Eclipse Public License v. 2.0 are satisfied: GNU General Public License, +# version 2 with the GNU Classpath Exception, which is available at +# https://www.gnu.org/software/classpath/license.html. +# +# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 +# + +site.host=http://jbake.org +render.tags=false +render.sitemap=false +render.archive=false +render.feed=false +render.index=false +asciidoctor.option.safe=0 +asciidoctor.attributes.export=true \ No newline at end of file diff --git a/jsp/docs/userguide/src/main/jbake/templates/footer.ftl b/jsp/docs/userguide/src/main/jbake/templates/footer.ftl new file mode 100644 index 0000000000..746cbf1ccd --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/templates/footer.ftl @@ -0,0 +1,44 @@ +<#-- a footer template fragment included in the page template --> +
+ + + + + + + + + <#if content.prev??> + + + + <#if content.next??> + + + + + +
+ + + Previous + + + + + Next + + + + + Contents + +
+ + + Eclipse Foundation Logo  + Copyright © 2017, 2021 Oracle and/or its affiliates. All rights reserved. + + + + diff --git a/jsp/docs/userguide/src/main/jbake/templates/header.ftl b/jsp/docs/userguide/src/main/jbake/templates/header.ftl new file mode 100644 index 0000000000..50b72ae8d0 --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/templates/header.ftl @@ -0,0 +1,54 @@ + +<#-- a header template fragment included in the page template --> + + + + <#if (content.title)??><#escape x as x?xml>${content.title}</#escape></#if> + + + + + + + + + +
+ ${content.title}
+
+
+ + + + + + + + + <#if content.prev??> + + + + <#if content.next??> + + + + + +
+ + + Previous + + + + + Next + + + + + Contents + +
+ diff --git a/jsp/docs/userguide/src/main/jbake/templates/menu.ftl b/jsp/docs/userguide/src/main/jbake/templates/menu.ftl new file mode 100644 index 0000000000..888c03dcff --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/templates/menu.ftl @@ -0,0 +1 @@ +<#-- a menu bar template fragment included in the page template --> \ No newline at end of file diff --git a/jsp/docs/userguide/src/main/jbake/templates/page.ftl b/jsp/docs/userguide/src/main/jbake/templates/page.ftl new file mode 100644 index 0000000000..eca51db35d --- /dev/null +++ b/jsp/docs/userguide/src/main/jbake/templates/page.ftl @@ -0,0 +1,8 @@ +<#-- a top level page layout template --> + +<#include "header.ftl"> +<#include "menu.ftl"> + +${content.body} + +<#include "footer.ftl"> \ No newline at end of file diff --git a/jsp/docs/userguide/src/theme/jakartaee-theme.yml b/jsp/docs/userguide/src/theme/jakartaee-theme.yml new file mode 100644 index 0000000000..6092a2f5c9 --- /dev/null +++ b/jsp/docs/userguide/src/theme/jakartaee-theme.yml @@ -0,0 +1,299 @@ +# +# Following is the asciidoctor-pdf default theme [1], with small +# customizations, mostly for header and footer, marked "EE". +# +# [1] https://github.com/asciidoctor/asciidoctor-pdf/blob/master/data/themes/default-theme.yml +# +font: + catalog: + # Noto Serif supports Latin, Latin-1 Supplement, Latin Extended-A, Greek, Cyrillic, Vietnamese & an assortment of symbols + Noto Serif: + normal: notoserif-regular-subset.ttf + bold: notoserif-bold-subset.ttf + italic: notoserif-italic-subset.ttf + bold_italic: notoserif-bold_italic-subset.ttf + # M+ 1mn supports ASCII and the circled numbers used for conums + M+ 1mn: + normal: mplus1mn-regular-ascii-conums.ttf + bold: mplus1mn-bold-ascii.ttf + italic: mplus1mn-italic-ascii.ttf + bold_italic: mplus1mn-bold_italic-ascii.ttf + # M+ 1p supports Latin, Latin-1 Supplement, Latin Extended, Greek, Cyrillic, Vietnamese, Japanese & an assortment of symbols + # It also provides arrows for ->, <-, => and <= replacements in case these glyphs are missing from font + M+ 1p Fallback: + normal: mplus1p-regular-fallback.ttf + bold: mplus1p-regular-fallback.ttf + italic: mplus1p-regular-fallback.ttf + bold_italic: mplus1p-regular-fallback.ttf + fallbacks: + - M+ 1p Fallback +page: + background_color: ffffff + layout: portrait + margin: [0.5in, 0.67in, 0.67in, 0.67in] + # margin_inner and margin_outer keys are used for recto/verso print margins when media=prepress + margin_inner: 0.75in + margin_outer: 0.59in + #size: A4 # EE + size: Letter # EE +base: + align: justify + # color as hex string (leading # is optional) + font_color: 333333 + # color as RGB array + #font_color: [51, 51, 51] + # color as CMYK array (approximated) + #font_color: [0, 0, 0, 0.92] + #font_color: [0, 0, 0, 92%] + font_family: Noto Serif + # choose one of these font_size/line_height_length combinations + #font_size: 14 + #line_height_length: 20 + #font_size: 11.25 + #line_height_length: 18 + #font_size: 11.2 + #line_height_length: 16 + font_size: 10.5 + #line_height_length: 15 + # correct line height for Noto Serif metrics + line_height_length: 12 + #font_size: 11.25 + #line_height_length: 18 + line_height: $base_line_height_length / $base_font_size + font_size_large: round($base_font_size * 1.25) + font_size_small: round($base_font_size * 0.85) + font_size_min: $base_font_size * 0.75 + font_style: normal + border_color: eeeeee + border_radius: 4 + border_width: 0.5 +# FIXME vertical_rhythm is weird; we should think in terms of ems +#vertical_rhythm: $base_line_height_length * 2 / 3 +# correct line height for Noto Serif metrics (comes with built-in line height) +vertical_rhythm: $base_line_height_length +horizontal_rhythm: $base_line_height_length +# QUESTION should vertical_spacing be block_spacing instead? +vertical_spacing: $vertical_rhythm +link: + font_color: 428bca +# literal is currently used for inline monospaced in prose and table cells +literal: + font_color: b12146 + font_family: M+ 1mn +menu_caret_content: " \u203a " +heading: + align: left + #font_color: 181818 + font_color: $base_font_color + font_family: $base_font_family + font_style: bold + # h1 is used for part titles (book doctype) or the doctitle (article doctype) + #h1_font_size: floor($base_font_size * 2.6) # EE + h1_font_size: floor($base_font_size * 2.5) # EE, squeeze title onto one line + # h2 is used for chapter titles (book doctype only) + h2_font_size: floor($base_font_size * 2.15) + h3_font_size: round($base_font_size * 1.7) + h4_font_size: $base_font_size_large + h5_font_size: $base_font_size + h6_font_size: $base_font_size_small + #line_height: 1.4 + # correct line height for Noto Serif metrics (comes with built-in line height) + line_height: 1 + margin_top: $vertical_rhythm * 0.4 + margin_bottom: $vertical_rhythm * 0.9 +title_page: + align: right + logo: + top: 10% + title: + top: 55% + font_size: $heading_h1_font_size + font_color: 999999 + line_height: 0.9 + subtitle: + font_size: $heading_h3_font_size + font_style: bold_italic + line_height: 1 + authors: + margin_top: $base_font_size * 1.25 + font_size: $base_font_size_large + font_color: 181818 + revision: + margin_top: $base_font_size * 1.25 +block: + margin_top: 0 + margin_bottom: $vertical_rhythm +caption: + align: left + font_size: $base_font_size * 0.95 + font_style: italic + # FIXME perhaps set line_height instead of / in addition to margins? + margin_inside: $vertical_rhythm / 3 + #margin_inside: $vertical_rhythm / 4 + margin_outside: 0 +lead: + font_size: $base_font_size_large + line_height: 1.4 +abstract: + font_color: 5c6266 + font_size: $lead_font_size + line_height: $lead_line_height + font_style: italic + first_line_font_style: bold + title: + align: center + font_color: $heading_font_color + font_family: $heading_font_family + font_size: $heading_h4_font_size + font_style: $heading_font_style +admonition: + column_rule_color: $base_border_color + column_rule_width: $base_border_width + padding: [0, $horizontal_rhythm, 0, $horizontal_rhythm] + #icon: + # tip: + # name: fa-lightbulb-o + # stroke_color: 111111 + # size: 24 + label: + text_transform: uppercase + font_style: bold +blockquote: + font_color: $base_font_color + font_size: $base_font_size_large + border_color: $base_border_color + border_width: 5 + # FIXME disable negative padding bottom once margin collapsing is implemented + padding: [0, $horizontal_rhythm, $block_margin_bottom * -0.75, $horizontal_rhythm + $blockquote_border_width / 2] + cite_font_size: $base_font_size_small + cite_font_color: 999999 +# code is used for source blocks (perhaps change to source or listing?) +code: + font_color: $base_font_color + font_family: $literal_font_family + font_size: ceil($base_font_size) + padding: $code_font_size + line_height: 1.25 + # line_gap is an experimental property to control how a background color is applied to an inline block element + line_gap: 3.8 + background_color: f5f5f5 + border_color: cccccc + border_radius: $base_border_radius + border_width: 0.75 +conum: + font_family: M+ 1mn + font_color: $literal_font_color + font_size: $base_font_size + line_height: 4 / 3 +example: + border_color: $base_border_color + border_radius: $base_border_radius + border_width: 0.75 + background_color: ffffff + # FIXME reenable padding bottom once margin collapsing is implemented + padding: [$vertical_rhythm, $horizontal_rhythm, 0, $horizontal_rhythm] +image: + align: left +prose: + margin_top: $block_margin_top + margin_bottom: $block_margin_bottom +sidebar: + background_color: eeeeee + border_color: e1e1e1 + border_radius: $base_border_radius + border_width: $base_border_width + # FIXME reenable padding bottom once margin collapsing is implemented + padding: [$vertical_rhythm, $vertical_rhythm * 1.25, 0, $vertical_rhythm * 1.25] + title: + align: center + font_color: $heading_font_color + font_family: $heading_font_family + font_size: $heading_h4_font_size + font_style: $heading_font_style +thematic_break: + border_color: $base_border_color + border_style: solid + border_width: $base_border_width + margin_top: $vertical_rhythm * 0.5 + margin_bottom: $vertical_rhythm * 1.5 +description_list: + term_font_style: bold + term_spacing: $vertical_rhythm / 4 + description_indent: $horizontal_rhythm * 1.25 +outline_list: + indent: $horizontal_rhythm * 1.5 + #marker_font_color: 404040 + # NOTE outline_list_item_spacing applies to list items that do not have complex content + item_spacing: $vertical_rhythm / 2 +table: + background_color: $page_background_color + #head_background_color: + #head_font_color: $base_font_color + head_font_style: bold + #body_background_color: + body_stripe_background_color: f9f9f9 + foot_background_color: f0f0f0 + border_color: dddddd + border_width: $base_border_width + cell_padding: 3 +toc: + indent: $horizontal_rhythm + line_height: 1.4 + dot_leader: + #content: ". " + font_color: a9a9a9 + #levels: 2 3 +# NOTE in addition to footer, header is also supported +footer: + font_size: $base_font_size_small + # NOTE if background_color is set, background and border will span width of page + #border_color: dddddd # EE + #border_width: 0.25 # EE + height: $base_line_height_length * 2.5 + line_height: 1 + padding: [$base_line_height_length / 2, 1, 0, 1] + vertical_align: top + #image_vertical_align: or + # additional attributes for content: + # * {page-count} + # * {page-number} + # * {document-title} + # * {document-subtitle} + # * {chapter-title} + # * {section-title} + # * {section-or-chapter-title} + recto: + #columns: "<50% =0% >50%" + right: + #content: '{page-number}' # EE + #content: '{section-or-chapter-title} | {page-number}' + #content: '{document-title} | {page-number}' + content: '{document-title}{nbsp}{nbsp}{nbsp} *{page-number}*' # EE + #center: + # content: '{page-number}' + left: # EE + content: '{status}' # EE + verso: + #columns: $footer_recto_columns + left: + #content: $footer_recto_right_content # EE + #content: '{page-number} | {chapter-title}' + content: '*{page-number}* {nbsp}{nbsp}{nbsp}{document-title}' # EE + #center: + # content: '{page-number}' + right: # EE + content: '{status}' # EE +header: # EE + font_size: $base_font_size_small # EE + border_color: dddddd # EE + border_width: 0.25 # EE + height: $base_line_height_length * 2.5 # EE + line_height: 1 # EE + padding: [$base_line_height_length / 2, 1, 0, 1] # EE + vertical_align: top # EE + recto: # EE + right: # EE + content: '{section-or-chapter-title}' # EE + verso: # EE + left: # EE + content: '{section-or-chapter-title}' # EE diff --git a/jsp/src/main/assembly/assembly.xml b/jsp/src/main/assembly/assembly.xml new file mode 100644 index 0000000000..bc86b540c1 --- /dev/null +++ b/jsp/src/main/assembly/assembly.xml @@ -0,0 +1,77 @@ + + + + + distribution + pages-tck + + zip + + + + + + ${project.basedir}/src/main/resources/LICENSE_${license}.md + LICENSE.md + + + ${project.basedir}/src/main/resources/jakarta.servlet.jsp.sig_3.0 + jakarta.servlet.jsp.sig_3.0 + + + + + ${project.build.directory} + artifacts + 755 + + **/*.jar + + + + ${project.basedir}/docs + docs + 755 + + assertions + *.html + *.txt + + + + ${project.basedir}/docs/userguide/target/generated-docs + docs/pdf-usersguide + 755 + + *.pdf + + + + ${project.basedir}/docs/userguide/target/staging + docs/html-usersguide + 755 + + *.html + css/** + img/** + + + + diff --git a/jsp/src/main/resources/LICENSE_EFTL.md b/jsp/src/main/resources/LICENSE_EFTL.md new file mode 100644 index 0000000000..a2106828a6 --- /dev/null +++ b/jsp/src/main/resources/LICENSE_EFTL.md @@ -0,0 +1,83 @@ +# Eclipse Foundation Technology Compatibility Kit License - v 1.0 + +Copyright (c) 2018, Eclipse Foundation, Inc. and its licensors. + +Redistribution and use in binary form is permitted provided that the +following conditions are met: + +1. Use of the Technology Compatibility Kit accompanying this license + (the "TCK") and its documentation is permitted solely for the + purpose of testing compatibility of an implementation (the + "Product") of a specification (the "Specification") made available + by the Eclipse Foundation, Inc. ("Eclipse"). + +2. Only those modifications expressly permitted by the TCK and its + documentation are permitted. Except in these limited circumstances, + no modifications to the TCK are permitted under this license. + +3. A Product will be deemed to be "compatible" with the Specification + if it fully and completely meets and satisfies all requirements of + the TCK. + +4. Before any claim of compatibility (or any similar claim suggesting + compatibility) is made based on the TCK, the testing party must: + + a. use the TCK to demonstrate that the Product fully and + completely meets and satisfies all requirements of the TCK; + + b. make TCK test results showing full and complete satisfaction of + all requirements of the TCK publicly available on the testing + party's website and send a link to such test results to Eclipse + at [tck@eclipse.org](mailto:tck@eclipse.org); and + + c. comply with any requirements stated in the Specification with + regard to subsetting, supersetting, modifying or extending the + Specification in any Product claimed to be compatible with the + Specification. + +5. The test results must be continuously available and the link must + be live for at least as long as the Product is available in the + marketplace. + +6. The TCK may not be used as a basis for any statements of partial + compatibility. The TCK may only be used as a basis for true, + factual statements of full compatibility of Products that fully + meet and satisfy all requirements of the TCK. + +7. A determination that a Product is compatible with the TCK does not, + in itself, give rise to the right to use any name, mark, logo + associated with the TCK, Eclipse, or Eclipse's contributors or + licensors. + +8. Upon the request of Eclipse, a tester will retract any statements + of compatibility (or any similar claim suggesting compatibility) + which Eclipse reasonably determines to be false or misleading or in + violation of the terms of this license. + +9. Redistribution of the TCK must be under this Eclipse Foundation + Technology Compatibility Kit License and must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +10. Neither the name, trademarks or logos of Eclipse, nor the names, + trademarks or logos of its contributors or licensors may be used to + endorse or promote products tested with this software without + specific prior written permission. + +11. The source code for the TCK accompanying this license is available + from Eclipse. + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED ON +AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER +EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR +CONDITIONS OF TITLE, NON- INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR +A PARTICULAR PURPOSE. TO THE EXTENT PERMITTED BY APPLICABLE LAW, +NEITHER THE COPYRIGHT OWNER OR ANY CONTRIBUTORS SHALL HAVE ANY +LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. diff --git a/jsp/src/main/resources/LICENSE_EPL.md b/jsp/src/main/resources/LICENSE_EPL.md new file mode 100644 index 0000000000..1d428edaa0 --- /dev/null +++ b/jsp/src/main/resources/LICENSE_EPL.md @@ -0,0 +1,637 @@ +# Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + + 1. DEFINITIONS + + "Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + + "Contributor" means any person or entity that Distributes the Program. + + "Licensed Patents" mean patent claims licensable by a Contributor which + are necessarily infringed by the use or sale of its Contribution alone + or when combined with the Program. + + "Program" means the Contributions Distributed in accordance with this + Agreement. + + "Recipient" means anyone who receives the Program under this Agreement + or any Secondary License (as applicable), including Contributors. + + "Derivative Works" shall mean any work, whether in Source Code or other + form, that is based on (or derived from) the Program and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. + + "Modified Works" shall mean any work in Source Code or other form that + results from an addition to, deletion from, or modification of the + contents of the Program, including, for purposes of clarity any new file + in Source Code form that contains any contents of the Program. Modified + Works shall not include works that contain only declarations, + interfaces, types, classes, structures, or files of the Program solely + in each case in order to link to, bind by name, or subclass the Program + or Modified Works thereof. + + "Distribute" means the acts of a) distributing or b) making available + in any manner that enables the transfer of a copy. + + "Source Code" means the form of a Program preferred for making + modifications, including but not limited to software source code, + documentation source, and configuration files. + + "Secondary License" means either the GNU General Public License, + Version 2.0, or any later versions of that license, including any + exceptions or additional permissions as identified by the initial + Contributor. + + 2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + + 3. REQUIREMENTS + + 3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + + 3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + + 3.3 Contributors may not remove or alter any copyright, patent, + trademark, attribution notices, disclaimers of warranty, or limitations + of liability ("notices") contained within the Program from any copy of + the Program which they Distribute, provided that Contributors may add + their own appropriate notices. + + 4. COMMERCIAL DISTRIBUTION + + Commercial distributors of software may accept certain responsibilities + with respect to end users, business partners and the like. While this + license is intended to facilitate the commercial use of the Program, + the Contributor who includes the Program in a commercial product + offering should do so in a manner which does not create potential + liability for other Contributors. Therefore, if a Contributor includes + the Program in a commercial product offering, such Contributor + ("Commercial Contributor") hereby agrees to defend and indemnify every + other Contributor ("Indemnified Contributor") against any losses, + damages and costs (collectively "Losses") arising from claims, lawsuits + and other legal actions brought by a third party against the Indemnified + Contributor to the extent caused by the acts or omissions of such + Commercial Contributor in connection with its distribution of the Program + in a commercial product offering. The obligations in this section do not + apply to any claims or Losses relating to any actual or alleged + intellectual property infringement. In order to qualify, an Indemnified + Contributor must: a) promptly notify the Commercial Contributor in + writing of such claim, and b) allow the Commercial Contributor to control, + and cooperate with the Commercial Contributor in, the defense and any + related settlement negotiations. The Indemnified Contributor may + participate in any such claim at its own expense. + + For example, a Contributor might include the Program in a commercial + product offering, Product X. That Contributor is then a Commercial + Contributor. If that Commercial Contributor then makes performance + claims, or offers warranties related to Product X, those performance + claims and warranties are such Commercial Contributor's responsibility + alone. Under this section, the Commercial Contributor would have to + defend claims against the other Contributors related to those performance + claims and warranties, and if a court requires any other Contributor to + pay any damages as a result, the Commercial Contributor must pay + those damages. + + 5. NO WARRANTY + + EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT + PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" + BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR + IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR + PURPOSE. Each Recipient is solely responsible for determining the + appropriateness of using and distributing the Program and assumes all + risks associated with its exercise of rights under this Agreement, + including but not limited to the risks and costs of program errors, + compliance with applicable laws, damage to or loss of data, programs + or equipment, and unavailability or interruption of operations. + + 6. DISCLAIMER OF LIABILITY + + EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT + PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS + SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST + PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE + EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + + 7. GENERAL + + If any provision of this Agreement is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this Agreement, and without further + action by the parties hereto, such provision shall be reformed to the + minimum extent necessary to make such provision valid and enforceable. + + If Recipient institutes patent litigation against any entity + (including a cross-claim or counterclaim in a lawsuit) alleging that the + Program itself (excluding combinations of the Program with other software + or hardware) infringes such Recipient's patent(s), then such Recipient's + rights granted under Section 2(b) shall terminate as of the date such + litigation is filed. + + All Recipient's rights under this Agreement shall terminate if it + fails to comply with any of the material terms or conditions of this + Agreement and does not cure such failure in a reasonable period of + time after becoming aware of such noncompliance. If all Recipient's + rights under this Agreement terminate, Recipient agrees to cease use + and distribution of the Program as soon as reasonably practicable. + However, Recipient's obligations under this Agreement and any licenses + granted by Recipient relating to the Program shall continue and survive. + + Everyone is permitted to copy and distribute copies of this Agreement, + but in order to avoid inconsistency the Agreement is copyrighted and + may only be modified in the following manner. The Agreement Steward + reserves the right to publish new versions (including revisions) of + this Agreement from time to time. No one other than the Agreement + Steward has the right to modify this Agreement. The Eclipse Foundation + is the initial Agreement Steward. The Eclipse Foundation may assign the + responsibility to serve as the Agreement Steward to a suitable separate + entity. Each new version of the Agreement will be given a distinguishing + version number. The Program (including Contributions) may always be + Distributed subject to the version of the Agreement under which it was + received. In addition, after a new version of the Agreement is published, + Contributor may elect to Distribute the Program (including its + Contributions) under the new version. + + Except as expressly stated in Sections 2(a) and 2(b) above, Recipient + receives no rights or licenses to the intellectual property of any + Contributor under this Agreement, whether expressly, by implication, + estoppel or otherwise. All rights in the Program not expressly granted + under this Agreement are reserved. Nothing in this Agreement is intended + to be enforceable by any entity that is not a Contributor or Recipient. + No third-party beneficiary rights are created under this Agreement. + + Exhibit A - Form of Secondary Licenses Notice + + "This Source Code may also be made available under the following + Secondary Licenses when the conditions for such availability set forth + in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), + version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. + +--- + +## The GNU General Public License (GPL) Version 2, June 1991 + + Copyright (C) 1989, 2022 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor + Boston, MA 02110-1335 + USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your freedom to + share and change it. By contrast, the GNU General Public License is + intended to guarantee your freedom to share and change free software--to + make sure the software is free for all its users. This General Public + License applies to most of the Free Software Foundation's software and + to any other program whose authors commit to using it. (Some other Free + Software Foundation software is covered by the GNU Library General + Public License instead.) You can apply it to your programs, too. + + When we speak of free software, we are referring to freedom, not price. + Our General Public Licenses are designed to make sure that you have the + freedom to distribute copies of free software (and charge for this + service if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid anyone + to deny you these rights or to ask you to surrender the rights. These + restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether gratis + or for a fee, you must give the recipients all the rights that you have. + You must make sure that they, too, receive or can get the source code. + And you must show them these terms so they know their rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + Finally, any free program is threatened constantly by software patents. + We wish to avoid the danger that redistributors of a free program will + individually obtain patent licenses, in effect making the program + proprietary. To prevent this, we have made it clear that any patent must + be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains a + notice placed by the copyright holder saying it may be distributed under + the terms of this General Public License. The "Program", below, refers + to any such program or work, and a "work based on the Program" means + either the Program or any derivative work under copyright law: that is + to say, a work containing the Program or a portion of it, either + verbatim or with modifications and/or translated into another language. + (Hereinafter, translation is included without limitation in the term + "modification".) Each licensee is addressed as "you". + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of running + the Program is not restricted, and the output from the Program is + covered only if its contents constitute a work based on the Program + (independent of having been made by running the Program). Whether that + is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's source + code as you receive it, in any medium, provided that you conspicuously + and appropriately publish on each copy an appropriate copyright notice + and disclaimer of warranty; keep intact all the notices that refer to + this License and to the absence of any warranty; and give any other + recipients of the Program a copy of this License along with the Program. + + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion of + it, thus forming a work based on the Program, and copy and distribute + such modifications or work under the terms of Section 1 above, provided + that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any part + thereof, to be licensed as a whole at no charge to all third parties + under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this License. + (Exception: if the Program itself is interactive but does not + normally print such an announcement, your work based on the Program + is not required to print an announcement.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, and + can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based on + the Program, the distribution of the whole must be on the terms of this + License, whose permissions for other licensees extend to the entire + whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of a + storage or distribution medium does not bring the other work under the + scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your cost + of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed + only for noncommercial distribution and only if you received the + program in object code or executable form with such an offer, in + accord with Subsection b above.) + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source code + means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to control + compilation and installation of the executable. However, as a special + exception, the source code distributed need not include anything that is + normally distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on + which the executable runs, unless that component itself accompanies the + executable. + + If distribution of executable or object code is made by offering access + to copy from a designated place, then offering equivalent access to copy + the source code from the same place counts as distribution of the source + code, even though third parties are not compelled to copy the source + along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt otherwise + to copy, modify, sublicense or distribute the Program is void, and will + automatically terminate your rights under this License. However, parties + who have received copies, or rights, from you under this License will + not have their licenses terminated so long as such parties remain in + full compliance. + + 5. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and all + its terms and conditions for copying, distributing or modifying the + Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further restrictions + on the recipients' exercise of the rights granted herein. You are not + responsible for enforcing compliance by third parties to this License. + + 7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot distribute + so as to satisfy simultaneously your obligations under this License and + any other pertinent obligations, then as a consequence you may not + distribute the Program at all. For example, if a patent license would + not permit royalty-free redistribution of the Program by all those who + receive copies directly or indirectly through you, then the only way you + could satisfy both it and this License would be to refrain entirely from + distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is implemented + by public license practices. Many people have made generous + contributions to the wide range of software distributed through that + system in reliance on consistent application of that system; it is up to + the author/donor to decide if he or she is willing to distribute + software through any other system and a licensee cannot impose that choice. + + This section is intended to make thoroughly clear what is believed to be + a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License may + add an explicit geographical distribution limitation excluding those + countries, so that distribution is permitted only in or among countries + not thus excluded. In such case, this License incorporates the + limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new + versions of the General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and + conditions either of that version or of any later version published by + the Free Software Foundation. If the Program does not specify a version + number of this License, you may choose any version ever published by the + Free Software Foundation. + + 10. If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the + author to ask for permission. For software which is copyrighted by the + Free Software Foundation, write to the Free Software Foundation; we + sometimes make exceptions for this. Our decision will be guided by the + two goals of preserving the free status of all derivatives of our free + software and of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO + WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. + EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR + OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, + EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE + ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH + YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL + NECESSARY SERVICING, REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY + AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR + DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL + DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM + (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED + INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF + THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR + OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest to + attach them to the start of each source file to most effectively convey + the exclusion of warranty; and each file should have at least the + "copyright" line and a pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type + `show w'. This is free software, and you are welcome to redistribute + it under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the + appropriate parts of the General Public License. Of course, the commands + you use may be called something other than `show w' and `show c'; they + could even be mouse-clicks or menu items--whatever suits your program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (which makes passes at compilers) written by + James Hacker. + + signature of Ty Coon, 1 April 1989 + Ty Coon, President of Vice + + This General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications + with the library. If this is what you want to do, use the GNU Library + General Public License instead of this License. + +--- + +## CLASSPATH EXCEPTION + + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License version 2 cover the whole + combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from or + based on this library. If you modify this library, you may extend this + exception to your version of the library, but you are not obligated to + do so. If you do not wish to do so, delete this exception statement + from your version. diff --git a/jsp/src/main/resources/jakarta.servlet.jsp.sig_3.0 b/jsp/src/main/resources/jakarta.servlet.jsp.sig_3.0 new file mode 100644 index 0000000000..f11597b672 --- /dev/null +++ b/jsp/src/main/resources/jakarta.servlet.jsp.sig_3.0 @@ -0,0 +1,663 @@ +#Signature file v4.1 +#Version 3.1 + +CLSS public abstract jakarta.el.ELResolver +cons public init() +fld public final static java.lang.String RESOLVABLE_AT_DESIGN_TIME = "resolvableAtDesignTime" +fld public final static java.lang.String TYPE = "type" +meth public <%0 extends java.lang.Object> {%%0} convertToType(jakarta.el.ELContext,java.lang.Object,java.lang.Class<{%%0}>) +meth public abstract boolean isReadOnly(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public abstract java.lang.Class getCommonPropertyType(jakarta.el.ELContext,java.lang.Object) +meth public abstract java.lang.Class getType(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public abstract java.lang.Object getValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public abstract void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +meth public java.lang.Object invoke(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Class[],java.lang.Object[]) +meth public java.util.Iterator getFeatureDescriptors(jakarta.el.ELContext,java.lang.Object) + anno 0 java.lang.Deprecated(boolean forRemoval=true, java.lang.String since="5.0") +supr java.lang.Object + +CLSS public abstract interface jakarta.servlet.Servlet +meth public abstract jakarta.servlet.ServletConfig getServletConfig() +meth public abstract java.lang.String getServletInfo() +meth public abstract void destroy() +meth public abstract void init(jakarta.servlet.ServletConfig) throws jakarta.servlet.ServletException +meth public abstract void service(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse) throws jakarta.servlet.ServletException,java.io.IOException + +CLSS public final jakarta.servlet.jsp.ErrorData +cons public init(java.lang.Throwable,int,java.lang.String,java.lang.String) +meth public int getStatusCode() +meth public java.lang.String getRequestURI() +meth public java.lang.String getServletName() +meth public java.lang.Throwable getThrowable() +supr java.lang.Object +hfds servletName,statusCode,throwable,uri + +CLSS public abstract interface jakarta.servlet.jsp.HttpJspPage +intf jakarta.servlet.jsp.JspPage +meth public abstract void _jspService(jakarta.servlet.http.HttpServletRequest,jakarta.servlet.http.HttpServletResponse) throws jakarta.servlet.ServletException,java.io.IOException + +CLSS public abstract interface jakarta.servlet.jsp.JspApplicationContext +meth public abstract jakarta.el.ExpressionFactory getExpressionFactory() +meth public abstract void addELContextListener(jakarta.el.ELContextListener) +meth public abstract void addELResolver(jakarta.el.ELResolver) + +CLSS public abstract jakarta.servlet.jsp.JspContext +cons public init() +meth public abstract int getAttributesScope(java.lang.String) +meth public abstract jakarta.el.ELContext getELContext() +meth public abstract jakarta.servlet.jsp.JspWriter getOut() +meth public abstract jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +meth public abstract jakarta.servlet.jsp.el.VariableResolver getVariableResolver() + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +meth public abstract java.lang.Object findAttribute(java.lang.String) +meth public abstract java.lang.Object getAttribute(java.lang.String) +meth public abstract java.lang.Object getAttribute(java.lang.String,int) +meth public abstract java.util.Enumeration getAttributeNamesInScope(int) +meth public abstract void removeAttribute(java.lang.String) +meth public abstract void removeAttribute(java.lang.String,int) +meth public abstract void setAttribute(java.lang.String,java.lang.Object) +meth public abstract void setAttribute(java.lang.String,java.lang.Object,int) +meth public jakarta.servlet.jsp.JspWriter popBody() +meth public jakarta.servlet.jsp.JspWriter pushBody(java.io.Writer) +supr java.lang.Object + +CLSS public abstract jakarta.servlet.jsp.JspEngineInfo +cons public init() +meth public abstract java.lang.String getSpecificationVersion() +supr java.lang.Object + +CLSS public jakarta.servlet.jsp.JspException +cons public init() +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +cons public init(java.lang.Throwable) +meth public java.lang.Throwable getRootCause() + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +supr java.lang.Exception +hfds serialVersionUID + +CLSS public abstract jakarta.servlet.jsp.JspFactory +cons public init() +meth public abstract jakarta.servlet.jsp.JspApplicationContext getJspApplicationContext(jakarta.servlet.ServletContext) +meth public abstract jakarta.servlet.jsp.JspEngineInfo getEngineInfo() +meth public abstract jakarta.servlet.jsp.PageContext getPageContext(jakarta.servlet.Servlet,jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,java.lang.String,boolean,int,boolean) +meth public abstract void releasePageContext(jakarta.servlet.jsp.PageContext) +meth public static jakarta.servlet.jsp.JspFactory getDefaultFactory() +meth public static void setDefaultFactory(jakarta.servlet.jsp.JspFactory) +supr java.lang.Object +hfds deflt + +CLSS public abstract interface jakarta.servlet.jsp.JspPage +intf jakarta.servlet.Servlet +meth public abstract void jspDestroy() +meth public abstract void jspInit() + +CLSS public jakarta.servlet.jsp.JspTagException +cons public init() +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +cons public init(java.lang.Throwable) +supr jakarta.servlet.jsp.JspException +hfds serialVersionUID + +CLSS public abstract jakarta.servlet.jsp.JspWriter +cons protected init(int,boolean) +fld protected boolean autoFlush +fld protected int bufferSize +fld public final static int DEFAULT_BUFFER = -1 +fld public final static int NO_BUFFER = 0 +fld public final static int UNBOUNDED_BUFFER = -2 +meth public abstract int getRemaining() +meth public abstract void clear() throws java.io.IOException +meth public abstract void clearBuffer() throws java.io.IOException +meth public abstract void close() throws java.io.IOException +meth public abstract void flush() throws java.io.IOException +meth public abstract void newLine() throws java.io.IOException +meth public abstract void print(boolean) throws java.io.IOException +meth public abstract void print(char) throws java.io.IOException +meth public abstract void print(char[]) throws java.io.IOException +meth public abstract void print(double) throws java.io.IOException +meth public abstract void print(float) throws java.io.IOException +meth public abstract void print(int) throws java.io.IOException +meth public abstract void print(java.lang.Object) throws java.io.IOException +meth public abstract void print(java.lang.String) throws java.io.IOException +meth public abstract void print(long) throws java.io.IOException +meth public abstract void println() throws java.io.IOException +meth public abstract void println(boolean) throws java.io.IOException +meth public abstract void println(char) throws java.io.IOException +meth public abstract void println(char[]) throws java.io.IOException +meth public abstract void println(double) throws java.io.IOException +meth public abstract void println(float) throws java.io.IOException +meth public abstract void println(int) throws java.io.IOException +meth public abstract void println(java.lang.Object) throws java.io.IOException +meth public abstract void println(java.lang.String) throws java.io.IOException +meth public abstract void println(long) throws java.io.IOException +meth public boolean isAutoFlush() +meth public int getBufferSize() +supr java.io.Writer + +CLSS public abstract jakarta.servlet.jsp.PageContext +cons public init() +fld public final static int APPLICATION_SCOPE = 4 +fld public final static int PAGE_SCOPE = 1 +fld public final static int REQUEST_SCOPE = 2 +fld public final static int SESSION_SCOPE = 3 +fld public final static java.lang.String APPLICATION = "jakarta.servlet.jsp.jspApplication" +fld public final static java.lang.String CONFIG = "jakarta.servlet.jsp.jspConfig" +fld public final static java.lang.String EXCEPTION = "jakarta.servlet.jsp.jspException" +fld public final static java.lang.String OUT = "jakarta.servlet.jsp.jspOut" +fld public final static java.lang.String PAGE = "jakarta.servlet.jsp.jspPage" +fld public final static java.lang.String PAGECONTEXT = "jakarta.servlet.jsp.jspPageContext" +fld public final static java.lang.String REQUEST = "jakarta.servlet.jsp.jspRequest" +fld public final static java.lang.String RESPONSE = "jakarta.servlet.jsp.jspResponse" +fld public final static java.lang.String SESSION = "jakarta.servlet.jsp.jspSession" +meth public abstract jakarta.servlet.ServletConfig getServletConfig() +meth public abstract jakarta.servlet.ServletContext getServletContext() +meth public abstract jakarta.servlet.ServletRequest getRequest() +meth public abstract jakarta.servlet.ServletResponse getResponse() +meth public abstract jakarta.servlet.http.HttpSession getSession() +meth public abstract java.lang.Exception getException() +meth public abstract java.lang.Object getPage() +meth public abstract void forward(java.lang.String) throws jakarta.servlet.ServletException,java.io.IOException +meth public abstract void handlePageException(java.lang.Exception) throws jakarta.servlet.ServletException,java.io.IOException +meth public abstract void handlePageException(java.lang.Throwable) throws jakarta.servlet.ServletException,java.io.IOException +meth public abstract void include(java.lang.String) throws jakarta.servlet.ServletException,java.io.IOException +meth public abstract void include(java.lang.String,boolean) throws jakarta.servlet.ServletException,java.io.IOException +meth public abstract void initialize(jakarta.servlet.Servlet,jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,java.lang.String,boolean,int,boolean) throws java.io.IOException +meth public abstract void release() +meth public jakarta.servlet.jsp.ErrorData getErrorData() +meth public jakarta.servlet.jsp.tagext.BodyContent pushBody() +supr jakarta.servlet.jsp.JspContext + +CLSS public jakarta.servlet.jsp.SkipPageException +cons public init() +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +cons public init(java.lang.Throwable) +supr jakarta.servlet.jsp.JspException +hfds serialVersionUID + +CLSS public jakarta.servlet.jsp.el.ELException + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +cons public init() +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +cons public init(java.lang.Throwable) +meth public java.lang.Throwable getRootCause() +supr java.lang.Exception +hfds mRootCause,serialVersionUID + +CLSS public jakarta.servlet.jsp.el.ELParseException + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +cons public init() +cons public init(java.lang.String) +supr jakarta.servlet.jsp.el.ELException +hfds serialVersionUID + +CLSS public abstract jakarta.servlet.jsp.el.Expression + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +cons public init() +meth public abstract java.lang.Object evaluate(jakarta.servlet.jsp.el.VariableResolver) throws jakarta.servlet.jsp.el.ELException +supr java.lang.Object + +CLSS public abstract jakarta.servlet.jsp.el.ExpressionEvaluator + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +cons public init() +meth public abstract jakarta.servlet.jsp.el.Expression parseExpression(java.lang.String,java.lang.Class,jakarta.servlet.jsp.el.FunctionMapper) throws jakarta.servlet.jsp.el.ELException +meth public abstract java.lang.Object evaluate(java.lang.String,java.lang.Class,jakarta.servlet.jsp.el.VariableResolver,jakarta.servlet.jsp.el.FunctionMapper) throws jakarta.servlet.jsp.el.ELException +supr java.lang.Object + +CLSS public abstract interface jakarta.servlet.jsp.el.FunctionMapper + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +meth public abstract java.lang.reflect.Method resolveFunction(java.lang.String,java.lang.String) + +CLSS public jakarta.servlet.jsp.el.ImplicitObjectELResolver +cons public init() +meth public boolean isReadOnly(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Class getType(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Class getCommonPropertyType(jakarta.el.ELContext,java.lang.Object) +meth public java.lang.Object getValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.util.Iterator getFeatureDescriptors(jakarta.el.ELContext,java.lang.Object) + anno 0 java.lang.Deprecated(boolean forRemoval=true, java.lang.String since="JSP 3.1") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver +hcls EnumeratedMap,ImplicitObjects + +CLSS public jakarta.servlet.jsp.el.ImportELResolver +cons public init() +meth public boolean isReadOnly(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Class getType(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Class getCommonPropertyType(jakarta.el.ELContext,java.lang.Object) +meth public java.lang.Object getValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver + +CLSS public jakarta.servlet.jsp.el.NotFoundELResolver +cons public init() +meth public boolean isReadOnly(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Class getType(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Class getCommonPropertyType(jakarta.el.ELContext,java.lang.Object) +meth public java.lang.Object getValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver +hfds LSTRING_FILE,lStrings + +CLSS public jakarta.servlet.jsp.el.ScopedAttributeELResolver +cons public init() +meth public boolean isReadOnly(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Class getType(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Class getCommonPropertyType(jakarta.el.ELContext,java.lang.Object) +meth public java.lang.Object getValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.util.Iterator getFeatureDescriptors(jakarta.el.ELContext,java.lang.Object) + anno 0 java.lang.Deprecated(boolean forRemoval=true, java.lang.String since="JSP 3.1") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver + +CLSS public abstract interface jakarta.servlet.jsp.el.VariableResolver + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +meth public abstract java.lang.Object resolveVariable(java.lang.String) throws jakarta.servlet.jsp.el.ELException + +CLSS public abstract jakarta.servlet.jsp.tagext.BodyContent +cons protected init(jakarta.servlet.jsp.JspWriter) +meth public abstract java.io.Reader getReader() +meth public abstract java.lang.String getString() +meth public abstract void writeOut(java.io.Writer) throws java.io.IOException +meth public jakarta.servlet.jsp.JspWriter getEnclosingWriter() +meth public void clearBody() +meth public void flush() throws java.io.IOException +supr jakarta.servlet.jsp.JspWriter +hfds enclosingWriter + +CLSS public abstract interface jakarta.servlet.jsp.tagext.BodyTag +fld public final static int EVAL_BODY_BUFFERED = 2 +fld public final static int EVAL_BODY_TAG = 2 + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +intf jakarta.servlet.jsp.tagext.IterationTag +meth public abstract void doInitBody() throws jakarta.servlet.jsp.JspException +meth public abstract void setBodyContent(jakarta.servlet.jsp.tagext.BodyContent) + +CLSS public jakarta.servlet.jsp.tagext.BodyTagSupport +cons public init() +fld protected jakarta.servlet.jsp.tagext.BodyContent bodyContent +intf jakarta.servlet.jsp.tagext.BodyTag +meth public int doAfterBody() throws jakarta.servlet.jsp.JspException +meth public int doEndTag() throws jakarta.servlet.jsp.JspException +meth public int doStartTag() throws jakarta.servlet.jsp.JspException +meth public jakarta.servlet.jsp.JspWriter getPreviousOut() +meth public jakarta.servlet.jsp.tagext.BodyContent getBodyContent() +meth public void doInitBody() throws jakarta.servlet.jsp.JspException +meth public void release() +meth public void setBodyContent(jakarta.servlet.jsp.tagext.BodyContent) +supr jakarta.servlet.jsp.tagext.TagSupport +hfds serialVersionUID + +CLSS public abstract interface jakarta.servlet.jsp.tagext.DynamicAttributes +meth public abstract void setDynamicAttribute(java.lang.String,java.lang.String,java.lang.Object) throws jakarta.servlet.jsp.JspException + +CLSS public jakarta.servlet.jsp.tagext.FunctionInfo +cons public init(java.lang.String,java.lang.String,java.lang.String) +meth public java.lang.String getFunctionClass() +meth public java.lang.String getFunctionSignature() +meth public java.lang.String getName() +supr java.lang.Object +hfds functionClass,functionSignature,name + +CLSS public abstract interface jakarta.servlet.jsp.tagext.IterationTag +fld public final static int EVAL_BODY_AGAIN = 2 +intf jakarta.servlet.jsp.tagext.Tag +meth public abstract int doAfterBody() throws jakarta.servlet.jsp.JspException + +CLSS public abstract jakarta.servlet.jsp.tagext.JspFragment +cons public init() +meth public abstract jakarta.servlet.jsp.JspContext getJspContext() +meth public abstract void invoke(java.io.Writer) throws jakarta.servlet.jsp.JspException,java.io.IOException +supr java.lang.Object + +CLSS public abstract interface jakarta.servlet.jsp.tagext.JspIdConsumer +meth public abstract void setJspId(java.lang.String) + +CLSS public abstract interface jakarta.servlet.jsp.tagext.JspTag + +CLSS public abstract jakarta.servlet.jsp.tagext.PageData +cons public init() +meth public abstract java.io.InputStream getInputStream() +supr java.lang.Object + +CLSS public abstract interface jakarta.servlet.jsp.tagext.SimpleTag +intf jakarta.servlet.jsp.tagext.JspTag +meth public abstract jakarta.servlet.jsp.tagext.JspTag getParent() +meth public abstract void doTag() throws jakarta.servlet.jsp.JspException,java.io.IOException +meth public abstract void setJspBody(jakarta.servlet.jsp.tagext.JspFragment) +meth public abstract void setJspContext(jakarta.servlet.jsp.JspContext) +meth public abstract void setParent(jakarta.servlet.jsp.tagext.JspTag) + +CLSS public jakarta.servlet.jsp.tagext.SimpleTagSupport +cons public init() +intf jakarta.servlet.jsp.tagext.SimpleTag +meth protected jakarta.servlet.jsp.JspContext getJspContext() +meth protected jakarta.servlet.jsp.tagext.JspFragment getJspBody() +meth public final static jakarta.servlet.jsp.tagext.JspTag findAncestorWithClass(jakarta.servlet.jsp.tagext.JspTag,java.lang.Class) +meth public jakarta.servlet.jsp.tagext.JspTag getParent() +meth public void doTag() throws jakarta.servlet.jsp.JspException,java.io.IOException +meth public void setJspBody(jakarta.servlet.jsp.tagext.JspFragment) +meth public void setJspContext(jakarta.servlet.jsp.JspContext) +meth public void setParent(jakarta.servlet.jsp.tagext.JspTag) +supr java.lang.Object +hfds jspBody,jspContext,parentTag + +CLSS public abstract interface jakarta.servlet.jsp.tagext.Tag +fld public final static int EVAL_BODY_INCLUDE = 1 +fld public final static int EVAL_PAGE = 6 +fld public final static int SKIP_BODY = 0 +fld public final static int SKIP_PAGE = 5 +intf jakarta.servlet.jsp.tagext.JspTag +meth public abstract int doEndTag() throws jakarta.servlet.jsp.JspException +meth public abstract int doStartTag() throws jakarta.servlet.jsp.JspException +meth public abstract jakarta.servlet.jsp.tagext.Tag getParent() +meth public abstract void release() +meth public abstract void setPageContext(jakarta.servlet.jsp.PageContext) +meth public abstract void setParent(jakarta.servlet.jsp.tagext.Tag) + +CLSS public jakarta.servlet.jsp.tagext.TagAdapter +cons public init(jakarta.servlet.jsp.tagext.SimpleTag) +intf jakarta.servlet.jsp.tagext.Tag +meth public int doEndTag() throws jakarta.servlet.jsp.JspException +meth public int doStartTag() throws jakarta.servlet.jsp.JspException +meth public jakarta.servlet.jsp.tagext.JspTag getAdaptee() +meth public jakarta.servlet.jsp.tagext.Tag getParent() +meth public void release() +meth public void setPageContext(jakarta.servlet.jsp.PageContext) +meth public void setParent(jakarta.servlet.jsp.tagext.Tag) +supr java.lang.Object +hfds parent,parentDetermined,simpleTagAdaptee + +CLSS public jakarta.servlet.jsp.tagext.TagAttributeInfo +cons public init(java.lang.String,boolean,java.lang.String,boolean) +cons public init(java.lang.String,boolean,java.lang.String,boolean,boolean) +cons public init(java.lang.String,boolean,java.lang.String,boolean,boolean,java.lang.String,boolean,boolean,java.lang.String,java.lang.String) +fld public final static java.lang.String ID = "id" +meth public boolean canBeRequestTime() +meth public boolean isDeferredMethod() +meth public boolean isDeferredValue() +meth public boolean isFragment() +meth public boolean isRequired() +meth public java.lang.String getDescription() +meth public java.lang.String getExpectedTypeName() +meth public java.lang.String getMethodSignature() +meth public java.lang.String getName() +meth public java.lang.String getTypeName() +meth public java.lang.String toString() +meth public static jakarta.servlet.jsp.tagext.TagAttributeInfo getIdAttribute(jakarta.servlet.jsp.tagext.TagAttributeInfo[]) +supr java.lang.Object +hfds deferredMethod,deferredValue,description,expectedTypeName,fragment,methodSignature,name,reqTime,required,type + +CLSS public jakarta.servlet.jsp.tagext.TagData +cons public init(java.lang.Object[][]) +cons public init(java.util.Hashtable) +fld public final static java.lang.Object REQUEST_TIME_VALUE +intf java.lang.Cloneable +meth public java.lang.Object getAttribute(java.lang.String) +meth public java.lang.String getAttributeString(java.lang.String) +meth public java.lang.String getId() +meth public java.util.Enumeration getAttributes() +meth public void setAttribute(java.lang.String,java.lang.Object) +supr java.lang.Object +hfds attributes + +CLSS public abstract jakarta.servlet.jsp.tagext.TagExtraInfo +cons public init() +meth public boolean isValid(jakarta.servlet.jsp.tagext.TagData) +meth public final jakarta.servlet.jsp.tagext.TagInfo getTagInfo() +meth public final void setTagInfo(jakarta.servlet.jsp.tagext.TagInfo) +meth public jakarta.servlet.jsp.tagext.ValidationMessage[] validate(jakarta.servlet.jsp.tagext.TagData) +meth public jakarta.servlet.jsp.tagext.VariableInfo[] getVariableInfo(jakarta.servlet.jsp.tagext.TagData) +supr java.lang.Object +hfds ZERO_VARIABLE_INFO,tagInfo + +CLSS public jakarta.servlet.jsp.tagext.TagFileInfo +cons public init(java.lang.String,java.lang.String,jakarta.servlet.jsp.tagext.TagInfo) +meth public jakarta.servlet.jsp.tagext.TagInfo getTagInfo() +meth public java.lang.String getName() +meth public java.lang.String getPath() +supr java.lang.Object +hfds name,path,tagInfo + +CLSS public jakarta.servlet.jsp.tagext.TagInfo +cons public init(java.lang.String,java.lang.String,java.lang.String,java.lang.String,jakarta.servlet.jsp.tagext.TagLibraryInfo,jakarta.servlet.jsp.tagext.TagExtraInfo,jakarta.servlet.jsp.tagext.TagAttributeInfo[]) +cons public init(java.lang.String,java.lang.String,java.lang.String,java.lang.String,jakarta.servlet.jsp.tagext.TagLibraryInfo,jakarta.servlet.jsp.tagext.TagExtraInfo,jakarta.servlet.jsp.tagext.TagAttributeInfo[],java.lang.String,java.lang.String,java.lang.String,jakarta.servlet.jsp.tagext.TagVariableInfo[]) +cons public init(java.lang.String,java.lang.String,java.lang.String,java.lang.String,jakarta.servlet.jsp.tagext.TagLibraryInfo,jakarta.servlet.jsp.tagext.TagExtraInfo,jakarta.servlet.jsp.tagext.TagAttributeInfo[],java.lang.String,java.lang.String,java.lang.String,jakarta.servlet.jsp.tagext.TagVariableInfo[],boolean) +fld public final static java.lang.String BODY_CONTENT_EMPTY = "empty" +fld public final static java.lang.String BODY_CONTENT_JSP = "JSP" +fld public final static java.lang.String BODY_CONTENT_SCRIPTLESS = "scriptless" +fld public final static java.lang.String BODY_CONTENT_TAG_DEPENDENT = "tagdependent" +meth public boolean hasDynamicAttributes() +meth public boolean isValid(jakarta.servlet.jsp.tagext.TagData) +meth public jakarta.servlet.jsp.tagext.TagAttributeInfo[] getAttributes() +meth public jakarta.servlet.jsp.tagext.TagExtraInfo getTagExtraInfo() +meth public jakarta.servlet.jsp.tagext.TagLibraryInfo getTagLibrary() +meth public jakarta.servlet.jsp.tagext.TagVariableInfo[] getTagVariableInfos() +meth public jakarta.servlet.jsp.tagext.ValidationMessage[] validate(jakarta.servlet.jsp.tagext.TagData) +meth public jakarta.servlet.jsp.tagext.VariableInfo[] getVariableInfo(jakarta.servlet.jsp.tagext.TagData) +meth public java.lang.String getBodyContent() +meth public java.lang.String getDisplayName() +meth public java.lang.String getInfoString() +meth public java.lang.String getLargeIcon() +meth public java.lang.String getSmallIcon() +meth public java.lang.String getTagClassName() +meth public java.lang.String getTagName() +meth public void setTagExtraInfo(jakarta.servlet.jsp.tagext.TagExtraInfo) +meth public void setTagLibrary(jakarta.servlet.jsp.tagext.TagLibraryInfo) +supr java.lang.Object +hfds attributeInfo,bodyContent,displayName,dynamicAttributes,infoString,largeIcon,smallIcon,tagClassName,tagExtraInfo,tagLibrary,tagName,tagVariableInfo + +CLSS public abstract jakarta.servlet.jsp.tagext.TagLibraryInfo +cons protected init(java.lang.String,java.lang.String) +fld protected jakarta.servlet.jsp.tagext.FunctionInfo[] functions +fld protected jakarta.servlet.jsp.tagext.TagFileInfo[] tagFiles +fld protected jakarta.servlet.jsp.tagext.TagInfo[] tags +fld protected java.lang.String info +fld protected java.lang.String jspversion +fld protected java.lang.String prefix +fld protected java.lang.String shortname +fld protected java.lang.String tlibversion +fld protected java.lang.String uri +fld protected java.lang.String urn +meth public abstract jakarta.servlet.jsp.tagext.TagLibraryInfo[] getTagLibraryInfos() +meth public jakarta.servlet.jsp.tagext.FunctionInfo getFunction(java.lang.String) +meth public jakarta.servlet.jsp.tagext.FunctionInfo[] getFunctions() +meth public jakarta.servlet.jsp.tagext.TagFileInfo getTagFile(java.lang.String) +meth public jakarta.servlet.jsp.tagext.TagFileInfo[] getTagFiles() +meth public jakarta.servlet.jsp.tagext.TagInfo getTag(java.lang.String) +meth public jakarta.servlet.jsp.tagext.TagInfo[] getTags() +meth public java.lang.String getInfoString() +meth public java.lang.String getPrefixString() +meth public java.lang.String getReliableURN() +meth public java.lang.String getRequiredVersion() +meth public java.lang.String getShortName() +meth public java.lang.String getURI() +supr java.lang.Object + +CLSS public abstract jakarta.servlet.jsp.tagext.TagLibraryValidator +cons public init() +meth public jakarta.servlet.jsp.tagext.ValidationMessage[] validate(java.lang.String,java.lang.String,jakarta.servlet.jsp.tagext.PageData) +meth public java.util.Map getInitParameters() +meth public void release() +meth public void setInitParameters(java.util.Map) +supr java.lang.Object +hfds initParameters + +CLSS public jakarta.servlet.jsp.tagext.TagSupport +cons public init() +fld protected jakarta.servlet.jsp.PageContext pageContext +fld protected java.lang.String id +intf jakarta.servlet.jsp.tagext.IterationTag +intf java.io.Serializable +meth public final static jakarta.servlet.jsp.tagext.Tag findAncestorWithClass(jakarta.servlet.jsp.tagext.Tag,java.lang.Class) +meth public int doAfterBody() throws jakarta.servlet.jsp.JspException +meth public int doEndTag() throws jakarta.servlet.jsp.JspException +meth public int doStartTag() throws jakarta.servlet.jsp.JspException +meth public jakarta.servlet.jsp.tagext.Tag getParent() +meth public java.lang.Object getValue(java.lang.String) +meth public java.lang.String getId() +meth public java.util.Enumeration getValues() +meth public void release() +meth public void removeValue(java.lang.String) +meth public void setId(java.lang.String) +meth public void setPageContext(jakarta.servlet.jsp.PageContext) +meth public void setParent(jakarta.servlet.jsp.tagext.Tag) +meth public void setValue(java.lang.String,java.lang.Object) +supr java.lang.Object +hfds parent,serialVersionUID,values + +CLSS public jakarta.servlet.jsp.tagext.TagVariableInfo +cons public init(java.lang.String,java.lang.String,java.lang.String,boolean,int) +meth public boolean getDeclare() +meth public int getScope() +meth public java.lang.String getClassName() +meth public java.lang.String getNameFromAttribute() +meth public java.lang.String getNameGiven() +supr java.lang.Object +hfds className,declare,nameFromAttribute,nameGiven,scope + +CLSS public abstract interface jakarta.servlet.jsp.tagext.TryCatchFinally +meth public abstract void doCatch(java.lang.Throwable) throws java.lang.Throwable +meth public abstract void doFinally() + +CLSS public jakarta.servlet.jsp.tagext.ValidationMessage +cons public init(java.lang.String,java.lang.String) +meth public java.lang.String getId() +meth public java.lang.String getMessage() +supr java.lang.Object +hfds id,message + +CLSS public jakarta.servlet.jsp.tagext.VariableInfo +cons public init(java.lang.String,java.lang.String,boolean,int) +fld public final static int AT_BEGIN = 1 +fld public final static int AT_END = 2 +fld public final static int NESTED = 0 +meth public boolean getDeclare() +meth public int getScope() +meth public java.lang.String getClassName() +meth public java.lang.String getVarName() +supr java.lang.Object +hfds className,declare,scope,varName + +CLSS public abstract interface java.io.Closeable +intf java.lang.AutoCloseable +meth public abstract void close() throws java.io.IOException + +CLSS public abstract interface java.io.Flushable +meth public abstract void flush() throws java.io.IOException + +CLSS public abstract interface java.io.Serializable + +CLSS public abstract java.io.Writer +cons protected init() +cons protected init(java.lang.Object) +fld protected java.lang.Object lock +intf java.io.Closeable +intf java.io.Flushable +intf java.lang.Appendable +meth public abstract void close() throws java.io.IOException +meth public abstract void flush() throws java.io.IOException +meth public abstract void write(char[],int,int) throws java.io.IOException +meth public java.io.Writer append(char) throws java.io.IOException +meth public java.io.Writer append(java.lang.CharSequence) throws java.io.IOException +meth public java.io.Writer append(java.lang.CharSequence,int,int) throws java.io.IOException +meth public static java.io.Writer nullWriter() +meth public void write(char[]) throws java.io.IOException +meth public void write(int) throws java.io.IOException +meth public void write(java.lang.String) throws java.io.IOException +meth public void write(java.lang.String,int,int) throws java.io.IOException +supr java.lang.Object + +CLSS public abstract interface java.lang.Appendable +meth public abstract java.lang.Appendable append(char) throws java.io.IOException +meth public abstract java.lang.Appendable append(java.lang.CharSequence) throws java.io.IOException +meth public abstract java.lang.Appendable append(java.lang.CharSequence,int,int) throws java.io.IOException + +CLSS public abstract interface java.lang.AutoCloseable +meth public abstract void close() throws java.lang.Exception + +CLSS public abstract interface java.lang.Cloneable + +CLSS public abstract interface !annotation java.lang.Deprecated + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, MODULE, PARAMETER, TYPE]) +intf java.lang.annotation.Annotation +meth public abstract !hasdefault boolean forRemoval() +meth public abstract !hasdefault java.lang.String since() + +CLSS public java.lang.Exception +cons protected init(java.lang.String,java.lang.Throwable,boolean,boolean) +cons public init() +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +cons public init(java.lang.Throwable) +supr java.lang.Throwable + +CLSS public java.lang.Object +cons public init() +meth protected java.lang.Object clone() throws java.lang.CloneNotSupportedException +meth protected void finalize() throws java.lang.Throwable + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="9") +meth public boolean equals(java.lang.Object) +meth public final java.lang.Class getClass() +meth public final void notify() +meth public final void notifyAll() +meth public final void wait() throws java.lang.InterruptedException +meth public final void wait(long) throws java.lang.InterruptedException +meth public final void wait(long,int) throws java.lang.InterruptedException +meth public int hashCode() +meth public java.lang.String toString() + +CLSS public java.lang.Throwable +cons protected init(java.lang.String,java.lang.Throwable,boolean,boolean) +cons public init() +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +cons public init(java.lang.Throwable) +intf java.io.Serializable +meth public final java.lang.Throwable[] getSuppressed() +meth public final void addSuppressed(java.lang.Throwable) +meth public java.lang.StackTraceElement[] getStackTrace() +meth public java.lang.String getLocalizedMessage() +meth public java.lang.String getMessage() +meth public java.lang.String toString() +meth public java.lang.Throwable fillInStackTrace() +meth public java.lang.Throwable getCause() +meth public java.lang.Throwable initCause(java.lang.Throwable) +meth public void printStackTrace() +meth public void printStackTrace(java.io.PrintStream) +meth public void printStackTrace(java.io.PrintWriter) +meth public void setStackTrace(java.lang.StackTraceElement[]) +supr java.lang.Object + +CLSS public abstract interface java.lang.annotation.Annotation +meth public abstract boolean equals(java.lang.Object) +meth public abstract int hashCode() +meth public abstract java.lang.Class annotationType() +meth public abstract java.lang.String toString() + +CLSS public abstract interface !annotation java.lang.annotation.Documented + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation + +CLSS public abstract interface !annotation java.lang.annotation.Retention + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation +meth public abstract java.lang.annotation.RetentionPolicy value() + +CLSS public abstract interface !annotation java.lang.annotation.Target + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation +meth public abstract java.lang.annotation.ElementType[] value() + From 5affad6a0b4b528fde3f7380c4d56ab5f337fb5e Mon Sep 17 00:00:00 2001 From: Alwin Joseph Date: Fri, 19 Jan 2024 00:25:07 +0530 Subject: [PATCH 4/4] Fix test failures with jsp-api 4.0, delete tests of removed methods --- glassfish-runner/jsp-tck/pom.xml | 82 ++++++++- jsp/pom.xml | 166 ++++++++++++------ .../jsp/jspexception/URLClientIT.java | 2 +- .../jsp/pagecontext/URLClientIT.java | 4 +- .../jsp/jspexception/JspExceptionTest.jsp | 16 +- .../jsptagexception/JspTagExceptionTest.jsp | 4 +- .../jsp/pagecontext/PageContextTest.jsp | 43 +---- .../SkipPageExceptionTest.jsp | 4 +- 8 files changed, 207 insertions(+), 114 deletions(-) diff --git a/glassfish-runner/jsp-tck/pom.xml b/glassfish-runner/jsp-tck/pom.xml index 84fc5d9138..a11879e6a8 100644 --- a/glassfish-runner/jsp-tck/pom.xml +++ b/glassfish-runner/jsp-tck/pom.xml @@ -28,9 +28,9 @@ jar - 10.0.0 + 11.0.0-M1 5.9.1 - jsp-tck + jakarta-pages-tck 4.0.0 @@ -42,14 +42,14 @@
jakartatck - jsp-tck - 10.0.0-SNAPSHOT + ${tck.artifactId} + ${tck.version} - + org.jboss.arquillian.junit5 arquillian-junit5-container @@ -86,7 +86,72 @@ + + com.googlecode.maven-download-plugin + download-maven-plugin + 1.3.0 + + + + wget + + generate-resources + + https://github.com/eclipse-ee4j/glassfish/releases/download/8.0.0-M1/glassfish-8.0.0-M1.zip + glassfish.zip + ${project.build.directory} + + + + + + maven-antrun-plugin + 1.8 + + + + run + + generate-resources + + + + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.2.0 + + + unpack + + unpack + + generate-resources + + + + jakartatck + ${tck.artifactId} + ${tck.version} + zip + true + ${project.build.directory} + + + + + + + + + org.codehaus.mojo exec-maven-plugin @@ -277,7 +343,7 @@ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.servlet.jsp-api.jar ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.servlet.jsp.jstl-api.jar - jakartatck:jsp-tck + jakartatck:${tck.artifactId} ${project.build.directory}/${glassfish.toplevel.dir} ${project.build.directory}/${glassfish.toplevel.dir}/glassfish diff --git a/jsp/pom.xml b/jsp/pom.xml index aee30b5e5e..3825f685fc 100644 --- a/jsp/pom.xml +++ b/jsp/pom.xml @@ -1,6 +1,6 @@