From a95ac5ea48366dada228c1f55acec1fa8018a071 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 Dec 2015 17:25:59 -0800 Subject: [PATCH 01/23] make the first view primary if none is chosen ... but some views already exist. --- core/src/main/java/jenkins/model/Jenkins.java | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index d34fa105a4a3..0db1c5a2e0ec 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -226,6 +226,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.Option; +import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; @@ -752,7 +753,7 @@ public static Jenkins getInstance() { private transient final LogRecorderManager log = new LogRecorderManager(); protected Jenkins(File root, ServletContext context) throws IOException, InterruptedException, ReactorException { - this(root,context,null); + this(root, context, null); } /** @@ -1145,7 +1146,7 @@ public String getLegacyInstanceId() { * Gets the SCM descriptor by name. Primarily used for making them web-visible. */ public Descriptor getScm(String shortClassName) { - return findDescriptor(shortClassName,SCM.all()); + return findDescriptor(shortClassName, SCM.all()); } /** @@ -1289,7 +1290,7 @@ public T getDescriptorByType(Class type) { * Gets the {@link SecurityRealm} descriptors by name. Primarily used for making them web-visible. */ public Descriptor getSecurityRealms(String shortClassName) { - return findDescriptor(shortClassName,SecurityRealm.all()); + return findDescriptor(shortClassName, SecurityRealm.all()); } /** @@ -1514,7 +1515,7 @@ public List getAllItems() { */ @Deprecated public List getProjects() { - return Util.createSubList(items.values(),Project.class); + return Util.createSubList(items.values(), Project.class); } /** @@ -1558,6 +1559,22 @@ public void addView(View v) throws IOException { viewGroupMixIn.addView(v); } + /** + * Completely replaces views + */ + @DataBoundSetter + public void setViews(Collection views) throws IOException { + BulkChange bc = new BulkChange(this); + try { + this.views.clear(); + for (View v : views) { + addView(v); + } + } finally { + bc.commit(); + } + } + public boolean canDelete(View view) { return viewGroupMixIn.canDelete(view); } @@ -1567,7 +1584,7 @@ public synchronized void deleteView(View view) throws IOException { } public void onViewRenamed(View view, String oldName, String newName) { - viewGroupMixIn.onViewRenamed(view,oldName,newName); + viewGroupMixIn.onViewRenamed(view, oldName, newName); } /** @@ -2804,12 +2821,15 @@ public void run(Reactor session) throws Exception { // initialize views by inserting the default view if necessary // this is both for clean Jenkins and for backward compatibility. - if(views.size()==0 || primaryView==null) { + if(views.size()==0) { View v = new AllView(Messages.Hudson_ViewName()); setViewOwner(v); views.add(0,v); primaryView = v.getViewName(); } + if (primaryView==null) { + primaryView = views.get(0).getViewName(); + } if (useSecurity!=null && !useSecurity) { // forced reset to the unsecure mode. From 16c4b50f509de8846eaaffb788fb6138af2d58fb Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 Dec 2015 17:26:08 -0800 Subject: [PATCH 02/23] Assigning some symbol names to use them --- core/pom.xml | 5 +++++ core/src/main/java/hudson/model/AllView.java | 3 ++- core/src/main/java/hudson/model/ListView.java | 12 +++++++++++- ...FullControlOnceLoggedInAuthorizationStrategy.java | 3 ++- .../main/java/hudson/views/BuildButtonColumn.java | 3 ++- core/src/main/java/hudson/views/JobColumn.java | 3 ++- core/src/main/java/hudson/views/StatusColumn.java | 3 ++- core/src/main/java/hudson/views/WeatherColumn.java | 3 ++- 8 files changed, 28 insertions(+), 7 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 17e1ae089a0f..4db64f56c39a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -558,6 +558,11 @@ THE SOFTWARE. robust-http-client 1.2 + + org.jenkins-ci + symbol-annotation + 1.0-SNAPSHOT + commons-codec diff --git a/core/src/main/java/hudson/model/AllView.java b/core/src/main/java/hudson/model/AllView.java index 6cf8f2448d7c..9398c307f006 100644 --- a/core/src/main/java/hudson/model/AllView.java +++ b/core/src/main/java/hudson/model/AllView.java @@ -23,6 +23,7 @@ */ package hudson.model; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; @@ -88,7 +89,7 @@ protected void submit(StaplerRequest req) throws IOException, ServletException, // noop } - @Extension + @Extension @Symbol("all") public static final class DescriptorImpl extends ViewDescriptor { @Override public boolean isInstantiable() { diff --git a/core/src/main/java/hudson/model/ListView.java b/core/src/main/java/hudson/model/ListView.java index 73b63b491500..c4c3eb548673 100644 --- a/core/src/main/java/hudson/model/ListView.java +++ b/core/src/main/java/hudson/model/ListView.java @@ -49,10 +49,12 @@ import jenkins.model.Jenkins; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; @@ -109,6 +111,14 @@ public ListView(String name, ViewGroup owner) { this.owner = owner; } + /** + * Sets the columns of this view. + */ + @DataBoundSetter + public void setColumns(List columns) throws IOException { + this.columns.replaceBy(columns); + } + private Object readResolve() { if(includeRegex!=null) { try { @@ -398,7 +408,7 @@ public void setIncludeRegex(String includeRegex) { this.includePattern = Pattern.compile(includeRegex); } - @Extension + @Extension @Symbol("list") public static class DescriptorImpl extends ViewDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java b/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java index bdebc0fca431..16f1515bb341 100644 --- a/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java @@ -26,6 +26,7 @@ import hudson.Extension; import hudson.model.Descriptor; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; @@ -92,7 +93,7 @@ public void setAllowAnonymousRead(boolean allowAnonymousRead) { @Restricted(NoExternalUse.class) public static Descriptor DESCRIPTOR; - @Extension + @Extension @Symbol("fullControlOnceLoggedIn") public static class DescriptorImpl extends Descriptor { public DescriptorImpl() { DESCRIPTOR = this; diff --git a/core/src/main/java/hudson/views/BuildButtonColumn.java b/core/src/main/java/hudson/views/BuildButtonColumn.java index 83f314597994..3f7cbbc7d3f9 100644 --- a/core/src/main/java/hudson/views/BuildButtonColumn.java +++ b/core/src/main/java/hudson/views/BuildButtonColumn.java @@ -24,6 +24,7 @@ package hudson.views; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; public class BuildButtonColumn extends ListViewColumn { @@ -31,7 +32,7 @@ public class BuildButtonColumn extends ListViewColumn { public BuildButtonColumn() { } - @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_ACTIONS_START-1) + @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_ACTIONS_START-1) @Symbol("buildButton") public static class DescriptorImpl extends ListViewColumnDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/JobColumn.java b/core/src/main/java/hudson/views/JobColumn.java index d34b49415ad3..b6f581c154c2 100644 --- a/core/src/main/java/hudson/views/JobColumn.java +++ b/core/src/main/java/hudson/views/JobColumn.java @@ -25,6 +25,7 @@ import hudson.Extension; import hudson.model.Item; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -36,7 +37,7 @@ public JobColumn() { } // put this in the middle of icons and properties - @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_ICON_END+1) + @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_ICON_END+1) @Symbol("jobName") public static class DescriptorImpl extends ListViewColumnDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/StatusColumn.java b/core/src/main/java/hudson/views/StatusColumn.java index 47f82643d2c8..80813e00ea20 100644 --- a/core/src/main/java/hudson/views/StatusColumn.java +++ b/core/src/main/java/hudson/views/StatusColumn.java @@ -25,6 +25,7 @@ import hudson.Extension; import hudson.model.StatusIcon; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -37,7 +38,7 @@ public class StatusColumn extends ListViewColumn { public StatusColumn() { } - @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_ICON_START-1) + @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_ICON_START-1) @Symbol("status") public static class DescriptorImpl extends ListViewColumnDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/WeatherColumn.java b/core/src/main/java/hudson/views/WeatherColumn.java index 1e8436a08af3..d14e9ca5582b 100644 --- a/core/src/main/java/hudson/views/WeatherColumn.java +++ b/core/src/main/java/hudson/views/WeatherColumn.java @@ -25,6 +25,7 @@ package hudson.views; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; public class WeatherColumn extends ListViewColumn { @@ -32,7 +33,7 @@ public class WeatherColumn extends ListViewColumn { public WeatherColumn() { } - @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_ICON_START-2) + @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_ICON_START-2) @Symbol("weather") public static class DescriptorImpl extends ListViewColumnDescriptor { @Override public String getDisplayName() { From 3e842b69996c3a354d376ee3e1e6ab3fc46311e3 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 Dec 2015 17:51:55 -0800 Subject: [PATCH 03/23] More symbol assignments and constructor diet to move more properties off to setters. --- core/src/main/java/hudson/model/Slave.java | 33 +++++++++++++++++-- .../java/hudson/slaves/CommandLauncher.java | 3 +- .../main/java/hudson/slaves/DumbSlave.java | 16 +++++++-- .../main/java/hudson/slaves/JNLPLauncher.java | 16 +++++++-- 4 files changed, 61 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index 38de3e02c198..86103e40bda7 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -67,6 +67,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; +import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; @@ -98,7 +99,7 @@ public abstract class Slave extends Node implements Serializable { /** * Description of this node. */ - private final String description; + private String description; /** * Path to the root of the workspace from the view point of this node, such as "/hudson", this need not @@ -118,7 +119,7 @@ public abstract class Slave extends Node implements Serializable { /** * Job allocation strategy. */ - private Mode mode; + private Mode mode = Mode.NORMAL; /** * Agent availablility strategy. @@ -162,6 +163,16 @@ public Slave(String name, String nodeDescription, String remoteFS, int numExecut this(name, nodeDescription, remoteFS, numExecutors, mode, labelString, launcher, retentionStrategy, new ArrayList()); } + public Slave(@Nonnull String name, String remoteFS, ComputerLauncher launcher) throws FormException, IOException { + this.name = name; + this.remoteFS = remoteFS; + this.launcher = launcher; + } + + /** + * @deprecated as of 1.XXX + * Use {@link #Slave(String, String, ComputerLauncher)} and set the rest through setters. + */ public Slave(@Nonnull String name, String nodeDescription, String remoteFS, int numExecutors, Mode mode, String labelString, ComputerLauncher launcher, RetentionStrategy retentionStrategy, List> nodeProperties) throws FormException, IOException { this.name = name; @@ -231,6 +242,11 @@ public void setNodeName(String name) { this.name = name; } + @DataBoundSetter + public void setNodeDescription(String value) { + this.description = value; + } + public String getNodeDescription() { return description; } @@ -239,10 +255,16 @@ public int getNumExecutors() { return numExecutors; } + @DataBoundSetter + public void setNumExecutors(int n) { + this.numExecutors = n; + } + public Mode getMode() { return mode; } + @DataBoundSetter public void setMode(Mode mode) { this.mode = mode; } @@ -252,10 +274,16 @@ public DescribableList, NodePropertyDescriptor> getNodePropertie return nodeProperties; } + @DataBoundSetter + public void setNodeProperties(List> properties) throws IOException { + nodeProperties.replaceBy(properties); + } + public RetentionStrategy getRetentionStrategy() { return retentionStrategy == null ? RetentionStrategy.Always.INSTANCE : retentionStrategy; } + @DataBoundSetter public void setRetentionStrategy(RetentionStrategy availabilityStrategy) { this.retentionStrategy = availabilityStrategy; } @@ -265,6 +293,7 @@ public String getLabelString() { } @Override + @DataBoundSetter public void setLabelString(String labelString) throws IOException { this.label = Util.fixNull(labelString).trim(); // Compute labels now. diff --git a/core/src/main/java/hudson/slaves/CommandLauncher.java b/core/src/main/java/hudson/slaves/CommandLauncher.java index fdaaa06441c2..832e392ea3ab 100644 --- a/core/src/main/java/hudson/slaves/CommandLauncher.java +++ b/core/src/main/java/hudson/slaves/CommandLauncher.java @@ -42,6 +42,7 @@ import java.util.logging.Logger; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -182,7 +183,7 @@ private static void reportProcessTerminated(Process proc, TaskListener listener) private static final Logger LOGGER = Logger.getLogger(CommandLauncher.class.getName()); - @Extension + @Extension @Symbol("command") public static class DescriptorImpl extends Descriptor { public String getDisplayName() { return Messages.CommandLauncher_displayName(); diff --git a/core/src/main/java/hudson/slaves/DumbSlave.java b/core/src/main/java/hudson/slaves/DumbSlave.java index 618cb976db09..835cf004ad23 100644 --- a/core/src/main/java/hudson/slaves/DumbSlave.java +++ b/core/src/main/java/hudson/slaves/DumbSlave.java @@ -31,8 +31,11 @@ import java.util.ArrayList; import java.util.List; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; +import javax.annotation.Nonnull; + /** * Default {@link Slave} implementation for computers that do not belong to a higher level structure, * like grid or cloud. @@ -49,12 +52,21 @@ public DumbSlave(String name, String nodeDescription, String remoteFS, String nu this(name, nodeDescription, remoteFS, numExecutors, mode, labelString, launcher, retentionStrategy, new ArrayList()); } - @DataBoundConstructor + /** + * @deprecated as of 1.XXX. + * Use {@link #DumbSlave(String, String, ComputerLauncher)} and configure the rest through setters. + */ public DumbSlave(String name, String nodeDescription, String remoteFS, String numExecutors, Mode mode, String labelString, ComputerLauncher launcher, RetentionStrategy retentionStrategy, List> nodeProperties) throws IOException, FormException { super(name, nodeDescription, remoteFS, numExecutors, mode, labelString, launcher, retentionStrategy, nodeProperties); } - @Extension + @DataBoundConstructor + public DumbSlave(@Nonnull String name, String remoteFS, ComputerLauncher launcher) throws FormException, IOException { + super(name, remoteFS, launcher); + } + + @Extension @Symbol({"dumb", + "slave"/*because this is in effect the canonical slave type*/}) public static final class DescriptorImpl extends SlaveDescriptor { public String getDisplayName() { return Messages.DumbSlave_displayName(); diff --git a/core/src/main/java/hudson/slaves/JNLPLauncher.java b/core/src/main/java/hudson/slaves/JNLPLauncher.java index 4a43adbbafa8..37218e4facab 100644 --- a/core/src/main/java/hudson/slaves/JNLPLauncher.java +++ b/core/src/main/java/hudson/slaves/JNLPLauncher.java @@ -27,6 +27,8 @@ import hudson.model.TaskListener; import hudson.Util; import hudson.Extension; +import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -75,8 +77,18 @@ public void launch(SlaveComputer computer, TaskListener listener) { // do nothing as we cannot self start } - @Extension - public static final Descriptor DESCRIPTOR = new Descriptor() { + /** + * @deprecated as of 1.XXX + * Use {@link Jenkins#getDescriptor(Class)} + */ + public static /*almost final*/ Descriptor DESCRIPTOR; + + @Extension @Symbol("jnlp") + public static class DescriptorImpl extends Descriptor { + public DescriptorImpl() { + DESCRIPTOR = this; + } + public String getDisplayName() { return Messages.JNLPLauncher_displayName(); } From 0ea11ef181bba5903ea6feacc6299388cea3b56d Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 14 Mar 2016 09:55:24 -0700 Subject: [PATCH 04/23] More @Symbol annotations to test this out --- .../main/java/jenkins/model/JenkinsLocationConfiguration.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java b/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java index f626750deb85..5eaa12739739 100644 --- a/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java +++ b/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java @@ -6,6 +6,7 @@ import hudson.util.FormValidation; import hudson.util.XStream2; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; @@ -29,7 +30,7 @@ * @author Kohsuke Kawaguchi * @since 1.494 */ -@Extension +@Extension @Symbol("location") public class JenkinsLocationConfiguration extends GlobalConfiguration { /** * @deprecated replaced by {@link #jenkinsUrl} From e6254e170c8ac5ee04d0f77fe4ee29089fc06926 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 10:21:27 -0700 Subject: [PATCH 05/23] @Extension on static field is not kosher --- .../java/hudson/security/LegacySecurityRealm.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/security/LegacySecurityRealm.java b/core/src/main/java/hudson/security/LegacySecurityRealm.java index 1ce175185e7e..c1786192618b 100644 --- a/core/src/main/java/hudson/security/LegacySecurityRealm.java +++ b/core/src/main/java/hudson/security/LegacySecurityRealm.java @@ -26,6 +26,8 @@ import org.acegisecurity.AuthenticationManager; import org.acegisecurity.Authentication; import org.acegisecurity.AuthenticationException; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.springframework.web.context.WebApplicationContext; import org.kohsuke.stapler.StaplerRequest; import groovy.lang.Binding; @@ -88,8 +90,19 @@ public Filter createFilter(FilterConfig filterConfig) { return (Filter) context.getBean("legacy"); } + /** + * @deprecated as of 2.0 + * Don't use this field, use injection. + */ + @Restricted(NoExternalUse.class) + public static /*almost final*/ Descriptor DESCRIPTOR; + @Extension - public static final Descriptor DESCRIPTOR = new Descriptor() { + public static class DescriptorImpl extends Descriptor { + public DescriptorImpl() { + DESCRIPTOR = this; + } + public SecurityRealm newInstance(StaplerRequest req, JSONObject formData) throws FormException { return new LegacySecurityRealm(); } From 3d439015d822b4a3e4d4b111eb938af589b7abe3 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 10:41:01 -0700 Subject: [PATCH 06/23] Adding @Symbol Where applicable symbol names used by Job DSL plugin is used for maximum compatibility: https://jenkinsci.github.io/job-dsl-plugin/ --- core/src/main/java/hudson/AboutJenkins.java | 4 +++- core/src/main/java/hudson/cli/CLIAction.java | 3 ++- core/src/main/java/hudson/cli/CliProtocol.java | 3 ++- core/src/main/java/hudson/cli/CliProtocol2.java | 3 ++- .../main/java/hudson/model/BooleanParameterDefinition.java | 3 ++- .../src/main/java/hudson/model/ChoiceParameterDefinition.java | 3 ++- .../main/java/hudson/node_monitors/ArchitectureMonitor.java | 3 ++- core/src/main/java/hudson/security/AuthorizationStrategy.java | 3 ++- core/src/main/java/hudson/tasks/ArtifactArchiver.java | 3 ++- core/src/main/java/hudson/tasks/BatchFile.java | 3 ++- core/src/main/java/hudson/tasks/BuildTrigger.java | 3 ++- core/src/main/java/hudson/tools/BatchCommandInstaller.java | 3 ++- core/src/main/java/jenkins/management/CliLink.java | 3 ++- .../main/java/jenkins/model/ArtifactManagerConfiguration.java | 3 ++- core/src/main/java/jenkins/model/AssetManager.java | 3 ++- core/src/main/java/jenkins/security/ApiTokenProperty.java | 3 ++- .../main/java/jenkins/security/s2m/AdminCallableMonitor.java | 3 ++- .../java/jenkins/security/s2m/AdminCallableWhitelist.java | 3 ++- .../slaves/systemInfo/ClassLoaderStatisticsSlaveInfo.java | 3 ++- core/src/main/java/jenkins/widgets/BuildQueueWidget.java | 3 ++- 20 files changed, 41 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/hudson/AboutJenkins.java b/core/src/main/java/hudson/AboutJenkins.java index 42332f9a920c..34fc120e5727 100644 --- a/core/src/main/java/hudson/AboutJenkins.java +++ b/core/src/main/java/hudson/AboutJenkins.java @@ -2,6 +2,8 @@ import hudson.model.ManagementLink; import java.net.URL; + +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -10,7 +12,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("about") public class AboutJenkins extends ManagementLink { @Override public String getIconFileName() { diff --git a/core/src/main/java/hudson/cli/CLIAction.java b/core/src/main/java/hudson/cli/CLIAction.java index 70a458a653df..66eef745b86b 100644 --- a/core/src/main/java/hudson/cli/CLIAction.java +++ b/core/src/main/java/hudson/cli/CLIAction.java @@ -34,6 +34,7 @@ import hudson.model.UnprotectedRootAction; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpResponses.HttpResponseException; @@ -51,7 +52,7 @@ * * @author ogondza */ -@Extension +@Extension @Symbol("cli") @Restricted(NoExternalUse.class) public class CLIAction implements UnprotectedRootAction, StaplerProxy { diff --git a/core/src/main/java/hudson/cli/CliProtocol.java b/core/src/main/java/hudson/cli/CliProtocol.java index 99cdd172d177..aa1d031b4b8c 100644 --- a/core/src/main/java/hudson/cli/CliProtocol.java +++ b/core/src/main/java/hudson/cli/CliProtocol.java @@ -8,6 +8,7 @@ import jenkins.AgentProtocol; import jenkins.model.Jenkins; import jenkins.slaves.NioChannelSelector; +import org.jenkinsci.Symbol; import org.jenkinsci.remoting.nio.NioChannelHub; import javax.inject.Inject; @@ -25,7 +26,7 @@ * @author Kohsuke Kawaguchi * @since 1.467 */ -@Extension +@Extension @Symbol("cli") public class CliProtocol extends AgentProtocol { @Inject NioChannelSelector nio; diff --git a/core/src/main/java/hudson/cli/CliProtocol2.java b/core/src/main/java/hudson/cli/CliProtocol2.java index 1be9fff35b87..93ecde9c60cd 100644 --- a/core/src/main/java/hudson/cli/CliProtocol2.java +++ b/core/src/main/java/hudson/cli/CliProtocol2.java @@ -2,6 +2,7 @@ import hudson.Extension; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.jenkinsci.remoting.nio.NioChannelHub; import javax.crypto.SecretKey; @@ -20,7 +21,7 @@ * @author Kohsuke Kawaguchi * @since 1.467 */ -@Extension +@Extension @Symbol("cli2") public class CliProtocol2 extends CliProtocol { @Override public String getName() { diff --git a/core/src/main/java/hudson/model/BooleanParameterDefinition.java b/core/src/main/java/hudson/model/BooleanParameterDefinition.java index 9fca7351ad90..493337339adc 100644 --- a/core/src/main/java/hudson/model/BooleanParameterDefinition.java +++ b/core/src/main/java/hudson/model/BooleanParameterDefinition.java @@ -23,6 +23,7 @@ */ package hudson.model; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.DataBoundConstructor; import net.sf.json.JSONObject; @@ -72,7 +73,7 @@ public BooleanParameterValue getDefaultParameterValue() { return new BooleanParameterValue(getName(), defaultValue, getDescription()); } - @Extension + @Extension @Symbol("booleanParam") public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java index 0bd4b60ab366..cbf0bf30fb06 100644 --- a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java +++ b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java @@ -1,6 +1,7 @@ package hudson.model; import hudson.util.FormValidation; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.DataBoundConstructor; @@ -91,7 +92,7 @@ public StringParameterValue createValue(String value) { return checkValue(new StringParameterValue(getName(), value, getDescription())); } - @Extension + @Extension @Symbol("choiceParam") public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java b/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java index 650c24cc0449..ff5a18d8f70a 100644 --- a/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ArchitectureMonitor.java @@ -28,6 +28,7 @@ import hudson.Extension; import jenkins.security.MasterToSlaveCallable; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -38,7 +39,7 @@ * @author Kohsuke Kawaguchi */ public class ArchitectureMonitor extends NodeMonitor { - @Extension + @Extension @Symbol("architecture") public static final class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor { @Override protected Callable createCallable(Computer c) { diff --git a/core/src/main/java/hudson/security/AuthorizationStrategy.java b/core/src/main/java/hudson/security/AuthorizationStrategy.java index f544e8ad300a..a875908f212d 100644 --- a/core/src/main/java/hudson/security/AuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/AuthorizationStrategy.java @@ -39,6 +39,7 @@ import net.sf.json.JSONObject; import org.acegisecurity.Authentication; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; /** @@ -231,7 +232,7 @@ public boolean hasPermission(Authentication a, Permission permission) { } }; - @Extension + @Extension @Symbol("unsecured") public static final class DescriptorImpl extends Descriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/tasks/ArtifactArchiver.java b/core/src/main/java/hudson/tasks/ArtifactArchiver.java index 297300b52575..2af831039187 100644 --- a/core/src/main/java/hudson/tasks/ArtifactArchiver.java +++ b/core/src/main/java/hudson/tasks/ArtifactArchiver.java @@ -38,6 +38,7 @@ import java.io.File; import org.apache.tools.ant.types.FileSet; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.AncestorInPath; @@ -306,7 +307,7 @@ public BuildStepMonitor getRequiredMonitorService() { @Deprecated public static volatile DescriptorImpl DESCRIPTOR; - @Extension + @Extension @Symbol("archiveArtifacts") public static class DescriptorImpl extends BuildStepDescriptor { public DescriptorImpl() { DESCRIPTOR = this; // backward compatibility diff --git a/core/src/main/java/hudson/tasks/BatchFile.java b/core/src/main/java/hudson/tasks/BatchFile.java index b2506474be6b..8dee9eaaca4d 100644 --- a/core/src/main/java/hudson/tasks/BatchFile.java +++ b/core/src/main/java/hudson/tasks/BatchFile.java @@ -28,6 +28,7 @@ import hudson.model.AbstractProject; import hudson.util.LineEndingConversion; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import java.io.ObjectStreamException; @@ -59,7 +60,7 @@ private Object readResolve() throws ObjectStreamException { return new BatchFile(command); } - @Extension + @Extension @Symbol("batchFile") public static final class DescriptorImpl extends BuildStepDescriptor { @Override public String getHelpFile() { diff --git a/core/src/main/java/hudson/tasks/BuildTrigger.java b/core/src/main/java/hudson/tasks/BuildTrigger.java index 75b1b68a0110..5a157e611cf7 100644 --- a/core/src/main/java/hudson/tasks/BuildTrigger.java +++ b/core/src/main/java/hudson/tasks/BuildTrigger.java @@ -68,6 +68,7 @@ import org.acegisecurity.context.SecurityContext; import org.acegisecurity.context.SecurityContextHolder; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -331,7 +332,7 @@ private Object readResolve() { return this; } - @Extension + @Extension @Symbol("downstream") public static class DescriptorImpl extends BuildStepDescriptor { public String getDisplayName() { return Messages.BuildTrigger_DisplayName(); diff --git a/core/src/main/java/hudson/tools/BatchCommandInstaller.java b/core/src/main/java/hudson/tools/BatchCommandInstaller.java index 2085fe7fa034..48b6a8d24bfc 100644 --- a/core/src/main/java/hudson/tools/BatchCommandInstaller.java +++ b/core/src/main/java/hudson/tools/BatchCommandInstaller.java @@ -27,6 +27,7 @@ import hudson.Extension; import hudson.FilePath; import hudson.util.LineEndingConversion; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import java.io.ObjectStreamException; @@ -57,7 +58,7 @@ private Object readResolve() throws ObjectStreamException { return new BatchCommandInstaller(getLabel(), getCommand(), getToolHome()); } - @Extension + @Extension @Symbol("batchFile") public static class DescriptorImpl extends Descriptor { @Override diff --git a/core/src/main/java/jenkins/management/CliLink.java b/core/src/main/java/jenkins/management/CliLink.java index 4dfd09a86d20..718504727fc0 100644 --- a/core/src/main/java/jenkins/management/CliLink.java +++ b/core/src/main/java/jenkins/management/CliLink.java @@ -26,11 +26,12 @@ import hudson.Extension; import hudson.model.ManagementLink; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MAX_VALUE - 800) +@Extension(ordinal = Integer.MAX_VALUE - 800) @Symbol("cli") public class CliLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/model/ArtifactManagerConfiguration.java b/core/src/main/java/jenkins/model/ArtifactManagerConfiguration.java index c2bb1135dddf..43f98aae8dbb 100644 --- a/core/src/main/java/jenkins/model/ArtifactManagerConfiguration.java +++ b/core/src/main/java/jenkins/model/ArtifactManagerConfiguration.java @@ -28,13 +28,14 @@ import hudson.util.DescribableList; import java.io.IOException; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; /** * List of configured {@link ArtifactManagerFactory}s. * @since 1.532 */ -@Extension +@Extension @Symbol("artifactManager") public class ArtifactManagerConfiguration extends GlobalConfiguration { public static ArtifactManagerConfiguration get() { diff --git a/core/src/main/java/jenkins/model/AssetManager.java b/core/src/main/java/jenkins/model/AssetManager.java index d886ab70fd93..f8c8aff33fc0 100644 --- a/core/src/main/java/jenkins/model/AssetManager.java +++ b/core/src/main/java/jenkins/model/AssetManager.java @@ -3,6 +3,7 @@ import hudson.Extension; import hudson.model.UnprotectedRootAction; import hudson.util.TimeUnit2; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -21,7 +22,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("assetManager") public class AssetManager implements UnprotectedRootAction { // not shown in the UI diff --git a/core/src/main/java/jenkins/security/ApiTokenProperty.java b/core/src/main/java/jenkins/security/ApiTokenProperty.java index 82d3d9616e7a..10214177bd61 100644 --- a/core/src/main/java/jenkins/security/ApiTokenProperty.java +++ b/core/src/main/java/jenkins/security/ApiTokenProperty.java @@ -34,6 +34,7 @@ import hudson.util.Secret; import jenkins.model.Jenkins; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.HttpResponse; @@ -161,7 +162,7 @@ public UserProperty reconfigure(StaplerRequest req, JSONObject form) throws Form return this; } - @Extension + @Extension @Symbol("apiToken") public static final class DescriptorImpl extends UserPropertyDescriptor { public String getDisplayName() { return Messages.ApiTokenProperty_DisplayName(); diff --git a/core/src/main/java/jenkins/security/s2m/AdminCallableMonitor.java b/core/src/main/java/jenkins/security/s2m/AdminCallableMonitor.java index c93a8d0055e8..67a542371742 100644 --- a/core/src/main/java/jenkins/security/s2m/AdminCallableMonitor.java +++ b/core/src/main/java/jenkins/security/s2m/AdminCallableMonitor.java @@ -5,6 +5,7 @@ import hudson.model.AdministrativeMonitor; import hudson.remoting.Callable; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.QueryParameter; @@ -19,7 +20,7 @@ * @since 1.THU * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("slaveToMasterAccessControl") public class AdminCallableMonitor extends AdministrativeMonitor { @Inject Jenkins jenkins; diff --git a/core/src/main/java/jenkins/security/s2m/AdminCallableWhitelist.java b/core/src/main/java/jenkins/security/s2m/AdminCallableWhitelist.java index a6bc100d3130..2b448778ba71 100644 --- a/core/src/main/java/jenkins/security/s2m/AdminCallableWhitelist.java +++ b/core/src/main/java/jenkins/security/s2m/AdminCallableWhitelist.java @@ -2,6 +2,7 @@ import hudson.Extension; import hudson.remoting.Callable; +import org.jenkinsci.Symbol; import org.jenkinsci.remoting.Role; import org.jenkinsci.remoting.RoleSensitive; @@ -19,7 +20,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=-100) +@Extension(ordinal=-100) @Symbol("admin") public class AdminCallableWhitelist extends CallableWhitelist { @Inject AdminWhitelistRule rule; diff --git a/core/src/main/java/jenkins/slaves/systemInfo/ClassLoaderStatisticsSlaveInfo.java b/core/src/main/java/jenkins/slaves/systemInfo/ClassLoaderStatisticsSlaveInfo.java index 980d8468f7c6..28a3d3f85f5c 100644 --- a/core/src/main/java/jenkins/slaves/systemInfo/ClassLoaderStatisticsSlaveInfo.java +++ b/core/src/main/java/jenkins/slaves/systemInfo/ClassLoaderStatisticsSlaveInfo.java @@ -1,11 +1,12 @@ package jenkins.slaves.systemInfo; import hudson.Extension; +import org.jenkinsci.Symbol; /** * @author Kohsuke Kawaguchi */ -@Extension(ordinal=0) +@Extension(ordinal=0) @Symbol("classLoaderStatistics") public class ClassLoaderStatisticsSlaveInfo extends SlaveSystemInfo { @Override public String getDisplayName() { diff --git a/core/src/main/java/jenkins/widgets/BuildQueueWidget.java b/core/src/main/java/jenkins/widgets/BuildQueueWidget.java index 5fa694c926b7..93ba02163e6a 100644 --- a/core/src/main/java/jenkins/widgets/BuildQueueWidget.java +++ b/core/src/main/java/jenkins/widgets/BuildQueueWidget.java @@ -3,6 +3,7 @@ import hudson.Extension; import hudson.widgets.Widget; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; /** * Show the default build queue. @@ -12,7 +13,7 @@ * @author Kohsuke Kawaguchi * @since 1.514 */ -@Extension(ordinal=200) // historically this was the top most widget +@Extension(ordinal=200) @Symbol("buildQueue") // historically this was the top most widget public class BuildQueueWidget extends Widget { } From 1941a559112eb52db560cf071ac6afce4807c964 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 12:23:38 -0700 Subject: [PATCH 07/23] fixup field descriptor --- .../java/hudson/node_monitors/ClockMonitor.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/node_monitors/ClockMonitor.java b/core/src/main/java/hudson/node_monitors/ClockMonitor.java index cf3f02599715..0a46c1f73a1e 100644 --- a/core/src/main/java/hudson/node_monitors/ClockMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ClockMonitor.java @@ -28,6 +28,8 @@ import hudson.remoting.Callable; import hudson.util.ClockDifference; import hudson.Extension; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -46,8 +48,19 @@ public ClockDifference getDifferenceFor(Computer c) { return DESCRIPTOR.get(c); } + /** + * @deprecated as of 2.0 + * Don't use this field, use injection. + */ + @Restricted(NoExternalUse.class) + public static /*almost final*/ AbstractNodeMonitorDescriptor DESCRIPTOR; + @Extension - public static final AbstractNodeMonitorDescriptor DESCRIPTOR = new AbstractAsyncNodeMonitorDescriptor() { + public static class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor { + public DescriptorImpl() { + DESCRIPTOR = this; + } + @Override protected Callable createCallable(Computer c) { Node n = c.getNode(); From 26f824632aa33b8ce7c2bd9cf3b34a8ede018c94 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 13:35:13 -0700 Subject: [PATCH 08/23] More symbols --- core/src/main/java/hudson/FileSystemProvisioner.java | 3 ++- .../main/java/hudson/markup/EscapedMarkupFormatter.java | 6 ++++-- .../main/java/hudson/model/FileParameterDefinition.java | 3 ++- .../main/java/hudson/model/FingerprintCleanupThread.java | 3 ++- core/src/main/java/hudson/node_monitors/ClockMonitor.java | 3 ++- .../main/java/hudson/security/csrf/DefaultCrumbIssuer.java | 3 ++- core/src/main/java/hudson/slaves/CommandConnector.java | 3 ++- .../src/main/java/hudson/slaves/ComputerRetentionWork.java | 3 ++- .../main/java/hudson/slaves/ConnectionActivityMonitor.java | 3 ++- .../hudson/slaves/EnvironmentVariablesNodeProperty.java | 3 ++- core/src/main/java/hudson/tasks/Fingerprinter.java | 3 ++- core/src/main/java/hudson/tools/CommandInstaller.java | 3 ++- core/src/main/java/hudson/views/DefaultMyViewsTabBar.java | 3 ++- core/src/main/java/hudson/views/DefaultViewsTabBar.java | 3 ++- core/src/main/java/jenkins/management/ConfigureLink.java | 3 ++- core/src/main/java/jenkins/management/ConsoleLink.java | 3 ++- .../java/jenkins/model/CoreEnvironmentContributor.java | 3 ++- core/src/main/java/jenkins/model/DownloadSettings.java | 7 +++++-- .../java/jenkins/mvn/DefaultGlobalSettingsProvider.java | 3 ++- .../src/main/java/jenkins/mvn/DefaultSettingsProvider.java | 3 ++- .../main/java/jenkins/mvn/FilePathSettingsProvider.java | 3 ++- .../java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java | 3 ++- .../java/jenkins/security/FrameOptionsPageDecorator.java | 3 ++- .../java/jenkins/slaves/systemInfo/EnvVarsSlaveInfo.java | 3 ++- core/src/main/java/jenkins/widgets/ExecutorsWidget.java | 3 ++- 25 files changed, 55 insertions(+), 27 deletions(-) diff --git a/core/src/main/java/hudson/FileSystemProvisioner.java b/core/src/main/java/hudson/FileSystemProvisioner.java index cd8a568869ce..d03708ebb5a4 100644 --- a/core/src/main/java/hudson/FileSystemProvisioner.java +++ b/core/src/main/java/hudson/FileSystemProvisioner.java @@ -34,6 +34,7 @@ import jenkins.model.Jenkins; import hudson.model.listeners.RunListener; import hudson.scm.SCM; +import org.jenkinsci.Symbol; import java.io.BufferedOutputStream; import java.io.File; @@ -235,7 +236,7 @@ public void restoreTo(AbstractBuild owner, FilePath dst, TaskListener liste } } - @Extension + @Extension @Symbol("default") public static final class DescriptorImpl extends FileSystemProvisionerDescriptor { public boolean discard(FilePath ws, TaskListener listener) throws IOException, InterruptedException { // the default provisioner does not do anything special, diff --git a/core/src/main/java/hudson/markup/EscapedMarkupFormatter.java b/core/src/main/java/hudson/markup/EscapedMarkupFormatter.java index f106b5de2c6f..f97e5e94c4e2 100644 --- a/core/src/main/java/hudson/markup/EscapedMarkupFormatter.java +++ b/core/src/main/java/hudson/markup/EscapedMarkupFormatter.java @@ -29,10 +29,12 @@ import hudson.markup.MarkupFormatterDescriptor; import java.io.IOException; import java.io.Writer; + +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** - * @link MarkupFormatter} that treats the input as the escaped html. + * {@link MarkupFormatter} that treats the input as the escaped html. * * @author Seiji Sogabe * @since 1.553 @@ -48,7 +50,7 @@ public void translate(String markup, Writer output) throws IOException { output.write(Util.escape(markup)); } - @Extension + @Extension @Symbol("plainText") public static class DescriptorImpl extends MarkupFormatterDescriptor { @Override diff --git a/core/src/main/java/hudson/model/FileParameterDefinition.java b/core/src/main/java/hudson/model/FileParameterDefinition.java index 761a179d9889..529bd0c4b495 100644 --- a/core/src/main/java/hudson/model/FileParameterDefinition.java +++ b/core/src/main/java/hudson/model/FileParameterDefinition.java @@ -24,6 +24,7 @@ package hudson.model; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import hudson.Extension; @@ -56,7 +57,7 @@ public FileParameterValue createValue(StaplerRequest req, JSONObject jo) { return p; } - @Extension + @Extension @Symbol({"file","fileParam"}) public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/model/FingerprintCleanupThread.java b/core/src/main/java/hudson/model/FingerprintCleanupThread.java index 98fa48b72c5a..10716d073f76 100644 --- a/core/src/main/java/hudson/model/FingerprintCleanupThread.java +++ b/core/src/main/java/hudson/model/FingerprintCleanupThread.java @@ -26,6 +26,7 @@ import hudson.Extension; import hudson.ExtensionList; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import java.io.File; import java.io.FileFilter; @@ -42,7 +43,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("fingerprintCleanup") public final class FingerprintCleanupThread extends AsyncPeriodicWork { public FingerprintCleanupThread() { diff --git a/core/src/main/java/hudson/node_monitors/ClockMonitor.java b/core/src/main/java/hudson/node_monitors/ClockMonitor.java index 0a46c1f73a1e..176f77bfab29 100644 --- a/core/src/main/java/hudson/node_monitors/ClockMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ClockMonitor.java @@ -28,6 +28,7 @@ import hudson.remoting.Callable; import hudson.util.ClockDifference; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.StaplerRequest; @@ -55,7 +56,7 @@ public ClockDifference getDifferenceFor(Computer c) { @Restricted(NoExternalUse.class) public static /*almost final*/ AbstractNodeMonitorDescriptor DESCRIPTOR; - @Extension + @Extension @Symbol("clock") public static class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor { public DescriptorImpl() { DESCRIPTOR = this; diff --git a/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java b/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java index 35447865e832..d4a53b02a264 100644 --- a/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java +++ b/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java @@ -23,6 +23,7 @@ import net.sf.json.JSONObject; import org.acegisecurity.Authentication; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; @@ -118,7 +119,7 @@ private String getClientIP(HttpServletRequest req) { return defaultAddress; } - @Extension + @Extension @Symbol("default") public static final class DescriptorImpl extends CrumbIssuerDescriptor implements ModelObject { private final static HexStringConfidentialKey CRUMB_SALT = new HexStringConfidentialKey(Jenkins.class,"crumbSalt",16); diff --git a/core/src/main/java/hudson/slaves/CommandConnector.java b/core/src/main/java/hudson/slaves/CommandConnector.java index 19d37ea75022..327b3ba9dcb2 100644 --- a/core/src/main/java/hudson/slaves/CommandConnector.java +++ b/core/src/main/java/hudson/slaves/CommandConnector.java @@ -26,6 +26,7 @@ import hudson.EnvVars; import hudson.Extension; import hudson.model.TaskListener; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import java.io.IOException; @@ -48,7 +49,7 @@ public CommandLauncher launch(String host, TaskListener listener) throws IOExcep return new CommandLauncher(command,new EnvVars("SLAVE",host)); } - @Extension + @Extension @Symbol("command") public static class DescriptorImpl extends ComputerConnectorDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/slaves/ComputerRetentionWork.java b/core/src/main/java/hudson/slaves/ComputerRetentionWork.java index 6a9bff31c1ad..8b33592b2261 100644 --- a/core/src/main/java/hudson/slaves/ComputerRetentionWork.java +++ b/core/src/main/java/hudson/slaves/ComputerRetentionWork.java @@ -32,6 +32,7 @@ import hudson.model.Node; import hudson.model.PeriodicWork; import hudson.Extension; +import org.jenkinsci.Symbol; /** * Periodically checks the agents and try to reconnect dead agents. @@ -39,7 +40,7 @@ * @author Kohsuke Kawaguchi * @author Stephen Connolly */ -@Extension +@Extension @Symbol("computerRetention") public class ComputerRetentionWork extends PeriodicWork { /** diff --git a/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java b/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java index c9c9071f7b46..75c927a7d205 100644 --- a/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java +++ b/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java @@ -32,6 +32,7 @@ import hudson.remoting.Channel; import hudson.Extension; import jenkins.security.SlaveToMasterCallable; +import org.jenkinsci.Symbol; import java.io.IOException; import java.util.logging.Logger; @@ -46,7 +47,7 @@ * @author Kohsuke Kawaguchi * @since 1.325 */ -@Extension +@Extension @Symbol("connectionActivityMonitor") public class ConnectionActivityMonitor extends AsyncPeriodicWork { public ConnectionActivityMonitor() { super("Connection Activity monitoring to agents"); diff --git a/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java b/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java index e73d44b084b0..d41b8c49a123 100644 --- a/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java +++ b/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java @@ -32,6 +32,7 @@ import hudson.model.Environment; import hudson.model.Node; import hudson.model.TaskListener; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.Stapler; @@ -75,7 +76,7 @@ public void buildEnvVars(EnvVars env, TaskListener listener) throws IOException, env.putAll(envVars); } - @Extension + @Extension @Symbol("envVars") public static class DescriptorImpl extends NodePropertyDescriptor { @Override diff --git a/core/src/main/java/hudson/tasks/Fingerprinter.java b/core/src/main/java/hudson/tasks/Fingerprinter.java index 051809dfca8a..3832eda7e357 100644 --- a/core/src/main/java/hudson/tasks/Fingerprinter.java +++ b/core/src/main/java/hudson/tasks/Fingerprinter.java @@ -52,6 +52,7 @@ import org.acegisecurity.AccessDeniedException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.types.FileSet; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -248,7 +249,7 @@ public List invoke(File baseDir, VirtualChannel channel) throws IOExcept } } - @Extension + @Extension @Symbol("fingerprint") public static class DescriptorImpl extends BuildStepDescriptor { public String getDisplayName() { return Messages.Fingerprinter_DisplayName(); diff --git a/core/src/main/java/hudson/tools/CommandInstaller.java b/core/src/main/java/hudson/tools/CommandInstaller.java index 6f2506dd04f4..a9ac484808c0 100644 --- a/core/src/main/java/hudson/tools/CommandInstaller.java +++ b/core/src/main/java/hudson/tools/CommandInstaller.java @@ -27,6 +27,7 @@ import hudson.Extension; import hudson.FilePath; import hudson.util.LineEndingConversion; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import java.io.ObjectStreamException; @@ -56,7 +57,7 @@ private Object readResolve() throws ObjectStreamException { return new CommandInstaller(getLabel(), getCommand(), getToolHome()); } - @Extension + @Extension @Symbol("command") public static class DescriptorImpl extends Descriptor { @Override diff --git a/core/src/main/java/hudson/views/DefaultMyViewsTabBar.java b/core/src/main/java/hudson/views/DefaultMyViewsTabBar.java index 3edc40f2c154..4e654f8198cc 100644 --- a/core/src/main/java/hudson/views/DefaultMyViewsTabBar.java +++ b/core/src/main/java/hudson/views/DefaultMyViewsTabBar.java @@ -24,6 +24,7 @@ package hudson.views; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -38,7 +39,7 @@ public class DefaultMyViewsTabBar extends MyViewsTabBar { public DefaultMyViewsTabBar() { } - @Extension + @Extension @Symbol("default") public static class DescriptorImpl extends MyViewsTabBarDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/DefaultViewsTabBar.java b/core/src/main/java/hudson/views/DefaultViewsTabBar.java index 169874864a85..cfe91c84ab2a 100644 --- a/core/src/main/java/hudson/views/DefaultViewsTabBar.java +++ b/core/src/main/java/hudson/views/DefaultViewsTabBar.java @@ -24,6 +24,7 @@ package hudson.views; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -38,7 +39,7 @@ public class DefaultViewsTabBar extends ViewsTabBar { public DefaultViewsTabBar() { } - @Extension + @Extension @Symbol("default") public static class DescriptorImpl extends ViewsTabBarDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/jenkins/management/ConfigureLink.java b/core/src/main/java/jenkins/management/ConfigureLink.java index bc7ab1bc1681..21ec95882169 100644 --- a/core/src/main/java/jenkins/management/ConfigureLink.java +++ b/core/src/main/java/jenkins/management/ConfigureLink.java @@ -26,11 +26,12 @@ import hudson.Extension; import hudson.model.ManagementLink; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MAX_VALUE - 200) +@Extension(ordinal = Integer.MAX_VALUE - 200) @Symbol("configure") public class ConfigureLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/management/ConsoleLink.java b/core/src/main/java/jenkins/management/ConsoleLink.java index effa29d799e7..edd7c628cc4f 100644 --- a/core/src/main/java/jenkins/management/ConsoleLink.java +++ b/core/src/main/java/jenkins/management/ConsoleLink.java @@ -28,11 +28,12 @@ import hudson.model.ManagementLink; import hudson.security.Permission; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MAX_VALUE - 900) +@Extension(ordinal = Integer.MAX_VALUE - 900) @Symbol("console") public class ConsoleLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/model/CoreEnvironmentContributor.java b/core/src/main/java/jenkins/model/CoreEnvironmentContributor.java index 5c58a90e8229..86ba69eb58d8 100644 --- a/core/src/main/java/jenkins/model/CoreEnvironmentContributor.java +++ b/core/src/main/java/jenkins/model/CoreEnvironmentContributor.java @@ -11,6 +11,7 @@ import hudson.model.Run; import hudson.model.TaskListener; import jenkins.model.Jenkins.MasterComputer; +import org.jenkinsci.Symbol; import java.io.IOException; @@ -20,7 +21,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=-100) +@Extension(ordinal=-100) @Symbol("core") public class CoreEnvironmentContributor extends EnvironmentContributor { @Override public void buildEnvironmentFor(Run r, EnvVars env, TaskListener listener) throws IOException, InterruptedException { diff --git a/core/src/main/java/jenkins/model/DownloadSettings.java b/core/src/main/java/jenkins/model/DownloadSettings.java index e16898ab86dc..225875cc0398 100644 --- a/core/src/main/java/jenkins/model/DownloadSettings.java +++ b/core/src/main/java/jenkins/model/DownloadSettings.java @@ -35,6 +35,7 @@ import java.io.IOException; import net.sf.json.JSONObject; import org.acegisecurity.AccessDeniedException; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpResponse; @@ -46,7 +47,8 @@ * @see DownloadService */ @Restricted(NoExternalUse.class) // no clear reason for this to be an API -@Extension public final class DownloadSettings extends GlobalConfiguration { +@Extension @Symbol("downloadSettings") +public final class DownloadSettings extends GlobalConfiguration { public static DownloadSettings get() { return Jenkins.getInstance().getInjector().getInstance(DownloadSettings.class); @@ -87,7 +89,8 @@ public static void checkPostBackAccess() throws AccessDeniedException { Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); } - @Extension public static final class DailyCheck extends AsyncPeriodicWork { + @Extension @Symbol("updateCenterCheck") + public static final class DailyCheck extends AsyncPeriodicWork { public DailyCheck() { super("Download metadata"); diff --git a/core/src/main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java b/core/src/main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java index f6b9d0ed602e..6a7024d8e5c4 100644 --- a/core/src/main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java +++ b/core/src/main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java @@ -5,6 +5,7 @@ import hudson.model.AbstractBuild; import hudson.model.TaskListener; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -23,7 +24,7 @@ public FilePath supplySettings(AbstractBuild project, TaskListener listene return null; } - @Extension(ordinal = 99) + @Extension(ordinal = 99) @Symbol("default") public static class DescriptorImpl extends GlobalSettingsProviderDescriptor { @Override diff --git a/core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java b/core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java index cc01a999268d..f7738870b2ed 100644 --- a/core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java +++ b/core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java @@ -5,6 +5,7 @@ import hudson.model.AbstractBuild; import hudson.model.TaskListener; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -23,7 +24,7 @@ public FilePath supplySettings(AbstractBuild project, TaskListener listene return null; } - @Extension(ordinal = 99) + @Extension(ordinal = 99) @Symbol("default") public static class DescriptorImpl extends SettingsProviderDescriptor { @Override diff --git a/core/src/main/java/jenkins/mvn/FilePathSettingsProvider.java b/core/src/main/java/jenkins/mvn/FilePathSettingsProvider.java index a4de07bdf606..f4c22cd35626 100644 --- a/core/src/main/java/jenkins/mvn/FilePathSettingsProvider.java +++ b/core/src/main/java/jenkins/mvn/FilePathSettingsProvider.java @@ -11,6 +11,7 @@ import java.io.File; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -61,7 +62,7 @@ public FilePath supplySettings(AbstractBuild build, TaskListener listener) } } - @Extension(ordinal = 10) + @Extension(ordinal = 10) @Symbol("filePath") public static class DescriptorImpl extends SettingsProviderDescriptor { @Override diff --git a/core/src/main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java b/core/src/main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java index 95291915e5ab..97f5f46ffeb8 100644 --- a/core/src/main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java +++ b/core/src/main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java @@ -2,6 +2,7 @@ import hudson.Extension; import hudson.model.AbstractProject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; /** @@ -12,7 +13,7 @@ public class DefaultSCMCheckoutStrategyImpl extends SCMCheckoutStrategy { @DataBoundConstructor public DefaultSCMCheckoutStrategyImpl() {} - @Extension + @Extension @Symbol("default") public static class DescriptorImpl extends SCMCheckoutStrategyDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/jenkins/security/FrameOptionsPageDecorator.java b/core/src/main/java/jenkins/security/FrameOptionsPageDecorator.java index bc47e231b56c..24446fe12592 100644 --- a/core/src/main/java/jenkins/security/FrameOptionsPageDecorator.java +++ b/core/src/main/java/jenkins/security/FrameOptionsPageDecorator.java @@ -2,6 +2,7 @@ import hudson.Extension; import hudson.model.PageDecorator; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -10,7 +11,7 @@ * * @since 1.581 */ -@Extension(ordinal = 1000) +@Extension(ordinal = 1000) @Symbol("frameOptions") public class FrameOptionsPageDecorator extends PageDecorator { @Restricted(NoExternalUse.class) public static boolean enabled = Boolean.valueOf(System.getProperty(FrameOptionsPageDecorator.class.getName() + ".enabled", "true")); diff --git a/core/src/main/java/jenkins/slaves/systemInfo/EnvVarsSlaveInfo.java b/core/src/main/java/jenkins/slaves/systemInfo/EnvVarsSlaveInfo.java index 4ded885092cc..6e1358c6f86a 100644 --- a/core/src/main/java/jenkins/slaves/systemInfo/EnvVarsSlaveInfo.java +++ b/core/src/main/java/jenkins/slaves/systemInfo/EnvVarsSlaveInfo.java @@ -1,11 +1,12 @@ package jenkins.slaves.systemInfo; import hudson.Extension; +import org.jenkinsci.Symbol; /** * @author Kohsuke Kawaguchi */ -@Extension(ordinal=2) +@Extension(ordinal=2) @Symbol("envVars") public class EnvVarsSlaveInfo extends SlaveSystemInfo { @Override public String getDisplayName() { diff --git a/core/src/main/java/jenkins/widgets/ExecutorsWidget.java b/core/src/main/java/jenkins/widgets/ExecutorsWidget.java index 4dba7bd61bde..a4eed237f41a 100644 --- a/core/src/main/java/jenkins/widgets/ExecutorsWidget.java +++ b/core/src/main/java/jenkins/widgets/ExecutorsWidget.java @@ -3,6 +3,7 @@ import hudson.Extension; import hudson.widgets.Widget; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; /** * The default executors widget. @@ -12,6 +13,6 @@ * @author Kohsuke Kawaguchi * @since 1.514 */ -@Extension(ordinal=100) // historically this was above normal widgets and below BuildQueueWidget +@Extension(ordinal=100) @Symbol("executors") // historically this was above normal widgets and below BuildQueueWidget public class ExecutorsWidget extends Widget { } From f315e6389ece4c1b695aee59c18bfd3253adc0c4 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 13:36:34 -0700 Subject: [PATCH 09/23] field descriptor fixup --- core/src/main/java/hudson/model/FreeStyleProject.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/model/FreeStyleProject.java b/core/src/main/java/hudson/model/FreeStyleProject.java index 8ba9672ee877..625941b6b63d 100644 --- a/core/src/main/java/hudson/model/FreeStyleProject.java +++ b/core/src/main/java/hudson/model/FreeStyleProject.java @@ -59,12 +59,19 @@ public DescriptorImpl getDescriptor() { /** * Descriptor is instantiated as a field purely for backward compatibility. * Do not do this in your code. Put @Extension on your DescriptorImpl class instead. + * + * @deprecated as of 2.0 + * Use injection */ @Restricted(NoExternalUse.class) + public static /*almost final*/ DescriptorImpl DESCRIPTOR; + @Extension(ordinal=1000) - public static final DescriptorImpl DESCRIPTOR = new DescriptorImpl(); + public static class DescriptorImpl extends AbstractProjectDescriptor { + public DescriptorImpl() { + DESCRIPTOR = this; + } - public static final class DescriptorImpl extends AbstractProjectDescriptor { public String getDisplayName() { return Messages.FreeStyleProject_DisplayName(); } From e1c402889cbc0d94e1d365b2724d38dc04870835 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 13:54:18 -0700 Subject: [PATCH 10/23] More symbol names --- core/src/main/java/hudson/PluginManager.java | 5 +++-- core/src/main/java/hudson/ProxyConfiguration.java | 3 ++- core/src/main/java/hudson/console/HudsonExceptionNote.java | 3 ++- core/src/main/java/hudson/console/HyperlinkNote.java | 3 ++- core/src/main/java/hudson/console/ModelHyperlinkNote.java | 3 ++- .../java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java | 3 ++- .../java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java | 3 ++- .../src/main/java/hudson/diagnosis/MemoryUsageMonitor.java | 3 ++- .../java/hudson/diagnosis/NullIdDescriptorMonitor.java | 3 ++- core/src/main/java/hudson/diagnosis/OldDataMonitor.java | 5 +++-- core/src/main/java/hudson/model/FreeStyleProject.java | 3 ++- core/src/main/java/hudson/model/JDK.java | 3 ++- core/src/main/java/hudson/model/LoadStatistics.java | 3 ++- core/src/main/java/hudson/model/ManageJenkinsAction.java | 3 ++- core/src/main/java/hudson/model/MyView.java | 3 ++- core/src/main/java/hudson/model/MyViewsProperty.java | 5 +++-- core/src/main/java/hudson/model/PaneStatusProperties.java | 3 ++- .../java/hudson/model/PasswordParameterDefinition.java | 3 ++- core/src/main/java/hudson/model/ProxyView.java | 3 ++- core/src/main/java/hudson/scm/NullSCM.java | 3 ++- .../java/hudson/security/GlobalSecurityConfiguration.java | 5 +++-- .../java/hudson/security/HudsonPrivateSecurityRealm.java | 7 ++++--- .../java/hudson/security/LegacyAuthorizationStrategy.java | 3 ++- .../src/main/java/hudson/security/LegacySecurityRealm.java | 3 ++- .../security/csrf/GlobalCrumbIssuerConfiguration.java | 3 ++- core/src/main/java/hudson/slaves/NodeProvisioner.java | 3 ++- core/src/main/java/hudson/slaves/RetentionStrategy.java | 3 ++- core/src/main/java/hudson/tasks/LogRotator.java | 3 ++- core/src/main/java/hudson/tasks/Maven.java | 7 ++++--- core/src/main/java/hudson/tasks/_maven/Maven3MojoNote.java | 3 ++- core/src/main/java/hudson/tasks/_maven/MavenErrorNote.java | 3 ++- core/src/main/java/hudson/tasks/_maven/MavenMojoNote.java | 3 ++- .../main/java/hudson/tasks/_maven/MavenWarningNote.java | 3 ++- core/src/main/java/hudson/tools/InstallSourceProperty.java | 3 ++- core/src/main/java/hudson/tools/JDKInstaller.java | 5 +++-- .../java/hudson/views/GlobalDefaultViewConfiguration.java | 3 ++- core/src/main/java/hudson/views/LastDurationColumn.java | 3 ++- core/src/main/java/hudson/views/LastFailureColumn.java | 3 ++- core/src/main/java/hudson/views/LastStableColumn.java | 3 ++- core/src/main/java/hudson/views/LastSuccessColumn.java | 3 ++- core/src/main/java/hudson/views/MyViewsTabBar.java | 3 ++- core/src/main/java/jenkins/diagnosis/HsErrPidList.java | 4 +++- core/src/main/java/jenkins/management/NodesLink.java | 3 ++- core/src/main/java/jenkins/management/PluginsLink.java | 3 ++- core/src/main/java/jenkins/management/ReloadLink.java | 3 ++- .../main/java/jenkins/model/GlobalCloudConfiguration.java | 3 ++- .../java/jenkins/model/GlobalConfigurationCategory.java | 5 +++-- .../jenkins/model/GlobalNodePropertiesConfiguration.java | 3 ++- .../main/java/jenkins/model/GlobalPluginConfiguration.java | 3 ++- .../model/GlobalProjectNamingStrategyConfiguration.java | 3 ++- .../java/jenkins/model/GlobalQuietPeriodConfiguration.java | 3 ++- .../jenkins/model/GlobalSCMRetryCountConfiguration.java | 3 ++- core/src/main/java/jenkins/model/IdStrategy.java | 5 +++-- .../main/java/jenkins/model/MasterBuildConfiguration.java | 3 ++- .../src/main/java/jenkins/model/ProjectNamingStrategy.java | 5 +++-- core/src/main/java/jenkins/mvn/GlobalMavenConfig.java | 3 ++- .../jenkins/security/LastGrantedAuthoritiesProperty.java | 3 ++- .../security/QueueItemAuthenticatorConfiguration.java | 3 ++- .../java/jenkins/security/RekeySecretAdminMonitor.java | 3 ++- .../main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java | 3 ++- .../main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java | 3 ++- 61 files changed, 135 insertions(+), 73 deletions(-) diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 1c104ae410ce..794f7a660cff 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -63,6 +63,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.LogFactory; +import org.jenkinsci.Symbol; import org.jenkinsci.bytecode.Transformer; import org.jvnet.hudson.reactor.Executable; import org.jvnet.hudson.reactor.Reactor; @@ -1642,7 +1643,7 @@ public String getExceptionString() { /** * {@link AdministrativeMonitor} that checks if there are any plugins with cycle dependencies. */ - @Extension + @Extension @Symbol("pluginCycleDependencies") public static final class PluginCycleDependenciesMonitor extends AdministrativeMonitor { private transient volatile boolean isActive = false; @@ -1671,7 +1672,7 @@ public List getPluginsWithCycle() { * {@link AdministrativeMonitor} that informs the administrator about a required plugin update. * @since 1.491 */ - @Extension + @Extension @Symbol("pluginUpdate") public static final class PluginUpdateMonitor extends AdministrativeMonitor { private Map pluginsToBeUpdated = new HashMap(); diff --git a/core/src/main/java/hudson/ProxyConfiguration.java b/core/src/main/java/hudson/ProxyConfiguration.java index ee64737f9504..ae8692772951 100644 --- a/core/src/main/java/hudson/ProxyConfiguration.java +++ b/core/src/main/java/hudson/ProxyConfiguration.java @@ -53,6 +53,7 @@ import org.apache.commons.httpclient.UsernamePasswordCredentials; import org.apache.commons.httpclient.auth.AuthScope; import org.apache.commons.httpclient.methods.GetMethod; +import org.jenkinsci.Symbol; import org.jvnet.robust_http_client.RetryableHttpStream; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -272,7 +273,7 @@ public PasswordAuthentication getPasswordAuthentication() { XSTREAM.alias("proxy", ProxyConfiguration.class); } - @Extension + @Extension @Symbol("proxy") public static class DescriptorImpl extends Descriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/console/HudsonExceptionNote.java b/core/src/main/java/hudson/console/HudsonExceptionNote.java index 7fb7fcfc5c25..c442dff2fdb4 100644 --- a/core/src/main/java/hudson/console/HudsonExceptionNote.java +++ b/core/src/main/java/hudson/console/HudsonExceptionNote.java @@ -25,6 +25,7 @@ import hudson.Extension; import hudson.MarkupText; +import org.jenkinsci.Symbol; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -95,7 +96,7 @@ private String annotateClassName(String className) { return "http://stacktrace.jenkins-ci.org/search?query="+className; } - @Extension + @Extension @Symbol("stackTrace") public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/console/HyperlinkNote.java b/core/src/main/java/hudson/console/HyperlinkNote.java index 7e32acddc0b7..79fbbffc70ec 100644 --- a/core/src/main/java/hudson/console/HyperlinkNote.java +++ b/core/src/main/java/hudson/console/HyperlinkNote.java @@ -26,6 +26,7 @@ import hudson.Extension; import hudson.MarkupText; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; @@ -83,7 +84,7 @@ public static String encodeTo(String url, String text) { } } - @Extension + @Extension @Symbol("hyperlink") public static class DescriptorImpl extends ConsoleAnnotationDescriptor { public String getDisplayName() { return "Hyperlinks"; diff --git a/core/src/main/java/hudson/console/ModelHyperlinkNote.java b/core/src/main/java/hudson/console/ModelHyperlinkNote.java index 5e415b58bbd1..86d7bd3fc880 100644 --- a/core/src/main/java/hudson/console/ModelHyperlinkNote.java +++ b/core/src/main/java/hudson/console/ModelHyperlinkNote.java @@ -3,6 +3,7 @@ import hudson.Extension; import hudson.model.*; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import java.io.IOException; import java.util.logging.Level; @@ -64,7 +65,7 @@ public static String encodeTo(String url, String text) { } } - @Extension + @Extension @Symbol("hyperlinkToModels") public static class DescriptorImpl extends HyperlinkNote.DescriptorImpl { public String getDisplayName() { return "Hyperlinks to models"; diff --git a/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java b/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java index 5cf0c81ee412..4e16de8c9977 100644 --- a/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java +++ b/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java @@ -26,6 +26,7 @@ import hudson.Extension; import jenkins.model.Jenkins; import hudson.model.PeriodicWork; +import org.jenkinsci.Symbol; import java.util.logging.Logger; @@ -35,7 +36,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("diskUsageCheck") public class HudsonHomeDiskUsageChecker extends PeriodicWork { public long getRecurrencePeriod() { return HOUR; diff --git a/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java b/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java index 3b7c7d653f44..20cd973989e3 100644 --- a/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java +++ b/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java @@ -28,6 +28,7 @@ import hudson.Extension; import hudson.ExtensionPoint; import hudson.ExtensionList; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.QueryParameter; @@ -40,7 +41,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("diskUsageCheck") public final class HudsonHomeDiskUsageMonitor extends AdministrativeMonitor { /** * Value updated by {@link HudsonHomeDiskUsageChecker}. diff --git a/core/src/main/java/hudson/diagnosis/MemoryUsageMonitor.java b/core/src/main/java/hudson/diagnosis/MemoryUsageMonitor.java index 947970f0877b..23ad5140b828 100644 --- a/core/src/main/java/hudson/diagnosis/MemoryUsageMonitor.java +++ b/core/src/main/java/hudson/diagnosis/MemoryUsageMonitor.java @@ -39,6 +39,7 @@ import java.util.ArrayList; import java.io.IOException; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.QueryParameter; /** @@ -46,7 +47,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("memoryUsage") public final class MemoryUsageMonitor extends PeriodicWork { /** * A memory group is conceptually a set of memory pools. diff --git a/core/src/main/java/hudson/diagnosis/NullIdDescriptorMonitor.java b/core/src/main/java/hudson/diagnosis/NullIdDescriptorMonitor.java index 3182ddc9542f..243260713afa 100644 --- a/core/src/main/java/hudson/diagnosis/NullIdDescriptorMonitor.java +++ b/core/src/main/java/hudson/diagnosis/NullIdDescriptorMonitor.java @@ -29,6 +29,7 @@ import hudson.model.AdministrativeMonitor; import hudson.model.Descriptor; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import java.text.MessageFormat; import java.util.ArrayList; @@ -46,7 +47,7 @@ * @author Kohsuke Kawaguchi * @since 1.402 */ -@Extension +@Extension @Symbol("nullId") public class NullIdDescriptorMonitor extends AdministrativeMonitor { private final List problems = new ArrayList(); diff --git a/core/src/main/java/hudson/diagnosis/OldDataMonitor.java b/core/src/main/java/hudson/diagnosis/OldDataMonitor.java index b955cd217834..79c1109d3c85 100644 --- a/core/src/main/java/hudson/diagnosis/OldDataMonitor.java +++ b/core/src/main/java/hudson/diagnosis/OldDataMonitor.java @@ -55,6 +55,7 @@ import jenkins.model.Jenkins; import org.acegisecurity.context.SecurityContext; import org.acegisecurity.context.SecurityContextHolder; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpRedirect; @@ -70,7 +71,7 @@ * * @author Alan.Harder@Sun.Com */ -@Extension +@Extension @Symbol("oldData") public class OldDataMonitor extends AdministrativeMonitor { private static final Logger LOGGER = Logger.getLogger(OldDataMonitor.class.getName()); @@ -432,7 +433,7 @@ private static final class RunSaveableReference implements SaveableReference { } } - @Extension + @Extension @Symbol("oldData") public static class ManagementLinkImpl extends ManagementLink { @Override public String getIconFileName() { diff --git a/core/src/main/java/hudson/model/FreeStyleProject.java b/core/src/main/java/hudson/model/FreeStyleProject.java index 625941b6b63d..7b184d65a74c 100644 --- a/core/src/main/java/hudson/model/FreeStyleProject.java +++ b/core/src/main/java/hudson/model/FreeStyleProject.java @@ -25,6 +25,7 @@ import hudson.Extension; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -66,7 +67,7 @@ public DescriptorImpl getDescriptor() { @Restricted(NoExternalUse.class) public static /*almost final*/ DescriptorImpl DESCRIPTOR; - @Extension(ordinal=1000) + @Extension(ordinal=1000) @Symbol({"freeStyle","freeStyleJob"}) public static class DescriptorImpl extends AbstractProjectDescriptor { public DescriptorImpl() { DESCRIPTOR = this; diff --git a/core/src/main/java/hudson/model/JDK.java b/core/src/main/java/hudson/model/JDK.java index ca9bf0aac6a4..b04376eb74ae 100644 --- a/core/src/main/java/hudson/model/JDK.java +++ b/core/src/main/java/hudson/model/JDK.java @@ -44,6 +44,7 @@ import java.util.Collections; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -166,7 +167,7 @@ public static boolean isDefaultJDKValid(Node n) { } } - @Extension + @Extension @Symbol("jdk") public static class DescriptorImpl extends ToolDescriptor { public String getDisplayName() { diff --git a/core/src/main/java/hudson/model/LoadStatistics.java b/core/src/main/java/hudson/model/LoadStatistics.java index f1857156541e..fa3dba699339 100644 --- a/core/src/main/java/hudson/model/LoadStatistics.java +++ b/core/src/main/java/hudson/model/LoadStatistics.java @@ -31,6 +31,7 @@ import hudson.util.ColorPalette; import hudson.util.NoOverlapCategoryAxis; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; @@ -380,7 +381,7 @@ protected LoadStatisticsSnapshot computeSnapshot(Iterable q /** * Periodically update the load statistics average. */ - @Extension + @Extension @Symbol("loadStatistics") public static class LoadStatisticsUpdater extends PeriodicWork { public long getRecurrencePeriod() { return CLOCK; diff --git a/core/src/main/java/hudson/model/ManageJenkinsAction.java b/core/src/main/java/hudson/model/ManageJenkinsAction.java index a4b813a85256..29c2b805e53a 100644 --- a/core/src/main/java/hudson/model/ManageJenkinsAction.java +++ b/core/src/main/java/hudson/model/ManageJenkinsAction.java @@ -25,13 +25,14 @@ import hudson.Extension; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; /** * Adds the "Manage Jenkins" link to the top page. * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=100) +@Extension(ordinal=100) @Symbol("manageJenkins") public class ManageJenkinsAction implements RootAction { public String getIconFileName() { if (Jenkins.getInstance().hasPermission(Jenkins.ADMINISTER)) diff --git a/core/src/main/java/hudson/model/MyView.java b/core/src/main/java/hudson/model/MyView.java index 74bdadf9da5f..a4ed05bd6d4d 100644 --- a/core/src/main/java/hudson/model/MyView.java +++ b/core/src/main/java/hudson/model/MyView.java @@ -32,6 +32,7 @@ import javax.servlet.ServletException; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.DataBoundConstructor; @@ -93,7 +94,7 @@ protected void submit(StaplerRequest req) throws IOException, ServletException, // noop } - @Extension + @Extension @Symbol("myView") public static final class DescriptorImpl extends ViewDescriptor { /** * If the security is not enabled, there's no point in having diff --git a/core/src/main/java/hudson/model/MyViewsProperty.java b/core/src/main/java/hudson/model/MyViewsProperty.java index a7a40014e822..d075a73e812e 100644 --- a/core/src/main/java/hudson/model/MyViewsProperty.java +++ b/core/src/main/java/hudson/model/MyViewsProperty.java @@ -45,6 +45,7 @@ import net.sf.json.JSONObject; import org.acegisecurity.AccessDeniedException; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpResponse; @@ -201,7 +202,7 @@ public String getUrlName() { return "my-views"; } - @Extension + @Extension @Symbol("myView") public static class DescriptorImpl extends UserPropertyDescriptor { @Override @@ -242,7 +243,7 @@ public MyViewsTabBar getMyViewsTabBar() { return Jenkins.getInstance().getMyViewsTabBar(); } - @Extension + @Extension @Symbol("myView") public static class GlobalAction implements RootAction { public String getDisplayName() { diff --git a/core/src/main/java/hudson/model/PaneStatusProperties.java b/core/src/main/java/hudson/model/PaneStatusProperties.java index 8ee6cd3539ba..279f72fa64c7 100644 --- a/core/src/main/java/hudson/model/PaneStatusProperties.java +++ b/core/src/main/java/hudson/model/PaneStatusProperties.java @@ -8,6 +8,7 @@ import javax.servlet.http.HttpSession; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.Stapler; public class PaneStatusProperties extends UserProperty implements Saveable { @@ -43,7 +44,7 @@ private Object readResolve() { return this; } - @Extension + @Extension @Symbol("paneStatus") public static class DescriptorImpl extends UserPropertyDescriptor { @Override diff --git a/core/src/main/java/hudson/model/PasswordParameterDefinition.java b/core/src/main/java/hudson/model/PasswordParameterDefinition.java index ce93144a56c7..f4cad5a8c32c 100644 --- a/core/src/main/java/hudson/model/PasswordParameterDefinition.java +++ b/core/src/main/java/hudson/model/PasswordParameterDefinition.java @@ -24,6 +24,7 @@ package hudson.model; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.DataBoundConstructor; import hudson.Extension; @@ -88,7 +89,7 @@ public void setDefaultValue(String defaultValue) { this.defaultValue = Secret.fromString(defaultValue); } - @Extension + @Extension @Symbol({"password","nonStoredPasswordParam"}) public final static class ParameterDescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/model/ProxyView.java b/core/src/main/java/hudson/model/ProxyView.java index d8599ce9c2b8..795b94ba8635 100644 --- a/core/src/main/java/hudson/model/ProxyView.java +++ b/core/src/main/java/hudson/model/ProxyView.java @@ -32,6 +32,7 @@ import javax.servlet.ServletException; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.Stapler; @@ -120,7 +121,7 @@ public FormValidation doViewExistsCheck(@QueryParameter String value) { return FormValidation.error(Messages.ProxyView_NoSuchViewExists(value)); } - @Extension + @Extension @Symbol("proxy") public static class DescriptorImpl extends ViewDescriptor { @Override diff --git a/core/src/main/java/hudson/scm/NullSCM.java b/core/src/main/java/hudson/scm/NullSCM.java index d2edf827330c..911bac13a061 100644 --- a/core/src/main/java/hudson/scm/NullSCM.java +++ b/core/src/main/java/hudson/scm/NullSCM.java @@ -32,6 +32,7 @@ import java.io.File; import java.io.IOException; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; /** @@ -58,7 +59,7 @@ public class NullSCM extends SCM { return NullChangeLogParser.INSTANCE; } - @Extension(ordinal = Integer.MAX_VALUE) + @Extension(ordinal = Integer.MAX_VALUE) @Symbol("none") public static class DescriptorImpl extends SCMDescriptor { public DescriptorImpl() { super(null); diff --git a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java index de5deceebd35..36edde3f4e85 100644 --- a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java +++ b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java @@ -45,6 +45,7 @@ import jenkins.util.ServerTcpPort; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -55,7 +56,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal = Integer.MAX_VALUE - 210) +@Extension(ordinal = Integer.MAX_VALUE - 210) @Symbol("securityConfig") public class GlobalSecurityConfiguration extends ManagementLink implements Describable { private static final Logger LOGGER = Logger.getLogger(GlobalSecurityConfiguration.class.getName()); @@ -167,7 +168,7 @@ public Descriptor getDescriptor() { return Jenkins.getInstance().getDescriptorOrDie(getClass()); } - @Extension + @Extension @Symbol("security") public static final class DescriptorImpl extends Descriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java index 2f45492c35ca..fbcc62fcbea4 100644 --- a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java +++ b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java @@ -54,6 +54,7 @@ import org.acegisecurity.providers.encoding.ShaPasswordEncoder; import org.acegisecurity.userdetails.UserDetails; import org.acegisecurity.userdetails.UsernameNotFoundException; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.ForwardToView; import org.kohsuke.stapler.HttpResponse; @@ -563,7 +564,7 @@ public static class ConverterImpl extends XStream2.PassthruConverter
{ } } - @Extension + @Extension @Symbol("password") public static final class DescriptorImpl extends UserPropertyDescriptor { @Override public String getDisplayName() { @@ -603,7 +604,7 @@ public UserProperty newInstance(User user) { * Displays "manage users" link in the system config if {@link HudsonPrivateSecurityRealm} * is in effect. */ - @Extension + @Extension @Symbol("localUsers") public static final class ManageUserLinks extends ManagementLink { public String getIconFileName() { if(Jenkins.getInstance().getSecurityRealm() instanceof HudsonPrivateSecurityRealm) @@ -714,7 +715,7 @@ public boolean isPasswordValid(String encPass, String rawPass, Object salt) thro private static final String JBCRYPT_HEADER = "#jbcrypt:"; }; - @Extension + @Extension @Symbol("local") public static final class DescriptorImpl extends Descriptor { public String getDisplayName() { return Messages.HudsonPrivateSecurityRealm_DisplayName(); diff --git a/core/src/main/java/hudson/security/LegacyAuthorizationStrategy.java b/core/src/main/java/hudson/security/LegacyAuthorizationStrategy.java index f850df6a886d..5bc470d78a5b 100644 --- a/core/src/main/java/hudson/security/LegacyAuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/LegacyAuthorizationStrategy.java @@ -27,6 +27,7 @@ import hudson.model.Descriptor; import jenkins.model.Jenkins; import org.acegisecurity.acls.sid.GrantedAuthoritySid; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import java.util.Collection; @@ -54,7 +55,7 @@ public Collection getGroups() { return Collections.singleton("admin"); } - @Extension + @Extension @Symbol("legacy") public static final class DescriptorImpl extends Descriptor { public String getDisplayName() { return Messages.LegacyAuthorizationStrategy_DisplayName(); diff --git a/core/src/main/java/hudson/security/LegacySecurityRealm.java b/core/src/main/java/hudson/security/LegacySecurityRealm.java index c1786192618b..116e50b2c9e2 100644 --- a/core/src/main/java/hudson/security/LegacySecurityRealm.java +++ b/core/src/main/java/hudson/security/LegacySecurityRealm.java @@ -26,6 +26,7 @@ import org.acegisecurity.AuthenticationManager; import org.acegisecurity.Authentication; import org.acegisecurity.AuthenticationException; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.springframework.web.context.WebApplicationContext; @@ -97,7 +98,7 @@ public Filter createFilter(FilterConfig filterConfig) { @Restricted(NoExternalUse.class) public static /*almost final*/ Descriptor DESCRIPTOR; - @Extension + @Extension @Symbol("legacy") public static class DescriptorImpl extends Descriptor { public DescriptorImpl() { DESCRIPTOR = this; diff --git a/core/src/main/java/hudson/security/csrf/GlobalCrumbIssuerConfiguration.java b/core/src/main/java/hudson/security/csrf/GlobalCrumbIssuerConfiguration.java index 904dbb37d53c..a93c70cc2363 100644 --- a/core/src/main/java/hudson/security/csrf/GlobalCrumbIssuerConfiguration.java +++ b/core/src/main/java/hudson/security/csrf/GlobalCrumbIssuerConfiguration.java @@ -28,6 +28,7 @@ import jenkins.model.GlobalConfigurationCategory; import jenkins.model.Jenkins; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; /** @@ -35,7 +36,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=195) // immediately after the security setting +@Extension(ordinal=195) @Symbol("crumb") // immediately after the security setting public class GlobalCrumbIssuerConfiguration extends GlobalConfiguration { @Override public GlobalConfigurationCategory getCategory() { diff --git a/core/src/main/java/hudson/slaves/NodeProvisioner.java b/core/src/main/java/hudson/slaves/NodeProvisioner.java index 699d9b8cb194..87da4f5742b2 100644 --- a/core/src/main/java/hudson/slaves/NodeProvisioner.java +++ b/core/src/main/java/hudson/slaves/NodeProvisioner.java @@ -30,6 +30,7 @@ import static hudson.model.LoadStatistics.DECAY; import hudson.model.MultiStageTimeSeries.TimeScale; import hudson.Extension; +import org.jenkinsci.Symbol; import javax.annotation.Nonnull; import javax.annotation.concurrent.GuardedBy; @@ -599,7 +600,7 @@ public String toString() { * * @since 1.588 */ - @Extension + @Extension @Symbol("standard") public static class StandardStrategyImpl extends Strategy { /** {@inheritDoc} */ diff --git a/core/src/main/java/hudson/slaves/RetentionStrategy.java b/core/src/main/java/hudson/slaves/RetentionStrategy.java index 57dfde61af1d..f6d973b20a2d 100644 --- a/core/src/main/java/hudson/slaves/RetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/RetentionStrategy.java @@ -32,6 +32,7 @@ import java.util.Collections; import java.util.HashMap; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import javax.annotation.concurrent.GuardedBy; @@ -164,7 +165,7 @@ public long check(SlaveComputer c) { return 1; } - @Extension(ordinal=100) + @Extension(ordinal=100) @Symbol("always") public static class DescriptorImpl extends Descriptor> { public String getDisplayName() { return Messages.RetentionStrategy_Always_displayName(); diff --git a/core/src/main/java/hudson/tasks/LogRotator.java b/core/src/main/java/hudson/tasks/LogRotator.java index 36efff2145ce..c1efa625cf6e 100644 --- a/core/src/main/java/hudson/tasks/LogRotator.java +++ b/core/src/main/java/hudson/tasks/LogRotator.java @@ -29,6 +29,7 @@ import hudson.model.Run; import jenkins.model.BuildDiscarder; import jenkins.model.BuildDiscarderDescriptor; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import java.io.IOException; @@ -252,7 +253,7 @@ private String toString(Integer i) { return String.valueOf(i); } - @Extension + @Extension @Symbol("logRotator") public static final class LRDescriptor extends BuildDiscarderDescriptor { public String getDisplayName() { return "Log Rotation"; diff --git a/core/src/main/java/hudson/tasks/Maven.java b/core/src/main/java/hudson/tasks/Maven.java index 51f41aa2208e..d707097acf7d 100644 --- a/core/src/main/java/hudson/tasks/Maven.java +++ b/core/src/main/java/hudson/tasks/Maven.java @@ -62,6 +62,7 @@ import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; @@ -388,7 +389,7 @@ public DescriptorImpl getDescriptor() { @Deprecated public static DescriptorImpl DESCRIPTOR; - @Extension + @Extension @Symbol("maven") public static final class DescriptorImpl extends BuildStepDescriptor { @CopyOnWrite private volatile MavenInstallation[] installations = new MavenInstallation[0]; @@ -624,7 +625,7 @@ public MavenInstallation forNode(Node node, TaskListener log) throws IOException return new MavenInstallation(getName(), translateFor(node, log), getProperties().toList()); } - @Extension + @Extension @Symbol("maven") public static class DescriptorImpl extends ToolDescriptor { @Override public String getDisplayName() { @@ -682,7 +683,7 @@ public MavenInstaller(String id) { super(id); } - @Extension + @Extension @Symbol("maven") public static final class DescriptorImpl extends DownloadFromUrlInstaller.DescriptorImpl { public String getDisplayName() { return Messages.InstallFromApache(); diff --git a/core/src/main/java/hudson/tasks/_maven/Maven3MojoNote.java b/core/src/main/java/hudson/tasks/_maven/Maven3MojoNote.java index 8dfb2c7d9140..9f2fc0ee0df1 100644 --- a/core/src/main/java/hudson/tasks/_maven/Maven3MojoNote.java +++ b/core/src/main/java/hudson/tasks/_maven/Maven3MojoNote.java @@ -28,6 +28,7 @@ import hudson.console.ConsoleAnnotationDescriptor; import hudson.console.ConsoleAnnotator; import hudson.console.ConsoleNote; +import org.jenkinsci.Symbol; import java.util.regex.Pattern; @@ -57,7 +58,7 @@ public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { return null; } - @Extension + @Extension @Symbol("maven3Mojos") public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { public String getDisplayName() { return "Maven 3 Mojos"; diff --git a/core/src/main/java/hudson/tasks/_maven/MavenErrorNote.java b/core/src/main/java/hudson/tasks/_maven/MavenErrorNote.java index 5b13137bc848..caecd18acf39 100644 --- a/core/src/main/java/hudson/tasks/_maven/MavenErrorNote.java +++ b/core/src/main/java/hudson/tasks/_maven/MavenErrorNote.java @@ -28,6 +28,7 @@ import hudson.console.ConsoleAnnotationDescriptor; import hudson.console.ConsoleAnnotator; import hudson.console.ConsoleNote; +import org.jenkinsci.Symbol; import java.util.regex.Pattern; @@ -44,7 +45,7 @@ public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { return null; } - @Extension + @Extension @Symbol("mavenErrors") public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { public String getDisplayName() { return "Maven Errors"; diff --git a/core/src/main/java/hudson/tasks/_maven/MavenMojoNote.java b/core/src/main/java/hudson/tasks/_maven/MavenMojoNote.java index 68ade17692b7..99775fbaef7c 100644 --- a/core/src/main/java/hudson/tasks/_maven/MavenMojoNote.java +++ b/core/src/main/java/hudson/tasks/_maven/MavenMojoNote.java @@ -28,6 +28,7 @@ import hudson.console.ConsoleAnnotationDescriptor; import hudson.console.ConsoleAnnotator; import hudson.console.ConsoleNote; +import org.jenkinsci.Symbol; import java.util.regex.Pattern; @@ -49,7 +50,7 @@ public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { return null; } - @Extension + @Extension @Symbol("mavenMojos") public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { public String getDisplayName() { return "Maven Mojos"; diff --git a/core/src/main/java/hudson/tasks/_maven/MavenWarningNote.java b/core/src/main/java/hudson/tasks/_maven/MavenWarningNote.java index afecf58dda01..41b3080efa05 100644 --- a/core/src/main/java/hudson/tasks/_maven/MavenWarningNote.java +++ b/core/src/main/java/hudson/tasks/_maven/MavenWarningNote.java @@ -28,6 +28,7 @@ import hudson.console.ConsoleAnnotationDescriptor; import hudson.console.ConsoleAnnotator; import hudson.console.ConsoleNote; +import org.jenkinsci.Symbol; import java.util.regex.Pattern; @@ -46,7 +47,7 @@ public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { return null; } - @Extension + @Extension @Symbol("mavenWarnings") public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { public String getDisplayName() { return "Maven Warnings"; diff --git a/core/src/main/java/hudson/tools/InstallSourceProperty.java b/core/src/main/java/hudson/tools/InstallSourceProperty.java index 3680a8f68eae..7ef474d015f3 100644 --- a/core/src/main/java/hudson/tools/InstallSourceProperty.java +++ b/core/src/main/java/hudson/tools/InstallSourceProperty.java @@ -27,6 +27,7 @@ import hudson.util.DescribableList; import hudson.model.Descriptor; import hudson.model.Saveable; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import java.util.List; @@ -61,7 +62,7 @@ public Class type() { return ToolInstallation.class; } - @Extension + @Extension @Symbol("installSource") public static class DescriptorImpl extends ToolPropertyDescriptor { public String getDisplayName() { return Messages.InstallSourceProperty_DescriptorImpl_displayName(); diff --git a/core/src/main/java/hudson/tools/JDKInstaller.java b/core/src/main/java/hudson/tools/JDKInstaller.java index d270769de163..d89c217875fd 100644 --- a/core/src/main/java/hudson/tools/JDKInstaller.java +++ b/core/src/main/java/hudson/tools/JDKInstaller.java @@ -52,6 +52,7 @@ import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.io.IOUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; @@ -741,7 +742,7 @@ public DescriptorImpl getDescriptor() { return (DescriptorImpl)super.getDescriptor(); } - @Extension + @Extension @Symbol("jdkInstaller") public static final class DescriptorImpl extends ToolInstallerDescriptor { private String username; private Secret password; @@ -805,7 +806,7 @@ public HttpResponse doPostCredential(@QueryParameter String username, @QueryPara /** * JDK list. */ - @Extension + @Extension @Symbol("jdk") public static final class JDKList extends Downloadable { public JDKList() { super(JDKInstaller.class); diff --git a/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java b/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java index 934920b3e82e..40a045a0844c 100644 --- a/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java +++ b/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java @@ -27,6 +27,7 @@ import jenkins.model.GlobalConfiguration; import jenkins.model.Jenkins; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; /** @@ -34,7 +35,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=300) +@Extension(ordinal=300) @Symbol("defaultView") public class GlobalDefaultViewConfiguration extends GlobalConfiguration { @Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { diff --git a/core/src/main/java/hudson/views/LastDurationColumn.java b/core/src/main/java/hudson/views/LastDurationColumn.java index 7379d7b6a321..04696704a65d 100644 --- a/core/src/main/java/hudson/views/LastDurationColumn.java +++ b/core/src/main/java/hudson/views/LastDurationColumn.java @@ -24,6 +24,7 @@ package hudson.views; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; public class LastDurationColumn extends ListViewColumn { @@ -31,7 +32,7 @@ public class LastDurationColumn extends ListViewColumn { public LastDurationColumn() { } - @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_PROPERTIES_START-4) + @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_PROPERTIES_START-4) @Symbol("lastDuration") public static class DescriptorImpl extends ListViewColumnDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/LastFailureColumn.java b/core/src/main/java/hudson/views/LastFailureColumn.java index 28276df9e130..1c272b855f8b 100644 --- a/core/src/main/java/hudson/views/LastFailureColumn.java +++ b/core/src/main/java/hudson/views/LastFailureColumn.java @@ -24,6 +24,7 @@ package hudson.views; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; public class LastFailureColumn extends ListViewColumn { @@ -31,7 +32,7 @@ public class LastFailureColumn extends ListViewColumn { public LastFailureColumn() { } - @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_PROPERTIES_START-2) + @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_PROPERTIES_START-2) @Symbol("lastFailure") public static class DescriptorImpl extends ListViewColumnDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/LastStableColumn.java b/core/src/main/java/hudson/views/LastStableColumn.java index 408c70b726a5..0844121e5dcb 100644 --- a/core/src/main/java/hudson/views/LastStableColumn.java +++ b/core/src/main/java/hudson/views/LastStableColumn.java @@ -24,6 +24,7 @@ package hudson.views; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; public class LastStableColumn extends ListViewColumn { @@ -31,7 +32,7 @@ public class LastStableColumn extends ListViewColumn { public LastStableColumn() { } - @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_PROPERTIES_START-3) + @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_PROPERTIES_START-3) @Symbol("lastStable") public static class DescriptorImpl extends ListViewColumnDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/LastSuccessColumn.java b/core/src/main/java/hudson/views/LastSuccessColumn.java index c0232075e564..ebb5bc1bc944 100644 --- a/core/src/main/java/hudson/views/LastSuccessColumn.java +++ b/core/src/main/java/hudson/views/LastSuccessColumn.java @@ -24,6 +24,7 @@ package hudson.views; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; public class LastSuccessColumn extends ListViewColumn { @@ -31,7 +32,7 @@ public class LastSuccessColumn extends ListViewColumn { public LastSuccessColumn() { } - @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_PROPERTIES_START-1) + @Extension(ordinal=DEFAULT_COLUMNS_ORDINAL_PROPERTIES_START-1) @Symbol("lastSuccess") public static class DescriptorImpl extends ListViewColumnDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/MyViewsTabBar.java b/core/src/main/java/hudson/views/MyViewsTabBar.java index d06ad0b7ebda..c166c71e7d24 100644 --- a/core/src/main/java/hudson/views/MyViewsTabBar.java +++ b/core/src/main/java/hudson/views/MyViewsTabBar.java @@ -32,6 +32,7 @@ import jenkins.model.Jenkins; import hudson.model.MyViewsProperty; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; /** @@ -67,7 +68,7 @@ public MyViewsTabBarDescriptor getDescriptor() { * * @author Kohsuke Kawaguchi */ - @Extension(ordinal=305) + @Extension(ordinal=305) @Symbol("myView") public static class GlobalConfigurationImpl extends GlobalConfiguration { public MyViewsTabBar getMyViewsTabBar() { return Jenkins.getInstance().getMyViewsTabBar(); diff --git a/core/src/main/java/jenkins/diagnosis/HsErrPidList.java b/core/src/main/java/jenkins/diagnosis/HsErrPidList.java index ac60a307eb4b..64b1d93d78d3 100644 --- a/core/src/main/java/jenkins/diagnosis/HsErrPidList.java +++ b/core/src/main/java/jenkins/diagnosis/HsErrPidList.java @@ -24,13 +24,15 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.io.IOUtils; +import org.jenkinsci.Symbol; /** * Finds crash dump reports and show them in the UI. * * @author Kohsuke Kawaguchi */ -@Extension(optional=true) // TODO why would an extension using a built-in extension point need to be marked optional? +@Extension(optional=true) @Symbol("hsErrPid") +// TODO why would an extension using a built-in extension point need to be marked optional? public class HsErrPidList extends AdministrativeMonitor { /** * hs_err_pid files that we think belong to us. diff --git a/core/src/main/java/jenkins/management/NodesLink.java b/core/src/main/java/jenkins/management/NodesLink.java index 11ea46985709..90038450cebc 100644 --- a/core/src/main/java/jenkins/management/NodesLink.java +++ b/core/src/main/java/jenkins/management/NodesLink.java @@ -27,11 +27,12 @@ import hudson.Extension; import hudson.model.ManagementLink; import jenkins.management.Messages; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MAX_VALUE - 1000) +@Extension(ordinal = Integer.MAX_VALUE - 1000) @Symbol("nodes") public class NodesLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/management/PluginsLink.java b/core/src/main/java/jenkins/management/PluginsLink.java index 0309d77d4dca..cae9c139c459 100644 --- a/core/src/main/java/jenkins/management/PluginsLink.java +++ b/core/src/main/java/jenkins/management/PluginsLink.java @@ -26,11 +26,12 @@ import hudson.Extension; import hudson.model.ManagementLink; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MAX_VALUE - 400) +@Extension(ordinal = Integer.MAX_VALUE - 400) @Symbol("plugins") public class PluginsLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/management/ReloadLink.java b/core/src/main/java/jenkins/management/ReloadLink.java index 40da1cc37067..9159788379ea 100644 --- a/core/src/main/java/jenkins/management/ReloadLink.java +++ b/core/src/main/java/jenkins/management/ReloadLink.java @@ -26,11 +26,12 @@ import hudson.Extension; import hudson.model.ManagementLink; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MAX_VALUE - 300) +@Extension(ordinal = Integer.MAX_VALUE - 300) @Symbol("reload") public class ReloadLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/model/GlobalCloudConfiguration.java b/core/src/main/java/jenkins/model/GlobalCloudConfiguration.java index afe4c97ba659..a4aa432e2076 100644 --- a/core/src/main/java/jenkins/model/GlobalCloudConfiguration.java +++ b/core/src/main/java/jenkins/model/GlobalCloudConfiguration.java @@ -3,6 +3,7 @@ import hudson.Extension; import hudson.slaves.Cloud; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -15,7 +16,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=-100) // historically this was placed at the very end of the configuration page +@Extension(ordinal=-100) @Symbol("cloud") // historically this was placed at the very end of the configuration page public class GlobalCloudConfiguration extends GlobalConfiguration { @Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { diff --git a/core/src/main/java/jenkins/model/GlobalConfigurationCategory.java b/core/src/main/java/jenkins/model/GlobalConfigurationCategory.java index f78c1eb3f9be..0a82c8216d32 100644 --- a/core/src/main/java/jenkins/model/GlobalConfigurationCategory.java +++ b/core/src/main/java/jenkins/model/GlobalConfigurationCategory.java @@ -6,6 +6,7 @@ import hudson.model.ModelObject; import hudson.security.*; import hudson.security.Messages; +import org.jenkinsci.Symbol; /** * Grouping of related {@link GlobalConfiguration}s. @@ -54,7 +55,7 @@ public static T get(Class type) { * * In the current UI, this corresponds to the /configure link. */ - @Extension + @Extension @Symbol("unclassified") public static class Unclassified extends GlobalConfigurationCategory { @Override public String getShortDescription() { @@ -69,7 +70,7 @@ public String getDisplayName() { /** * Security related configurations. */ - @Extension + @Extension @Symbol("security") public static class Security extends GlobalConfigurationCategory { @Override public String getShortDescription() { diff --git a/core/src/main/java/jenkins/model/GlobalNodePropertiesConfiguration.java b/core/src/main/java/jenkins/model/GlobalNodePropertiesConfiguration.java index 979567940624..68bfc2bf0127 100644 --- a/core/src/main/java/jenkins/model/GlobalNodePropertiesConfiguration.java +++ b/core/src/main/java/jenkins/model/GlobalNodePropertiesConfiguration.java @@ -4,6 +4,7 @@ import hudson.slaves.NodeProperty; import hudson.slaves.NodePropertyDescriptor; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -13,7 +14,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=110) // historically this was placed above GlobalPluginConfiguration +@Extension(ordinal=110) @Symbol("nodeProperties") // historically this was placed above GlobalPluginConfiguration public class GlobalNodePropertiesConfiguration extends GlobalConfiguration { @Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { diff --git a/core/src/main/java/jenkins/model/GlobalPluginConfiguration.java b/core/src/main/java/jenkins/model/GlobalPluginConfiguration.java index fd0c57dc3ced..dfbde0cccb54 100644 --- a/core/src/main/java/jenkins/model/GlobalPluginConfiguration.java +++ b/core/src/main/java/jenkins/model/GlobalPluginConfiguration.java @@ -4,6 +4,7 @@ import hudson.Plugin; import hudson.StructuredForm; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import javax.servlet.ServletException; @@ -17,7 +18,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=100) // historically this was placed above general configuration from arbitrary descriptors +@Extension(ordinal=100) @Symbol("plugin") // historically this was placed above general configuration from arbitrary descriptors public class GlobalPluginConfiguration extends GlobalConfiguration { @Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { diff --git a/core/src/main/java/jenkins/model/GlobalProjectNamingStrategyConfiguration.java b/core/src/main/java/jenkins/model/GlobalProjectNamingStrategyConfiguration.java index 9289a23f1b55..ca07798af16f 100644 --- a/core/src/main/java/jenkins/model/GlobalProjectNamingStrategyConfiguration.java +++ b/core/src/main/java/jenkins/model/GlobalProjectNamingStrategyConfiguration.java @@ -27,6 +27,7 @@ import jenkins.model.ProjectNamingStrategy.DefaultProjectNamingStrategy; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; /** @@ -34,7 +35,7 @@ * * @author Dominik Bartholdi (imod) */ -@Extension(ordinal = 250) +@Extension(ordinal = 250) @Symbol("projectNamingStrategy") public class GlobalProjectNamingStrategyConfiguration extends GlobalConfiguration { @Override diff --git a/core/src/main/java/jenkins/model/GlobalQuietPeriodConfiguration.java b/core/src/main/java/jenkins/model/GlobalQuietPeriodConfiguration.java index 36ee9c0e1ad4..cf1001793ac5 100644 --- a/core/src/main/java/jenkins/model/GlobalQuietPeriodConfiguration.java +++ b/core/src/main/java/jenkins/model/GlobalQuietPeriodConfiguration.java @@ -25,6 +25,7 @@ import hudson.Extension; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -34,7 +35,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=400) +@Extension(ordinal=400) @Symbol("quietPeriod") public class GlobalQuietPeriodConfiguration extends GlobalConfiguration { public int getQuietPeriod() { return Jenkins.getInstance().getQuietPeriod(); diff --git a/core/src/main/java/jenkins/model/GlobalSCMRetryCountConfiguration.java b/core/src/main/java/jenkins/model/GlobalSCMRetryCountConfiguration.java index d364b6fbe8d1..43d1f06a3a6d 100644 --- a/core/src/main/java/jenkins/model/GlobalSCMRetryCountConfiguration.java +++ b/core/src/main/java/jenkins/model/GlobalSCMRetryCountConfiguration.java @@ -25,6 +25,7 @@ import hudson.Extension; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -34,7 +35,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=395) +@Extension(ordinal=395) @Symbol("scmRetryCount") public class GlobalSCMRetryCountConfiguration extends GlobalConfiguration { public int getScmCheckoutRetryCount() { return Jenkins.getInstance().getScmCheckoutRetryCount(); diff --git a/core/src/main/java/jenkins/model/IdStrategy.java b/core/src/main/java/jenkins/model/IdStrategy.java index b9413cafbc23..f3f37186b7de 100644 --- a/core/src/main/java/jenkins/model/IdStrategy.java +++ b/core/src/main/java/jenkins/model/IdStrategy.java @@ -29,6 +29,7 @@ import hudson.model.AbstractDescribableImpl; import hudson.util.CaseInsensitiveComparator; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import javax.annotation.Nonnull; @@ -175,7 +176,7 @@ public int compare(@Nonnull String id1, @Nonnull String id2) { return CaseInsensitiveComparator.INSTANCE.compare(id1, id2); } - @Extension + @Extension @Symbol("caseInsensitive") public static class DescriptorImpl extends IdStrategyDescriptor { /** @@ -303,7 +304,7 @@ public int compare(@Nonnull String id1, @Nonnull String id2) { return id1.compareTo(id2); } - @Extension + @Extension @Symbol("caseSensitive") public static class DescriptorImpl extends IdStrategyDescriptor { /** diff --git a/core/src/main/java/jenkins/model/MasterBuildConfiguration.java b/core/src/main/java/jenkins/model/MasterBuildConfiguration.java index 231b25bd5adf..6ae797adf2a0 100644 --- a/core/src/main/java/jenkins/model/MasterBuildConfiguration.java +++ b/core/src/main/java/jenkins/model/MasterBuildConfiguration.java @@ -26,6 +26,7 @@ import hudson.Extension; import hudson.model.Node.Mode; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -35,7 +36,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension(ordinal=500) +@Extension(ordinal=500) @Symbol("masterBuild") public class MasterBuildConfiguration extends GlobalConfiguration { public int getNumExecutors() { return Jenkins.getInstance().getNumExecutors(); diff --git a/core/src/main/java/jenkins/model/ProjectNamingStrategy.java b/core/src/main/java/jenkins/model/ProjectNamingStrategy.java index 31e4b9e81f91..b43f777750e5 100644 --- a/core/src/main/java/jenkins/model/ProjectNamingStrategy.java +++ b/core/src/main/java/jenkins/model/ProjectNamingStrategy.java @@ -40,6 +40,7 @@ import javax.servlet.ServletException; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -108,7 +109,7 @@ private Object readResolve() { return DEFAULT_NAMING_STRATEGY; } - @Extension + @Extension @Symbol("default") public static final class DescriptorImpl extends ProjectNamingStrategyDescriptor { @Override public String getDisplayName() { @@ -174,7 +175,7 @@ public boolean isForceExistingJobs() { return forceExistingJobs; } - @Extension + @Extension @Symbol("pattern") public static final class DescriptorImpl extends ProjectNamingStrategyDescriptor { public static final String DEFAULT_PATTERN = ".*"; diff --git a/core/src/main/java/jenkins/mvn/GlobalMavenConfig.java b/core/src/main/java/jenkins/mvn/GlobalMavenConfig.java index 67ace424e899..8599b980f97c 100644 --- a/core/src/main/java/jenkins/mvn/GlobalMavenConfig.java +++ b/core/src/main/java/jenkins/mvn/GlobalMavenConfig.java @@ -4,10 +4,11 @@ import jenkins.model.GlobalConfiguration; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; //as close as it gets to the global Maven Project configuration -@Extension(ordinal = 50) +@Extension(ordinal = 50) @Symbol("maven") public class GlobalMavenConfig extends GlobalConfiguration { private SettingsProvider settingsProvider; private GlobalSettingsProvider globalSettingsProvider; diff --git a/core/src/main/java/jenkins/security/LastGrantedAuthoritiesProperty.java b/core/src/main/java/jenkins/security/LastGrantedAuthoritiesProperty.java index 3f5924cabd64..febb0dcc3ced 100644 --- a/core/src/main/java/jenkins/security/LastGrantedAuthoritiesProperty.java +++ b/core/src/main/java/jenkins/security/LastGrantedAuthoritiesProperty.java @@ -12,6 +12,7 @@ import org.acegisecurity.GrantedAuthority; import org.acegisecurity.GrantedAuthorityImpl; import org.acegisecurity.userdetails.UserDetails; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import javax.annotation.Nonnull; @@ -146,7 +147,7 @@ protected void loggedOut(@Nonnull String username) { } } - @Extension + @Extension @Symbol("lastGrantedAuthorities") public static final class DescriptorImpl extends UserPropertyDescriptor { @Override public boolean isEnabled() { diff --git a/core/src/main/java/jenkins/security/QueueItemAuthenticatorConfiguration.java b/core/src/main/java/jenkins/security/QueueItemAuthenticatorConfiguration.java index 9bc8ef001710..dfa8f95f6313 100644 --- a/core/src/main/java/jenkins/security/QueueItemAuthenticatorConfiguration.java +++ b/core/src/main/java/jenkins/security/QueueItemAuthenticatorConfiguration.java @@ -7,6 +7,7 @@ import jenkins.model.GlobalConfigurationCategory; import jenkins.model.Jenkins; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -18,7 +19,7 @@ * @author Kohsuke Kawaguchi * @since 1.520 */ -@Extension +@Extension @Symbol("queueItemAuthenticator") public class QueueItemAuthenticatorConfiguration extends GlobalConfiguration { private final DescribableList authenticators = new DescribableList(this); diff --git a/core/src/main/java/jenkins/security/RekeySecretAdminMonitor.java b/core/src/main/java/jenkins/security/RekeySecretAdminMonitor.java index ea96951bcf49..05a22b94d97d 100644 --- a/core/src/main/java/jenkins/security/RekeySecretAdminMonitor.java +++ b/core/src/main/java/jenkins/security/RekeySecretAdminMonitor.java @@ -10,6 +10,7 @@ import jenkins.management.AsynchronousAdministrativeMonitor; import jenkins.model.Jenkins; import jenkins.util.io.FileBoolean; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.StaplerRequest; @@ -28,7 +29,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("rekeySecret") public class RekeySecretAdminMonitor extends AsynchronousAdministrativeMonitor implements StaplerProxy { /** diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java index e972209772b3..753449375ab9 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java @@ -11,6 +11,7 @@ import jenkins.model.Jenkins; import jenkins.security.ChannelConfigurator; import jenkins.security.HMACConfidentialKey; +import org.jenkinsci.Symbol; import org.jenkinsci.remoting.nio.NioChannelHub; import javax.inject.Inject; @@ -52,7 +53,7 @@ * @author Kohsuke Kawaguchi * @since 1.467 */ -@Extension +@Extension @Symbol("jnlp") public class JnlpSlaveAgentProtocol extends AgentProtocol { @Inject NioChannelSelector hub; diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java index 94bdad709116..124e3bd1bf1d 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java @@ -1,6 +1,7 @@ package jenkins.slaves; import hudson.Extension; +import org.jenkinsci.Symbol; import org.jenkinsci.remoting.nio.NioChannelHub; import java.io.ByteArrayInputStream; @@ -18,7 +19,7 @@ * @author Kohsuke Kawaguchi * @since 1.467 */ -@Extension +@Extension @Symbol("jnlp2") public class JnlpSlaveAgentProtocol2 extends JnlpSlaveAgentProtocol { @Override public String getName() { From ee29ef552a573c3627a10730554c6de5828326af Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 13:59:37 -0700 Subject: [PATCH 11/23] More symbols --- .../main/java/hudson/diagnosis/ReverseProxySetupMonitor.java | 3 ++- core/src/main/java/hudson/model/RunParameterDefinition.java | 3 ++- .../src/main/java/hudson/model/StringParameterDefinition.java | 3 ++- core/src/main/java/hudson/slaves/RetentionStrategy.java | 2 +- .../java/hudson/slaves/SimpleScheduledRetentionStrategy.java | 3 ++- core/src/main/java/hudson/tasks/Shell.java | 3 ++- core/src/main/java/hudson/triggers/SCMTrigger.java | 3 ++- .../main/java/jenkins/diagnostics/SecurityIsOffMonitor.java | 3 ++- core/src/main/java/jenkins/management/ShutdownLink.java | 3 ++- core/src/main/java/jenkins/management/StatisticsLink.java | 3 ++- core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java | 4 +++- 11 files changed, 22 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/hudson/diagnosis/ReverseProxySetupMonitor.java b/core/src/main/java/hudson/diagnosis/ReverseProxySetupMonitor.java index 94412637bfcd..63f4cb255c15 100644 --- a/core/src/main/java/hudson/diagnosis/ReverseProxySetupMonitor.java +++ b/core/src/main/java/hudson/diagnosis/ReverseProxySetupMonitor.java @@ -26,6 +26,7 @@ import hudson.Extension; import hudson.Util; import hudson.model.AdministrativeMonitor; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; @@ -48,7 +49,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("reverseProxy") public class ReverseProxySetupMonitor extends AdministrativeMonitor { private static final Logger LOGGER = Logger.getLogger(ReverseProxySetupMonitor.class.getName()); diff --git a/core/src/main/java/hudson/model/RunParameterDefinition.java b/core/src/main/java/hudson/model/RunParameterDefinition.java index 07195499d668..da1e7865e627 100644 --- a/core/src/main/java/hudson/model/RunParameterDefinition.java +++ b/core/src/main/java/hudson/model/RunParameterDefinition.java @@ -26,6 +26,7 @@ import jenkins.model.Jenkins; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.Exported; @@ -133,7 +134,7 @@ public RunList getBuilds() { } } - @Extension + @Extension @Symbol({"run","runParam"}) public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/model/StringParameterDefinition.java b/core/src/main/java/hudson/model/StringParameterDefinition.java index 39a95f07e7c1..c38bffc5a528 100644 --- a/core/src/main/java/hudson/model/StringParameterDefinition.java +++ b/core/src/main/java/hudson/model/StringParameterDefinition.java @@ -25,6 +25,7 @@ import hudson.Extension; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; @@ -69,7 +70,7 @@ public StringParameterValue getDefaultParameterValue() { return v; } - @Extension + @Extension @Symbol({"string","stringParam"}) public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/slaves/RetentionStrategy.java b/core/src/main/java/hudson/slaves/RetentionStrategy.java index f6d973b20a2d..90fa17331de5 100644 --- a/core/src/main/java/hudson/slaves/RetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/RetentionStrategy.java @@ -277,7 +277,7 @@ public long check(final SlaveComputer c) { return 1; } - @Extension + @Extension @Symbol("demand") public static class DescriptorImpl extends Descriptor> { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java index 9ab5878d52e4..073f67937cb3 100644 --- a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java @@ -31,6 +31,7 @@ import hudson.model.Queue; import hudson.scheduler.CronTabList; import hudson.util.FormValidation; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -243,7 +244,7 @@ private boolean isOnlineScheduled() { return (lastStart < now && lastStop > now) || (nextStart < now && nextStop > now); } - @Extension + @Extension @Symbol("schedule") public static class DescriptorImpl extends Descriptor> { public String getDisplayName() { return Messages.SimpleScheduledRetentionStrategy_displayName(); diff --git a/core/src/main/java/hudson/tasks/Shell.java b/core/src/main/java/hudson/tasks/Shell.java index 45d9c7d84cef..701bccb4b625 100644 --- a/core/src/main/java/hudson/tasks/Shell.java +++ b/core/src/main/java/hudson/tasks/Shell.java @@ -35,6 +35,7 @@ import hudson.util.LineEndingConversion; import jenkins.security.MasterToSlaveCallable; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.QueryParameter; @@ -102,7 +103,7 @@ private Object readResolve() throws ObjectStreamException { return new Shell(command); } - @Extension + @Extension @Symbol("shell") public static class DescriptorImpl extends BuildStepDescriptor { /** * Shell executable, or null to default. diff --git a/core/src/main/java/hudson/triggers/SCMTrigger.java b/core/src/main/java/hudson/triggers/SCMTrigger.java index 6f772064a59f..f46b3654dd1e 100644 --- a/core/src/main/java/hudson/triggers/SCMTrigger.java +++ b/core/src/main/java/hudson/triggers/SCMTrigger.java @@ -48,6 +48,7 @@ import hudson.util.TimeUnit2; import org.apache.commons.io.FileUtils; import org.apache.commons.jelly.XMLOutput; +import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.stapler.StaplerRequest; @@ -176,7 +177,7 @@ public File getLogFile() { return new File(job.getRootDir(),"scm-polling.log"); } - @Extension + @Extension @Symbol("scm") public static class DescriptorImpl extends TriggerDescriptor { private static ThreadFactory threadFactory() { diff --git a/core/src/main/java/jenkins/diagnostics/SecurityIsOffMonitor.java b/core/src/main/java/jenkins/diagnostics/SecurityIsOffMonitor.java index 23148724b23b..b31e065a706d 100644 --- a/core/src/main/java/jenkins/diagnostics/SecurityIsOffMonitor.java +++ b/core/src/main/java/jenkins/diagnostics/SecurityIsOffMonitor.java @@ -3,6 +3,7 @@ import hudson.Extension; import hudson.model.AdministrativeMonitor; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -17,7 +18,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("securityIsOff") public class SecurityIsOffMonitor extends AdministrativeMonitor { @Override public boolean isActivated() { diff --git a/core/src/main/java/jenkins/management/ShutdownLink.java b/core/src/main/java/jenkins/management/ShutdownLink.java index 488b2c0e13fe..76fb7439e581 100644 --- a/core/src/main/java/jenkins/management/ShutdownLink.java +++ b/core/src/main/java/jenkins/management/ShutdownLink.java @@ -27,11 +27,12 @@ import hudson.Extension; import hudson.model.ManagementLink; import jenkins.model.Jenkins; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MIN_VALUE) +@Extension(ordinal = Integer.MIN_VALUE) @Symbol("shutDown") public class ShutdownLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/management/StatisticsLink.java b/core/src/main/java/jenkins/management/StatisticsLink.java index 6ec5536af349..9821781d789a 100644 --- a/core/src/main/java/jenkins/management/StatisticsLink.java +++ b/core/src/main/java/jenkins/management/StatisticsLink.java @@ -26,11 +26,12 @@ import hudson.Extension; import hudson.model.ManagementLink; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MAX_VALUE - 700) +@Extension(ordinal = Integer.MAX_VALUE - 700) @Symbol("loadStatistics") public class StatisticsLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java b/core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java index 530533dac663..05bc2f32a591 100644 --- a/core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java +++ b/core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java @@ -68,6 +68,7 @@ import org.acegisecurity.context.SecurityContext; import org.acegisecurity.context.SecurityContextHolder; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -179,7 +180,8 @@ private boolean shouldTrigger(Run upstreamBuild, TaskListener listener) { } } - @Extension public static final class DescriptorImpl extends TriggerDescriptor { + @Extension @Symbol("upstream") + public static final class DescriptorImpl extends TriggerDescriptor { @Override public String getDisplayName() { return Messages.ReverseBuildTrigger_build_after_other_projects_are_built(); From d3dc64737e87062f07900980495c82b1f879b0f7 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 14:00:55 -0700 Subject: [PATCH 12/23] descriptor fixup --- .../java/hudson/node_monitors/SwapSpaceMonitor.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java index c289d0fbddcc..29d86667e4cb 100644 --- a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java @@ -80,8 +80,18 @@ public String getColumnCaption() { return Jenkins.getInstance().hasPermission(Jenkins.ADMINISTER) ? super.getColumnCaption() : null; } + /** + * @deprecated as of 2.0 + * use injection + */ + public static /*almost final*/ AbstractNodeMonitorDescriptor DESCRIPTOR; + @Extension - public static final AbstractNodeMonitorDescriptor DESCRIPTOR = new AbstractAsyncNodeMonitorDescriptor() { + public static class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor { + public DescriptorImpl() { + DESCRIPTOR = this; + } + @Override protected MonitorTask createCallable(Computer c) { return new MonitorTask(); From 47c880e647f8a7ee9031e9e89247896083456817 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 14:01:52 -0700 Subject: [PATCH 13/23] More symbols --- core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java | 3 ++- core/src/main/java/jenkins/management/SystemLogLink.java | 3 ++- .../jenkins/slaves/systemInfo/SystemPropertySlaveInfo.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java index 29d86667e4cb..1fe298b4f3dd 100644 --- a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java @@ -30,6 +30,7 @@ import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.jvnet.hudson.MemoryMonitor; import org.jvnet.hudson.MemoryUsage; import org.kohsuke.stapler.StaplerRequest; @@ -86,7 +87,7 @@ public String getColumnCaption() { */ public static /*almost final*/ AbstractNodeMonitorDescriptor DESCRIPTOR; - @Extension + @Extension @Symbol("swapSpace") public static class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor { public DescriptorImpl() { DESCRIPTOR = this; diff --git a/core/src/main/java/jenkins/management/SystemLogLink.java b/core/src/main/java/jenkins/management/SystemLogLink.java index 88c832d2e233..1ee08aca0080 100644 --- a/core/src/main/java/jenkins/management/SystemLogLink.java +++ b/core/src/main/java/jenkins/management/SystemLogLink.java @@ -26,11 +26,12 @@ import hudson.Extension; import hudson.model.ManagementLink; +import org.jenkinsci.Symbol; /** * @author Nicolas De Loof */ -@Extension(ordinal = Integer.MAX_VALUE - 600) +@Extension(ordinal = Integer.MAX_VALUE - 600) @Symbol("log") public class SystemLogLink extends ManagementLink { @Override diff --git a/core/src/main/java/jenkins/slaves/systemInfo/SystemPropertySlaveInfo.java b/core/src/main/java/jenkins/slaves/systemInfo/SystemPropertySlaveInfo.java index fe30064f241c..553f69d8695a 100644 --- a/core/src/main/java/jenkins/slaves/systemInfo/SystemPropertySlaveInfo.java +++ b/core/src/main/java/jenkins/slaves/systemInfo/SystemPropertySlaveInfo.java @@ -1,11 +1,12 @@ package jenkins.slaves.systemInfo; import hudson.Extension; +import org.jenkinsci.Symbol; /** * @author Kohsuke Kawaguchi */ -@Extension(ordinal=3) +@Extension(ordinal=3) @Symbol("systemProperties") public class SystemPropertySlaveInfo extends SlaveSystemInfo { @Override public String getDisplayName() { From d982647de21b43b9221d2c1720a1413b46536fc4 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 14:03:12 -0700 Subject: [PATCH 14/23] Field descriptor fixup --- .../node_monitors/TemporarySpaceMonitor.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java b/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java index 07e99b886629..65cd4144692f 100644 --- a/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java @@ -61,7 +61,18 @@ public String getColumnCaption() { return Jenkins.getInstance().hasPermission(Jenkins.ADMINISTER) ? super.getColumnCaption() : null; } - public static final DiskSpaceMonitorDescriptor DESCRIPTOR = new DiskSpaceMonitorDescriptor() { + /** + * @deprecated as of 2.0 + * Use injection + */ + public static /*almost final*/ DiskSpaceMonitorDescriptor DESCRIPTOR; + + @Extension + public static class DescriptorImpl extends DiskSpaceMonitorDescriptor { + public DescriptorImpl() { + DESCRIPTOR = this; + } + public String getDisplayName() { return Messages.TemporarySpaceMonitor_DisplayName(); } @@ -76,9 +87,11 @@ protected Callable createCallable(Computer c) { return p.asCallableWith(new GetTempSpace()); } - }; + } - @Extension + /** + * @deprecated as of 2.0 + */ public static DiskSpaceMonitorDescriptor install() { return DESCRIPTOR; } From 6330f8a5cf5edd268cf791e6a48d0bdcb3216758 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 19 Mar 2016 14:07:10 -0700 Subject: [PATCH 15/23] More symbol annotations --- core/src/main/java/hudson/console/UrlAnnotator.java | 3 ++- core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java | 3 ++- core/src/main/java/hudson/model/TextParameterDefinition.java | 3 ++- core/src/main/java/hudson/model/UpdateCenter.java | 3 ++- core/src/main/java/hudson/model/User.java | 3 ++- core/src/main/java/hudson/model/WorkspaceCleanupThread.java | 3 ++- .../main/java/hudson/node_monitors/TemporarySpaceMonitor.java | 3 ++- core/src/main/java/hudson/os/solaris/ZFSProvisioner.java | 3 ++- core/src/main/java/hudson/search/UserSearchProperty.java | 3 ++- core/src/main/java/hudson/security/WhoAmI.java | 3 ++- core/src/main/java/hudson/tools/ToolLocationNodeProperty.java | 3 ++- core/src/main/java/hudson/tools/ZipExtractionInstaller.java | 4 +++- core/src/main/java/hudson/triggers/TimerTrigger.java | 3 ++- core/src/main/java/hudson/triggers/Trigger.java | 3 ++- core/src/main/java/hudson/views/ViewsTabBar.java | 3 ++- .../java/jenkins/slaves/systemInfo/ThreadDumpSlaveInfo.java | 3 ++- 16 files changed, 33 insertions(+), 16 deletions(-) diff --git a/core/src/main/java/hudson/console/UrlAnnotator.java b/core/src/main/java/hudson/console/UrlAnnotator.java index 6adc511be968..95b7b8f4f0d9 100644 --- a/core/src/main/java/hudson/console/UrlAnnotator.java +++ b/core/src/main/java/hudson/console/UrlAnnotator.java @@ -3,6 +3,7 @@ import hudson.Extension; import hudson.MarkupText; import hudson.MarkupText.SubText; +import org.jenkinsci.Symbol; import java.util.regex.Pattern; @@ -11,7 +12,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("url") public class UrlAnnotator extends ConsoleAnnotatorFactory { @Override public ConsoleAnnotator newInstance(Object context) { diff --git a/core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java b/core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java index 80ea45c9e6be..2ca4f2b28990 100644 --- a/core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java +++ b/core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java @@ -26,6 +26,7 @@ import hudson.model.AdministrativeMonitor; import jenkins.model.Jenkins; import hudson.Extension; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -39,7 +40,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("tooManyJobsNoView") public class TooManyJobsButNoView extends AdministrativeMonitor { public boolean isActivated() { Jenkins h = Jenkins.getInstance(); diff --git a/core/src/main/java/hudson/model/TextParameterDefinition.java b/core/src/main/java/hudson/model/TextParameterDefinition.java index 53605754ea98..b3f3538b40b6 100644 --- a/core/src/main/java/hudson/model/TextParameterDefinition.java +++ b/core/src/main/java/hudson/model/TextParameterDefinition.java @@ -25,6 +25,7 @@ import hudson.Extension; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; @@ -37,7 +38,7 @@ public TextParameterDefinition(String name, String defaultValue, String descript super(name, defaultValue, description); } - @Extension + @Extension @Symbol({"text","textParam"}) public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index 729298a5d101..5eae9d16d444 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -64,6 +64,7 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.input.CountingInputStream; import org.apache.commons.io.output.NullOutputStream; +import org.jenkinsci.Symbol; import org.jvnet.localizer.Localizable; import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.stapler.HttpResponse; @@ -887,7 +888,7 @@ public List updateAllSites() throws InterruptedException, Execut /** * {@link AdministrativeMonitor} that checks if there's Jenkins update. */ - @Extension + @Extension @Symbol("coreUpdate") public static final class CoreUpdateMonitor extends AdministrativeMonitor { public boolean isActivated() { Data data = getData(); diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java index e2a09768f473..f2ef1d857e47 100644 --- a/core/src/main/java/hudson/model/User.java +++ b/core/src/main/java/hudson/model/User.java @@ -51,6 +51,7 @@ import org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken; import org.acegisecurity.userdetails.UserDetails; import org.acegisecurity.userdetails.UsernameNotFoundException; +import org.jenkinsci.Symbol; import org.springframework.dao.DataAccessException; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -980,7 +981,7 @@ public int getPriority() { /** * Resolve user ID from full name */ - @Extension + @Extension @Symbol("fullName") public static class FullNameIdResolver extends CanonicalIdResolver { @Override diff --git a/core/src/main/java/hudson/model/WorkspaceCleanupThread.java b/core/src/main/java/hudson/model/WorkspaceCleanupThread.java index 60a53f3e2558..8625db704d00 100644 --- a/core/src/main/java/hudson/model/WorkspaceCleanupThread.java +++ b/core/src/main/java/hudson/model/WorkspaceCleanupThread.java @@ -37,13 +37,14 @@ import javax.annotation.Nonnull; import jenkins.model.Jenkins; import jenkins.model.ModifiableTopLevelItemGroup; +import org.jenkinsci.Symbol; /** * Clean up old left-over workspaces from agents. * * @author Kohsuke Kawaguchi */ -@Extension +@Extension @Symbol("workspaceCleanup") public class WorkspaceCleanupThread extends AsyncPeriodicWork { public WorkspaceCleanupThread() { super("Workspace clean-up"); diff --git a/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java b/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java index 65cd4144692f..05e148cf6a06 100644 --- a/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/TemporarySpaceMonitor.java @@ -32,6 +32,7 @@ import jenkins.model.Jenkins; import hudson.node_monitors.DiskSpaceMonitorDescriptor.DiskSpace; import hudson.remoting.VirtualChannel; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import java.io.File; @@ -67,7 +68,7 @@ public String getColumnCaption() { */ public static /*almost final*/ DiskSpaceMonitorDescriptor DESCRIPTOR; - @Extension + @Extension @Symbol("tmpSpace") public static class DescriptorImpl extends DiskSpaceMonitorDescriptor { public DescriptorImpl() { DESCRIPTOR = this; diff --git a/core/src/main/java/hudson/os/solaris/ZFSProvisioner.java b/core/src/main/java/hudson/os/solaris/ZFSProvisioner.java index bff594b22770..229b5affb54e 100644 --- a/core/src/main/java/hudson/os/solaris/ZFSProvisioner.java +++ b/core/src/main/java/hudson/os/solaris/ZFSProvisioner.java @@ -39,6 +39,7 @@ import java.io.File; import java.io.Serializable; +import org.jenkinsci.Symbol; import org.jvnet.solaris.libzfs.LibZFS; import org.jvnet.solaris.libzfs.ZFSFileSystem; @@ -111,7 +112,7 @@ public WorkspaceSnapshot snapshot(AbstractBuild build, FilePath ws, String throw new UnsupportedOperationException(); } - @Extension + @Extension @Symbol("zfs") public static final class DescriptorImpl extends FileSystemProvisionerDescriptor { public boolean discard(FilePath ws, TaskListener listener) throws IOException, InterruptedException { // TODO diff --git a/core/src/main/java/hudson/search/UserSearchProperty.java b/core/src/main/java/hudson/search/UserSearchProperty.java index bae9fa1da3be..3d74013d3bbd 100644 --- a/core/src/main/java/hudson/search/UserSearchProperty.java +++ b/core/src/main/java/hudson/search/UserSearchProperty.java @@ -6,6 +6,7 @@ import hudson.model.UserPropertyDescriptor; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.Exported; @@ -32,7 +33,7 @@ public static boolean isCaseInsensitive(){ } - @Extension + @Extension @Symbol("search") public static final class DescriptorImpl extends UserPropertyDescriptor { public String getDisplayName() { return Messages.UserSearchProperty_DisplayName(); diff --git a/core/src/main/java/hudson/security/WhoAmI.java b/core/src/main/java/hudson/security/WhoAmI.java index 2c450df2fb9b..76faab1948af 100644 --- a/core/src/main/java/hudson/security/WhoAmI.java +++ b/core/src/main/java/hudson/security/WhoAmI.java @@ -12,6 +12,7 @@ import org.acegisecurity.Authentication; import org.acegisecurity.GrantedAuthority; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -21,7 +22,7 @@ * @author Ryan Campbell * */ -@Extension +@Extension @Symbol("whoAmI") @ExportedBean public class WhoAmI implements UnprotectedRootAction { diff --git a/core/src/main/java/hudson/tools/ToolLocationNodeProperty.java b/core/src/main/java/hudson/tools/ToolLocationNodeProperty.java index cd5157ed46ee..d5a356083953 100644 --- a/core/src/main/java/hudson/tools/ToolLocationNodeProperty.java +++ b/core/src/main/java/hudson/tools/ToolLocationNodeProperty.java @@ -35,6 +35,7 @@ import java.io.IOException; import java.util.ArrayList; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import java.util.Arrays; @@ -115,7 +116,7 @@ public static String getToolHome(Node node, ToolInstallation installation, TaskL return installation.getHome(); } - @Extension + @Extension @Symbol("toolLocation") public static class DescriptorImpl extends NodePropertyDescriptor { public String getDisplayName() { diff --git a/core/src/main/java/hudson/tools/ZipExtractionInstaller.java b/core/src/main/java/hudson/tools/ZipExtractionInstaller.java index 38e536bfd3cd..ba91cfe45763 100644 --- a/core/src/main/java/hudson/tools/ZipExtractionInstaller.java +++ b/core/src/main/java/hudson/tools/ZipExtractionInstaller.java @@ -41,6 +41,8 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; + +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -86,7 +88,7 @@ public FilePath performInstallation(ToolInstallation tool, Node node, TaskListen } } - @Extension + @Extension @Symbol("zip") public static class DescriptorImpl extends ToolInstallerDescriptor { public String getDisplayName() { diff --git a/core/src/main/java/hudson/triggers/TimerTrigger.java b/core/src/main/java/hudson/triggers/TimerTrigger.java index c2a3ee4574cb..4380c0797cd8 100644 --- a/core/src/main/java/hudson/triggers/TimerTrigger.java +++ b/core/src/main/java/hudson/triggers/TimerTrigger.java @@ -38,6 +38,7 @@ import java.util.Calendar; import java.util.Collection; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -65,7 +66,7 @@ public void run() { job.scheduleBuild(0, new TimerTriggerCause()); } - @Extension + @Extension @Symbol("cron") public static class DescriptorImpl extends TriggerDescriptor { public boolean isApplicable(Item item) { return item instanceof BuildableItem; diff --git a/core/src/main/java/hudson/triggers/Trigger.java b/core/src/main/java/hudson/triggers/Trigger.java index 65350e48ca78..c528983085a6 100644 --- a/core/src/main/java/hudson/triggers/Trigger.java +++ b/core/src/main/java/hudson/triggers/Trigger.java @@ -63,6 +63,7 @@ import edu.umd.cs.findbugs.annotations.SuppressWarnings; import hudson.model.Items; import jenkins.model.ParameterizedJobMixIn; +import org.jenkinsci.Symbol; /** * Triggers a {@link Build}. @@ -197,7 +198,7 @@ protected Object readResolve() throws ObjectStreamException { /** * Runs every minute to check {@link TimerTrigger} and schedules build. */ - @Extension + @Extension @Symbol("cron") public static class Cron extends PeriodicWork { private final Calendar cal = new GregorianCalendar(); diff --git a/core/src/main/java/hudson/views/ViewsTabBar.java b/core/src/main/java/hudson/views/ViewsTabBar.java index 4304290b48e6..579f110ce5a3 100644 --- a/core/src/main/java/hudson/views/ViewsTabBar.java +++ b/core/src/main/java/hudson/views/ViewsTabBar.java @@ -33,6 +33,7 @@ import jenkins.model.Jenkins; import hudson.model.ListView; import net.sf.json.JSONObject; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.StaplerRequest; /** @@ -69,7 +70,7 @@ public ViewsTabBarDescriptor getDescriptor() { * * @author Kohsuke Kawaguchi */ - @Extension(ordinal=310) + @Extension(ordinal=310) @Symbol("viewsTabBar") public static class GlobalConfigurationImpl extends GlobalConfiguration { public ViewsTabBar getViewsTabBar() { return Jenkins.getInstance().getViewsTabBar(); diff --git a/core/src/main/java/jenkins/slaves/systemInfo/ThreadDumpSlaveInfo.java b/core/src/main/java/jenkins/slaves/systemInfo/ThreadDumpSlaveInfo.java index b0feabd0f845..b4a1a040e782 100644 --- a/core/src/main/java/jenkins/slaves/systemInfo/ThreadDumpSlaveInfo.java +++ b/core/src/main/java/jenkins/slaves/systemInfo/ThreadDumpSlaveInfo.java @@ -1,11 +1,12 @@ package jenkins.slaves.systemInfo; import hudson.Extension; +import org.jenkinsci.Symbol; /** * @author Kohsuke Kawaguchi */ -@Extension(ordinal=1) +@Extension(ordinal=1) @Symbol("threadDump") public class ThreadDumpSlaveInfo extends SlaveSystemInfo { @Override public String getDisplayName() { From 12433f023fe40d6ec3eed5c5808e67e1031f97b3 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 22 Mar 2016 10:39:23 -0700 Subject: [PATCH 16/23] Rely on a released version --- core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/pom.xml b/core/pom.xml index 4db64f56c39a..64049e8e3108 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -561,7 +561,7 @@ THE SOFTWARE. org.jenkins-ci symbol-annotation - 1.0-SNAPSHOT + 1.1 From cabf0e9a5ea7f3ceb22e938baf2412f3998e3cb4 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 22 Mar 2016 13:46:55 -0700 Subject: [PATCH 17/23] Changing this based on James Nord's suggestion --- .../security/FullControlOnceLoggedInAuthorizationStrategy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java b/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java index 16f1515bb341..9c009f3ae6c6 100644 --- a/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java @@ -93,7 +93,7 @@ public void setAllowAnonymousRead(boolean allowAnonymousRead) { @Restricted(NoExternalUse.class) public static Descriptor DESCRIPTOR; - @Extension @Symbol("fullControlOnceLoggedIn") + @Extension @Symbol("loggedInUsersCanDoAnything") public static class DescriptorImpl extends Descriptor { public DescriptorImpl() { DESCRIPTOR = this; From 654285627926ad7cd3483fc5b4f2219cba7694ca Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 22 Mar 2016 13:55:41 -0700 Subject: [PATCH 18/23] This is not Describable, so no @DataBoundSetter here --- core/src/main/java/jenkins/model/Jenkins.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 2b315da5d675..5d53b671ee06 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -1597,7 +1597,6 @@ public void addView(View v) throws IOException { /** * Completely replaces views */ - @DataBoundSetter public void setViews(Collection views) throws IOException { BulkChange bc = new BulkChange(this); try { From 53be006b978f4ad3518c7793fc1ccd6dfca6b2f8 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 22 Mar 2016 13:56:14 -0700 Subject: [PATCH 19/23] Renamed based on James Nord suggestion --- core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java b/core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java index 2ca4f2b28990..f4507ca8d13f 100644 --- a/core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java +++ b/core/src/main/java/hudson/diagnosis/TooManyJobsButNoView.java @@ -40,7 +40,7 @@ * * @author Kohsuke Kawaguchi */ -@Extension @Symbol("tooManyJobsNoView") +@Extension @Symbol("tooManyJobsButNoView") public class TooManyJobsButNoView extends AdministrativeMonitor { public boolean isActivated() { Jenkins h = Jenkins.getInstance(); From f94ce3ac44ae47869daeceba76b01605de44c777 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 26 Apr 2016 16:13:03 -0700 Subject: [PATCH 20/23] Added consistent names matching with other ParameterDescriptors ... based on comments in PR #2160 --- .../main/java/hudson/model/BooleanParameterDefinition.java | 4 +++- .../src/main/java/hudson/model/ChoiceParameterDefinition.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/model/BooleanParameterDefinition.java b/core/src/main/java/hudson/model/BooleanParameterDefinition.java index 493337339adc..8eba057c4be7 100644 --- a/core/src/main/java/hudson/model/BooleanParameterDefinition.java +++ b/core/src/main/java/hudson/model/BooleanParameterDefinition.java @@ -73,7 +73,9 @@ public BooleanParameterValue getDefaultParameterValue() { return new BooleanParameterValue(getName(), defaultValue, getDescription()); } - @Extension @Symbol("booleanParam") + // unlike all the other ParameterDescriptors, using 'booleanParam' as the primary + // to avoid picking the Java reserved word "boolean" as the primary identifier + @Extension @Symbol({"booleanParam","boolean"}) public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java index cbf0bf30fb06..964d05a21428 100644 --- a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java +++ b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java @@ -92,7 +92,7 @@ public StringParameterValue createValue(String value) { return checkValue(new StringParameterValue(getName(), value, getDescription())); } - @Extension @Symbol("choiceParam") + @Extension @Symbol({"choice","choiceParam"}) public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { From 137e8ce46b9ae6307ecf43cad219f4f15ef6ef9b Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 26 Apr 2016 16:23:15 -0700 Subject: [PATCH 21/23] Clarifying that this is not atomic and that's OK for the use case. --- core/src/main/java/jenkins/model/Jenkins.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index e0d6c606dee0..f884084700fc 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -1602,8 +1602,15 @@ public void addView(View v) throws IOException { } /** - * Completely replaces views + * Completely replaces views. + * + *

+ * This operation is NOT provided as an atomic operation, but rather + * the sole purpose of this is to define a setter for this to help + * introspecting code, such as system-config-dsl plugin */ + // even if we want to offer this atomic operation, CopyOnWriteArrayList + // offers no such operation public void setViews(Collection views) throws IOException { BulkChange bc = new BulkChange(this); try { From 2a7ed690722fa055a5aec912c321b9eb3f795902 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Thu, 28 Apr 2016 19:14:32 -0700 Subject: [PATCH 22/23] 'boolean' is a not a valid Java identifier --- core/src/main/java/hudson/model/BooleanParameterDefinition.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/BooleanParameterDefinition.java b/core/src/main/java/hudson/model/BooleanParameterDefinition.java index 8eba057c4be7..15cb4ec80aee 100644 --- a/core/src/main/java/hudson/model/BooleanParameterDefinition.java +++ b/core/src/main/java/hudson/model/BooleanParameterDefinition.java @@ -75,7 +75,7 @@ public BooleanParameterValue getDefaultParameterValue() { // unlike all the other ParameterDescriptors, using 'booleanParam' as the primary // to avoid picking the Java reserved word "boolean" as the primary identifier - @Extension @Symbol({"booleanParam","boolean"}) + @Extension @Symbol({"booleanParam"}) public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { From 15c543d2e2eb6ccf2f3e26be4f3c2725669bbb48 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Thu, 28 Apr 2016 19:16:52 -0700 Subject: [PATCH 23/23] 'default' is not a valid identifier, so we need something else. This is truly unfortunate because 'default' is how we call them in the UI. My choice is between something like 'default_' vs a synonym, so I went for 'standard' --- core/src/main/java/hudson/FileSystemProvisioner.java | 2 +- core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java | 2 +- core/src/main/java/hudson/views/DefaultMyViewsTabBar.java | 2 +- core/src/main/java/hudson/views/DefaultViewsTabBar.java | 2 +- core/src/main/java/jenkins/model/ProjectNamingStrategy.java | 2 +- .../main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java | 2 +- core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java | 2 +- .../main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/hudson/FileSystemProvisioner.java b/core/src/main/java/hudson/FileSystemProvisioner.java index d03708ebb5a4..60978a004821 100644 --- a/core/src/main/java/hudson/FileSystemProvisioner.java +++ b/core/src/main/java/hudson/FileSystemProvisioner.java @@ -236,7 +236,7 @@ public void restoreTo(AbstractBuild owner, FilePath dst, TaskListener liste } } - @Extension @Symbol("default") + @Extension @Symbol("standard") public static final class DescriptorImpl extends FileSystemProvisionerDescriptor { public boolean discard(FilePath ws, TaskListener listener) throws IOException, InterruptedException { // the default provisioner does not do anything special, diff --git a/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java b/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java index 32d10dee68e2..83dff7d7e3e5 100644 --- a/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java +++ b/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java @@ -119,7 +119,7 @@ private String getClientIP(HttpServletRequest req) { return defaultAddress; } - @Extension @Symbol("default") + @Extension @Symbol("standard") public static final class DescriptorImpl extends CrumbIssuerDescriptor implements ModelObject { private final static HexStringConfidentialKey CRUMB_SALT = new HexStringConfidentialKey(Jenkins.class,"crumbSalt",16); diff --git a/core/src/main/java/hudson/views/DefaultMyViewsTabBar.java b/core/src/main/java/hudson/views/DefaultMyViewsTabBar.java index 4e654f8198cc..9ebc1e63599c 100644 --- a/core/src/main/java/hudson/views/DefaultMyViewsTabBar.java +++ b/core/src/main/java/hudson/views/DefaultMyViewsTabBar.java @@ -39,7 +39,7 @@ public class DefaultMyViewsTabBar extends MyViewsTabBar { public DefaultMyViewsTabBar() { } - @Extension @Symbol("default") + @Extension @Symbol("standard") public static class DescriptorImpl extends MyViewsTabBarDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/hudson/views/DefaultViewsTabBar.java b/core/src/main/java/hudson/views/DefaultViewsTabBar.java index cfe91c84ab2a..e9e9f56dbe11 100644 --- a/core/src/main/java/hudson/views/DefaultViewsTabBar.java +++ b/core/src/main/java/hudson/views/DefaultViewsTabBar.java @@ -39,7 +39,7 @@ public class DefaultViewsTabBar extends ViewsTabBar { public DefaultViewsTabBar() { } - @Extension @Symbol("default") + @Extension @Symbol("standard") public static class DescriptorImpl extends ViewsTabBarDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/jenkins/model/ProjectNamingStrategy.java b/core/src/main/java/jenkins/model/ProjectNamingStrategy.java index b43f777750e5..71863b354cab 100644 --- a/core/src/main/java/jenkins/model/ProjectNamingStrategy.java +++ b/core/src/main/java/jenkins/model/ProjectNamingStrategy.java @@ -109,7 +109,7 @@ private Object readResolve() { return DEFAULT_NAMING_STRATEGY; } - @Extension @Symbol("default") + @Extension @Symbol("standard") public static final class DescriptorImpl extends ProjectNamingStrategyDescriptor { @Override public String getDisplayName() { diff --git a/core/src/main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java b/core/src/main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java index 6a7024d8e5c4..8aaf5b2fa86b 100644 --- a/core/src/main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java +++ b/core/src/main/java/jenkins/mvn/DefaultGlobalSettingsProvider.java @@ -24,7 +24,7 @@ public FilePath supplySettings(AbstractBuild project, TaskListener listene return null; } - @Extension(ordinal = 99) @Symbol("default") + @Extension(ordinal = 99) @Symbol("standard") public static class DescriptorImpl extends GlobalSettingsProviderDescriptor { @Override diff --git a/core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java b/core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java index f7738870b2ed..5a5bb9facaf8 100644 --- a/core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java +++ b/core/src/main/java/jenkins/mvn/DefaultSettingsProvider.java @@ -24,7 +24,7 @@ public FilePath supplySettings(AbstractBuild project, TaskListener listene return null; } - @Extension(ordinal = 99) @Symbol("default") + @Extension(ordinal = 99) @Symbol("standard") public static class DescriptorImpl extends SettingsProviderDescriptor { @Override diff --git a/core/src/main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java b/core/src/main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java index 97f5f46ffeb8..ec0ca2ecdc52 100644 --- a/core/src/main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java +++ b/core/src/main/java/jenkins/scm/DefaultSCMCheckoutStrategyImpl.java @@ -13,7 +13,7 @@ public class DefaultSCMCheckoutStrategyImpl extends SCMCheckoutStrategy { @DataBoundConstructor public DefaultSCMCheckoutStrategyImpl() {} - @Extension @Symbol("default") + @Extension @Symbol("standard") public static class DescriptorImpl extends SCMCheckoutStrategyDescriptor { @Override public String getDisplayName() {