<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--

    Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1252">
    <title>Jakarta JSON Processing TCK Release Notes</title>
    <style type="text/css">
<!--
body {  background-color: #ffffdd; color: #000000}
pre {  background-color: #eeeeee; color: #000099; font-size: smaller}
code {  color: #000099; font-size: smaller}
h1 {  color: #000099}
h2 {  color: #000099}
h3 {  color: #000099; text-decoration: underline}
h4 {  font-style: italic; color: #000099}
.tabletitle {  font-style: italic; color: #ffffcc; font-size: small; font-variant: small-caps}
.subtitle {  font-style: italic; color: #ffffcc; font-variant: small-caps}
.emphasize  {  font-style: italic; color: #000099}
.step  { font-weight: bold}
.note { background-color: #fffff0; border-bottom-width: thin; border-top-width: thin; border-top-style: inset; border-bottom-style: inset; font-size: -10%;}
th {  background-color: #eeeeee; padding-left: 2pt; padding-right: 2pt;}
-->
</style></head>
  <body>
    <div align="center">
      <h1>Jakarta EE JSON Processing Technology Compatibility Kit, Version 2.1</h1>
      <h2> <em class="emphasize">Release Notes, February 2022</em></h2>
      <h2><em class="emphasize"></em></h2>
    </div>
    <h2><a name="kit_contents">Kit Contents</a></h2>
    <p>The Jakarta EE JSON Processing, Version 2.1 Technology Compatibility Kit
      (TCK) includes the following items:</p>
    <ul>
      <li>
        <p><strong>Jakarta EE JSON Processing TCK tests signature, API, and
            pluggability tests:</strong></p>
      </li>
      <ul type="square">
        <li>
          <p>A <strong>signature test</strong> that checks that all of the
            public APIs are supported in the Jakarta EE JSON Processing Version
            2.1 implementation that is being tested</p>
        </li>
        <li>
          <p><strong>API tests</strong> for all of the public APIs under the <code>jakarta.json</code>,
            <code>jakarta.json.spi</code>, <code>jakarta.json.stream</code>
            package</p>
        </li>
        <li>
          <p><strong>Pluggability tests</strong> for testing the SPI provider
            interface for supplying your own JsonProvider</p>
        </li>
      </ul>
    </ul>
    <hr>
    <h2>Jakarta EE JSON Processing TCK Facts</h2>
    <blockquote>
      <p>The test suite bundle contains the following:</p>
      <ul>
        <li>187 total tests</li>
      </ul>
    </blockquote>
    <hr>
    <h2><a name="platform">Platform Notes</a></h2>
    <p>The Jakarta EE JSON Processing TCK tests have been built with JDK 11 
      and tested with Java<font size="-2"><sup>TM</sup></font> Platform,
      Standard Edition 11+</p>
    <p>The Jakarta EE JSON Processing TCK tests have been run on the following
      platforms:</p>
    <ul>
      <li>CentOS 7</li>
      <li>Alpine Linux v3.12</li>
    </ul>
    <p>The Jakarta EE JSON Processing TCK tests have been run against the
      following Jakarta EE JSON Processing 2.1 Compatible Implementations:</p>
    <ul>
      <li>Eclipse Parsson 1.1.0</li>
    </ul>
    <hr>
    <h2><a name="install_setup_run">Installing, Setting Up, and Running the
        JSON-P TCK</a></h2>
    <p>Refer to the <cite><a href="html-usersguide/title.html">JSON-P TCK 2.1
          User's Guide</a></cite> (or <a href="./pdf-usersguide/Jakarta-JSON-Processing-TCK-Users-Guide.pdf"

        title="Jakarta EE JSON Processing 2.1 TCK User's Guide (PDF)">PDF</a>)
      for complete instructions on installing, setting up, and running the
      JSON-P TCK. </p>
    <hr>
    <p><cite><small>Copyright &copy; 2013, 2022 Oracle and/or its affiliates. All
          rights reserved.</small></cite></p>
  </body>
</html>
