Note
|
The Jakarta EE Specification process provides for any number of compatible implementations.
As additional implementations become available, refer to project or product documentation from
those vendors for specific TCK setup and operational guidance.
|
This chapter describes how to set up the JSON Processing TCK .
Before proceeding with the instructions in
this chapter, be sure to install all required software, as described in
Chapter 3, "Installation."
Note
|
The JSON Processing TCK is not depended on any particular build
tool to run the tests. It will be convenient and advisable to create a
Apache Maven project to setup and run the TCK.
This chapter will henceforth use instructions and steps to provide setup
with Apache Maven as a build tool.
|
4.1 Configuring Your Environment to Run the TCK Against the Compatible Implementation
Note
|
In these instructions, variables in angle brackets need to be expanded
for each platform. For example, <JAVA_HOME> becomes $JAVA_HOME on
Solaris/Linux and %JAVA_HOME% on Windows. In addition, the forward
slashes (/ ) used in all of the examples need to be replaced with
backslashes (\ ) for Windows. Finally, be sure to use the appropriate
separator for your operating system when specifying multiple path
entries (; on Windows, : on UNIX/Linux).
On Windows, you must escape any backslashes with an extra backslash in
path separators used in any of the following properties, or use forward
slashes as a path separator instead.
|
-
Set the following environment variables in your shell environment:
-
JAVA_HOME
to the directory in which Java SE 11+ is installed
-
M2_HOME
to the directory in which the Apache Maven build tool is installed.
-
JSONPTCK_HOME
to the directory in which the JSON Processing
2.1 TCK has been installed
-
PATH
to include the following directories: JAVA_HOME/bin
,
and M2_HOME/bin
-
Set the following System properties:
-
jsonp-impl.groupId
property is set to the Maven Group Id of the CI to test.
-
jsonp-impl.artifactId
property is set to the Maven Artifact Id of the CI to test.
-
jsonp-impl.version
property is set to the Maven Version of the CI to test.
-
jimage.dir
property is set to extract the Java SE 11+ modules for running the signature tests.
-
Set the below jars to the classpath
-
JAR file for the JSON Processing 2.1 API.
jakarta.json-api.jar
.
-
JUnit 5 jars (5.7.2+)
-
sigtest-maven-plugin (1.4) to run the signature tests.
-
JSON Processing TCK tests (jakarta.json:jakarta.json-tck-tests
)
or JSON Processing TCK pluggability tests (jakarta.json:jakarta.json-tck-tests-pluggability
)
depending on which test suite to run.
Example: Maven configuration
<dependencyManagement>
<dependencies>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-tck</artifactId>
<version>2.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
....
<dependencies>
<dependency>
<groupId>org.eclipse.parsson</groupId>
<artifactId>parsson</artifactId>
<version>1.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>2.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.netbeans.tools</groupId>
<artifactId>sigtest-maven-plugin</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-tck-tests</artifactId> <!-- or jakarta.json-tck-tests-pluggability -->
<scope>test</scope>
</dependency>
</dependencies>
4.2 Configuring Your Environment to Run the TCK Against the Vendor Implementation
Note
|
In these instructions, variables in angle brackets need to be expanded
for each platform. For example, <JAVA_HOME> becomes $JAVA_HOME on
Solaris/Linux and %JAVA_HOME% on Windows. In addition, the forward
slashes (/ ) used in all of the examples need to be replaced with
backslashes (\ ) for Windows. Finally, be sure to use the appropriate
separator for your operating system when specifying multiple path
entries (; on Windows, : on UNIX/Linux).
On Windows, you must escape any backslashes with an extra backslash in
path separators used in any of the following properties, or use forward
slashes as a path separator instead.
|
-
Set the following environment variables in your shell environment:
-
JAVA_HOME
to the directory in which Java SE 11+ is installed
-
M2_HOME
to the directory in which the Apache Maven build tool is installed.
-
JSONPTCK_HOME
to the directory in which the JSON Processing
2.1 TCK has been installed
-
PATH
to include the following directories: JAVA_HOME/bin
,
and M2_HOME/bin
-
Set the following System properties:
-
jsonp-api.groupId
property is set to the Maven Group Id of the VI to test.
-
jsonp-api.artifactId
property is set to the Maven Artifact Id of the VI to test.
-
jsonp-api.version
property is set to the Maven Version of the VI to test.
-
jimage.dir
property is set to extract the Java SE 11+ modules for running the signature tests.
-
Set the below jars to the classpath
-
JAR file for the JSON Processing 2.1 CI.
parsson.jar
.
-
JUnit 5 jars (5.7.2+)
-
sigtest-maven-plugin (1.4) to run the signature tests.
-
JSON Processing TCK tests (jakarta.json:jakarta.json-tck-tests
)
or JSON Processing TCK pluggability tests (jakarta.json:jakarta.json-tck-tests-pluggability
)
depending on which test suite to run.
Example: Maven configuration
<dependencyManagement>
<dependencies>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-tck</artifactId>
<version>2.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
....
<dependencies>
<dependency>
<groupId>org.eclipse.parsson</groupId>
<artifactId>parsson</artifactId>
<version>1.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.netbeans.tools</groupId>
<artifactId>sigtest-maven-plugin</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-tck-tests</artifactId> <!-- or jakarta.json-tck-tests-pluggability -->
<scope>test</scope>
</dependency>
</dependencies>
4.3 Publishing the Test Applications
Not needed for the JSON Processing TCK.