TCK Results
===========

 As required by the
[Eclipse Foundation Technology Compatibility Kit License](https://www.eclipse.org/legal/tck.php),
the following is a summary of the TCK results for release of Eclipse Jersey 3.1.0-M3.

 # Eclipse Jersey 3.1.0-M3 Certification Request

 - [x] Organization Name ("Organization") and, if applicable, URL<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Eclipse Foundation
 - [x] Product Name, Version and download URL (if applicable)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jersey 3.1.0-M3:
   * [jersey-bean-validation](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/ext/jersey-bean-validation/3.1.0-M3/jersey-bean-validation-3.1.0-M3.jar)
   * [jersey-cdi1x](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/ext/cdi/jersey-cdi1x/3.1.0-M3/jersey-cdi1x-3.1.0-M3.jar)
   * [jersey-cdi1x-servlet](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/ext/cdi/jersey-cdi1x-servlet/3.1.0-M3/jersey-cdi1x-servlet-3.1.0-M3.jar)
   * [jersey-cdi1x-transaction](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/ext/cdi/jersey-cdi1x-transaction/3.1.0-M3/jersey-cdi1x-transaction-3.1.0-M3.jar)
   * [jersey-client](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/core/jersey-client/3.1.0-M3/jersey-client-3.1.0-M3.jar)
   * [jersey-common](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/core/jersey-common/3.1.0-M3/jersey-common-3.1.0-M3.jar)
   * [jersey-container-grizzly2-http](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/containers/jersey-container-grizzly2-http/3.1.0-M3/jersey-container-grizzly2-http-3.1.0-M3.jar)
   * [jersey-container-servlet](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/containers/jersey-container-servlet/3.1.0-M3/jersey-container-servlet-3.1.0-M3.jar)
   * [jersey-container-servlet-core](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/containers/jersey-container-servlet-core/3.1.0-M3/jersey-container-servlet-core-3.1.0-M3.jar)
   * [jersey-entity-filtering](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/ext/jersey-entity-filtering/3.1.0-M3/jersey-entity-filtering-3.1.0-M3.jar)
   * [jersey-gf-ejb](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/containers/glassfish/jersey-gf-ejb/3.1.0-M3/jersey-gf-ejb-3.1.0-M3.jar)
   * [jersey-hk2](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/inject/jersey-hk2/3.1.0-M3/jersey-hk2-3.1.0-M3.jar)
   * [jersey-media-jaxb](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-jaxb/3.1.0-M3/jersey-media-jaxb-3.1.0-M3.jar)
   * [jersey-media-json-binding](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-json-binding/3.1.0-M3/jersey-media-json-binding-3.1.0-M3.jar)
   * [jersey-media-json-jackson](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-json-jackson/3.1.0-M3/jersey-media-json-jackson-3.1.0-M3.jar)
   * [jersey-media-json-jettison](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-json-jettison/3.1.0-M3/jersey-media-json-jettison-3.1.0-M3.jar)
   * [jersey-media-json-processing](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-json-processing/3.1.0-M3/jersey-media-json-processing-3.1.0-M3.jar)
   * [jersey-media-moxy](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-moxy/3.1.0-M3/jersey-media-moxy-3.1.0-M3.jar)
   * [jersey-media-multipart](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-multipart/3.1.0-M3/jersey-media-multipart-3.1.0-M3.jar)
   * [jersey-media-sse](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-sse/3.1.0-M3/jersey-media-sse-3.1.0-M3.jar)
   * [jersey-mvc](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/ext/jersey-mvc/3.1.0-M3/jersey-mvc-3.1.0-M3.jar)
   * [jersey-mvc-jsp](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/ext/jersey-mvc-jsp/3.1.0-M3/jersey-mvc-jsp-3.1.0-M3.jar)
   * [jersey-server](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/core/jersey-server/3.1.0-M3/jersey-server-3.1.0-M3.jar)
- [x] Specification Name, Version and download URL<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Jakarta RESTful Web Services 3.1.0](https://jakarta.oss.sonatype.org/content/repositories/staging/jakarta/ws/rs/jakarta.ws.rs-api/3.1.0/jakarta.ws.rs-api-3.1.0.jar)
- [x] TCK Version, digital SHA-256 fingerprint and download URL<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Jakarta RESTful Web Services TCK 3.1.0](https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee10/staged/eftl/jakarta-restful-ws-tck-3.1.0.zip)<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA-256: ea8cd6cc857af55f19468bbb09e8a30f41c60e8f7413a093e7007c3902a49070
- [x] Public URL of TCK Results Summary<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [TCK results summary](eclipse-jersey-3.1.0-M3-summary)
- [x] Any Additional Specification Certification Requirements<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; None
- [x] Java runtime used to run the implementation<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open JDK 11.0.2+9
- [x] Summary of the information for the certification environment, operating system, cloud, ...<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux basic-ffzwn 5.14.14-200.fc34.x86_64 #1 SMP Wed Oct 20 16:15:12 UTC 2021 x86_64 GNU/Linux
- [x] By checking this box I acknowledge that the Organization I represent accepts the terms of the [EFTL](https://www.eclipse.org/legal/tck.php).
- [x] By checking this box I attest that all TCK requirements have been met, including any compatibility rules.

 Test results:

 ```
Number of Tests Passed      = 2730
Number of Tests Failed      = 0   
Number of Tests with Errors = 0   
```
 ```
Number of Tests Passed      = 7
Number of Tests Failed      = 0
Number of Tests with Errors = 0
```