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.

Spotbugs annotations were already imported in the source file that was
still using a JSR-305 annotation.

Confirmed that automated tests pass on Linux with Java 21.
  • Loading branch information
MarkEWaite committed May 7, 2024
1 parent 6d24a57 commit 2fe6f81
Showing 1 changed file with 3 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -6,7 +6,6 @@
import hudson.model.InvisibleAction;
import hudson.model.Run;

import javax.annotation.Nonnull;
import java.util.logging.Level;
import java.util.logging.Logger;

@@ -16,13 +15,13 @@
* @version 1.1.5
*/
public class BitBucketPayload extends InvisibleAction implements EnvironmentContributingAction {
private final @Nonnull String payload;
private final @NonNull String payload;

public BitBucketPayload(@Nonnull String payload) {
public BitBucketPayload(@NonNull String payload) {
this.payload = payload;
}

@Nonnull
@NonNull
public String getPayload() {
return payload;
}

0 comments on commit 2fe6f81

Please sign in to comment.