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.

# 5.1 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: ba89425dfc799bcc72ec29f6ca535051cf9c5e892778033bcb3cbbe1793e0f9b
- [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
```
