Setup and Configuration

## 4 Setup and Configuration

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 Servlet TCK and JavaTest harness software. Before proceeding with the instructions in this chapter, be sure to install all required software, as described in Chapter 3, "Installation."

After completing the instructions in this chapter, proceed to Chapter 5, "Executing Tests," for instructions on running the Servlet TCK.

### 4.1 Configuring Your Environment to Run the TCK Against the Reference Implementation

After configuring your environment as described in this section, continue with the instructions in Chapter 5, "Executing Tests."

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.

1. Set the following environment variables in your shell environment:

   1. `JAVA_HOME` to the directory in which Java SE 17 is installed

   2. `M2_HOME` to the directory in which the Apache Maven build tool is installed.

   3. `PATH` to include the following directories: `JAVA_HOME/bin`, and `M2_HOME/bin`

2. Set the following System properties:

   1. The signature tests require that the `sigTestClasspath` property is be set to a list of JAR files and directories which contain the Jakarta EE and Java SE classes.
      Paths must be separated by the appropriate path separator ("`;`" on Windows, "`:`" on Solaris/Linux).

   2. The `servlet.tck.support.http2Push` must be set to the appropriate value to indicate if the CI supports HTTP/2 server push.

3. 3. Set the below jars to the classpath

   1. JAR file for the Servlet 6.2 API.
      eg. `${webServerHost}/modules/jakarta.servlet-api.jar`.

   2. JUnit 5 jars (5.9.3+) Maven coordinates :

                 <dependency>
                    <groupId>org.junit</groupId>
                    <artifactId>junit-bom</artifactId>
                    <version>5.9.3</version>
                    <type>pom</type>
                    <scope>import</scope>
                 </dependency>

   3. sigtest-maven-plugin (2.2) to run the signature tests. Maven coordinates :

                <dependency>
                      <groupId>jakarta.tck</groupId>
                      <artifactId>sigtest-maven-plugin</artifactId>
                      <version>2.2</version>
                  </dependency>

   4. Tomcat 11.0 CI jars
      For eg, if you are using the Tomcat 11.0 CI below jars need to be added to Classpath

4. Provide your own implementation of the porting package interface provided with the Servlet TCK.
   The porting package interface, `TSURLInterface.java`, obtains URL strings for web resources in an implementation-specific manner. API documentation for the `TSURLInterface.java` porting package interface is available in the Servlet TCK documentation bundle.

### 4.2 Configuring Your Environment to Repackage and Run the TCK Against the Vendor Implementation

Not needed for the Servlet TCK.

### 4.3 Publishing the Test Applications

Not needed for the Servlet TCK.

Copyright © 2017, 2021 Oracle and/or its affiliates. All rights reserved.