diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..3fe6cb7
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,33 @@
+version: 2
+updates:
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "daily"
+    labels:
+      - "dependencies"
+      - "bot"
+
+  - package-ecosystem: "maven"
+    directory: "/api"
+    schedule:
+      interval: "daily"
+    labels:
+      - "dependencies"
+      - "bot"
+      
+  - package-ecosystem: "maven"
+    directory: "/spec"
+    schedule:
+      interval: "daily"
+    labels:
+      - "dependencies"
+      - "bot"
+
+  - package-ecosystem: "maven"
+    directory: "/tck"
+    schedule:
+      interval: "daily"
+    labels:
+      - "dependencies"
+      - "bot"
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index b09766f..63ccbb8 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -27,15 +27,15 @@
 
     strategy:
       matrix:
-        java_version: [ 17, 21 ]
+        java_version: [ 17, 21, 25 ]
 
     steps:
     - name: Checkout for build
-      uses: actions/checkout@v3
+      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683  # v4.2.2
     - name: Set up JDK
-      uses: actions/setup-java@v3
+      uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95  # v5.6.0
       with:
-        distribution: 'zulu'
+        distribution: 'temurin'
         java-version: ${{ matrix.java_version }}
         cache: 'maven'
     - name: Verify
diff --git a/.gitignore b/.gitignore
index 32c3c0a..1e473a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 # Maven noise
 target/
+.flattened-pom.xml
 
 # OSX noise
 .DS_Store
diff --git a/api/pom.xml b/api/pom.xml
index 6f6496e..4700a72 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.eclipse.ee4j</groupId>
         <artifactId>project</artifactId>
-        <version>1.0.8</version>
+        <version>2.0.5</version>
         <relativePath/>
     </parent>
 
@@ -85,6 +85,8 @@
         <spotbugs.threshold>Low</spotbugs.threshold>
         <spotbugs.version>4.7.3.5</spotbugs.version>
 
+        <!-- Required by org.eclipse.ee4j:project parent POM for Nexus staging deployment -->
+        <nexus.staging.repository>jsonp-maven2-staging</nexus.staging.repository>
         <non.final>false</non.final>
         <extension.name>jakarta.json</extension.name>
         <spec.version>2.2</spec.version>
@@ -103,7 +105,7 @@
                 <plugin>
                     <groupId>org.codehaus.mojo</groupId>
                     <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>3.4.0</version>
+                    <version>3.6.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.glassfish.copyright</groupId>
@@ -113,12 +115,12 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.11.0</version>
+                    <version>3.13.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.glassfish.build</groupId>
                     <artifactId>spec-version-maven-plugin</artifactId>
-                    <version>2.1</version>
+                    <version>2.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.felix</groupId>
@@ -133,22 +135,22 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
-                    <version>3.3.0</version>
+                    <version>3.4.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-source-plugin</artifactId>
-                    <version>3.3.0</version>
+                    <version>3.3.1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.5.0</version>
+                    <version>3.7.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.4.0</version>
+                    <version>3.5.0</version>
                 </plugin>
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
@@ -159,6 +161,11 @@
                         <threshold>${spotbugs.threshold}</threshold>
                     </configuration>
                 </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>flatten-maven-plugin</artifactId>
+                    <version>1.6.0</version>
+                </plugin>
             </plugins>
         </pluginManagement>
 
@@ -289,11 +296,7 @@
                     <execution>
                         <goals>
                             <goal>set-spec-properties</goal>
-                            <!-- TODO:
-                            glassfish-spec-version-maven-plugin needs to be updated
-                            in order to check 'jakarta.' prefixed values in manifest entries
-                            -->
-                            <!--<goal>check-module</goal>-->
+                            <goal>check-module</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -397,6 +400,29 @@
                     <failThreshold>High</failThreshold>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>flatten-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>flatten</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>flatten</goal>
+                        </goals>
+                        <configuration>
+                            <flattenMode>ossrh</flattenMode>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>flatten.clean</id>
+                        <phase>clean</phase>
+                        <goals>
+                            <goal>clean</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
     
diff --git a/spec/pom.xml b/spec/pom.xml
index 6b6c3b7..d21434b 100644
--- a/spec/pom.xml
+++ b/spec/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.eclipse.ee4j</groupId>
         <artifactId>project</artifactId>
