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.
Since META-INF/services registration is being replaced with annotations, we have a regression in functionality from apisupport - if you are working on a module that is unfamiliar, it is difficult to find out what it registers as services, which slows down the person trying to fix it.
You can use Find Usages on ServiceProvider, or just look at the info messages printed during the build. But yes we plan to have some kind of "registration overview" action.
Created attachment 81233 [details] Patch to add Important Files > Default Lookup to module projects
The attached patch scans all Java sources in the source classpath, and finds all annotated with ServiceProvider. It could certainly be more efficient about detecting renames and such (right now any save of a Java file results in a rescan if the child nodes are expanded), but it works. Note with the attached patch, you'll need to provide some icon at org/netbeans/modules/apisupport/project/resources/defaultLookup.png
Created attachment 81249 [details] Slightly improved patch - also supports legacy META-INF/services entires + better listening for deletions
Tim, don't use the IDE's Diff facility. Use 'hg diff', and make sure you have set [diff] git=1 This can represent renames, binary files, etc. We probably want to scan for any annotations which have an associated LayerGeneratingProcessor in the classpath. The proper UI for all this is not clear. Not sure that we want to resurrect the permanode UI of the old services browser. It was never very efficient or stable. A one-off scan of sources upon request, say going to the Output Window with hyperlinks, would be simpler to implement and have no performance risk.
Created attachment 81259 [details] hg diff
Well, the code in the attached patch could easily be adapted to print output instead of creating nodes, so either way this should now be trivial to implement. I'd suggest we do *something* either way - I'm not terribly attached to which thing we do.