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 4.0.0-M1.

 # Eclipse Jersey 4.0.0-M1 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 4.0.0-M1:
   * [jersey-client](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/core/jersey-client/4.0.0-M1/jersey-client-4.0.0-M1.jar)
   * [jersey-common](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/core/jersey-common/4.0.0-M1/jersey-common-4.0.0-M1.jar)
   * [jersey-container-servlet](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/containers/jersey-container-servlet/4.0.0-M1/jersey-container-servlet-4.0.0-M1.jar)
   * [jersey-container-servlet-core](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/containers/jersey-container-servlet-core/4.0.0-M1/jersey-container-servlet-core-4.0.0-M1.jar)
   * [jersey-entity-filtering](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/ext/jersey-entity-filtering/4.0.0-M1/jersey-entity-filtering-4.0.0-M1.jar)
   * [jersey-hk2](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/inject/jersey-hk2/4.0.0-M1/jersey-hk2-4.0.0-M1.jar)
   * [jersey-media-jaxb](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-jaxb/4.0.0-M1/jersey-media-jaxb-4.0.0-M1.jar)
   * [jersey-media-json-binding](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-json-binding/4.0.0-M1/jersey-media-json-binding-4.0.0-M1.jar)
   * [jersey-media-json-processing](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-json-processing/4.0.0-M1/jersey-media-json-processing-4.0.0-M1.jar)
   * [jersey-media-multipart](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-multipart/4.0.0-M1/jersey-media-multipart-4.0.0-M1.jar)
   * [jersey-media-sse](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/media/jersey-media-sse/4.0.0-M1/jersey-media-sse-4.0.0-M1.jar)
   * [jersey-server](https://jakarta.oss.sonatype.org/content/repositories/staging/org/glassfish/jersey/core/jersey-server/4.0.0-M1/jersey-server-4.0.0-M1.jar)
- [x] Specification Name, Version and download URL<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Jakarta RESTful Web Services 4.0](https://jakarta.oss.sonatype.org/content/repositories/staging/jakarta/ws/rs/jakarta.ws.rs-api/4.0.0/jakarta.ws.rs-api-4.0.0.jar)
- [x] TCK Version, digital SHA-256 fingerprint and download URL<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Jakarta RESTful Web Services TCK 4.0.0](https://download.eclipse.org/ee4j/restful-ws/tck/eftl/jakarta-restful-ws-tck-4.0.0.zip)<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA-256: 9494caaf67a3e5524a5ee1d6e4b749782ca1cbc920c6451583b6249e51c4ac18
- [x] Public URL of TCK Results Summary<br/>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [TCK results summary](eclipse-jersey-4.0.0-M1-jdk17-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; Java version: 17.0.2, vendor: Oracle Corporation, runtime: /opt/tools/java/openjdk/jdk-17/17.0.2+8
- [x] Summary of the information for the certification environment, operating system, cloud, ...<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux basic-3x5r1 6.2.9-300.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Mar 30 22:32:58 UTC 2023 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      = 2,675
Number of Tests Failed      = 0
Number of Tests with Errors = 0
```