Bug 202554 - Help users figure out why processors aren't running
Summary: Help users figure out why processors aren't running
Status: NEW
Alias: None
Product: JDT
Classification: Eclipse Project
Component: APT (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Generic inbox for the JDT-APT component CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-09-06 19:26 EDT by Walter Harley CLA
Modified: 2007-09-06 20:29 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Walter Harley CLA 2007-09-06 19:26:09 EDT
When annotations are unexpectedly not being processed, there are quite a few possible reasons. Some of these are very hard to identify, even when tracing is turned on. We need to add tracing or UI features to make it easier to debug this situation.

Features that would help include:

 - In the Factory Path / Advanced Options dialog, we should show not only the processors contained in a factory container, but also the fully qualified annotation types supported by those processors.  This will help when the processor is not correctly declared, which often happens during processor development.

 - In the Factory Path / Advanced Options dialog, we should indicate whether processors are implementing the Java 5 or Java 6 interface.

 - Java 6 processors on the factory path should show themselves as disabled, in some way, when running on a 1.5 VM.  (At present there is no visual distinction.)

 - There should be some reasonably clear way for users to identify that Java 6 processing is disabled, when running on a 1.5 VM.  (At present, the plug-ins just don't show up in the Plugins list, and they are just "Installed" with no explanation in the Configuration list.)

 - Trace output should indicate when processing is enabled but processing is skipped because the Java 6 and/or Java 5 factory lists are empty.
Comment 1 Walter Harley CLA 2007-09-06 20:29:39 EDT
Java 6 processors also fail silently when compiler compliance is only 5.0.  This is very subtle because the annotated code compiles fine with 5.0 compliance; indeed from a user's perspective there is no distinction.

If annotation processing is enabled, there are Java 6 processors enabled on the factory path, and compliance is set to 5.0, we should put a warning marker on the project saying something like "Some annotation processors did not run because Java compiler compliance was set lower than 6.0."