diff --git a/impl-tck/pom.xml b/impl-tck/pom.xml
index 84fc2b1..ebe4884 100644
--- a/impl-tck/pom.xml
+++ b/impl-tck/pom.xml
@@ -39,31 +39,27 @@
     </properties>
 
     <dependencies>
-        <!-- FIX ME: this API hides the one included in the jakarta.json artifact -->
+        <!-- this API hides the one used by the implementation -->
 <!--        <dependency>
             <groupId>jakarta.json</groupId>
             <artifactId>jakarta.json-api</artifactId>
             <version>${jsonp-api.version}</version>
             <scope>test</scope>
         </dependency>-->
+        <!-- this is implementation only -->
         <dependency>
             <groupId>org.eclipse.parsson</groupId>
             <artifactId>parsson</artifactId>
             <version>${jsonp-impl.version}</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.jboss.arquillian.container</groupId>
-            <artifactId>arquillian-weld-embedded</artifactId>
-            <version>2.1.0.Final</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.weld.se</groupId>
-            <artifactId>weld-se</artifactId>
-            <version>2.4.8.Final</version>
-            <scope>test</scope>
-        </dependency>
+        <!-- this is API+Impl bundle -->
+<!--        <dependency>-->
+<!--            <groupId>org.eclipse.parsson</groupId>-->
+<!--            <artifactId>jakarta.json</artifactId>-->
+<!--            <version>${jsonp-impl.version}</version>-->
+<!--            <scope>test</scope>-->
+<!--        </dependency>-->
     </dependencies>
 
 </project>
diff --git a/impl-tck/tck-tests-pluggability/pom.xml b/impl-tck/tck-tests-pluggability/pom.xml
index a6f31cb..f5fa165 100644
--- a/impl-tck/tck-tests-pluggability/pom.xml
+++ b/impl-tck/tck-tests-pluggability/pom.xml
@@ -56,7 +56,6 @@
                     </dependenciesToScan>
                     <trimStackTrace>false</trimStackTrace>
                     <failIfNoTests>true</failIfNoTests>
-                    <argLine>--add-opens java.base/java.lang=ALL-UNNAMED</argLine>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/impl-tck/tck-tests/pom.xml b/impl-tck/tck-tests/pom.xml
index 81d9bf2..3e376a4 100644
--- a/impl-tck/tck-tests/pom.xml
+++ b/impl-tck/tck-tests/pom.xml
@@ -30,10 +30,6 @@
 
     <artifactId>jakarta.json-tck-tests</artifactId>
 
-    <properties>
-        <jakarta.json.version>2.1.0-SNAPSHOT</jakarta.json.version>
-    </properties>
-
     <dependencies>
         <dependency>
             <groupId>jakarta.json</groupId>
@@ -72,7 +68,7 @@
                            <artifactItem>
                               <groupId>jakarta.json</groupId>
                               <artifactId>jakarta.json-api</artifactId>
-                              <version>${jakarta.json.version}</version>
+                              <version>${jsonp-api.version}</version>
                               <type>jar</type>
                               <overWrite>true</overWrite>
                               <outputDirectory>${project.build.directory}/signaturedirectory</outputDirectory>
@@ -87,31 +83,20 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <version>3.0.0-M4</version>
                 <configuration>
-                  <trimStackTrace>false</trimStackTrace>
-                  <failIfNoTests>true</failIfNoTests>
-                    <dependenciesToScan>jakarta.json:jakarta.json-tck-tests</dependenciesToScan>
-                    <systemPropertyVariables>
-                        <jimage.dir>${project.build.directory}/jdk11-bundle</jimage.dir>
-                        <signature.sigTestClasspath>${project.build.directory}/signaturedirectory/jakarta.json-api.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</signature.sigTestClasspath>
-                    </systemPropertyVariables>
-                  </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.0.0-M4</version>
-                <configuration>
                     <dependenciesToScan>
                         <dependency>jakarta.json:jakarta.json-tck-tests</dependency>
                     </dependenciesToScan>
                     <trimStackTrace>false</trimStackTrace>
                     <failIfNoTests>true</failIfNoTests>
