Skip to content

Commit

Permalink
Replace JSR-305 annotations with spotbugs annotations
Browse files Browse the repository at this point in the history
Annotations for Nonnull, CheckForNull, and several others were proposed
for Java as part of dormant Java specification request JSR-305. The
proposal never became a part of standard Java.

Jenkins plugins should switch from using JSR-305 annotations to use
Spotbugs annotations that provide the same semantics.

The [mailing list discussion](https://groups.google.com/g/jenkinsci-dev/c/uE1wwtVi1W0/m/gLxdEJmlBQAJ)
from James Nord describes the affected annotations and why they should
be replaced with annotations that are actively maintained.

The ["Improve a plugin" tutorial](https://www.jenkins.io/doc/developer/tutorial-improve/replace-jsr-305-annotations/)
provides instructions to perform this change.

An [OpenRewrite recipe](https://docs.openrewrite.org/recipes/jenkins/javaxannotationstospotbugs)
is also available and is even better than the tutorial.

Confirmed that automated tests pass on Linux with Java 21.
  • Loading branch information
MarkEWaite committed May 7, 2024
1 parent ca57d8e commit 11cc152
Showing 1 changed file with 5 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
import hudson.scm.ChangeLogSet.Entry;
import org.apache.commons.lang.StringUtils;

import javax.annotation.CheckForNull;
import javax.annotation.CheckReturnValue;
import javax.annotation.Nonnull;
import edu.umd.cs.findbugs.annotations.CheckForNull;
import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import edu.umd.cs.findbugs.annotations.NonNull;

import static hudson.Functions.htmlAttributeEscape;
import static java.lang.String.format;
Expand Down Expand Up @@ -100,13 +100,13 @@ void process(MarkupText text, String url) {
"(?:C|c)lose(?:s?)\\s(?<!\\:)(?:#)NUM", // "Closes #123"
"issues/$1")};

@Nonnull
@NonNull
public static String getAllowedUriSchemes() {
return StringUtils.join(ALLOWED_URI_SCHEMES, ',');
}

@CheckReturnValue
@Nonnull
@NonNull
public static boolean verifyUrl(@CheckForNull String urlString) {
if (StringUtils.isBlank(urlString)) {
return false;
Expand Down

0 comments on commit 11cc152

Please sign in to comment.