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