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

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

# 1.3.5 Certification Request

- [x] Organization Name ("Organization") and, if applicable, URL\
  Eclipse Foundation
- [x] Product Name, Version and download URL (if applicable)\
  [Eclipse Annotations](../index.html)
- [x] Specification Name, Version and download URL\
   [Jakarta Annotations 1.3](https://jakarta.ee/specifications/annotations/1.3/)
- [x] TCK Version, digital SHA-256 fingerprint and download URL\
  [Jakarta Annotations TCK 1.3.0](http://download.eclipse.org/ee4j/jakartaee-tck/jakartaee8-eftl/promoted/eclipse-annotations-tck-1.3.0.zip), SHA-256: ada069841408ba88378bb1813977ccdef4eb85e02097ba36de44bbd39cbd7c6c
- [x] Public URL of TCK Results Summary\
  [TCK results summary](jakarta-annotations-1.3.html)
- [x] Any Additional Specification Certification Requirements\
  None
- [x] Java runtime used to run the implementation\
  Oracle JDK 1.8.0_191
- [x] Summary of the information for the certification environment, operating system, cloud, ...\
  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:

```
[javatest.batch] Number of Tests Passed      = 1
[javatest.batch] Number of Tests Failed      = 0
[javatest.batch] Number of Tests with Errors = 0
```