-                    <argLine>--add-opens java.base/java.lang=ALL-UNNAMED</argLine>
                     <forkCount>1</forkCount>
                     <reuseForks>false</reuseForks>
                 </configuration>
                 <executions>
                     <execution>
                         <id>sigtests</id>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
                         <configuration>
                             <includes>
                                 <include>**/JSONPSigTest.java</include>
@@ -127,21 +112,9 @@
                         <configuration>
                             <excludes>
                                 <exclude>**/JSONPSigTest.java</exclude>
-                                <exclude>**/JsonProviderTest.java</exclude>
                             </excludes>
                         </configuration>
                     </execution>
-                    <execution>
-                        <id>providertests</id>
-                        <configuration>
-                            <includes>
-                                <include>**/JsonProviderTest.java</include>
-                            </includes>
-                            <systemPropertyVariables>
-                                <jakarta.json.provider>jakarta.jsonp.tck.api.provider.JsonProviderTest.DummyJsonProvider</jakarta.json.provider>
-                            </systemPropertyVariables>
-                        </configuration>
-                    </execution>
                 </executions>
             </plugin>
         </plugins>
diff --git a/tck/pom.xml b/tck/pom.xml
index fbcdc10..1f8a941 100644
--- a/tck/pom.xml
+++ b/tck/pom.xml
@@ -60,7 +60,8 @@
         <maven.compiler.target>11</maven.compiler.target>
         <maven.compiler.source>11</maven.compiler.source>
         <junit.jupiter.version>5.7.2</junit.jupiter.version>
-        <arquillian.junit5.version>1.7.0.Alpha5</arquillian.junit5.version>
+
+        <jakarta.json-api.version>2.1.0</jakarta.json-api.version>
     </properties>
 
     <dependencyManagement>
@@ -79,12 +80,7 @@
             <dependency>
                 <groupId>jakarta.json</groupId>
                 <artifactId>jakarta.json-api</artifactId>
