resources = new ArrayList<>();
- if (FAST_LOOKUP) {
- for (PluginWrapper p : activePlugins) {
- resources.addAll(Collections.list(ClassLoaderReflectionToolkit._findResources(p.classLoader, name)));
- }
- } else {
- for (PluginWrapper p : activePlugins) {
+ for (PluginWrapper p : activePlugins) {
+ if (FAST_LOOKUP) {
+ resources.addAll(Collections.list(ClassLoaderReflectionToolkit._findResources(p.classLoader, name)));
+ } else {
resources.addAll(Collections.list(p.classLoader.getResources(name)));
}
}
diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java
index 2c2a5bf628d2..921d160a66a0 100644
--- a/core/src/main/java/hudson/PluginWrapper.java
+++ b/core/src/main/java/hudson/PluginWrapper.java
@@ -411,7 +411,7 @@ public boolean isDeprecated() {
* plugin. *
*
* @throws Exception if the File could not be inserted into the classpath for some reason.
- * @since TODO
+ * @since 2.313
*/
@Restricted(Beta.class)
public void injectJarsToClasspath(File... jars) throws Exception {
diff --git a/core/src/main/java/hudson/model/ExecutorListener.java b/core/src/main/java/hudson/model/ExecutorListener.java
index c0e5e6590bed..eb4a8cdb2681 100644
--- a/core/src/main/java/hudson/model/ExecutorListener.java
+++ b/core/src/main/java/hudson/model/ExecutorListener.java
@@ -46,7 +46,7 @@ default void taskAccepted(Executor executor, Queue.Task task) {}
* Called whenever a task is started by an executor.
* @param executor The executor.
* @param task The task.
- * @since TODO
+ * @since 2.318
*/
default void taskStarted(Executor executor, Queue.Task task) {}
diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java
index b575e4401fda..a15dedce5a6e 100644
--- a/core/src/main/java/hudson/model/Queue.java
+++ b/core/src/main/java/hudson/model/Queue.java
@@ -2076,7 +2076,7 @@ public interface Executable extends Runnable {
* If {@link #getParent} has a distinct {@link SubTask#getOwnerTask},
* then it should be the case that {@code getParentExecutable().getParent() == getParent().getOwnerTask()}.
* @return a distinct executable (never {@code this}, unlike the default of {@link SubTask#getOwnerTask}!); or null if this executable was already at top level
- * @since TODO, but implementations can already implement this with a lower core dependency.
+ * @since 2.313, but implementations can already implement this with a lower core dependency.
*/
default @CheckForNull Executable getParentExecutable() {
return null;
diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java
index 8c6041ae1399..13dd0be8be59 100644
--- a/core/src/main/java/hudson/model/User.java
+++ b/core/src/main/java/hudson/model/User.java
@@ -149,7 +149,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
* accesses a /user/arbitraryName URL.
*
* Unfortunately this constitutes a CSRF vulnerability, as malicious users can make admins create arbitrary numbers
- * of ephemeral user records, so the behavior was changed in Jenkins 2.TODO / 2.32.2.
+ * of ephemeral user records, so the behavior was changed in Jenkins 2.44 / 2.32.2.
*
* As some users may be relying on the previous behavior, setting this to true restores the previous behavior. This
* is not recommended.
diff --git a/core/src/main/java/hudson/triggers/Trigger.java b/core/src/main/java/hudson/triggers/Trigger.java
index ccfc35e3b4c6..4899b8f48445 100644
--- a/core/src/main/java/hudson/triggers/Trigger.java
+++ b/core/src/main/java/hudson/triggers/Trigger.java
@@ -312,9 +312,9 @@ public void run(AbstractProject p) {
@SuppressFBWarnings("MS_SHOULD_BE_FINAL")
@Restricted(NoExternalUse.class)
- @RestrictedSince("TODO")
+ @RestrictedSince("2.289")
/**
- * Used to be milliseconds, now is seconds since Jenkins 2.TODO.
+ * Used to be milliseconds, now is seconds since Jenkins 2.289.
*/
public static /* non-final for Groovy */ long CRON_THRESHOLD = SystemProperties.getLong(Trigger.class.getName() + ".CRON_THRESHOLD", 30L); // Default threshold 30s
diff --git a/core/src/main/java/hudson/util/ChartUtil.java b/core/src/main/java/hudson/util/ChartUtil.java
index 3562853b52e4..6fb88774ddd2 100644
--- a/core/src/main/java/hudson/util/ChartUtil.java
+++ b/core/src/main/java/hudson/util/ChartUtil.java
@@ -261,7 +261,7 @@ public static void adjustChebyshev(CategoryDataset dataset, NumberAxis yAxis) {
}
@Restricted(NoExternalUse.class)
- @RestrictedSince("2.TODO")
+ @RestrictedSince("2.301")
public static final double CHEBYSHEV_N = 3;
static {
diff --git a/core/src/main/java/hudson/util/ListBoxModel.java b/core/src/main/java/hudson/util/ListBoxModel.java
index 4d8cff88a007..c96a9f539bef 100644
--- a/core/src/main/java/hudson/util/ListBoxModel.java
+++ b/core/src/main/java/hudson/util/ListBoxModel.java
@@ -23,6 +23,7 @@
*/
package hudson.util;
+import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.model.ModelObject;
import java.io.IOException;
import java.util.ArrayList;
@@ -98,11 +99,13 @@ public static final class Option {
* Text to be displayed to user.
*/
@Exported
+ @NonNull
public String name;
/**
* The value that gets sent to the server when the form is submitted.
*/
@Exported
+ @NonNull
public String value;
/**
@@ -111,15 +114,15 @@ public static final class Option {
@Exported
public boolean selected;
- public Option(String name, String value) {
+ public Option(@NonNull String name, @NonNull String value) {
this(name,value,false);
}
- public Option(String name) {
+ public Option(@NonNull String name) {
this(name,name,false);
}
- public Option(String name, String value, boolean selected) {
+ public Option(@NonNull String name, @NonNull String value, boolean selected) {
this.name = name;
this.value = value;
this.selected = selected;
@@ -146,18 +149,18 @@ public ListBoxModel(Option... data) {
super(Arrays.asList(data));
}
- public void add(String displayName, String value) {
+ public void add(@NonNull String displayName, @NonNull String value) {
add(new Option(displayName,value));
}
- public void add(ModelObject usedForDisplayName, String value) {
+ public void add(ModelObject usedForDisplayName, @NonNull String value) {
add(usedForDisplayName.getDisplayName(), value);
}
/**
* A version of the {@link #add(String, String)} method where the display name and the value are the same.
*/
- public ListBoxModel add(String nameAndValue) {
+ public ListBoxModel add(@NonNull String nameAndValue) {
add(nameAndValue,nameAndValue);
return this;
}
diff --git a/core/src/main/java/hudson/util/XStream2.java b/core/src/main/java/hudson/util/XStream2.java
index 8d8ead7d835c..f72010157ab2 100644
--- a/core/src/main/java/hudson/util/XStream2.java
+++ b/core/src/main/java/hudson/util/XStream2.java
@@ -124,7 +124,7 @@ public XStream2(HierarchicalStreamDriver hierarchicalStreamDriver) {
}
/**
- * @since TODO
+ * @since 2.318
*/
public XStream2(ReflectionProvider reflectionProvider, HierarchicalStreamDriver driver,
ClassLoaderReference classLoaderReference, Mapper mapper, ConverterLookup converterLookup,
diff --git a/core/src/main/java/jenkins/ClassLoaderReflectionToolkit.java b/core/src/main/java/jenkins/ClassLoaderReflectionToolkit.java
index edce6b431a00..7b1c8485e742 100644
--- a/core/src/main/java/jenkins/ClassLoaderReflectionToolkit.java
+++ b/core/src/main/java/jenkins/ClassLoaderReflectionToolkit.java
@@ -145,7 +145,7 @@ private static class FindClass {
* @param name The binary name of the class.
* @return The resulting {@link Class} object.
* @throws ClassNotFoundException If the class could not be found.
- * @since 2.TODO
+ * @since 2.321
*/
public static @NonNull Class> loadClass(ClassLoader cl, String name) throws ClassNotFoundException {
synchronized (getClassLoadingLock(cl, name)) {
diff --git a/core/src/main/java/jenkins/management/ConfigureLink.java b/core/src/main/java/jenkins/management/ConfigureLink.java
index 80224c86b774..beb5ea314769 100644
--- a/core/src/main/java/jenkins/management/ConfigureLink.java
+++ b/core/src/main/java/jenkins/management/ConfigureLink.java
@@ -39,7 +39,7 @@ public class ConfigureLink extends ManagementLink {
@Override
public String getIconFileName() {
- return "gear.png";
+ return "gear2.png";
}
@Override
diff --git a/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java b/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java
index bd4d656866fe..bd906bc22335 100644
--- a/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java
+++ b/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java
@@ -37,7 +37,7 @@ public boolean getMasterToSlaveAccessControl() {
}
/**
- * @since TODO
+ * @since 2.310
*/
public boolean getAgentToControllerAccessControl() {
return !rule.getMasterKillSwitch();
diff --git a/core/src/main/java/jenkins/security/s2m/RunningBuildFilePathFilter.java b/core/src/main/java/jenkins/security/s2m/RunningBuildFilePathFilter.java
index afba9337801f..091153017e0b 100644
--- a/core/src/main/java/jenkins/security/s2m/RunningBuildFilePathFilter.java
+++ b/core/src/main/java/jenkins/security/s2m/RunningBuildFilePathFilter.java
@@ -48,7 +48,7 @@
/**
* When an agent tries to access build directories on the controller, limit it to those for builds running on that agent.
*
- * @since TODO
+ * @since 2.319
*/
@Restricted(NoExternalUse.class)
public class RunningBuildFilePathFilter extends ReflectiveFilePathFilter {
diff --git a/core/src/main/java/jenkins/tools/GlobalToolConfiguration.java b/core/src/main/java/jenkins/tools/GlobalToolConfiguration.java
index d856c15efa16..e92973f927d3 100644
--- a/core/src/main/java/jenkins/tools/GlobalToolConfiguration.java
+++ b/core/src/main/java/jenkins/tools/GlobalToolConfiguration.java
@@ -107,7 +107,7 @@ private boolean configureDescriptor(StaplerRequest req, JSONObject json, Descrip
}
@Restricted(NoExternalUse.class)
- @RestrictedSince("2.TODO")
+ @RestrictedSince("2.301")
public static final Predicate FILTER = input -> input.getCategory() instanceof ToolConfigurationCategory;
private static final Logger LOGGER = Logger.getLogger(GlobalToolConfiguration.class.getName());
diff --git a/core/src/main/java/jenkins/util/xstream/XStreamDOM.java b/core/src/main/java/jenkins/util/xstream/XStreamDOM.java
index 2d973dc06f98..8d302d011577 100644
--- a/core/src/main/java/jenkins/util/xstream/XStreamDOM.java
+++ b/core/src/main/java/jenkins/util/xstream/XStreamDOM.java
@@ -564,6 +564,6 @@ public XStreamDOM unmarshalElement(HierarchicalStreamReader r, UnmarshallingCont
}
@Restricted(NoExternalUse.class)
- @RestrictedSince("2.TODO")
+ @RestrictedSince("2.301")
public static final XmlFriendlyReplacer REPLACER = new XmlFriendlyReplacer();
}
diff --git a/core/src/main/resources/hudson/AboutJenkins/index.jelly b/core/src/main/resources/hudson/AboutJenkins/index.jelly
index 94f1cc782616..c2035fe362fa 100644
--- a/core/src/main/resources/hudson/AboutJenkins/index.jelly
+++ b/core/src/main/resources/hudson/AboutJenkins/index.jelly
@@ -25,54 +25,54 @@ THE SOFTWARE.
-
-
+
+
-
-
-
-
${%about(app.VERSION)}
-
${%blurb}
-
${%dependencies}
-
${%maven.dependencies}
-
-
-
-
-
-
-
-
- ${%No information recorded}
-
-
-
${%static.dependencies}
-
-
${%plugin.dependencies}
-
+
+
+
+ ${%about(app.VERSION)}
+
-
+
${%blurb}
+
${%dependencies}
+
${%maven.dependencies}
+
+
+
+
+
+
+
+
+ ${%No information recorded}
+
+
+
${%static.dependencies}
+
+
${%plugin.dependencies}
+
diff --git a/core/src/main/resources/hudson/AboutJenkins/sidepanel.jelly b/core/src/main/resources/hudson/AboutJenkins/sidepanel.jelly
new file mode 100644
index 000000000000..95f21cf2f670
--- /dev/null
+++ b/core/src/main/resources/hudson/AboutJenkins/sidepanel.jelly
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/src/main/resources/hudson/PluginManager/PluginCycleDependenciesMonitor/description.jelly b/core/src/main/resources/hudson/PluginManager/PluginCycleDependenciesMonitor/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/PluginManager/PluginCycleDependenciesMonitor/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/PluginManager/PluginCycleDependenciesMonitor/description.properties b/core/src/main/resources/hudson/PluginManager/PluginCycleDependenciesMonitor/description.properties
new file mode 100644
index 000000000000..a4a5ee2368c3
--- /dev/null
+++ b/core/src/main/resources/hudson/PluginManager/PluginCycleDependenciesMonitor/description.properties
@@ -0,0 +1 @@
+blurb = When Jenkins detects a cyclic dependency between plugins (a bug in one or more plugins), this message is shown.
diff --git a/core/src/main/resources/hudson/PluginManager/PluginDeprecationMonitor/description.jelly b/core/src/main/resources/hudson/PluginManager/PluginDeprecationMonitor/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/PluginManager/PluginDeprecationMonitor/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/PluginManager/PluginDeprecationMonitor/description.properties b/core/src/main/resources/hudson/PluginManager/PluginDeprecationMonitor/description.properties
new file mode 100644
index 000000000000..5a2fd5bce89d
--- /dev/null
+++ b/core/src/main/resources/hudson/PluginManager/PluginDeprecationMonitor/description.properties
@@ -0,0 +1,2 @@
+blurb = Informs administrators about the deprecation of one or more currently installed plugins. \
+ This is metadata provided by the configured update sites, and the plugin documentation will usually explain why the plugin is deprecated.
diff --git a/core/src/main/resources/hudson/PluginManager/PluginUpdateMonitor/description.jelly b/core/src/main/resources/hudson/PluginManager/PluginUpdateMonitor/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/PluginManager/PluginUpdateMonitor/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/PluginManager/PluginUpdateMonitor/description.properties b/core/src/main/resources/hudson/PluginManager/PluginUpdateMonitor/description.properties
new file mode 100644
index 000000000000..53002edafe89
--- /dev/null
+++ b/core/src/main/resources/hudson/PluginManager/PluginUpdateMonitor/description.properties
@@ -0,0 +1,3 @@
+blurb = Informs administrators about a required plugin update. \
+ This is unrelated to plugin updates being available.
+# TODO Is this even used anymore?
diff --git a/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/description.jelly b/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/description.properties b/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/description.properties
new file mode 100644
index 000000000000..bdcfa7ad447a
--- /dev/null
+++ b/core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/description.properties
@@ -0,0 +1,2 @@
+blurb = If any plugins failed to load, this informs administrators about the problem. \
+ This is a severe problem, as re-saving configuration at this point could result in the loss of configuration data related to unloadable plugins.
diff --git a/core/src/main/resources/hudson/cli/CLIAction/index.jelly b/core/src/main/resources/hudson/cli/CLIAction/index.jelly
index 5ab0bc672875..29067da07fad 100644
--- a/core/src/main/resources/hudson/cli/CLIAction/index.jelly
+++ b/core/src/main/resources/hudson/cli/CLIAction/index.jelly
@@ -27,10 +27,13 @@ THE SOFTWARE.
-
-
- ${%Jenkins CLI}
-
+
+
+
+ ${%Jenkins CLI}
+
+
+
${%blurb(rootURL)}
@@ -38,13 +41,23 @@ THE SOFTWARE.
${%Available Commands}
-
-
+
diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/description.jelly b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/description.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/description.properties
new file mode 100644
index 000000000000..8ce7d963db7f
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/description.properties
@@ -0,0 +1 @@
+blurb = This warning shows up when the available disk space for the Jenkins home directory falls below a certain threshold.
diff --git a/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/description.jelly b/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/description.properties b/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/description.properties
new file mode 100644
index 000000000000..1fd106f67dd5
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/description.properties
@@ -0,0 +1 @@
+blurb = Informs administrators about a problem with extensions in some legacy plugins.
diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/description.jelly b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/description.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/description.properties
new file mode 100644
index 000000000000..3ac955231e0b
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/description.properties
@@ -0,0 +1,2 @@
+blurb = When Jenkins configuration files contain unloadable data, this informs administrators about the problem. \
+ A common cause is plugins having been downgraded, or having changed in backwards-incompatible ways.
diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/description.jelly b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/description.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/description.properties
new file mode 100644
index 000000000000..292dcbea2c7d
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/description.properties
@@ -0,0 +1 @@
+blurb = If Jenkins is running behind a reverse proxy, this identifies problems with a bad configuration.
diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/description.jelly b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/description.jelly
new file mode 100644
index 000000000000..bb405e931933
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/description.jelly
@@ -0,0 +1,4 @@
+
+
+ ${%blurb}
+
diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/description.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/description.properties
new file mode 100644
index 000000000000..72995c50c3ed
--- /dev/null
+++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/description.properties
@@ -0,0 +1 @@
+blurb = Recommends the creation of additional views to help categorize jobs if there are none and too many jobs exist.
diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/index.jelly b/core/src/main/resources/hudson/logging/LogRecorderManager/index.jelly
index 6546379ab557..97f957a5581c 100644
--- a/core/src/main/resources/hudson/logging/LogRecorderManager/index.jelly
+++ b/core/src/main/resources/hudson/logging/LogRecorderManager/index.jelly
@@ -30,41 +30,47 @@ THE SOFTWARE.
-
- ${%Log Recorders}
-
-
+
+
+
+ ${%Log Recorders}
+
+
+
+
-
-
- |
- ${name} |
-
+ |
|
+ ${name} |
-
-
- |
- ${%Name} |
- |
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ |
+ ${%Name} |
+
+
+
+
+
+
+
+
+
+
+
+