[[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 {jsrVersion}: Bean Validation 2.0.

The Bean 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 Java EE environment.

The Bean 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 Bean Validation specification
to assist in running the test suite that verifies the compatibility of
their implementation.

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

The Bean Validation TCK is based on the Bean Validation
specification 2.0 ({jsrVersion}). Information about the specification can
be found on the http://jcp.org/en/jsr/detail?id=380[JSR-380
JCP page].

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

If you are running the Bean 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 Bean 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 Bean 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
{jsrVersion} 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 `javax.validation` with the official API
signature defined by the specification.