diff --git a/glassfish-runner/jsonp-platform-tck/pom.xml b/glassfish-runner/jsonp-platform-tck/pom.xml new file mode 100644 index 0000000000..3b2b166d55 --- /dev/null +++ b/glassfish-runner/jsonp-platform-tck/pom.xml @@ -0,0 +1,290 @@ + + + + 4.0.0 + + + org.glassfish + standalone-tck + 11.0.0-SNAPSHOT + ../pom.xml + + jakarta + glassfish.jsonp-platform-tck + 11.0.0-SNAPSHOT + jar + + + 1.7.0.Alpha14 + + 8.0.0-JDK17-M5 + + + glassfish8 + 11.0.0-M2 + 5.9.1 + jsonp-platform-tck + 11.0.0-SNAPSHOT + + + + + org.junit.jupiter + junit-jupiter + ${junit.jupiter.version} + + + jakarta.tck + ${tck.artifactId} + ${tck.version} + + + jakarta.json.bind + jakarta.json.bind-api + 3.0.1 + provided + + + jakarta.json + jakarta.json-api + 2.1.3 + provided + + + jakarta.platform + jakarta.jakartaee-api + ${jakarta.platform.version} + provided + + + commons-httpclient + commons-httpclient + 3.1 + + + org.jboss.arquillian.container + arquillian-container-test-spi + ${arquillian.junit} + + + org.glassfish.main.common + simple-glassfish-api + ${glassfish.container.version} + + + org.jboss.arquillian.junit5 + arquillian-junit5-container + ${arquillian.junit} + + + org.jboss.arquillian.junit5 + arquillian-junit5-core + ${arquillian.junit} + + + org.omnifaces.arquillian + arquillian-glassfish-server-managed + 1.4 + test + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.2.0 + + + 01-unpack + + unpack + + generate-resources + + + + org.glassfish.main.distributions + ${glassfish-artifact-id} + ${glassfish.container.version} + zip + false + ${project.build.directory} + + + + + + + + maven-antrun-plugin + 3.0.0 + + + 02-asadmin-permission + + run + + generate-resources + + + + + + + + + + org.codehaus.mojo + exec-maven-plugin + + + 03-StopDomain1 + + exec + + pre-integration-test + + ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin + + stop-domain + + + + + 04-StartDomain1 + + exec + + pre-integration-test + + ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin + + start-domain + + + + + 05-Enable Trace requests + + exec + + pre-integration-test + + ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin + + set + server-config.network-config.protocols.protocol.http-listener-1.http.trace-enabled=true + + + + + 06-StopDomain + + exec + + pre-integration-test + + ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin + + stop-domain + + + + + + + maven-failsafe-plugin + 3.0.0-M5 + + + pluggability-tests + + integration-test + verify + + + + + **/PatchTestsIT.java + + jakarta.tck:${tck.artifactId} + + ${project.build.directory}/${glassfish.toplevel.dir} + ${project.build.directory}/${glassfish.toplevel.dir} + true + true + true + /tmp + + + ${project.build.directory}/${glassfish.toplevel.dir} + + + + + patch-tests + + integration-test + verify + + + + ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar + + + **/PatchTestsIT.java + + jakarta.tck:${tck.artifactId} + + ${project.build.directory}/${glassfish.toplevel.dir} + ${project.build.directory}/${glassfish.toplevel.dir} + true + true + true + /tmp + + + ${project.build.directory}/${glassfish.toplevel.dir} + + + + + + + + + + + full + + true + + + glassfish + + + + web + + web + + + + diff --git a/glassfish-runner/jsonp-platform-tck/src/test/resources/arquillian.xml b/glassfish-runner/jsonp-platform-tck/src/test/resources/arquillian.xml new file mode 100644 index 0000000000..c7b9520871 --- /dev/null +++ b/glassfish-runner/jsonp-platform-tck/src/test/resources/arquillian.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + target/glassfish8 + + + + + diff --git a/jsonp/pom.xml b/jsonp/pom.xml index 3608f3d9f9..4b984ea341 100644 --- a/jsonp/pom.xml +++ b/jsonp/pom.xml @@ -26,28 +26,64 @@ 11.0.0-SNAPSHOT - jsonp + jsonp-platform-tck jar JSONP JSONP + + 1.7.0.Alpha14 + 2.0.1 + 2.1.3 + 3.0.1 + 5.9.1 + + - - ${project.groupId} - libutil - ${project.groupId} common + 11.0.0-SNAPSHOT javatest javatest + + jakarta.inject + jakarta.inject-api + ${jakarta.inject-api.version} + + + jakarta.json.bind + jakarta.json.bind-api + ${jakarta.json.bind-api.version} + jakarta.json jakarta.json-api + ${jakarta.json-api.version} + + + org.jboss.shrinkwrap + shrinkwrap-api + 1.2.6 + + + org.junit.jupiter + junit-jupiter + ${junit.jupiter.version} + + + org.jboss.arquillian.junit5 + arquillian-junit5-container + ${arquillian.junit} + + + org.jboss.arquillian.junit5 + arquillian-junit5-core + ${arquillian.junit} diff --git a/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/common/JsonPTest.java b/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/common/JsonPTest.java index f8800e56d5..3882d62144 100644 --- a/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/common/JsonPTest.java +++ b/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/common/JsonPTest.java @@ -21,13 +21,12 @@ import com.sun.javatest.Status; import com.sun.ts.lib.harness.EETest; import com.sun.ts.lib.harness.ServiceEETest; -import com.sun.ts.tests.jsonp.api.patchtests.PatchTests; // $Id$ /** * Common JSON-P test. */ -public class JsonPTest extends ServiceEETest { +public class JsonPTest { //extends ServiceEETest { /** * Java VM code execution entry point. @@ -35,11 +34,6 @@ public class JsonPTest extends ServiceEETest { * @param args * Command line arguments. */ - public static void main(String[] args) { - PatchTests theTests = new PatchTests(); - Status s = theTests.run(args, System.out, System.err); - s.exit(); - } /** * Test setup. diff --git a/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/patchtests/PatchTests.java b/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/patchtests/PatchTests.java deleted file mode 100644 index 62e12d21e4..0000000000 --- a/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/patchtests/PatchTests.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2016, 2022 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.jsonp.api.patchtests; - -import com.sun.ts.tests.jsonp.api.common.JsonPTest; -import com.sun.ts.tests.jsonp.api.common.TestResult; - -import jakarta.json.JsonPatch; - -// $Id$ -/* - * RFC 6902: JavaScript Object Notation (JSON) Patch compatibility tests.
- * {@see RFC 6902}. - */ -public class PatchTests extends JsonPTest { - - /** - * Test {@link JsonPatch} factory methods added in JSON-P 1.1. - * - * @throws Exception - * when this test failed. - * - * @testName: jsonCreatePatch11Test - * - * @assertion_ids: JSONP:JAVADOC:574; JSONP:JAVADOC:579; JSONP:JAVADOC:581; - * JSONP:JAVADOC:653; JSONP:JAVADOC:658; JSONP:JAVADOC:660; - * JSONP:JAVADOC:620; JSONP:JAVADOC:621; - * - * @test_Strategy: Tests JsonPatch API factory methods added in JSON-P 1.1. - */ - public void jsonCreatePatch11Test() throws Exception { - PatchCreate createTest = new PatchCreate(); - final TestResult result = createTest.test(); - result.eval(); - } - -} diff --git a/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/patchtests/PatchTestsIT.java b/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/patchtests/PatchTestsIT.java new file mode 100644 index 0000000000..fb1d94126e --- /dev/null +++ b/jsonp/src/main/java/com/sun/ts/tests/jsonp/api/patchtests/PatchTestsIT.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2024 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.jsonp.api.patchtests; + +import java.util.stream.Collectors; +import java.nio.charset.StandardCharsets; +import java.io.InputStreamReader; +import java.io.InputStream; +import java.io.IOException; +import java.io.BufferedReader; +import java.io.StringReader; +import com.sun.ts.tests.jsonp.api.common.JsonPTest; +import com.sun.ts.tests.jsonp.api.common.TestResult; + +import jakarta.json.JsonPatch; + +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.arquillian.junit5.ArquillianExtension; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.jboss.shrinkwrap.api.asset.StringAsset; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.ExtendWith; +import static org.junit.jupiter.api.Assertions.assertFalse; + +import org.jboss.arquillian.container.test.api.OperateOnDeployment; +import org.jboss.arquillian.test.api.ArquillianResource; + +import java.lang.System.Logger; + +// $Id$ +/* + * RFC 6902: JavaScript Object Notation (JSON) Patch compatibility tests.
+ * {@see RFC 6902}. + */ +@ExtendWith(ArquillianExtension.class) +public class PatchTestsIT extends JsonPTest { + + private static final Logger logger = System.getLogger(PatchTestsIT.class.getName()); + + private static String packagePath = PatchTestsIT.class.getPackageName().replace(".", "/"); + + @BeforeEach + void logStartTest(TestInfo testInfo) { + logger.log(Logger.Level.INFO, "STARTING TEST : " + testInfo.getDisplayName()); + } + + @AfterEach + void logFinishTest(TestInfo testInfo) { + logger.log(Logger.Level.INFO, "FINISHED TEST : " + testInfo.getDisplayName()); + } + + @Deployment(testable = false) + public static WebArchive createServletDeployment() throws IOException { + + WebArchive war = ShrinkWrap.create(WebArchive.class, "patchtests_servlet_vehicle_web.war"); + war.addClass(PatchTestsIT.class); + war.addClass(CommonOperation.class); + war.addClass(PatchCreate.class); + + war.addClass(com.sun.ts.tests.common.vehicle.servlet.ServletVehicle.class); + war.addClass(com.sun.ts.tests.common.vehicle.VehicleRunnerFactory.class); + war.addClass(com.sun.ts.tests.common.vehicle.VehicleRunnable.class); + war.addClass(com.sun.ts.tests.common.vehicle.VehicleClient.class); + war.addClass(com.sun.ts.lib.harness.EETest.class); + war.addClass(com.sun.ts.lib.harness.RemoteStatus.class); + war.addClass(com.sun.javatest.Status.class); + war.addClass(com.sun.ts.lib.harness.ServiceEETest.class); + + war.addClass(com.sun.ts.tests.jsonp.api.common.ArrayBuilder.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.JsonAssert.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.JsonIO.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.JsonPTest.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.JsonValueType.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.MergeRFCObject.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.ObjectBuilder.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.PointerRFCObject.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.SimpleValues.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.TestFail.class); + war.addClass(com.sun.ts.tests.jsonp.api.common.TestResult.class); + war.addClass(com.sun.ts.tests.jsonp.common.JSONP_Util.class); + + war.setWebXML(PatchTestsIT.class.getClassLoader().getResource(packagePath+"/servlet_vehicle_web.xml")); + + return war; + + } + + /** + * Test {@link JsonPatch} factory methods added in JSON-P 1.1. + * + * @throws Exception + * when this test failed. + * + * @testName: jsonCreatePatch11Test + * + * @assertion_ids: JSONP:JAVADOC:574; JSONP:JAVADOC:579; JSONP:JAVADOC:581; + * JSONP:JAVADOC:653; JSONP:JAVADOC:658; JSONP:JAVADOC:660; + * JSONP:JAVADOC:620; JSONP:JAVADOC:621; + * + * @test_Strategy: Tests JsonPatch API factory methods added in JSON-P 1.1. + */ + @Test + public void jsonCreatePatch11Test() throws Exception { + PatchCreate createTest = new PatchCreate(); + final TestResult result = createTest.test(); + result.eval(); + } + +} diff --git a/jsonp/src/main/java/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/Client.java b/jsonp/src/main/java/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/ClientIT.java similarity index 61% rename from jsonp/src/main/java/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/Client.java rename to jsonp/src/main/java/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/ClientIT.java index 95101d6af6..9e1cf78ec9 100644 --- a/jsonp/src/main/java/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/Client.java +++ b/jsonp/src/main/java/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/ClientIT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2024 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 @@ -14,13 +14,16 @@ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 */ -/* - * $Id$ - */ + package com.sun.ts.tests.jsonp.pluggability.jsonprovidertests; +import java.io.File; +import java.net.URLClassLoader; import java.io.ByteArrayOutputStream; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.IOException; +import java.io.BufferedReader; import java.io.StringReader; import java.io.StringWriter; import java.util.ArrayList; @@ -29,6 +32,9 @@ import java.util.List; import java.util.Properties; import java.util.ServiceLoader; +import java.util.stream.Collectors; +import java.nio.charset.StandardCharsets; +import java.net.URL; import com.sun.javatest.Status; import com.sun.ts.lib.harness.ServiceEETest; @@ -51,33 +57,157 @@ import jakarta.json.stream.JsonParser; import jakarta.json.stream.JsonParserFactory; -public class Client extends ServiceEETest { - private static final String MY_JSONPROVIDER_CLASS = "com.sun.ts.tests.jsonp.provider.MyJsonProvider"; +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.arquillian.junit5.ArquillianExtension; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; +import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.jboss.shrinkwrap.api.exporter.ZipExporter; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.asset.UrlAsset; - private String providerPath = null; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.ExtendWith; +import static org.junit.jupiter.api.Assertions.assertFalse; - public static void main(String[] args) { - Client theTests = new Client(); - Status s = theTests.run(args, System.out, System.err); - s.exit(); - } +import java.lang.System.Logger; - /* Test setup */ +@ExtendWith(ArquillianExtension.class) +public class ClientIT { //extends ServiceEETest { - /* - * @class.setup_props: - */ + private static final Logger logger = System.getLogger(ClientIT.class.getName()); + + private static String packagePath = ClientIT.class.getPackageName().replace(".", "/"); + + public final String TEMP_DIR = System.getProperty("java.io.tmpdir", "/tmp"); - public void setup(String[] args, Properties p) throws Exception { - logMsg("setup ok"); + private boolean providerJarDeployed = false; + + @BeforeEach + void logStartTest(TestInfo testInfo) throws Exception { + logger.log(Logger.Level.INFO, "STARTING TEST : " + testInfo.getDisplayName()); + } + + @BeforeEach + public void setup() throws Exception { + createProviderJar(); + logger.log(Logger.Level.INFO, "setup ok"); } + @AfterEach + void logFinishTest(TestInfo testInfo) throws Exception { + logger.log(Logger.Level.INFO, "FINISHED TEST : " + testInfo.getDisplayName()); + } + + @AfterEach public void cleanup() throws Exception { - logMsg("cleanup ok"); + removeProviderJarFromCP(); MyJsonProvider.clearCalls(); MyJsonGenerator.clearCalls(); + logger.log(Logger.Level.INFO, "cleanup ok"); + + } + + + @Deployment(testable = false) + public static WebArchive createServletDeployment() throws Exception { + + String providerPackagePath = MyJsonProvider.class.getPackageName().replace(".", "/"); + + WebArchive warArchive = ShrinkWrap.create(WebArchive.class, "jsonprovidertests_servlet_vehicle_web.war"); + warArchive.addClass(ClientIT.class) + .addClass(com.sun.ts.tests.common.vehicle.servlet.ServletVehicle.class) + .addClass(com.sun.ts.tests.common.vehicle.VehicleRunnerFactory.class) + .addClass(com.sun.ts.tests.common.vehicle.VehicleRunnable.class) + .addClass(com.sun.ts.tests.common.vehicle.VehicleClient.class) + .addClass(com.sun.ts.tests.jsonp.common.JSONP_Data.class) + .addClass(com.sun.ts.tests.jsonp.common.JSONP_Util.class) + .addClass(com.sun.ts.tests.jsonp.common.MyBufferedReader.class) + .addClass(com.sun.ts.tests.jsonp.common.MyBufferedWriter.class) + .addClass(com.sun.ts.tests.jsonp.common.MyBufferedInputStream.class) + .addClass(com.sun.ts.tests.jsonp.common.MyJsonLocation.class); + + warArchive.add(new UrlAsset(ClientIT.class.getClassLoader().getResource(packagePath+"/jsonArrayWithAllTypesOfData.json")), "WEB-INF/classes/jsonArrayWithAllTypesOfData.json") + .add(new UrlAsset(ClientIT.class.getClassLoader().getResource(packagePath+"/jsonObjectWithAllTypesOfData.json")), "WEB-INF/classes/jsonObjectWithAllTypesOfData.json") + .setWebXML(ClientIT.class.getClassLoader().getResource(packagePath+"/servlet_vehicle_web.xml")); + + JavaArchive jarArchive = ShrinkWrap.create(JavaArchive.class, "jsonp_alternate_provider.jar") + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonGenerator.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonGeneratorFactory.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonParser.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonParserFactory.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonProvider.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonReader.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonReaderFactory.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonWriter.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonWriterFactory.class) + .addAsResource(new UrlAsset(MyJsonProvider.class.getClassLoader().getResource(providerPackagePath+"/META-INF/services/jakarta.json.spi.JsonProvider")), "META-INF/services/jakarta.json.spi.JsonProvider"); + + warArchive.addAsLibrary(jarArchive); + System.out.println("Alwin war:"+warArchive.getContent()); + return warArchive; + } + public void removeProviderJarFromCP() throws Exception { + if (providerJarDeployed) { + URLClassLoader currentThreadClassLoader = (URLClassLoader) Thread.currentThread().getContextClassLoader(); + Thread.currentThread().setContextClassLoader(currentThreadClassLoader.getParent()); + currentThreadClassLoader.close(); + providerJarDeployed = false; + } + } + + public void createProviderJar() throws Exception { + + String providerPackagePath = MyJsonProvider.class.getPackageName().replace(".", "/"); + + JavaArchive jarArchive = ShrinkWrap.create(JavaArchive.class, "jsonp_alternate_provider.jar") + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonGenerator.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonGeneratorFactory.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonParser.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonParserFactory.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonProvider.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonReader.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonReaderFactory.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonWriter.class) + .addClass(com.sun.ts.tests.jsonp.provider.MyJsonWriterFactory.class) + .addAsResource(new UrlAsset(MyJsonProvider.class.getClassLoader().getResource(providerPackagePath+"/META-INF/services/jakarta.json.spi.JsonProvider")), "META-INF/services/jakarta.json.spi.JsonProvider"); + + jarArchive.as(ZipExporter.class).exportTo(new File(TEMP_DIR + File.separator + "jsonp_alternate_provider.jar"), true); + + ClassLoader currentThreadClassLoader = Thread.currentThread().getContextClassLoader(); + URLClassLoader urlClassLoader = new URLClassLoader( + new URL[] { new File(TEMP_DIR + File.separator + "jsonp_alternate_provider.jar").toURL() }, + currentThreadClassLoader); + Thread.currentThread().setContextClassLoader(urlClassLoader); + + providerJarDeployed = true; + + } + + private static final String MY_JSONPROVIDER_CLASS = "com.sun.ts.tests.jsonp.provider.MyJsonProvider"; + + private String providerPath = null; + + // public static void main(String[] args) { + // Client theTests = new Client(); + // Status s = theTests.run(args, System.out, System.err); + // s.exit(); + // } + + /* Test setup */ + + /* + * @class.setup_props: + */ + + /* Tests */ /* @@ -88,17 +218,18 @@ public void cleanup() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * static JsonProvider provider() */ + @Test public void jsonProviderTest1() throws Exception { boolean pass = true; try { // Load my provider JsonProvider provider = JsonProvider.provider(); String providerClass = provider.getClass().getName(); - logMsg("provider class=" + providerClass); + logger.log(Logger.Level.INFO, "provider class=" + providerClass); if (providerClass.equals(MY_JSONPROVIDER_CLASS)) - logMsg("Current provider is my provider - expected."); + logger.log(Logger.Level.INFO, "Current provider is my provider - expected."); else { - logErr("Current provider is not my provider - unexpected."); + logger.log(Logger.Level.ERROR, "Current provider is not my provider - unexpected."); pass = false; ServiceLoader loader = ServiceLoader.load(JsonProvider.class); Iterator it = loader.iterator(); @@ -106,7 +237,7 @@ public void jsonProviderTest1() throws Exception { while(it.hasNext()) { providers.add(it.next()); } - logMsg("Providers: "+providers); + logger.log(Logger.Level.INFO, "Providers: "+providers); } } catch (Exception e) { throw new Exception("jsonProviderTest1 Failed: ", e); @@ -123,19 +254,20 @@ public void jsonProviderTest1() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonGenerator createGenerator(Writer) */ + @Test public void jsonProviderTest2() throws Exception { boolean pass = true; String expString = "public JsonGenerator createGenerator(Writer)"; String expString2 = "public JsonGenerator writeStartArray()"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonGenerator generator = Json.createGenerator(new StringWriter()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); generator.writeStartArray(); String actString2 = MyJsonGenerator.getCalls(); - logMsg("Verify SPI generator method was called: " + expString2); + logger.log(Logger.Level.INFO, "Verify SPI generator method was called: " + expString2); pass = JSONP_Util.assertEquals(expString2, actString2); } catch (Exception e) { throw new Exception("jsonProviderTest2 Failed: ", e); @@ -152,20 +284,21 @@ public void jsonProviderTest2() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonGenerator createGenerator(OutputStream) */ + @Test public void jsonProviderTest3() throws Exception { boolean pass = true; String expString = "public JsonGenerator createGenerator(OutputStream)"; String expString2 = "public JsonGenerator writeStartObject()"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonGenerator generator = Json .createGenerator(new ByteArrayOutputStream()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); generator.writeStartObject(); String actString2 = MyJsonGenerator.getCalls(); - logMsg("Verify SPI generator method was called: " + expString2); + logger.log(Logger.Level.INFO, "Verify SPI generator method was called: " + expString2); pass = JSONP_Util.assertEquals(expString2, actString2); } catch (Exception e) { throw new Exception("jsonProviderTest3 Failed: ", e); @@ -182,14 +315,15 @@ public void jsonProviderTest3() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonParser createParser(Reader) */ + @Test public void jsonProviderTest4() throws Exception { boolean pass = true; String expString = "public JsonParser createParser(Reader)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonParser parser = Json.createParser(new StringReader("{}")); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest4 Failed: ", e); @@ -206,15 +340,16 @@ public void jsonProviderTest4() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonParser createParser(InputStream) */ + @Test public void jsonProviderTest5() throws Exception { boolean pass = true; String expString = "public JsonParser createParser(InputStream)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonParser parser = Json .createParser(JSONP_Util.getInputStreamFromString("{}")); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest5 Failed: ", e); @@ -231,15 +366,16 @@ public void jsonProviderTest5() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonParserFactory createParserFactory(Map) */ + @Test public void jsonProviderTest6() throws Exception { boolean pass = true; String expString = "public JsonParserFactory createParserFactory(Map)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonParserFactory parserFactory = Json .createParserFactory(JSONP_Util.getEmptyConfig()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest6 Failed: ", e); @@ -256,15 +392,16 @@ public void jsonProviderTest6() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonParserFactory createParserFactory(Map) */ + @Test public void jsonProviderTest7() throws Exception { boolean pass = true; String expString = "public JsonParserFactory createParserFactory(Map)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonParserFactory parserFactory = Json .createParserFactory(new HashMap()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest7 Failed: ", e); @@ -281,15 +418,16 @@ public void jsonProviderTest7() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonGeneratorFactory createGeneratorFactory(Map) */ + @Test public void jsonProviderTest8() throws Exception { boolean pass = true; String expString = "public JsonGeneratorFactory createGeneratorFactory(Map)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonGeneratorFactory generatorFactory = Json .createGeneratorFactory(new HashMap()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest8 Failed: ", e); @@ -306,15 +444,16 @@ public void jsonProviderTest8() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonWriterFactory createWriterFactory(Map) */ + @Test public void jsonProviderTest9() throws Exception { boolean pass = true; String expString = "public JsonWriterFactory createWriterFactory(Map)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonWriterFactory factory = Json .createWriterFactory(JSONP_Util.getEmptyConfig()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest9 Failed: ", e); @@ -333,16 +472,17 @@ public void jsonProviderTest9() throws Exception { * can be thrown. An InputStream of null will cause MyJsonProvider to throw * JsonException. */ + @Test public void jsonProviderTest10() throws Exception { boolean pass = true; String expString = "public JsonParser createParser(InputStream)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); InputStream in = null; JsonParser parser = Json.createParser(in); pass = false; } catch (JsonException e) { - logMsg("Caught expected JsonException: " + e); + logger.log(Logger.Level.INFO, "Caught expected JsonException: " + e); } catch (Exception e) { throw new Exception("jsonProviderTest10 Failed: ", e); } @@ -358,14 +498,15 @@ public void jsonProviderTest10() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonArrayBuilder createArrayBuilder() */ + @Test public void jsonProviderTest11() throws Exception { boolean pass = true; String expString = "public JsonArrayBuilder createArrayBuilder()"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonArrayBuilder arrayBuilder = Json.createArrayBuilder(); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest11 Failed: ", e); @@ -382,14 +523,15 @@ public void jsonProviderTest11() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonObjectBuilder createObjectBuilder() */ + @Test public void jsonProviderTest12() throws Exception { boolean pass = true; String expString = "public JsonObjectBuilder createObjectBuilder()"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonObjectBuilder objectBuilder = Json.createObjectBuilder(); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest12 Failed: ", e); @@ -406,15 +548,16 @@ public void jsonProviderTest12() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonBuilderFactory createBuilderFactory(Map) */ + @Test public void jsonProviderTest13() throws Exception { boolean pass = true; String expString = "public JsonBuilderFactory createBuilderFactory(Map)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonBuilderFactory objectBuilder = Json .createBuilderFactory(JSONP_Util.getEmptyConfig()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest13 Failed: ", e); @@ -431,14 +574,15 @@ public void jsonProviderTest13() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonReader createReader(Reader) */ + @Test public void jsonProviderTest14() throws Exception { boolean pass = true; String expString = "public JsonReader createReader(Reader)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonReader reader = Json.createReader(new StringReader("{}")); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest14 Failed: ", e); @@ -455,15 +599,16 @@ public void jsonProviderTest14() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonReader createReader(InputStream) */ + @Test public void jsonProviderTest15() throws Exception { boolean pass = true; String expString = "public JsonReader createReader(InputStream)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonReader reader = Json .createReader(JSONP_Util.getInputStreamFromString("{}")); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest15 Failed: ", e); @@ -480,14 +625,15 @@ public void jsonProviderTest15() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonWriter createWriter(Writer) */ + @Test public void jsonProviderTest16() throws Exception { boolean pass = true; String expString = "public JsonWriter createWriter(Writer)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonWriter writer = Json.createWriter(new StringWriter()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest16 Failed: ", e); @@ -504,14 +650,15 @@ public void jsonProviderTest16() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonWriter createWriter(OutputStream) */ + @Test public void jsonProviderTest17() throws Exception { boolean pass = true; String expString = "public JsonWriter createWriter(OutputStream)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonWriter writer = Json.createWriter(new ByteArrayOutputStream()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest17 Failed: ", e); @@ -528,15 +675,16 @@ public void jsonProviderTest17() throws Exception { * @test_Strategy: Test call of SPI provider method with signature: o public * JsonReaderFactory createReaderFactory(Map) */ + @Test public void jsonProviderTest18() throws Exception { boolean pass = true; String expString = "public JsonReaderFactory createReaderFactory(Map)"; try { - logMsg("Calling SPI provider method: " + expString); + logger.log(Logger.Level.INFO, "Calling SPI provider method: " + expString); JsonReaderFactory factory = Json .createReaderFactory(JSONP_Util.getEmptyConfig()); String actString = MyJsonProvider.getCalls(); - logMsg("Verify SPI provider method was called: " + expString); + logger.log(Logger.Level.INFO, "Verify SPI provider method was called: " + expString); pass = JSONP_Util.assertEquals(expString, actString); } catch (Exception e) { throw new Exception("jsonProviderTest18 Failed: ", e); diff --git a/jsonp/src/main/resources/com/sun/ts/tests/jsonp/api/patchtests/servlet_vehicle_web.xml b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/api/patchtests/servlet_vehicle_web.xml new file mode 100644 index 0000000000..0020c4d698 --- /dev/null +++ b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/api/patchtests/servlet_vehicle_web.xml @@ -0,0 +1,33 @@ + + + + + patchtests_servlet_vehicle + + Servlet_VehicleLogicalName + com.sun.ts.tests.common.vehicle.servlet.ServletVehicle + + + Servlet_VehicleLogicalName + /servlet_vehicle + + + 54 + + diff --git a/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/jsonArrayWithAllTypesOfData.json b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/jsonArrayWithAllTypesOfData.json new file mode 100644 index 0000000000..b7e3a59a2c --- /dev/null +++ b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/jsonArrayWithAllTypesOfData.json @@ -0,0 +1,36 @@ +[ + "", + [], + {}, + "string", + 100, + true, + false, + null, + { + "emptyString" : "", + "emptyArray" : [], + "emptyObject" : {}, + "string" : "string", + "number" : 100, + "true" : true, + "false" : false, + "null" : null, + "object" : { "name" : "value" }, + "array" : [ "one", "two" ] + }, + [ "string", 100, true, false, null, { "name" : "value" }, [ "one", "two" ] ], + 100, + -100, + 9223372036854775807, + -9223372036854775808, + 0.5, + -0.5, + 7e3, + 7e+3, + 9E3, + 9E+3, + 7e-3, + 7E-3, + "!@#$%^&*()_+|~1234567890-=;',./<>? qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM" +] diff --git a/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/jsonObjectWithAllTypesOfData.json b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/jsonObjectWithAllTypesOfData.json new file mode 100644 index 0000000000..1e92477574 --- /dev/null +++ b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/jsonObjectWithAllTypesOfData.json @@ -0,0 +1,36 @@ +{ + "emptyString" : "", + "emptyArray" : [], + "emptyObject" : {}, + "string" : "string", + "number" : 100, + "true" : true, + "false" : false, + "null" : null, + "object" : { + "emptyString" : "", + "emptyArray" : [], + "emptyObject" : {}, + "string" : "string", + "number" : 100, + "true" : true, + "false" : false, + "null" : null, + "object" : { "name" : "value" }, + "array" : [ "one", "two" ] + }, + "array" : [ "string", 100, true, false, null, { "name" : "value" }, [ "one", "two" ] ], + "intPositive" : 100, + "intNegative" : -100, + "longMax" : 9223372036854775807, + "longMin" : -9223372036854775808, + "fracPositive" : 0.5, + "fracNegative" : -0.5, + "expPositive1" : 7e3, + "expPositive2" : 7e+3, + "expPositive3" : 9E3, + "expPositive4" : 9E+3, + "expNegative1" : 7e-3, + "expNegative2" : 7E-3, + "asciiChars" : "!@#$%^&*()_+|~1234567890-=;',./<>? qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM" +} diff --git a/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/servlet_vehicle_web.xml b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/servlet_vehicle_web.xml new file mode 100644 index 0000000000..cef2d3f58c --- /dev/null +++ b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/servlet_vehicle_web.xml @@ -0,0 +1,33 @@ + + + + + jsonprovidertests_servlet_vehicle + + Servlet_VehicleLogicalName + com.sun.ts.tests.common.vehicle.servlet.ServletVehicle + + + Servlet_VehicleLogicalName + /servlet_vehicle + + + 54 + + diff --git a/jsonp/src/main/java/com/sun/ts/tests/jsonp/provider/META-INF/services/jakarta.json.spi.JsonProvider b/jsonp/src/main/resources/com/sun/ts/tests/jsonp/provider/META-INF/services/jakarta.json.spi.JsonProvider similarity index 100% rename from jsonp/src/main/java/com/sun/ts/tests/jsonp/provider/META-INF/services/jakarta.json.spi.JsonProvider rename to jsonp/src/main/resources/com/sun/ts/tests/jsonp/provider/META-INF/services/jakarta.json.spi.JsonProvider