-        <version>1.0.6</version>
+        <version>2.0.5</version>
         <relativePath/>
     </parent>
     <modelVersion>4.0.0</modelVersion>
@@ -35,6 +35,8 @@
         <maven.site.skip>true</maven.site.skip>
         <asciidoctor.maven.plugin.version>2.0.0</asciidoctor.maven.plugin.version>
         <asciidoctorj.pdf.version>1.5.3</asciidoctorj.pdf.version>
+               <!-- Required by org.eclipse.ee4j:project parent POM for Nexus staging deployment -->
+        <nexus.staging.repository>jsonp-maven2-staging</nexus.staging.repository>
         <!-- status: DRAFT, BETA, etc., or blank for final -->
         <status>DRAFT</status>
         <maven.build.timestamp.format>MMMM dd, yyyy</maven.build.timestamp.format>
diff --git a/tck/pom.xml b/tck/pom.xml
index 747d1a7..184c1dc 100644
--- a/tck/pom.xml
+++ b/tck/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.eclipse.ee4j</groupId>
         <artifactId>project</artifactId>
-        <version>1.0.7</version>
+        <version>2.0.5</version>
         <relativePath/>
     </parent>
 
@@ -57,11 +57,16 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.source>17</maven.compiler.source>
-        <junit.jupiter.version>5.7.2</junit.jupiter.version>
+               <!-- Required by org.eclipse.ee4j:project parent POM for Nexus staging deployment -->
+        <nexus.staging.repository>jsonp-maven2-staging</nexus.staging.repository>
+        <maven.compiler.release>17</maven.compiler.release>
+        <junit.jupiter.version>5.14.4</junit.jupiter.version>
 
         <jakarta.json-api.version>2.2.0</jakarta.json-api.version>
+        
+        <!-- Plugin versions for signature generation -->
+        <sigtest.version>2.3</sigtest.version>
+        <maven.antrun.plugin.version>3.1.0</maven.antrun.plugin.version>
     </properties>
 
     <dependencyManagement>
