= Technology Compatibility Kit Reference Guide for Jakarta Core Profile
:annotations-version: 3.0
:arquillian-version: 1.9.2.Final
:cdi-version: 4.1
:di-version: 2.0
:ee-version: 11
:interceptors-version: 2.2
:jsonb-version: 3.0
:jsonp-version: 2.1
:junit-version: 10.0.2
:rest-version: 4.0
:revnumber: 11.0
:revmajor: 11
:tck-process-version: 1.4.1
:testng-version: 7.9.x

[preface]
== Preface
This guide describes how to download, install, configure, and run the
Technology Compatibility Kit (TCK) used to verify the compatibility of an implementation of the Jakarta Core Profile.

The Core Profile TCK is built atop Junit5 framework and Arquillian platform. The Core Profile TCK uses 
the Arquillian version _{arquillian-version}_ to execute the test suite.

The Core Profile TCK is provided under link:$$http://www.apache.org/licenses/LICENSE-2.0$$[Apache Public License 2.0].

=== Who Should Use This Book

This guide is for implementors of the Jakarta Core Profile {revnumber} technology to assist in running the test suite that verifies the compatibility of their implementation.


=== Before You Read This Book

Before reading this guide, you should familiarize yourself with the Jakarta EE programming model, specifically the Jakarta Restful Webservices {rest-version} and the Jakarta Contexts and Dependency Injection {cdi-version} specifications. A good resource for the Jakarta EE programming model is the link:$$http://jakarta.ee$$[Jakarta EE] web site.

The Core Profile TCK is based on the following Jakarta technologies:

* Jakarta EE Core Profile https://jakarta.ee/specifications/coreprofile/{ee-version}/[Core Profile {ee-version}]
* Jakarta Annotations https://jakarta.ee/specifications/annotations/{annotations-version}/[Annotations {annotations-version}]
* Jakarta Contexts and Dependency Injection Lite https://jakarta.ee/specifications/cdi[CDI {cdi-version}].
* Jakarta Dependency Injection https://jakarta.ee/specifications/dependency-injection/{di-version}/[DI {di-version}]
* Jakarta Interceptors https://jakarta.ee/specifications/interceptors/{interceptors-version}/[Interceptors {interceptors-version}]
* Jakarta JSON Binding https://jakarta.ee/specifications/jsonb/{jsonb-version}/[JSON-B {jsonb-version}]
* Jakarta JSON Processing https://jakarta.ee/specifications/jsonp/{jsonp-version}/[JSON-P {jsonp-version}]
* Jakarta RESTful Web Services https://jakarta.ee/specifications/restful-ws/{rest-version}/[Rest {rest-version}]


Before running the tests in the Core Profile TCK, optionally read and become familiar with the Arquillian testing platform. A good starting point could be  a series of link:$$http://arquillian.org/guides/$$[Arquillian Guides].


=== How This Book Is Organized

If you are running the Core Profile TCK for the first time, read <<introduction>> completely for the necessary background information about the TCK.  Once you have reviewed that material, perform the steps outlined in the remaining chapters. 


*  <<introduction>> gives an overview of the principles that apply generally to all Technology Compatibility Kits (TCKs), outlines the appeals process and describes the Core Profile TCK architecture and components. It also includes a broad overview of how the TCK is executed and lists the platforms on which the TCK has been tested and verified. 


*  <<appeals-process>> explains the process to be followed by an implementor, who wish to challenge any test in the TCK. 


*  <<installation>> explains where to obtain the required software for the Core Profile TCK and how to install it. It covers both the primary TCK components as well as tools useful for troubleshooting tests. 


*  <<configuration>> details the configuration of the JBoss Test Harness, how to create a TCK runner for the TCK test suite and the mechanics of how an in-container test is conducted. 


*  <<reporting>> explains the test reports that are generated by the TCK test suite and introduces the TCK audit report as a tool for measuring the completeness of the TCK in testing the CDI specification and in understanding how testcases relate to the specification.


*  <<executing>> documents how the TCK test suite is executed. It covers both modes supported by the TCK, standalone and in-container, and shows how to dump the generated test artifacts to disk. 


:numbered:
:sectanchors:

include::introduction.asciidoc[]

include::appeals-process.asciidoc[]

include::installation.asciidoc[]

include::configuration.asciidoc[]

include::reporting.asciidoc[]

include::sigtest.asciidoc[]

include::executing.asciidoc[]