JDK 1.5 comes with Sun's Annotation Processing Tool, APT. Ant version 1.7 comes with an apt task. In JDK 1.6, Sun made annotation processing part of the javac process.
In Jedi versions prior to 3.0, there was only one jar, which needs to be on the compile time classpath.
In Jedi versions starting with 3.0, there are several jars:
jar |
Purpose |
Required at Compile Time? |
Required at Runtime? |
|---|---|---|---|
jedi-core |
Runtime library with classes such as FunctionalPrimitives, etc |
Yes |
Yes |
jedi-annotations |
Annotations for compile time code generation and resources shared between JDK5 and JDK6 code generation functionality |
If you want to use the Jedi code generation functionality |
No |
jedi-jdk5 |
Code generation if you are using the JDK5 javac |
If you want to use the Jedi code generation functionality |
No |
jedi-jdk6 |
Code generation if you are using the JDK6 javac |
If you want to use the Jedi code generation functionality |
No |
Annotation Processor Options
Annotation processor options are specified with the -A switch on the apt command line. None of these options require values; the presence of the option is sufficient.
Option |
Effect |
|---|---|
jediSuppressSuffixes |
Suppress all suffixes added to method names when creating factory methods. Suffixes that may otherwise be added are the word 'Proxy' and the unqualified name of the closure class (e.g. Command). The generated code will contain overloaded methods with the same name as the annotated method. This may not be compileable if the signatures of the overloaded forms are the same. |
jediSuppressProxySuffix |
If you want to suppress just the Proxy suffix for generated methods, use this option. This may also cause uncompileable code to be generated. |
jediSuppressClosureTypeSuffix |
Suppresses just the closure type from being appended to the name of the generated method. This can cause uncompileable code to be generated if the method is annotated with more than one @Jedi annotation. This can be fixed with the name parameter of the annotations. |
jediSuppressAccessorVerbs |
Suppresses accessor method prefixes (get and is) when creating factory methods. |
