[[installation]]
= Installation
:glassfish_version: GlassFish 8.0

This chapter explains how to install the Jakarta EE {tck_version} Platform TCK software and
perform a sample test run to verify your installation and familiarize
yourself with the TCK. Installation instructions are provided for Eclipse
{glassfish_version}, a Ratifying Compatible Implementation (CI) of Jakarta EE. If you are using
another compatible implementation, refer to instructions provided with that
implementation.

After installing the software according to the instructions in this
chapter, proceed to <<setup-and-configuration>> for instructions on configuring your test environment.

This chapter covers the following topics:

* <<installing-the-ci>>
* <<installing-the-jakarta-ee-platform-tck>>
* <<verifying-your-installation-optional>>

[[installing-the-ci]]
== Installing the Jakarta EE {tck_version} Compatible Implementation

How to install the Jakarta EE {tck_version} CI, Eclipse {glassfish_version}

=== Before You Begin

If a Jakarta EE {tck_version} Compatible Implementation (CI) is already installed, it
is recommended that you shut it down and start with a new, clean CI
installation.

1.  Install the Java SE 17 JDK bundle, if it is not already installed. +
Refer to the JDK installation instructions for details. The JDK bundle
can be downloaded from
`https://adoptium.net/temurin/releases/`
2.  Create or change to the directory in which you will install the Jakarta
EE {tck_version} CI.
3.  Copy or download the Jakarta EE {tck_version} CI, for example, Eclipse {glassfish_version}.
4.  Unzip the Jakarta EE {tck_version} CI bundle.
5.  For Eclipse {glassfish_version}, set the following environment variables:
* `JAKARTAEE_HOME` to the CI directory you just created
* `JAVA_HOME` to the JDK you want to use
6.  Start the Jakarta EE {tck_version} CI, Eclipse {glassfish_version}, by executing the following command: +
[source,bash]
----
<JAKARTAEE_HOME>/bin/asadmin start-domain
----

[[installing-the-jakarta-ee-platform-tck]]
== Installing the Jakarta EE {tck_version} Platform TCK

Complete the following procedure to install the Jakarta EE {tck_version} Platform TCK on a
system running the Solaris, GNU/Linux, or Windows operating system.


[NOTE]
======================================================================

When installing in the Windows environment, the Jakarta EE {tck_version} CI, Java SE
JDK, and TCK should be installed on the same drive. If you must install
these components on different drives, be sure to change the
`ri.applicationRoot` and `s1as.applicationRoot` properties as needed in
the `<TS_HOME>/bin/ts.jte` TCK configuration file. See
<<windows-specific-properties>> for more information.

======================================================================


.  Copy or download the Jakarta EE TCK 11 software.
.  Change to the directory in which you want to install the Jakarta EE {tck_version}
TCK software and use the `unzip` command to extract the bundle: 
+
[source,bash]
----
cd install_directory
unzip jakartaeetck-nnn-dist.zip
----
+
This creates the `jakartaeetck` directory. The
path to the `/jakartaeetck` directory will be referenced as `TS_HOME`.
.  Set the `TS_HOME` environment variable to point to the `jakartaeetck` directory.

After you complete the installation, follow the directions in <<setup-and-configuration>> to set up and configure the Jakarta EE {tck_version} Platform TCK test suite.

[[verifying-your-installation-optional]]
== Verifying Your Installation (Optional)
You can verify your installation by running the VerifyHashes.java file found in the artifacts directory. This file validates the MD5 hashes of the artifacts in the distribution. To run the file, execute the following command:
[source,bash]
----
cd jakartaeetck/artifacts
java VerifyHashes.java
----

When run with no arguments this downloads the Jakarta EE staging repository artifacts and validates them against the hashes of the artifacts in the distribution. If you want to validate the artifacts in another repo, pass in the URL to the jakarta.tck groupId in the repository. For example:
[source,bash]
----
java VerifyHashes.java https://repo1.maven.org/maven2/jakarta/tck/
----
