Last revised $Date: 2008/09/12 05:33:59 $
This plan is under continuous refinement. Please send comments about this plan to the jdt-apt-dev@eclipse.org developer mailing list.
Overall Goals
The goals for Eclipse 3.5 for the JDT APT component are as follows.
[1] Performance.
Develop performance tests for the JDT APT component, and use them to guide performance improvements.
[2] Reliability.
Provide APIs for clients where needed and fix critical bugs.
[3] Usability.
Improve the ability to configure annotation processing and troubleshoot failures.
Work Items
This section details the possible work items for Eclipse 3.5 for the JDT APT component
with the [corresponding theme]. The JDT APT component is volunteer-staffed, and not
all items on this list may be achieved without community support.
Some of those items have a higher priority than others.
Performance tests [1]
- There are currently no automated performance tests for the JDT APT component. Tests need to be created and integrated into the Eclipse performance
testing framework. Priority will be given to the JSR-269 (Java 6) processing API rather than the com.sun.mirror.apt (Java 5) API, because the latter
is deprecated for future development, but ideally both will be tested.
Performance improvements [1]
- When performance tests are available, it will be possible to profile and improve performance of the annotation processing API. Again, the Java 6 API will be
given priority over the Java 5 API. Note that compilation with APT is inherently slower than compilation without, because annotation processors contain third-party
code that can ask for any type information at any time, and the compiler is not (and should not be) a general-purpose type database; thus, it will only be
appropriate to optimize certain scenarios. Part of this work item will be to determine what those scenarios should be.
Implement unimplemented methods [2]
- Implementations of some of the JSR269 (Java 6 annotation processing) APIs have been left incomplete, particularly for processors running in the IDE
rather than at the command line (e.g., bug 240264). These methods should be fleshed out with
working implementations.
Monitor annotation-related JSRs [2]
- JSR-305 concerns annotations for software quality monitoring, and JSR-308 concerns annotations in additional locations. It is not currently clear whether
either of these changes will have an effect on the annotation processing API. The JSRs need to be monitored and responded to as necessary.
Improved documentation [3]
- The JDT APT project web site is out of date and needs to be updated with good instructions on how to use APT, particularly with JSR269
(Java 6) processors (bug 213636). Material for this can be drawn from the EclipseCon 2006
tutorial on writing annotation processors.
Improved troubleshooting [3]
- Developing and configuring an annotation processor is a difficult task. The canonical experience is that "nothing happens" when the processor is run.
This is often because of exceptions thrown within the processor, because the processor has not been correctly declared, or because Eclipse is not running
on a JRE of the appropriate level (e.g., running on a Java 5 JRE while trying to execute a Java 6 processor). The tracing options, problem markers, log
entries, and configuration UI all need to be improved to help with this.
|