added an auto-discovery mechanism for extension points (and most notably Descriptors.)

- extensions are now stored in ExtensionList.
- discovery is extensible, but by default we use Sezpoz for annotation-based injection. This requires JDK6 for build.
- a care has been taken to preserve backward compatibility. DescriptorList and manually adding to it continues to work.
- AdministrativeMonitor is converted to use the new approach entirely, as a guinea pig of this feature.
- Descriptors for View is partially switched to this new approach, where some classes register automatically while others do manually. This tests the compatibility aspect of this feature.

A pluggable discovery is an attempt to embrace Plexus integration work, although for that to really work we need more coding.

Next stop, more tests.

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@15601 71c3de6d-444a-0410-be80-ed276b4c234a
This commit is contained in:
kohsuke committed 2009-02-23 21:54:22 +00:00
1 parent 836b436f15
commit d4c6a4b06c
15 files changed
+660 -74

No files matched your search

@@ -29,10 +29,16 @@ package hudson;
*
* <p>
* See respective interfaces/classes for more about how to register custom
* implementations to Hudson.
* implementations to Hudson. See {@link Extension} for how to have
* Hudson auto-discover your implementations.
*
* <p>
* This interface is used for auto-generating
* documentation.
*
* @author Kohsuke Kawaguchi
* @see Plugin
* @see Extension
*/
public interface ExtensionPoint {
}