From 797c9dceefb8887c22a790652cf0636508e82b47 Mon Sep 17 00:00:00 2001 From: Alwin Joseph Date: Tue, 12 Dec 2023 16:52:15 +0530 Subject: [PATCH] Refactor signature tests in JSP & EL TCKs --- el/pom.xml | 8 + .../el/signaturetest/el/ELSigTestIT.java | 151 ++++ .../tests/signaturetest/el/jakarta.el.sig_5.0 | 434 ++++++++++++ .../signaturetest/el/sig-test-pkg-list.txt | 26 + .../ts/tests/signaturetest/el/sig-test.map | 25 + glassfish-runner/el-tck/pom.xml | 7 + glassfish-runner/jsp-tck/pom.xml | 2 + jsp/pom.xml | 9 + .../tests/signaturetest/jsp/JSPSigTestIT.java | 156 +++++ .../jsp/jakarta.servlet.jsp.sig_3.1 | 663 ++++++++++++++++++ .../signaturetest/jsp/sig-test-pkg-list.txt | 28 + .../ts/tests/signaturetest/jsp/sig-test.map | 28 + .../sun/ts/tests/signaturetest/SigTest.java | 138 ++-- .../ts/tests/signaturetest/SigTestData.java | 4 +- .../ts/tests/signaturetest/SigTestDriver.java | 34 +- .../sun/ts/tests/signaturetest/SigTestEE.java | 4 +- .../signaturetest/SignatureTestDriver.java | 20 +- .../tests/signaturetest/caj/CAJSigTest.java | 38 +- .../signaturetest/jaxws/JAXWSSigTest.java | 4 +- .../tests/signaturetest/jms/JMSSigTest.java | 4 +- .../tests/signaturetest/saaj/SAAJSigTest.java | 4 +- .../ts/tests/signaturetest/wsmd/Client.java | 4 +- 22 files changed, 1701 insertions(+), 90 deletions(-) create mode 100644 el/src/main/java/com/sun/ts/tests/el/signaturetest/el/ELSigTestIT.java create mode 100644 el/src/main/resources/com/sun/ts/tests/signaturetest/el/jakarta.el.sig_5.0 create mode 100644 el/src/main/resources/com/sun/ts/tests/signaturetest/el/sig-test-pkg-list.txt create mode 100644 el/src/main/resources/com/sun/ts/tests/signaturetest/el/sig-test.map create mode 100644 jsp/src/main/java/com/sun/ts/tests/signaturetest/jsp/JSPSigTestIT.java create mode 100644 jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/jakarta.servlet.jsp.sig_3.1 create mode 100644 jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/sig-test-pkg-list.txt create mode 100644 jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/sig-test.map diff --git a/el/pom.xml b/el/pom.xml index 710456c2eb..eaaca12655 100644 --- a/el/pom.xml +++ b/el/pom.xml @@ -53,6 +53,14 @@ common ${project.parent.version} + + ${project.groupId} + signaturetest + + + ${project.groupId} + common + jakarta.el jakarta.el-api diff --git a/el/src/main/java/com/sun/ts/tests/el/signaturetest/el/ELSigTestIT.java b/el/src/main/java/com/sun/ts/tests/el/signaturetest/el/ELSigTestIT.java new file mode 100644 index 0000000000..a5cfc22886 --- /dev/null +++ b/el/src/main/java/com/sun/ts/tests/el/signaturetest/el/ELSigTestIT.java @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2007, 2023 Oracle and/or its affiliates and others. + * 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 + */ + +package com.sun.ts.tests.signaturetest.el; + +import java.io.PrintWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.File; + +import org.junit.jupiter.api.Test; + +import com.sun.javatest.Status; +import com.sun.ts.tests.signaturetest.SigTest; +import com.sun.ts.tests.signaturetest.SignatureTestDriver; +import com.sun.ts.tests.signaturetest.SignatureTestDriverFactory; + +import java.util.Properties; +import com.sun.ts.lib.util.TestUtil; +import java.lang.System.Logger; + +/* + * This class is a simple example of a signature test that extends the + * SigTest framework class. This signature test is run outside of the + * Java EE containers. This class also contains the boilerplate + * code necessary to create a signature test using the test framework. + * To see a complete TCK example see the javaee directory for the Java EE + * TCK signature test class. + */ +public class ELSigTestIT extends SigTest { + + private static final Logger logger = System.getLogger(ELSigTestIT.class.getName()); + + public ELSigTestIT(){ + setup(); + } + + /***** Abstract Method Implementation *****/ + + /** + * Returns a list of strings where each string represents a package name. Each + * package name will have it's signature tested by the signature test + * framework. + * + * @return String[] The names of the packages whose signatures should be + * verified. + */ + protected String[] getPackages() { + return new String[] { "jakarta.el" }; + } + + + /* + * The following comments are specified in the base class that defines the + * signature tests. This is done so the test finders will find the right class + * to run. The implementation of these methods is inherited from the super + * class which is part of the signature test framework. + */ + + // NOTE: If the API under test is not part of your testing runtime + // environment, you may use the property sigTestClasspath to specify + // where the API under test lives. This should almost never be used. + // Normally the API under test should be specified in the classpath + // of the VM running the signature tests. Use either the first + // comment or the one below it depending on which properties your + // signature tests need. Please do not use both comments. + + /* + * @class.setup_props: ts_home, The base path of this TCK; sigTestClasspath; + */ + + /* + * @testName: signatureTest + * + * @assertion: An EL container must implement the required classes and APIs + * specified in the EL Specification. + * + * @test_Strategy: Using reflection, gather the implementation specific + * classes and APIs. Compare these results with the expected (required) + * classes and APIs. + * + */ + @Test + public void signatureTest() throws Exception { + + logger.log(Logger.Level.INFO, "$$$ SigTestIT.signatureTest() called"); + String mapFile = null; + String packageFile = null; + String repositoryDir = null; + Properties mapFileAsProps = null; + String[] packages = getPackages(); + String apiPackage = "jakarta.el"; + + try { + + InputStream inStreamMapfile = ELSigTestIT.class.getClassLoader().getResourceAsStream("com/sun/ts/tests/signaturetest/el/sig-test.map"); + File mFile = writeStreamToTempFile(inStreamMapfile, "sig-test", ".map"); + mapFile = mFile.getCanonicalPath(); + logger.log(Logger.Level.INFO, "mapFile location is :"+mapFile); + + InputStream inStreamPackageFile = ELSigTestIT.class.getClassLoader().getResourceAsStream("com/sun/ts/tests/signaturetest/el/sig-test-pkg-list.txt"); + File pFile = writeStreamToTempFile(inStreamPackageFile, "sig-test-pkg-list", ".txt"); + packageFile = pFile.getCanonicalPath(); + logger.log(Logger.Level.INFO, "packageFile location is :"+packageFile); + + mapFileAsProps = getSigTestDriver().loadMapFile(mapFile); + String packageVersion = mapFileAsProps.getProperty(apiPackage); + logger.log(Logger.Level.INFO, "Package version from mapfile :"+packageVersion); + + InputStream inStreamSigFile = ELSigTestIT.class.getClassLoader().getResourceAsStream("com/sun/ts/tests/signaturetest/el/jakarta.el.sig_"+packageVersion); + File sigFile = writeStreamToSigFile(inStreamSigFile, apiPackage, packageVersion); + logger.log(Logger.Level.INFO, "signature File location is :"+sigFile.getCanonicalPath()); + + } catch(IOException ex) { + logger.log(Logger.Level.ERROR, "Exception while creating temp files :"+ex); + } + + super.signatureTest(mapFile, packageFile, mapFileAsProps, packages); + } + + + /* + * Call the parent class's cleanup method. + */ + + /* + * define which sig driver we will use + */ + @Override + protected SignatureTestDriver getSigTestDriver() { + driver = SignatureTestDriverFactory + .getInstance(SignatureTestDriverFactory.SIG_TEST); + + return driver; + + } // END getSigTestDriver +} diff --git a/el/src/main/resources/com/sun/ts/tests/signaturetest/el/jakarta.el.sig_5.0 b/el/src/main/resources/com/sun/ts/tests/signaturetest/el/jakarta.el.sig_5.0 new file mode 100644 index 0000000000..dcbc9a3013 --- /dev/null +++ b/el/src/main/resources/com/sun/ts/tests/signaturetest/el/jakarta.el.sig_5.0 @@ -0,0 +1,434 @@ +#Signature file v4.1 +#Version 5.0 + +CLSS public jakarta.el.ArrayELResolver +cons public init() +cons public init(boolean) +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,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="5.0") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver +hfds isReadOnly + +CLSS public jakarta.el.BeanELResolver +cons public init() +cons public init(boolean) +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Object getValue(jakarta.el.ELContext,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") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver +hfds isReadOnly,properties +hcls BPSoftReference,BeanProperties,BeanProperty,SoftConcurrentHashMap + +CLSS public jakarta.el.BeanNameELResolver +cons public init(jakarta.el.BeanNameResolver) +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,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="5.0") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver +hfds beanNameResolver + +CLSS public abstract jakarta.el.BeanNameResolver +cons public init() +meth public boolean canCreateBean(java.lang.String) +meth public boolean isNameResolved(java.lang.String) +meth public boolean isReadOnly(java.lang.String) +meth public java.lang.Object getBean(java.lang.String) +meth public void setBeanValue(java.lang.String,java.lang.Object) +supr java.lang.Object + +CLSS public jakarta.el.CompositeELResolver +cons public init() +meth public <%0 extends java.lang.Object> {%%0} convertToType(jakarta.el.ELContext,java.lang.Object,java.lang.Class<{%%0}>) +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Object getValue(jakarta.el.ELContext,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") +meth public void add(jakarta.el.ELResolver) +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver +hfds elResolvers,size +hcls CompositeIterator + +CLSS public jakarta.el.ELClass +cons public init(java.lang.Class) +meth public java.lang.Class getKlass() +supr java.lang.Object +hfds klass + +CLSS public abstract jakarta.el.ELContext +cons public init() +meth public <%0 extends java.lang.Object> {%%0} convertToType(java.lang.Object,java.lang.Class<{%%0}>) +meth public abstract jakarta.el.ELResolver getELResolver() +meth public abstract jakarta.el.FunctionMapper getFunctionMapper() +meth public abstract jakarta.el.VariableMapper getVariableMapper() +meth public boolean isLambdaArgument(java.lang.String) +meth public boolean isPropertyResolved() +meth public jakarta.el.ImportHandler getImportHandler() +meth public java.lang.Object getContext(java.lang.Class) +meth public java.lang.Object getLambdaArgument(java.lang.String) +meth public java.util.List getEvaluationListeners() +meth public java.util.Locale getLocale() +meth public void addEvaluationListener(jakarta.el.EvaluationListener) +meth public void enterLambdaScope(java.util.Map) +meth public void exitLambdaScope() +meth public void notifyAfterEvaluation(java.lang.String) +meth public void notifyBeforeEvaluation(java.lang.String) +meth public void notifyPropertyResolved(java.lang.Object,java.lang.Object) +meth public void putContext(java.lang.Class,java.lang.Object) +meth public void setLocale(java.util.Locale) +meth public void setPropertyResolved(boolean) +meth public void setPropertyResolved(java.lang.Object,java.lang.Object) +supr java.lang.Object +hfds importHandler,lambdaArgs,listeners,locale,map,resolved + +CLSS public jakarta.el.ELContextEvent +cons public init(jakarta.el.ELContext) +meth public jakarta.el.ELContext getELContext() +supr java.util.EventObject +hfds serialVersionUID + +CLSS public abstract interface jakarta.el.ELContextListener +intf java.util.EventListener +meth public abstract void contextCreated(jakarta.el.ELContextEvent) + +CLSS public jakarta.el.ELException +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.RuntimeException +hfds serialVersionUID + +CLSS public jakarta.el.ELManager +cons public init() +meth public jakarta.el.ELContext setELContext(jakarta.el.ELContext) +meth public jakarta.el.StandardELContext getELContext() +meth public java.lang.Object defineBean(java.lang.String,java.lang.Object) +meth public static jakarta.el.ExpressionFactory getExpressionFactory() +meth public void addBeanNameResolver(jakarta.el.BeanNameResolver) +meth public void addELResolver(jakarta.el.ELResolver) +meth public void addEvaluationListener(jakarta.el.EvaluationListener) +meth public void importClass(java.lang.String) +meth public void importPackage(java.lang.String) +meth public void importStatic(java.lang.String) +meth public void mapFunction(java.lang.String,java.lang.String,java.lang.reflect.Method) +meth public void setVariable(java.lang.String,jakarta.el.ValueExpression) +supr java.lang.Object +hfds elContext + +CLSS public jakarta.el.ELProcessor +cons public init() +meth public <%0 extends java.lang.Object> {%%0} eval(java.lang.String) +meth public <%0 extends java.lang.Object> {%%0} getValue(java.lang.String,java.lang.Class<{%%0}>) +meth public jakarta.el.ELManager getELManager() +meth public void defineBean(java.lang.String,java.lang.Object) +meth public void defineFunction(java.lang.String,java.lang.String,java.lang.String,java.lang.String) throws java.lang.ClassNotFoundException,java.lang.NoSuchMethodException +meth public void defineFunction(java.lang.String,java.lang.String,java.lang.reflect.Method) throws java.lang.NoSuchMethodException +meth public void setValue(java.lang.String,java.lang.Object) +meth public void setVariable(java.lang.String,java.lang.String) +supr java.lang.Object +hfds elManager,factory + +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 jakarta.el.EvaluationListener +cons public init() +meth public void afterEvaluation(jakarta.el.ELContext,java.lang.String) +meth public void beforeEvaluation(jakarta.el.ELContext,java.lang.String) +meth public void propertyResolved(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +supr java.lang.Object + +CLSS public abstract jakarta.el.Expression +cons public init() +intf java.io.Serializable +meth public abstract boolean equals(java.lang.Object) +meth public abstract boolean isLiteralText() +meth public abstract int hashCode() +meth public abstract java.lang.String getExpressionString() +supr java.lang.Object +hfds serialVersionUID + +CLSS public abstract jakarta.el.ExpressionFactory +cons public init() +meth public abstract <%0 extends java.lang.Object> {%%0} coerceToType(java.lang.Object,java.lang.Class<{%%0}>) +meth public abstract jakarta.el.MethodExpression createMethodExpression(jakarta.el.ELContext,java.lang.String,java.lang.Class,java.lang.Class[]) +meth public abstract jakarta.el.ValueExpression createValueExpression(jakarta.el.ELContext,java.lang.String,java.lang.Class) +meth public abstract jakarta.el.ValueExpression createValueExpression(java.lang.Object,java.lang.Class) +meth public jakarta.el.ELResolver getStreamELResolver() +meth public java.util.Map getInitFunctionMap() +meth public static jakarta.el.ExpressionFactory newInstance() +meth public static jakarta.el.ExpressionFactory newInstance(java.util.Properties) +supr java.lang.Object + +CLSS public abstract jakarta.el.FunctionMapper +cons public init() +meth public abstract java.lang.reflect.Method resolveFunction(java.lang.String,java.lang.String) +meth public void mapFunction(java.lang.String,java.lang.String,java.lang.reflect.Method) +supr java.lang.Object + +CLSS public jakarta.el.ImportHandler +cons public init() +meth public java.lang.Class resolveClass(java.lang.String) +meth public java.lang.Class resolveStatic(java.lang.String) +meth public void importClass(java.lang.String) +meth public void importPackage(java.lang.String) +meth public void importStatic(java.lang.String) +supr java.lang.Object +hfds classMap,classNameMap,notAClass,packages,staticNameMap + +CLSS public jakarta.el.LambdaExpression +cons public init(java.util.List,jakarta.el.ValueExpression) +meth public !varargs java.lang.Object invoke(jakarta.el.ELContext,java.lang.Object[]) +meth public !varargs java.lang.Object invoke(java.lang.Object[]) +meth public void setELContext(jakarta.el.ELContext) +supr java.lang.Object +hfds context,envirArgs,expression,formalParameters + +CLSS public jakarta.el.ListELResolver +cons public init() +cons public init(boolean) +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,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="5.0") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver +hfds isReadOnly,theUnmodifiableListClass + +CLSS public jakarta.el.MapELResolver +cons public init() +cons public init(boolean) +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,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="5.0") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver +hfds isReadOnly,theUnmodifiableMapClass + +CLSS public abstract jakarta.el.MethodExpression +cons public init() +meth public abstract jakarta.el.MethodInfo getMethodInfo(jakarta.el.ELContext) +meth public abstract java.lang.Object invoke(jakarta.el.ELContext,java.lang.Object[]) +meth public boolean isParametersProvided() +meth public jakarta.el.MethodReference getMethodReference(jakarta.el.ELContext) +supr jakarta.el.Expression +hfds serialVersionUID + +CLSS public jakarta.el.MethodInfo +cons public init(java.lang.String,java.lang.Class,java.lang.Class[]) +meth public boolean equals(java.lang.Object) +meth public int hashCode() +meth public java.lang.Class getReturnType() +meth public java.lang.Class[] getParamTypes() +meth public java.lang.String getName() +supr java.lang.Object +hfds name,paramTypes,returnType + +CLSS public jakarta.el.MethodNotFoundException +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.el.ELException +hfds serialVersionUID + +CLSS public jakarta.el.MethodReference +cons public init(java.lang.Object,jakarta.el.MethodInfo,java.lang.annotation.Annotation[],java.lang.Object[]) +meth public boolean equals(java.lang.Object) +meth public int hashCode() +meth public jakarta.el.MethodInfo getMethodInfo() +meth public java.lang.Object getBase() +meth public java.lang.Object[] getEvaluatedParameters() +meth public java.lang.annotation.Annotation[] getAnnotations() +supr java.lang.Object +hfds annotations,base,evaluatedParameters,methodInfo + +CLSS public jakarta.el.PropertyNotFoundException +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.el.ELException +hfds serialVersionUID + +CLSS public jakarta.el.PropertyNotWritableException +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.el.ELException +hfds serialVersionUID + +CLSS public jakarta.el.ResourceBundleELResolver +cons public init() +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,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="5.0") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver + +CLSS public jakarta.el.StandardELContext +cons public init(jakarta.el.ELContext) +cons public init(jakarta.el.ExpressionFactory) +meth public jakarta.el.ELResolver getELResolver() +meth public jakarta.el.FunctionMapper getFunctionMapper() +meth public jakarta.el.VariableMapper getVariableMapper() +meth public java.lang.Object getContext(java.lang.Class) +meth public void addELResolver(jakarta.el.ELResolver) +meth public void putContext(java.lang.Class,java.lang.Object) +supr jakarta.el.ELContext +hfds beans,customResolvers,delegate,elResolver,functionMapper,initFunctionMap,streamELResolver,variableMapper +hcls DefaultFunctionMapper,DefaultVariableMapper,LocalBeanNameResolver + +CLSS public jakarta.el.StaticFieldELResolver +cons public init() +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,java.lang.Object) +meth public java.lang.Object getValue(jakarta.el.ELContext,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") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver + +CLSS public abstract jakarta.el.TypeConverter +cons public init() +meth public abstract <%0 extends java.lang.Object> {%%0} convertToType(jakarta.el.ELContext,java.lang.Object,java.lang.Class<{%%0}>) +meth public boolean isReadOnly(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.Class getType(jakarta.el.ELContext,java.lang.Object,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="5.0") +meth public void setValue(jakarta.el.ELContext,java.lang.Object,java.lang.Object,java.lang.Object) +supr jakarta.el.ELResolver + +CLSS public abstract jakarta.el.ValueExpression +cons public init() +meth public abstract <%0 extends java.lang.Object> {%%0} getValue(jakarta.el.ELContext) +meth public abstract boolean isReadOnly(jakarta.el.ELContext) +meth public abstract java.lang.Class getExpectedType() +meth public abstract java.lang.Class getType(jakarta.el.ELContext) +meth public abstract void setValue(jakarta.el.ELContext,java.lang.Object) +meth public jakarta.el.ValueReference getValueReference(jakarta.el.ELContext) +supr jakarta.el.Expression +hfds serialVersionUID + +CLSS public jakarta.el.ValueReference +cons public init(java.lang.Object,java.lang.Object) +intf java.io.Serializable +meth public java.lang.Object getBase() +meth public java.lang.Object getProperty() +supr java.lang.Object +hfds base,property,serialVersionUID + +CLSS public abstract jakarta.el.VariableMapper +cons public init() +meth public abstract jakarta.el.ValueExpression resolveVariable(java.lang.String) +meth public abstract jakarta.el.ValueExpression setVariable(java.lang.String,jakarta.el.ValueExpression) +supr java.lang.Object + +CLSS public abstract interface java.io.Serializable + +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.RuntimeException +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.Exception + +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.util.EventListener + +CLSS public java.util.EventObject +cons public init(java.lang.Object) +fld protected java.lang.Object source +intf java.io.Serializable +meth public java.lang.Object getSource() +meth public java.lang.String toString() +supr java.lang.Object + diff --git a/el/src/main/resources/com/sun/ts/tests/signaturetest/el/sig-test-pkg-list.txt b/el/src/main/resources/com/sun/ts/tests/signaturetest/el/sig-test-pkg-list.txt new file mode 100644 index 0000000000..89236c831f --- /dev/null +++ b/el/src/main/resources/com/sun/ts/tests/signaturetest/el/sig-test-pkg-list.txt @@ -0,0 +1,26 @@ +# +# Copyright (c) 2018, 2020 Oracle and/or its affiliates and others. +# 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 +# + +## +# This file contains a list of all the packages +# contained in the signature files for this +# deliverable. This file is used to exclude valid +# sub-packages from being verified when their +# parent package's signature is checked. +## + +jakarta.el diff --git a/el/src/main/resources/com/sun/ts/tests/signaturetest/el/sig-test.map b/el/src/main/resources/com/sun/ts/tests/signaturetest/el/sig-test.map new file mode 100644 index 0000000000..e29861e0fa --- /dev/null +++ b/el/src/main/resources/com/sun/ts/tests/signaturetest/el/sig-test.map @@ -0,0 +1,25 @@ +# +# Copyright (c) 2018, 2021 Oracle and/or its affiliates and others. +# 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 +# + +############################################################### +# The signature test mapping file for the JSF TCK. This file +# should be formatted as a standard java properties file. The +# name is the package name and the value is the version of the +# package that should be tested by the signature tests. +############################################################### + +jakarta.el=5.0 diff --git a/glassfish-runner/el-tck/pom.xml b/glassfish-runner/el-tck/pom.xml index 4b7d3911cb..7c06a46372 100644 --- a/glassfish-runner/el-tck/pom.xml +++ b/glassfish-runner/el-tck/pom.xml @@ -68,6 +68,11 @@ sigtest-maven-plugin 1.5 + + org.netbeans.tools + sigtest-maven-plugin + 1.4 + @@ -364,6 +369,8 @@ true true com.sun.ts.tests.websocket.lib.implementation.sun.common.SunRIURL + ${project.build.directory}/jdk11-bundle + ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.el-api.jar:${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/expressly.jar:${project.build.directory}/jdk11-bundle/java.base:${project.build.directory}/jdk11-bundle/java.rmi:${project.build.directory}/jdk11-bundle/java.sql:${project.build.directory}/jdk11-bundle/java.naming ${project.build.directory}/${glassfish.toplevel.dir} diff --git a/glassfish-runner/jsp-tck/pom.xml b/glassfish-runner/jsp-tck/pom.xml index a11879e6a8..09f183a516 100644 --- a/glassfish-runner/jsp-tck/pom.xml +++ b/glassfish-runner/jsp-tck/pom.xml @@ -362,6 +362,8 @@ true true com.sun.ts.tests.jsp.lib.implementation.sun.common.SunRIURL + ${project.build.directory}/jdk11-bundle + ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.servlet-api.jar:${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.servlet.jsp-api.jar:${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.el-api.jar:${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.el.jar:${project.build.directory}/jdk11-bundle/java.base:${project.build.directory}/jdk11-bundle/java.rmi:${project.build.directory}/jdk11-bundle/java.sql:${project.build.directory}/jdk11-bundle/java.naming ${project.build.directory}/${glassfish.toplevel.dir} diff --git a/jsp/pom.xml b/jsp/pom.xml index 3825f685fc..135f89cec1 100644 --- a/jsp/pom.xml +++ b/jsp/pom.xml @@ -80,6 +80,15 @@ servlet ${project.parent.version} + + ${project.groupId} + signaturetest + + + org.netbeans.tools + sigtest-maven-plugin + 1.4 + javatest javatest diff --git a/jsp/src/main/java/com/sun/ts/tests/signaturetest/jsp/JSPSigTestIT.java b/jsp/src/main/java/com/sun/ts/tests/signaturetest/jsp/JSPSigTestIT.java new file mode 100644 index 0000000000..2934b79b03 --- /dev/null +++ b/jsp/src/main/java/com/sun/ts/tests/signaturetest/jsp/JSPSigTestIT.java @@ -0,0 +1,156 @@ +/* + * 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 + */ + +package com.sun.ts.tests.signaturetest.jsp; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.ArrayList; + +import org.junit.jupiter.api.Test; + +import com.sun.javatest.Status; +import com.sun.ts.tests.signaturetest.SigTest; +import com.sun.ts.tests.signaturetest.SigTestResult; +import com.sun.ts.lib.util.TestUtil; +import java.util.Properties; +import java.lang.System.Logger; + + +/* + * This class is a simple example of a signature test that extends the + * SigTest framework class. This signature test is run outside of the + * Java EE containers. This class also contains the boilerplate + * code necessary to create a signature test using the test framework. + * To see a complete TCK example see the javaee directory for the Java EE + * TCK signature test class. + */ +public class JSPSigTestIT extends SigTest { + + private static final Logger logger = System.getLogger(JSPSigTestIT.class.getName()); + + public JSPSigTestIT(){ + setup(); + } + + /***** Abstract Method Implementation *****/ + + /** + * Returns a list of strings where each string represents a package name. Each + * package name will have it's signature tested by the signature test + * framework. + * + * @return String[] The names of the packages whose signatures should be + * verified. + */ + protected String[] getPackages() { + return new String[] { "jakarta.servlet.jsp", "jakarta.servlet.jsp.el", + "jakarta.servlet.jsp.tagext" }; + } + + + /* + * The following comments are specified in the base class that defines the + * signature tests. This is done so the test finders will find the right class + * to run. The implementation of these methods is inherited from the super + * class which is part of the signature test framework. + */ + + // NOTE: If the API under test is not part of your testing runtime + // environment, you may use the property sigTestClasspath to specify + // where the API under test lives. This should almost never be used. + // Normally the API under test should be specified in the classpath + // of the VM running the signature tests. Use either the first + // comment or the one below it depending on which properties your + // signature tests need. Please do not use both comments. + + + + /* + * The following comments are specified in the base class that defines the + * signature tests. This is done so the test finders will find the right class + * to run. The implementation of these methods is inherited from the super + * class which is part of the signature test framework. + */ + + // NOTE: If the API under test is not part of your testing runtime + // environment, you may use the property sigTestClasspath to specify + // where the API under test lives. This should almost never be used. + // Normally the API under test should be specified in the classpath + // of the VM running the signature tests. Use either the first + // comment or the one below it depending on which properties your + // signature tests need. Please do not use both comments. + + + /* + * @testName: signatureTest + * + * @assertion: A JSP container must implement the required classes and APIs + * specified in the JSP Specification. + * + * @test_Strategy: Using reflection, gather the implementation specific + * classes and APIs. Compare these results with the expected (required) + * classes and APIs. + * + */ + @Test + public void signatureTest() throws Exception { + + logger.log(Logger.Level.INFO, "$$$ SigTestIT.signatureTest() called"); + String mapFile = null; + String packageFile = null; + String repositoryDir = null; + Properties mapFileAsProps = null; + String[] packages = getPackages(); + String apiPackage = "jakarta.servlet.jsp"; + + try { + + InputStream inStreamMapfile = JSPSigTestIT.class.getClassLoader().getResourceAsStream("com/sun/ts/tests/signaturetest/jsp/sig-test.map"); + File mFile = writeStreamToTempFile(inStreamMapfile, "sig-test", ".map"); + mapFile = mFile.getCanonicalPath(); + logger.log(Logger.Level.INFO, "mapFile location is :"+mapFile); + + InputStream inStreamPackageFile = JSPSigTestIT.class.getClassLoader().getResourceAsStream("com/sun/ts/tests/signaturetest/jsp/sig-test-pkg-list.txt"); + File pFile = writeStreamToTempFile(inStreamPackageFile, "sig-test-pkg-list", ".txt"); + packageFile = pFile.getCanonicalPath(); + logger.log(Logger.Level.INFO, "packageFile location is :"+packageFile); + + mapFileAsProps = getSigTestDriver().loadMapFile(mapFile); + String packageVersion = mapFileAsProps.getProperty(apiPackage); + logger.log(Logger.Level.INFO, "Package version from mapfile :"+packageVersion); + + InputStream inStreamSigFile = JSPSigTestIT.class.getClassLoader().getResourceAsStream("com/sun/ts/tests/signaturetest/jsp/jakarta.servlet.jsp.sig_"+packageVersion); + File sigFile = writeStreamToSigFile(inStreamSigFile, apiPackage, packageVersion); + logger.log(Logger.Level.INFO, "signature File location is :"+sigFile.getCanonicalPath()); + + } catch(IOException ex) { + logger.log(Logger.Level.ERROR , "Exception while creating temp files :"+ex); + } + + super.signatureTest(mapFile, packageFile, mapFileAsProps, packages); + } + + /* + * Call the parent class's cleanup method. + */ + +} diff --git a/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/jakarta.servlet.jsp.sig_3.1 b/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/jakarta.servlet.jsp.sig_3.1 new file mode 100644 index 0000000000..f11597b672 --- /dev/null +++ b/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/jakarta.servlet.jsp.sig_3.1 @@ -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() + diff --git a/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/sig-test-pkg-list.txt b/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/sig-test-pkg-list.txt new file mode 100644 index 0000000000..9fbd5d3480 --- /dev/null +++ b/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/sig-test-pkg-list.txt @@ -0,0 +1,28 @@ +# +# Copyright (c) 2019, 2020 Oracle and/or its affiliates and others. +# 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 +# + +## +# This file contains a list of all the packages +# contained in the signature files for this +# deliverable. This file is used to exclude valid +# sub-packages from being verified when their +# parent package's signature is checked. +## + +jakarta.servlet.jsp +jakarta.servlet.jsp.el +jakarta.servlet.jsp.tagext diff --git a/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/sig-test.map b/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/sig-test.map new file mode 100644 index 0000000000..0544334ca9 --- /dev/null +++ b/jsp/src/main/resources/com/sun/ts/tests/signaturetest/jsp/sig-test.map @@ -0,0 +1,28 @@ +# +# Copyright (c) 2019, 2021 Oracle and/or its affiliates and others. +# 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 +# + +############################################################### +# The signature test mapping file for the JSP TCK. This file +# should be formatted as a standard java properties file. The +# name is the package name and the value is the version of the +# package that should be tested by the signature tests. +############################################################### + + +# JSP +======= +jakarta.servlet.jsp=3.1 diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTest.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTest.java index 4adde6a0c9..dc5001392c 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTest.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTest.java @@ -23,6 +23,9 @@ import java.io.BufferedReader; import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; @@ -30,6 +33,7 @@ import com.sun.ts.lib.harness.EETest; import com.sun.ts.lib.util.TestUtil; +import java.lang.System.Logger; /** * This class should be extended by TCK developers that wish to create a set of @@ -39,6 +43,8 @@ */ public abstract class SigTest extends EETest { + private static final Logger logger = System.getLogger(SigTest.class.getName()); + protected SignatureTestDriver driver; /** @@ -173,18 +179,14 @@ protected String[] getClasses() { * @param p * Properties specified by the test user and passed to this test via * the test framework. - * @throws Exception - * When an error occurs reading or saving the state information - * processed by this method. */ - public void setup(String[] args, Properties p) throws Exception { + public void setup() { try { - TestUtil.logTrace("$$$ SigTest.setup() called"); - this.testInfo = new SigTestData(p); + logger.log(Logger.Level.TRACE, "$$$ SigTest.setup() called"); + this.testInfo = new SigTestData(); TestUtil.logTrace("$$$ SigTest.setup() complete"); } catch (Exception e) { - logErr("Unexpected exception " + e.getMessage()); - throw new Exception("setup failed!", e); + logger.log(Logger.Level.ERROR, "Unexpected exception " + e.getMessage()); } } @@ -197,15 +199,13 @@ public void setup(String[] args, Properties p) throws Exception { * @throws Exception * When an error occurs executing the signature tests. */ - public void signatureTest() throws Exception { - TestUtil.logTrace("$$$ SigTest.test1() called"); + public void signatureTest(String mapFile, String packageFile, Properties mapFileAsProps, String[] packages) + throws Exception { + SigTestResult results = null; - String mapFile = getMapFile(); - String repositoryDir = getRepositoryDir(); - String[] packages = getPackages(); + String repositoryDir = System.getProperty("java.io.tmpdir"); String[] classes = getClasses(); - String packageFile = getPackageFile(); - String testClasspath = testInfo.getTestClasspath(); + String testClasspath = testInfo.getTestClasspath(); // System.getProperty("signature.sigTestClasspath"); String optionalPkgToIgnore = testInfo.getOptionalTechPackagesToIgnore(); // unlisted optional technology packages are packages for optional @@ -216,35 +216,35 @@ public void signatureTest() throws Exception { // If testing with Java 9+, extract the JDK's modules so they can be used // on the testcase's classpath. - Properties sysProps = System.getProperties(); - String version = (String) sysProps.get("java.version"); - if (!version.startsWith("1.")) { - String jimageDir = testInfo.getJImageDir(); - File f = new File(jimageDir); - f.mkdirs(); - - String javaHome = (String) sysProps.get("java.home"); - TestUtil.logMsg("Executing JImage"); - - try { - ProcessBuilder pb = new ProcessBuilder(javaHome + "/bin/jimage", "extract", "--dir=" + jimageDir, javaHome + "/lib/modules"); - TestUtil.logMsg(javaHome + "/bin/jimage extract --dir=" + jimageDir + " " + javaHome + "/lib/modules"); - pb.redirectErrorStream(true); - Process proc = pb.start(); - BufferedReader out = new BufferedReader(new InputStreamReader(proc.getInputStream())); - String line = null; - while ((line = out.readLine()) != null) { - TestUtil.logMsg(line); - } - int rc = proc.waitFor(); - TestUtil.logMsg("JImage RC = " + rc); - out.close(); - } catch (Exception e) { - TestUtil.logMsg("Exception while executing JImage! Some tests may fail."); - e.printStackTrace(); + String version = System.getProperty("java.version"); + + String jimageDir = testInfo.getJImageDir(); + File f = new File(jimageDir); + f.mkdirs(); + + String javaHome = System.getProperty("java.home"); + logger.log(Logger.Level.INFO, "Executing JImage"); + + try { + ProcessBuilder pb = new ProcessBuilder(javaHome + "/bin/jimage", "extract", "--dir=" + jimageDir, javaHome + "/lib/modules"); + logger.log(Logger.Level.INFO, javaHome + "/bin/jimage extract --dir=" + jimageDir + " " + javaHome + "/lib/modules"); + pb.redirectErrorStream(true); + Process proc = pb.start(); + BufferedReader out = new BufferedReader(new InputStreamReader(proc.getInputStream())); + String line = null; + while ((line = out.readLine()) != null) { + TestUtil.logMsg(line); } + + int rc = proc.waitFor(); + TestUtil.logMsg("JImage RC = " + rc); + out.close(); + } catch (Exception e) { + TestUtil.logMsg("Exception while executing JImage! Some tests may fail."); + e.printStackTrace(); } + try { results = getSigTestDriver().executeSigTest(packageFile, mapFile, @@ -261,11 +261,65 @@ public void signatureTest() throws Exception { throw new Exception("SigTest.test1() failed!, diffs found"); } else { TestUtil.logErr("Unexpected exception " + e.getMessage()); - throw new Exception("test1 failed with an unexpected exception", e); + throw new Exception("test failed with an unexpected exception", e); } } } + public File writeStreamToTempFile(InputStream inputStream, String tempFilePrefix, String tempFileSuffix) throws IOException { + FileOutputStream outputStream = null; + try { + File file = File.createTempFile(tempFilePrefix, tempFileSuffix); + file.deleteOnExit(); + outputStream = new FileOutputStream(file); + byte[] buffer = new byte[1024]; + while (true) { + int bytesRead = inputStream.read(buffer); + if (bytesRead == -1) { + break; + } + outputStream.write(buffer, 0, bytesRead); + } + return file; + } + finally { + if (outputStream != null) { + outputStream.close(); + } + } + } + + public File writeStreamToSigFile(InputStream inputStream, String apiPackage, String packageVersion) throws IOException { + FileOutputStream outputStream = null; + String tmpdir = System.getProperty("java.io.tmpdir"); + try { + File sigfile = new File(tmpdir+ File.separator + apiPackage + ".sig_"+packageVersion); + if(sigfile.exists()){ + sigfile.delete(); + TestUtil.logMsg("Existing signature file deleted to create new one"); + } + if(!sigfile.createNewFile()){ + TestUtil.logErr("signature file is not created"); + } + outputStream = new FileOutputStream(sigfile); + byte[] buffer = new byte[1024]; + while (true) { + int bytesRead = inputStream.read(buffer); + if (bytesRead == -1) { + break; + } + outputStream.write(buffer, 0, bytesRead); + } + return sigfile; + } + + finally { + if (outputStream != null) { + outputStream.close(); + } + } + } + /** * Called by the test framework to cleanup any outstanding state. This method * simply passes the message through to the utility class so the diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestData.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestData.java index 7f36a914be..89d8b60726 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestData.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestData.java @@ -31,8 +31,8 @@ public class SigTestData { private Properties props; - public SigTestData(Properties props) { - this.props = props; + public SigTestData() { + this.props = System.getProperties(); } public String getVehicle() { diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestDriver.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestDriver.java index af41144516..78763088fa 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestDriver.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestDriver.java @@ -22,8 +22,8 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import java.lang.System.Logger; -import com.sun.javatest.Status; import com.sun.ts.lib.util.TestUtil; /** @@ -33,6 +33,8 @@ */ public class SigTestDriver extends SignatureTestDriver { + private static final Logger logger = System.getLogger(SigTestDriver.class.getName()); + private static final String CLASSPATH_FLAG = "-Classpath"; private static final String FILENAME_FLAG = "-FileName"; @@ -184,12 +186,13 @@ protected boolean runSignatureTest(String packageOrClassName, // currently, there is no way to determine if there are error msgs in // the rawmessages, so we will always dump this and call it a status. - TestUtil.logMsg( - "********** Status Report '" + packageOrClassName + "' **********\n"); - TestUtil.logMsg(rawMessages); - - return Status.parse(sigTestInstance.toString().substring(7)).isPassed(); + // TestUtil.logMsg( + // "********** Status Report '" + packageOrClassName + "' **********\n"); + // TestUtil.logMsg(rawMessages); + logger.log(Logger.Level.INFO, "********** Status Report '" + packageOrClassName + "' **********\n"); + logger.log(Logger.Level.INFO, rawMessages); + return sigTestInstance.toString().substring(7).startsWith("Passed."); } // END runSignatureTest /* @@ -230,11 +233,13 @@ protected boolean runPackageSearch(String packageOrClassName, // currently, there is no way to determine if there are error msgs in // the rawmessages, so we will always dump this and call it a status. - TestUtil.logMsg( - "********** Status Report '" + packageOrClassName + "' **********\n"); - TestUtil.logMsg(rawMessages); + // TestUtil.logMsg( + // "********** Status Report '" + packageOrClassName + "' **********\n"); + // TestUtil.logMsg(rawMessages); + logger.log(Logger.Level.INFO, "********** Status Report '" + packageOrClassName + "' **********\n"); + logger.log(Logger.Level.INFO, rawMessages); - return Status.parse(sigTestInstance.toString().substring(7)).isPassed(); + return sigTestInstance.toString().substring(7).startsWith("Passed."); } /* @@ -281,8 +286,11 @@ protected boolean verifyJTAJarForNoXA(String classpath, String repositoryDir) th // currently, there is no way to determine if there are error msgs in // the rawmessages, so we will always dump this and call it a status. - TestUtil.logMsg("********** Status Report JTA JAR validation **********\n"); - TestUtil.logMsg(rawMessages); - return Status.parse(sigTestInstance.toString().substring(7)).isPassed(); + // TestUtil.logMsg("********** Status Report JTA JAR validation **********\n"); + // TestUtil.logMsg(rawMessages); + logger.log(Logger.Level.INFO, "********** Status Report JTA JAR validation **********\n"); + logger.log(Logger.Level.INFO, rawMessages); + + return sigTestInstance.toString().substring(7).startsWith("Passed."); } } diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestEE.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestEE.java index c4e9dce7e7..87267b10b4 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestEE.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SigTestEE.java @@ -203,10 +203,10 @@ protected String[] getClasses(String vehicleName) { * When an error occurs reading or saving the state information * processed by this method. */ - public void setup(String[] args, Properties p) throws Exception { + public void setup() throws Exception { try { TestUtil.logMsg("$$$ SigTestEE.setup() called"); - this.testInfo = new SigTestData(p); + this.testInfo = new SigTestData(); TestUtil.logMsg("$$$ SigTestEE.setup() complete"); } catch (Exception e) { logErr("Unexpected exception " + e.getMessage()); diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SignatureTestDriver.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SignatureTestDriver.java index 20fa00cdb2..e34fac97ca 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SignatureTestDriver.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/SignatureTestDriver.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2022 Oracle and/or its affiliates and others. + * Copyright (c) 2007, 2023 Oracle and/or its affiliates and others. * All rights reserved. * * This program and the accompanying materials are made available under the @@ -35,6 +35,8 @@ public abstract class SignatureTestDriver { private static final String SIG_FILE_EXT = ".sig"; + private static final String SIG_FILE_VER_SEP = "_"; + // ---------------------------------------------------------- Public Methods /** @@ -448,7 +450,7 @@ protected abstract boolean verifyJTAJarForNoXA(String classpath, * file, can also be thrown if there is an error creating an input * stream from the specified file. */ - protected Properties loadMapFile(String mapFile) + public Properties loadMapFile(String mapFile) throws IOException, FileNotFoundException { FileInputStream in = null; @@ -479,19 +481,23 @@ protected Properties loadMapFile(String mapFile) * the base portion of the signature filename * @param repositoryDir * the directory in which the signatures are stored + * @param version + * the version of the signature file * @throws FileNotFoundException * if the file cannot be validated as existing and is in fact a file * @return a valid, fully qualified filename, appropriate for the system the * test is being run on */ - protected String getSigFileName(String baseName, String repositoryDir) - throws FileNotFoundException { + protected String getSigFileName(String baseName, String repositoryDir, + String version) throws FileNotFoundException { String sigFile; if (repositoryDir.endsWith(File.separator)) { - sigFile = repositoryDir + baseName + SIG_FILE_EXT; + sigFile = repositoryDir + baseName + SIG_FILE_EXT + SIG_FILE_VER_SEP + + version; } else { - sigFile = repositoryDir + File.separator + baseName + SIG_FILE_EXT; + sigFile = repositoryDir + File.separator + baseName + SIG_FILE_EXT + + SIG_FILE_VER_SEP + version; } File testFile = new File(sigFile); @@ -574,7 +580,7 @@ protected SignatureFileInfo getSigFileInfo(String packageName, String mapFile, /* Return the expected name of the signature file */ - return new SignatureFileInfo(getSigFileName(name, repositoryDir), + return new SignatureFileInfo(getSigFileName(name, repositoryDir, version), version); } // END getSigFileInfo diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/caj/CAJSigTest.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/caj/CAJSigTest.java index 038f8401ba..56b2709fd7 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/caj/CAJSigTest.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/caj/CAJSigTest.java @@ -43,6 +43,8 @@ */ public class CAJSigTest extends SigTest { + private Properties props = null; + // all the classes that make up common annotations private final String GENERATED = "jakarta.annotation.Generated"; @@ -167,6 +169,10 @@ protected String[] getClasses() { } + public CAJSigTest (){ + props = System.getProperties(); + } + /***** Boilerplate Code *****/ /** @@ -214,39 +220,39 @@ public Status run(String args[], PrintWriter out, PrintWriter err) { * ca.sig.securityrunas; ca.sig.sqldatasourcedefinition; * ca.sig.sqldatasourcedefinitions; */ - public void setup(String[] args, Properties p) throws Exception { - super.setup(args, p); + public void setup() { + super.setup(); // read in the values from the ts.jte file - ca_generated = Boolean.valueOf(p.getProperty("ca.sig.generated")) + ca_generated = Boolean.valueOf(props.getProperty("ca.sig.generated")) .booleanValue(); - ca_managedbean = Boolean.valueOf(p.getProperty("ca.sig.managedbean")) + ca_managedbean = Boolean.valueOf(props.getProperty("ca.sig.managedbean")) .booleanValue(); - ca_postconstruct = Boolean.valueOf(p.getProperty("ca.sig.postconstruct")) + ca_postconstruct = Boolean.valueOf(props.getProperty("ca.sig.postconstruct")) .booleanValue(); - ca_priority = Boolean.valueOf(p.getProperty("ca.sig.priority")) + ca_priority = Boolean.valueOf(props.getProperty("ca.sig.priority")) .booleanValue(); - ca_predestroy = Boolean.valueOf(p.getProperty("ca.sig.predestroy")) + ca_predestroy = Boolean.valueOf(props.getProperty("ca.sig.predestroy")) .booleanValue(); - ca_resource = Boolean.valueOf(p.getProperty("ca.sig.resource")) + ca_resource = Boolean.valueOf(props.getProperty("ca.sig.resource")) .booleanValue(); - ca_resources = Boolean.valueOf(p.getProperty("ca.sig.resources")) + ca_resources = Boolean.valueOf(props.getProperty("ca.sig.resources")) .booleanValue(); ca_securitydeclareroles = Boolean - .valueOf(p.getProperty("ca.sig.securitydeclareroles")).booleanValue(); + .valueOf(props.getProperty("ca.sig.securitydeclareroles")).booleanValue(); ca_securitydenyall = Boolean - .valueOf(p.getProperty("ca.sig.securitydenyall")).booleanValue(); + .valueOf(props.getProperty("ca.sig.securitydenyall")).booleanValue(); ca_securitypermitall = Boolean - .valueOf(p.getProperty("ca.sig.securitypermitall")).booleanValue(); + .valueOf(props.getProperty("ca.sig.securitypermitall")).booleanValue(); ca_securityrolesallowed = Boolean - .valueOf(p.getProperty("ca.sig.securityrolesallowed")).booleanValue(); - ca_securityrunas = Boolean.valueOf(p.getProperty("ca.sig.securityrunas")) + .valueOf(props.getProperty("ca.sig.securityrolesallowed")).booleanValue(); + ca_securityrunas = Boolean.valueOf(props.getProperty("ca.sig.securityrunas")) .booleanValue(); ca_sqldatasourcedefinition = Boolean - .valueOf(p.getProperty("ca.sig.sqldatasourcedefinition")) + .valueOf(props.getProperty("ca.sig.sqldatasourcedefinition")) .booleanValue(); ca_sqldatasourcedefinitions = Boolean - .valueOf(p.getProperty("ca.sig.sqldatasourcedefinitions")) + .valueOf(props.getProperty("ca.sig.sqldatasourcedefinitions")) .booleanValue(); } diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/jaxws/JAXWSSigTest.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/jaxws/JAXWSSigTest.java index ede69ebd69..058d2ffe37 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/jaxws/JAXWSSigTest.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/jaxws/JAXWSSigTest.java @@ -99,8 +99,8 @@ public Status run(String args[], PrintWriter out, PrintWriter err) { /* * @class.setup_props: sigTestClasspath, Location of JAXWS jar files; ts_home; */ - public void setup(String[] args, Properties p) throws Exception { - super.setup(args, p); + public void setup() throws Exception { + super.setup(); } /* diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/jms/JMSSigTest.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/jms/JMSSigTest.java index c734902fe2..7601dac003 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/jms/JMSSigTest.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/jms/JMSSigTest.java @@ -94,8 +94,8 @@ public Status run(String args[], PrintWriter out, PrintWriter err) { /* * @class.setup_props: sigTestClasspath, Location of JMS jar files; ts_home; */ - public void setup(String[] args, Properties p) throws Exception { - super.setup(args, p); + public void setup() throws Exception { + super.setup(); } /* diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/saaj/SAAJSigTest.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/saaj/SAAJSigTest.java index 2c05fbb07e..9da7140543 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/saaj/SAAJSigTest.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/saaj/SAAJSigTest.java @@ -98,8 +98,8 @@ public Status run(String args[], PrintWriter out, PrintWriter err) { /* * @class.setup_props: sigTestClasspath, Location of SAAJ jar files; ts_home; */ - public void setup(String[] args, Properties p) throws Exception { - super.setup(args, p); + public void setup() throws Exception { + super.setup(); } /* diff --git a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/wsmd/Client.java b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/wsmd/Client.java index 208157b69b..3525f750ad 100644 --- a/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/wsmd/Client.java +++ b/signaturetest/src/main/java/com/sun/ts/tests/signaturetest/wsmd/Client.java @@ -98,8 +98,8 @@ public Status run(String args[], PrintWriter out, PrintWriter err) { /* * @class.setup_props: ts_home; */ - public void setup(String[] args, Properties p) throws Exception { - super.setup(args, p); + public void setup() { + super.setup(); } /*