Merge pull request #419 from mswatosh/2.2-updates

Modernization updates
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