Merge PR #1788: Make plugin manager pluggable

Squashed commit of the following:

commit f2c6ad272f
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Thu Aug 20 18:28:09 2015 -0400

    After much discussion, just remove the helper method to let a plugin manager override easily get instance of the PluginManager

commit a96f933d8d
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Thu Aug 20 16:59:07 2015 -0400

    Add javadocs and restrict access on the PluginManagerStaplerOverride getManager method

commit 7e1facf887
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Thu Aug 20 12:50:47 2015 -0400

    Simplify plugin manager test using @TestExtension

commit b9f2841f6d
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Thu Aug 20 10:32:49 2015 -0400

    Modify the Since version for pluginmanager overrides

commit 3af45ce579
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Thu Aug 20 10:28:14 2015 -0400

    Add test for PluginManagerStaplerOverride

commit 7864094565
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Mon Aug 17 20:59:33 2015 -0400

    Changes from review, mostly comments and rename of class

commit 1c23f086ec
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Mon Aug 17 12:58:07 2015 -0400

    Cleanup for PluginManager extensibility/UI overrides

commit e105a13bcf
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Fri Aug 14 15:23:07 2015 -0400

    Different approach to plugin manager UX pluggability, using Extension and StaplerOverridable

commit 81f21fba08
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Thu Aug 13 21:32:45 2015 -0400

    Initial round of changes to allow  overriding PluginManager

    This includes renaming the setTarget method to setUIProxy and defining an interface to retain APIs
    Fields have not been mapped through yet as that is still in progress
    Also, an AbstractStaplerUIProxy has been defined to delegate Stapler bound calls to the pluginManager

commit eeef666de7
Author: Sam Van Oort <samvanoort@gmail.com>
Date:   Wed Aug 5 17:40:50 2015 -0400

    Make plugin manager pluggable
This commit is contained in:
Sam Van Oort authored and Daniel Beck committed 2015-08-24 23:39:51 +02:00
1 parent b204bd0719
commit 80abb98640
4 files changed
+87 -1

No files matched your search

+12 -1
View File
@@ -71,6 +71,7 @@ import org.kohsuke.stapler.HttpRedirect;
import org.kohsuke.stapler.HttpResponse;
import org.kohsuke.stapler.HttpResponses;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.StaplerOverridable;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.export.Exported;
@@ -128,7 +129,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse;
* @author Kohsuke Kawaguchi
*/
@ExportedBean
public abstract class PluginManager extends AbstractModelObject implements OnMaster {
public abstract class PluginManager extends AbstractModelObject implements OnMaster, StaplerOverridable {
/**
* All discovered plugins.
*/
@@ -215,6 +216,16 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
return new Api(this);
}
/**
* Find all registered overrides (intended to allow overriding/adding views)
* @return List of extensions
* @since 1.626
*/
@Override
public Collection<PluginManagerStaplerOverride> getOverrides() {
return PluginManagerStaplerOverride.all();
}
/**
* Called immediately after the construction.
* This is a separate method so that code executed from here will see a valid value in