apt is a command-line utility for annotation processing.
It includes a set of reflective APIs and supporting infrastructure to
process program
annotations
(JSR 175).
These reflective APIs provide a build-time, source-based,
read-only view of program structure. They are designed to cleanly model
the JavaTM
programming language's type system after the addition of
generics
(JSR 14).
apt first runs annotation processors that can produce new
source code and other files. Next, apt can cause
compilation of both original and generated source files, thus
easing the development cycle.
JSR 269, also known as the Language Model API, has two basic pieces: an API that models the Java programming language, and an API for writing annotation processors. This functionality is accessed through new options to the javac command; by including JSR 269 support, javac now acts analogously to the apt command in JDK 5.