[[book-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 Jakarta Validation 3.1.

The Jakarta Validation TCK is built atop http://www.jboss.org/arquillian.html[Arquillian], a portable
and configurable automated test suite for authoring unit and integration
tests in a Jakarta EE environment.

The Jakarta Validation TCK is provided under the http://www.apache.org/licenses/LICENSE-2.0[Apache Public License
2.0].

[[target-audience]]
=== Who Should Use This Guide

This guide is for implementors of the Jakarta Validation specification
to assist in running the test suite that verifies the compatibility of
their implementation.

[[before-reading]]
=== Before You Read This Guide

The Jakarta Validation TCK is based on the Jakarta Validation
specification 3.1. Information about the specification can
be found on the https://projects.eclipse.org/projects/ee4j.bean-validation[Jakarta Validation page].

[[book-organization]]
=== How This Guide Is Organized

If you are running the Jakarta Validation 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 Jakarta Validation
TCK architecture and components.

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

* <<installation>> explains where to obtain the
required software for the Jakarta Validation TCK and how to install
it.

* <<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
Jakarta Validation specification and in understanding how test cases relate
to the specification.

* <<configuration>> details the configuration of the
test harness and documents how to create a TCK runner for executing
the TCK test suite, either in standalone or container mode.

* <<sigtest>> finally documents how to use the
SigTest tool for ensuring compatibility of types provided in the
package `jakarta.validation` with the official API
signature defined by the specification.