This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 147393

Summary: Support annotation processors in module build harness
Product: apisupport Reporter: Jesse Glick <jglick>
Component: HarnessAssignee: Jesse Glick <jglick>
Status: RESOLVED FIXED    
Severity: blocker CC: anebuzelsky, jtulach, rmichalsky
Priority: P2    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: ENHANCEMENT Exception Reporter:
Bug Depends on: 150793, 152353, 152620, 152896    
Bug Blocks: 149136, 150447, 150804, 153093    
Attachments: Patch to enable APs when compiling NBM projects
Demo application (suite project) using patch
Refined patch to add 269 support

Description Jesse Glick 2008-09-16 16:05:36 UTC
Try the attached demo app with the attached patch. You need to set the app's platform to whatever you build with this
patch (suffices to run: ant bootstrap && ant -f apisupport.harness/build.xml).

Note that the plugin* modules using the indexed annotations need to have sezpoz (which contains the annotation
processor) as a dep, to make sure the AP is included in the compilation classpath. Otherwise the annotations are
silently ignored. Probably to make the system easier to use we would need to fix this somehow; possibilities:

1. Allow a module (such as 'api' in the demo) to reexport another module ('sezpoz') to anything depending on it, a la
OSGi reexports.

2. Allow a module ('sezpoz') to place an annotation processor in a separate JAR file with a known name pattern, which
would be included in the javac factorypath when compiling any module which _transitively_ depends on this module. Would
also let us remove the hack for APs currently in ParseProjectXml, since the public package list would be interpreted
normally and the factorypath would be separate.
Comment 1 Jesse Glick 2008-09-16 16:06:08 UTC
Created attachment 69958 [details]
Patch to enable APs when compiling NBM projects
Comment 2 Jesse Glick 2008-09-16 16:06:54 UTC
Created attachment 69959 [details]
Demo application (suite project) using patch
Comment 3 Jesse Glick 2008-10-16 21:44:51 UTC
A note about the demo app: don't forget to set the custom platform to use its own harness, rather than the harness
bundled with your current IDE.
Comment 4 Jesse Glick 2008-10-16 21:51:56 UTC
Have a working implementation of this.
Comment 5 Jesse Glick 2008-10-16 21:58:48 UTC
Created attachment 72040 [details]
Refined patch to add 269 support
Comment 6 Jesse Glick 2008-11-01 16:51:05 UTC
Merged in core-main #78103b644dfc.
Comment 7 Quality Engineering 2008-11-04 16:27:56 UTC
Integrated into 'main-golden', will be available in build *200811041401* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/a4c147bda4bf
User: Jesse Glick <jglick@netbeans.org>
Log: Issue #147393: support annotation processors in module build harness.
Comment 8 Quality Engineering 2008-11-05 04:35:28 UTC
Integrated into 'main-golden', will be available in build *200811050201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/2fb3293a0467
User: Jesse Glick <jglick@netbeans.org>
Log: More fixes to handling of APs in unit test code for #147393.
'ant clean test-build' was not running processors on test code, while 'ant clean netbeans && ant test-build' did.
Also getting rid of a -Xlint:path warning about missing test.*.cp.extra.