-                <version>2.1.0-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>jakarta.inject</groupId>
-                <artifactId>jakarta.inject-api</artifactId>
-                <version>1.0</version>
+                <version>${jakarta.json-api.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.junit.jupiter</groupId>
@@ -96,11 +92,6 @@
                 <artifactId>junit-jupiter-engine</artifactId>
                 <version>${junit.jupiter.version}</version>
             </dependency>
-            <dependency>
-                <groupId>org.jboss.arquillian.junit5</groupId>
-                <artifactId>arquillian-junit5-container</artifactId>
-                <version>${arquillian.junit5.version}</version>
-            </dependency>
         </dependencies>
     </dependencyManagement>
 
@@ -111,11 +102,6 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>jakarta.inject</groupId>
-            <artifactId>jakarta.inject-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter-api</artifactId>
         </dependency>
@@ -123,10 +109,6 @@
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter-engine</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.jboss.arquillian.junit5</groupId>
-            <artifactId>arquillian-junit5-container</artifactId>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/tck/tck-docs/JSONP2.1-ReleaseNotes.html b/tck/tck-docs/JSONP2.1-ReleaseNotes.html
index 5c59c58..1db1150 100644
--- a/tck/tck-docs/JSONP2.1-ReleaseNotes.html
+++ b/tck/tck-docs/JSONP2.1-ReleaseNotes.html
@@ -50,35 +50,37 @@
       <li>
         <p><strong>Jakarta EE JSON Processing TCK tests signature, API, and
             pluggability tests:</strong></p>
-      </li>
-      <ul type="square">
-        <li>
-          <p>A <strong>signature test</strong> that checks that all of the
+        <ul type="square">
+          <li>
+            <p>A <strong>signature test</strong> that checks that all of the
             public APIs are supported in the Jakarta EE JSON Processing Version
             2.1 implementation that is being tested</p>
-        </li>
-        <li>
-          <p><strong>API tests</strong> for all of the public APIs under the <code>jakarta.json</code>,
+          </li>
+          <li>
+            <p><strong>API tests</strong> for all of the public APIs under the <code>jakarta.json</code>,
             <code>jakarta.json.spi</code>, <code>jakarta.json.stream</code>
             package</p>
-        </li>
-        <li>
+          </li>
+          <li>
           <p><strong>Pluggability tests</strong> for testing the SPI provider
             interface for supplying your own JsonProvider</p>
-        </li>
-      </ul>
+          </li>
+        </ul>
+      </li>
     </ul>
     <hr>
     <h2>Jakarta EE JSON Processing TCK Facts</h2>
     <blockquote>
       <p>The test suite bundle contains the following:</p>
       <ul>
-        <li>187 total tests</li>
+        <li>1 signature test</li>
+        <li>178 API tests</li>
+        <li>18 pluggability tests</li>
       </ul>
     </blockquote>
     <hr>
     <h2><a name="platform">Platform Notes</a></h2>
-    <p>The Jakarta EE JSON Processing TCK tests have been built with JDK 11 
+    <p>The Jakarta EE JSON Processing TCK tests have been built with JDK 11
       and tested with Java<font size="-2"><sup>TM</sup></font> Platform,
       Standard Edition 11+</p>
     <p>The Jakarta EE JSON Processing TCK tests have been run on the following
diff --git a/tck/tck-tests-pluggability/src/main/java/jakarta/jsonp/tck/pluggability/jsonprovidertests/ClientTests.java b/tck/tck-tests-pluggability/src/main/java/jakarta/jsonp/tck/pluggability/jsonprovidertests/ClientTests.java
index cd96c24..fbd4a82 100644
--- a/tck/tck-tests-pluggability/src/main/java/jakarta/jsonp/tck/pluggability/jsonprovidertests/ClientTests.java
+++ b/tck/tck-tests-pluggability/src/main/java/jakarta/jsonp/tck/pluggability/jsonprovidertests/ClientTests.java
@@ -19,35 +19,40 @@
  */
 package jakarta.jsonp.tck.pluggability.jsonprovidertests;
 
-import jakarta.json.*;
+import jakarta.json.Json;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonBuilderFactory;
+import jakarta.json.JsonException;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonReader;
+import jakarta.json.JsonReaderFactory;
+import jakarta.json.JsonWriter;
+import jakarta.json.JsonWriterFactory;
 import jakarta.json.spi.JsonProvider;
-import jakarta.json.stream.*;
-
-import java.io.*;
-
-import java.util.ServiceLoader;
-
-import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.logging.Logger;
-
+import jakarta.json.stream.JsonGenerator;
+import jakarta.json.stream.JsonGeneratorFactory;
+import jakarta.json.stream.JsonParser;
+import jakarta.json.stream.JsonParserFactory;
 import jakarta.jsonp.tck.common.JSONP_Util;
-import jakarta.jsonp.tck.provider.MyJsonProvider;
 import jakarta.jsonp.tck.provider.MyJsonGenerator;
-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 jakarta.jsonp.tck.provider.MyJsonProvider;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ServiceLoader;
+import java.util.logging.Logger;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
-@ExtendWith(ArquillianExtension.class)
 public class ClientTests {
 
   private static final String MY_JSONPROVIDER_CLASS = "jakarta.jsonp.tck.provider.MyJsonProvider";
@@ -55,12 +60,6 @@
 
   private String providerPath = null;
 
-  @Deployment
-  public static WebArchive createTestArchive() {
-    return ShrinkWrap.create(WebArchive.class)
-        .addPackages(true, ClientTests.class.getPackage().getName());
-  }
-  
   @AfterEach
   public void after() {
       MyJsonProvider.clearCalls();