@@ -98,14 +103,11 @@
                 <version>${jakarta.json-api.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.junit.jupiter</groupId>
-                <artifactId>junit-jupiter-api</artifactId>
+                <groupId>org.junit</groupId>
+                <artifactId>junit-bom</artifactId>
                 <version>${junit.jupiter.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.junit.jupiter</groupId>
-                <artifactId>junit-jupiter-engine</artifactId>
-                <version>${junit.jupiter.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
         </dependencies>
     </dependencyManagement>
@@ -132,17 +134,22 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-assembly-plugin</artifactId>
-                    <version>3.3.0</version>
+                    <version>3.7.1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.3.1</version>
+                    <version>3.7.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.4.0</version>
+                    <version>3.5.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>3.7.0</version>
                 </plugin>
             </plugins>
         </pluginManagement>
@@ -171,4 +178,103 @@
             </plugin>
         </plugins>
     </build>
+    <profiles>
+                <profile>
+        <!--This profile can be used to (re)generate signatures of th JSON Processing
+                API, note that they differ based on JDK used to build them -->
+            <!--All .sig files should be included in the generated jar files! -->
+            <id>signature-generation</id>
+            <activation>
+                <property>
+                    <name>signature</name>
+                </property>
+            </activation>
+            <properties>
+                <!--Default assumed JDK version, can be overridden via -Djdk.major.version=X -->
+                <jdk.major.version>17</jdk.major.version>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-dependency-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>unpack</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>unpack</goal>
+                                </goals>
+                                <configuration>
+                                    <artifactItems>
+                                        <artifactItem>
+                                            <groupId>jakarta.json</groupId>
+                                            <artifactId>jakarta.json-api</artifactId>
+                                            <version>${jakarta.json-api.version}</version>
+                                            <type>jar</type>
+                                            <overWrite>false</overWrite>
+                                            <outputDirectory>${project.build.directory}/json-api</outputDirectory>
+                                            <includes>**/*.class,**/*.xml</includes>
+                                        </artifactItem>
+                                    </artifactItems>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    
+                    <!-- Run signature plugin to generate signature file -->
+                    <plugin>
+                        <groupId>jakarta.tck</groupId>
+                        <artifactId>sigtest-maven-plugin</artifactId>
+                        <version>${sigtest.version}</version>
+                        <executions>
+                            <execution>
+                                <id>createSigFile</id>
+                                <phase>generate-resources</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <classes>${project.build.directory}/json-api</classes>
+                            <packages>
+                                jakarta.json,
+                                jakarta.json.spi,
+                                jakarta.json.stream,
+                            </packages>
+                            <attach>false</attach>
+                            <sigfile>${project.build.directory}/jakarta.json.sig_${jdk.major.version}</sigfile>
+                        </configuration>
+                    </plugin>
+                    
+                    <!-- Copy signature file to tck resources with major java version -->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                        <version>${maven.antrun.plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>copySigFile</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                                <configuration>
+                                    <target>
+                                        <mkdir dir="${project.basedir}/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/" />
+                                        <copy todir="${project.basedir}/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/">
+                                            <fileset
+                                                dir="${project.build.directory}"
+                                                includes="jakarta.json.sig_${jdk.major.version}" />
+                                        </copy>
+                                    </target>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/tck/tck-dist-eftl/src/main/bin/pom.xml b/tck/tck-dist-eftl/src/main/bin/pom.xml
index c4460fb..3522567 100644
--- a/tck/tck-dist-eftl/src/main/bin/pom.xml
+++ b/tck/tck-dist-eftl/src/main/bin/pom.xml
@@ -36,7 +36,7 @@
         <!-- Compatible Implementation (CI) -->
         <jsonp-impl.groupId>org.eclipse.parsson</jsonp-impl.groupId>
         <jsonp-impl.artifactId>parsson</jsonp-impl.artifactId>
-        <jsonp-impl.version>1.1.0</jsonp-impl.version>
+        <jsonp-impl.version>1.1.8</jsonp-impl.version>
         <!-- TCK -->
         <jakarta.json-tck.version>${project.version}</jakarta.json-tck.version>
         <!-- properties -->
diff --git a/tck/tck-tests/pom.xml b/tck/tck-tests/pom.xml
index 17aef8d..05ffa66 100644
--- a/tck/tck-tests/pom.xml
+++ b/tck/tck-tests/pom.xml
@@ -60,4 +60,69 @@
             </plugin>
         </plugins>
     </build>
+
+    <profiles>
+        <profile>
+            <id>tck-tests-ci</id>
+            <dependencies>
+                <dependency>
+                    <groupId>org.eclipse.parsson</groupId>
+                    <artifactId>parsson</artifactId>
+                    <version>1.1.8</version>
+                    <scope>test</scope>
+                </dependency>
+                <dependency>
+                    <groupId>org.netbeans.tools</groupId>
+                    <artifactId>sigtest-maven-plugin</artifactId>
+                    <scope>test</scope>
+                </dependency>
+            </dependencies>
+            <build>
+                <plugins>
+                    <!-- Copy the API jar so the sig test can find it on sigTestClasspath -->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-dependency-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>copy-api-jar</id>
+                                <phase>generate-test-sources</phase>
+                                <goals>
+                                    <goal>copy</goal>
+                                </goals>
+                                <configuration>
+                                    <artifactItems>
+                                        <artifactItem>
+                                            <groupId>jakarta.json</groupId>
+                                            <artifactId>jakarta.json-api</artifactId>
+                                            <version>${jakarta.json-api.version}</version>
+                                            <type>jar</type>
+                                            <overWrite>true</overWrite>
+                                            <outputDirectory>${project.build.directory}/signaturedirectory</outputDirectory>
+                                            <destFileName>jakarta.json-api.jar</destFileName>
+                                        </artifactItem>
+                                    </artifactItems>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <useModulePath>false</useModulePath>
+                            <trimStackTrace>false</trimStackTrace>
+                            <forkCount>1</forkCount>
+                            <reuseForks>false</reuseForks>
+                            <testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
+                            <systemPropertyVariables>
+                                <jimage.dir>${project.build.directory}/jdk-bundle</jimage.dir>
+                                <signature.sigTestClasspath>${project.build.directory}/signaturedirectory/jakarta.json-api.jar:${project.build.directory}/jdk-bundle/java.base:${project.build.directory}/jdk-bundle/java.rmi:${project.build.directory}/jdk-bundle/java.sql:${project.build.directory}/jdk-bundle/java.naming</signature.sigTestClasspath>
+                            </systemPropertyVariables>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/tck/tck-tests/src/main/java/ee/jakarta/tck/jsonp/signaturetest/README b/tck/tck-tests/src/main/java/ee/jakarta/tck/jsonp/signaturetest/README
deleted file mode 100644
index 2eed381..0000000
--- a/tck/tck-tests/src/main/java/ee/jakarta/tck/jsonp/signaturetest/README
+++ /dev/null
@@ -1,50 +0,0 @@
-The latest signature files are updated in the jsonp-api repoitory 
-(tck/tck-tests/src/main/java/ee/jakarta/tck/jsonp/signaturetest) 
-generated using sigtest-maven-plugin.jar(version 1.4).
-
-The signature tests are run using the sigtest-maven-plugin.jar and the framework avaliable in this folder.
-
-
-
-For TCK developers  :-
-
-  1. Generate Signature Files : The signature file will be generated by the TCK team using jsonp/tck/pom.xml 
-  where the below commented code can be used. The classpath should contain the api jar for which we are generating the signature file.
-
-      <!--plugin>
-          <groupId>org.netbeans.tools</groupId>
-          <artifactId>sigtest-maven-plugin</artifactId>
-                      <version>1.4</version>
-                      <executions>
-                          <execution>
-                              <goals>
-                                  <goal>generate</goal>
-                              </goals>
-                          </execution>
-                      </executions>
-                      <configuration>
-                          <FileName>${project.build.directory}/jakarta.json.sig_${version}</FileName>
-                    <packages>jakarta.json, jakarta.json.spi, jakarta.json.stream</packages>
-                      </configuration>
-      </plugin-->
-
-      The signature file name expected is jakarta.json.sig_${version} , where version is the api version for which the signature is generated.
-
-
-For TCK users (to run the signature test as a Junit test) :-
-
-  1.Set the below system properties correctly :
-
-    jimage.dir //The jdk9+(jdk11 for this release) will be extracted to this location as to use the Java modules in the path.
-    optional.tech.packages.to.ignore // The optional package that should be ignored while running the signature test
-    signature.sigTestClasspath // the sigTestClasspath that will contain the implementation jar that needs to be tested along with dependent jars.
-
-    For eg:
-
-    <jimage.dir>${project.build.directory}/jdk11-bundle</jimage.dir>
-    <optional.tech.packages.to.ignore>jakarta.xml.bind</optional.tech.packages.to.ignore>
-    <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>
-
-  2. The signature test alone can be run using below command within impl-tck/ directory.
-
-    mvn clean test -Dtest=JSONPSigTest#signatureTest
diff --git a/tck/tck-tests/src/main/java/ee/jakarta/tck/jsonp/signaturetest/README.md b/tck/tck-tests/src/main/java/ee/jakarta/tck/jsonp/signaturetest/README.md
new file mode 100644
index 0000000..612d8bd
--- /dev/null
+++ b/tck/tck-tests/src/main/java/ee/jakarta/tck/jsonp/signaturetest/README.md
@@ -0,0 +1,93 @@
+# Json-P TCK Signature Tests
+
+This package is inherited from the Platform-TCK (https://github.com/eclipse-ee4j/jakartaee-tck/tree/master/src/com/sun/ts/tests/signaturetest)
+
+The latest signature files are updated in the Json-P TCK Repository 
+(jsonp-api//tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest) 
+generated using sigtest-maven-plugin.jar (version 2.3).
+
+The signature tests are run using the sigtest-maven-plugin.jar and the framework available in this folder.
+
+## For TCK developers
+
+### The configuration
+
+The signature file will be generated by the Json-P team using the `tck/pom.xml`. 
+The pom.xml has a `signature-generation` profile configured for this purpose.
+The plugin that generates the signature file has been copied below for reference:
+
+
+```xml
+<plugin>
+	<groupId>jakarta.tck</groupId>
+	<artifactId>sigtest-maven-plugin</artifactId>
+	<version>${sigtest.version}</version>
+	<executions>
+		<execution>
+			<id>createSigFile</id>
+			<goals>
+				<goal>generate</goal>
+			</goals>
+		</execution>
+	</executions>
+	<configuration>
+		<classes>${project.build.directory}/json-api</classes>
+		<packages>
+			jakarta.json,
+			jakarta.json.spi,
+			jakarta.json.stream,
+		</packages>
+		<attach>false</attach>
+		<sigfile>${project.build.directory}/jakarta.json.sig_${jdk.major.version}</sigfile>
+	</configuration>
+</plugin>
+```
+
+- The `classes` configuration points to a location where an earlier plugin has unpacked the api jar from which we are generating the signature file.
+- The `packages` configuration specifies the packages we want to generate signatures from.
+- The `attach` configuration specifies that we do not want the plugin to use its default file extension.
+- The `sigfile` configuration specifies the output signature file name, using the major JDK version (e.g. `jakarta.json.sig_17`). The default is `17`, overridable with `-Djdk.major.version=21`.
+
+### Generating the Signature File
+
+> (TODO, add this similar to other Jakarta projects) NOTE: A GitHub actions workflow automatically updates signature files after API updates so this only needs to happen 
+> when creating a new signature file for a newly support JDK level.
+To generate the signature file first build the API:
+
+```sh
+cd api
+mvn package
+```
+
+Then build the TCK with the `signature-generation` profile to re-generate the signature file:
+
+```sh
+cd ../tck
+mvn package -Psignature-generation -N
+```
+
+The signature file will be generated in the `tck/target/` directory and automatically copied to `tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/`.
+
+To generate for a specific JDK major version other than 17:
+
+```sh
+cd ../tck
+mvn package -Psignature-generation -N -Djdk.major.version=21
+```
+
+## For TCK users
+
+### Running signature tests
+
+Signature tests will be automatically run as part of the TCK via the `ee.jakarta.tck.jsonp.signaturetest` package. 
+
+This package will deploy an application to the Jakarta EE Server. 
+The application runs the signature test using the signaturetest framework from the Platform TCK.
+
+
+For specification development, signature tests can be run directly from the `tck/tck-tests/` module using the `tck-tests-ci` profile, which runs all TCK tests against the compatible implementation (Eclipse Parsson):
+
+```sh
+cd tck
+mvn verify -pl tck-tests -P tck-tests-ci
+```
diff --git a/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/jakarta.json.sig_2.1.0 b/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/jakarta.json.sig_17
similarity index 97%
rename from tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/jakarta.json.sig_2.1.0
rename to tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/jakarta.json.sig_17
index cec576a..6280edb 100644
--- a/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/jakarta.json.sig_2.1.0
+++ b/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/jakarta.json.sig_17
@@ -1,5 +1,5 @@
 #Signature file v4.1
-#Version 2.1_se11
+#Version 2.2.0-SNAPSHOT
 
 CLSS public final jakarta.json.Json
 meth public static jakarta.json.JsonArrayBuilder createArrayBuilder()
@@ -322,8 +322,7 @@
 meth public jakarta.json.JsonString createValue(java.lang.String)
 meth public static jakarta.json.spi.JsonProvider provider()
 supr java.lang.Object
-hfds DEFAULT_PROVIDER,OSGI_SERVICE_LOADER_CLASS_NAME
-hcls LazyFactoryLoader
+hfds DEFAULT_PROVIDER,LOG,OSGI_SERVICE_LOADER_CLASS_NAME
 
 CLSS public final jakarta.json.stream.JsonCollectors
 meth public static <%0 extends jakarta.json.JsonArrayBuilder> java.util.stream.Collector<jakarta.json.JsonValue,java.util.Map<java.lang.String,{%%0}>,jakarta.json.JsonObject> groupingBy(java.util.function.Function<jakarta.json.JsonValue,java.lang.String>,java.util.stream.Collector<jakarta.json.JsonValue,{%%0},jakarta.json.JsonArray>)
@@ -451,8 +450,10 @@
 
 CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>>
 cons protected init(java.lang.String,int)
+innr public final static EnumDesc
 intf java.io.Serializable
 intf java.lang.Comparable<{java.lang.Enum%0}>
+intf java.lang.constant.Constable
 meth protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException
 meth protected final void finalize()
 meth public final boolean equals(java.lang.Object)
@@ -461,9 +462,11 @@
 meth public final int ordinal()
 meth public final java.lang.Class<{java.lang.Enum%0}> getDeclaringClass()
 meth public final java.lang.String name()
+meth public final java.util.Optional<java.lang.Enum$EnumDesc<{java.lang.Enum%0}>> describeConstable()
 meth public java.lang.String toString()
 meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String)
 supr java.lang.Object
+hfds name,ordinal
 
 CLSS public java.lang.Exception
 cons protected init(java.lang.String,java.lang.Throwable,boolean,boolean)
@@ -472,6 +475,7 @@
 cons public init(java.lang.String,java.lang.Throwable)
 cons public init(java.lang.Throwable)
 supr java.lang.Throwable
+hfds serialVersionUID
 
 CLSS public abstract interface java.lang.Iterable<%0 extends java.lang.Object>
 meth public abstract java.util.Iterator<{java.lang.Iterable%0}> iterator()
@@ -500,6 +504,7 @@
 cons public init(java.lang.String,java.lang.Throwable)
 cons public init(java.lang.Throwable)
 supr java.lang.Exception
+hfds serialVersionUID
 
 CLSS public java.lang.Throwable
 cons protected init(java.lang.String,java.lang.Throwable,boolean,boolean)
@@ -522,6 +527,11 @@
 meth public void printStackTrace(java.io.PrintWriter)
 meth public void setStackTrace(java.lang.StackTraceElement[])
 supr java.lang.Object
+hfds CAUSE_CAPTION,EMPTY_THROWABLE_ARRAY,NULL_CAUSE_MESSAGE,SELF_SUPPRESSION_MESSAGE,SUPPRESSED_CAPTION,SUPPRESSED_SENTINEL,UNASSIGNED_STACK,backtrace,cause,depth,detailMessage,serialVersionUID,stackTrace,suppressedExceptions
+hcls PrintStreamOrWriter,SentinelHolder,WrappedPrintStream,WrappedPrintWriter
+
+CLSS public abstract interface java.lang.constant.Constable
+meth public abstract java.util.Optional<? extends java.lang.constant.ConstantDesc> describeConstable()
 
 CLSS public abstract interface java.util.Collection<%0 extends java.lang.Object>
 intf java.lang.Iterable<{java.util.Collection%0}>
diff --git a/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/sig-test-pkg-list.txt b/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/sig-test-pkg-list.txt
index cea0f16..c8be9ea 100644
--- a/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/sig-test-pkg-list.txt
+++ b/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/sig-test-pkg-list.txt
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2022, 2025 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,11 +14,6 @@
 # SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 #
 
-
-#
-# $Id$
-#
-
 ##
 # This file contains a list of all the packages
 # contained in the signature files for this
diff --git a/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/sig-test.map b/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/sig-test.map
index 123c193..c06a85e 100644
--- a/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/sig-test.map
+++ b/tck/tck-tests/src/main/resources/ee/jakarta/tck/jsonp/signaturetest/sig-test.map
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2022, 2025 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,37 +14,7 @@
 # SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 #
 
-
-#
-# $Id$
-#
-
 ###############################################################
-#
-# IMPORTANT:  this sig-test.map file for use with JDK 8 only!
-#             Using this file with other version of JDK will yield errors.
-#
-# The signature test mapping file for the JSON-P 2.0.0 TCK.  This file
-# should be formatted as a standard java properties file.  The
-# name is the package name and the value is the version of the
-# package that should be tested by the signature tests.
-#
-# The resultant signature file name has a name that complies
-# with the following format:
-# <package>.sig_<technology_version>_<JavaSE_version_these_work_with>
-# Given this format, the following example breaks down as follows:
-#    jakarta.json.sig_2.0.0_se8:
-#    jakarta.json.sig_2.0.0_se11:
-#      <package> = jakarta.json
-#      <technology_version> = 2.0.0  (for JSON-P) 
-#      <JavaSE_version_these_work_with> = se8 and se11
-#
-# For this release valid versions are:  "_se8", "_se11", or "_se8_se11"
-# This sig-test.map file is designed to be run using JDK 8 so any
-# signature file that ends with "_se8"  or "se8_se11" will be valid.
-# if a signature file contains only "_se8"  and no reference to "_se11" 
-# in the signature name, than that means that signature file MUST only
-# be referenced when using JDK 8.  
-#
+# The signature test mapping file for the JSON Processing TCK.
 ###############################################################
-jakarta.json=2.2.0
+jakarta.json=17
