From a390ed7979124c469cff7856b5a6ce3657b06cff Mon Sep 17 00:00:00 2001 From: strangelookingnerd <49242855+strangelookingnerd@users.noreply.github.com> Date: Wed, 2 Jul 2025 08:25:19 +0200 Subject: [PATCH 1/4] Require Jenkins 2.479.3 and Jakarta EE 9 --- Jenkinsfile | 13 ++++++++++--- pom.xml | 14 ++++++-------- .../java/io/jenkins/plugins/delphix/DeleteVDB.java | 2 +- .../plugins/delphix/ProvisionVDBFromBookmark.java | 2 +- .../plugins/delphix/ProvisionVDBFromSnapshot.java | 2 +- .../io/jenkins/plugins/util/CredentialUtil.java | 2 +- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9a248e1..8a2983d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,4 +1,11 @@ -buildPlugin(configurations: [ - [ platform: 'linux', jdk: '11' ], - [ platform: 'windows', jdk: '11' ] +/* + See the documentation for more options: + https://github.com/jenkins-infra/pipeline-library/ +*/ +buildPlugin( + forkCount: '1C', // run this number of tests in parallel for faster feedback. If the number terminates with a 'C', the value will be multiplied by the number of available CPU cores + useContainerAgent: true, // Set to `false` if you need to use Docker for containerized tests + configurations: [ + [platform: 'linux', jdk: 21], + [platform: 'windows', jdk: 17], ]) \ No newline at end of file diff --git a/pom.xml b/pom.xml index afd25d6..2d04974 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.jenkins-ci.plugins plugin - 4.50 + 5.18 org.jenkins-ci.plugins @@ -12,7 +12,9 @@ 3.2.2-SNAPSHOT hpi - 2.346.1 + + 2.479 + ${jenkins.baseline}.3 3.0.0 @@ -48,8 +50,8 @@ io.jenkins.tools.bom - bom-2.346.x - 1409.v7659b_c072f18 + bom-${jenkins.baseline}.x + 4948.vcf1d17350668 pom import @@ -70,10 +72,6 @@ org.jenkins-ci.plugins plain-credentials - - org.jenkins-ci.plugins - structs - org.jenkins-ci.plugins.workflow workflow-cps diff --git a/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java b/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java index 8802a9e..5b69750 100644 --- a/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java +++ b/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java @@ -5,7 +5,7 @@ import java.nio.file.Paths; import java.util.Arrays; import java.util.List; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import org.jenkinsci.Symbol; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; diff --git a/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromBookmark.java b/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromBookmark.java index e6d41e1..1ad1c37 100644 --- a/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromBookmark.java +++ b/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromBookmark.java @@ -20,7 +20,7 @@ import io.jenkins.plugins.vdb.VDBRequestBuilder; import java.io.IOException; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import jenkins.tasks.SimpleBuildStep; import org.jenkinsci.Symbol; diff --git a/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromSnapshot.java b/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromSnapshot.java index 12b1948..ac9cf7d 100644 --- a/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromSnapshot.java +++ b/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromSnapshot.java @@ -19,7 +19,7 @@ import io.jenkins.plugins.util.ValidationUtil; import io.jenkins.plugins.vdb.VDBRequestBuilder; import java.io.IOException; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import jenkins.tasks.SimpleBuildStep; import org.jenkinsci.Symbol; diff --git a/src/main/java/io/jenkins/plugins/util/CredentialUtil.java b/src/main/java/io/jenkins/plugins/util/CredentialUtil.java index 55b3cea..dfde3fb 100644 --- a/src/main/java/io/jenkins/plugins/util/CredentialUtil.java +++ b/src/main/java/io/jenkins/plugins/util/CredentialUtil.java @@ -3,13 +3,13 @@ import com.cloudbees.plugins.credentials.CredentialsMatchers; import com.cloudbees.plugins.credentials.CredentialsProvider; import com.cloudbees.plugins.credentials.common.StandardListBoxModel; +import edu.umd.cs.findbugs.annotations.Nullable; import hudson.model.Item; import hudson.model.Run; import hudson.security.ACL; import hudson.util.ListBoxModel; import hudson.util.Secret; -import javax.annotation.Nullable; import java.util.Collections; import org.jenkinsci.plugins.plaincredentials.StringCredentials; From dec2c83684eb9986aa33bbb62e3f7c6a1ecc3fcc Mon Sep 17 00:00:00 2001 From: strangelookingnerd <49242855+strangelookingnerd@users.noreply.github.com> Date: Wed, 2 Jul 2025 08:29:38 +0200 Subject: [PATCH 2/4] Use Java 17 features, remove deprecations, cleanup --- .../io/jenkins/plugins/delphix/DeleteVDB.java | 16 +++++++++------- .../delphix/ProvisionVDBFromBookmark.java | 12 +++++++----- .../delphix/ProvisionVDBFromSnapshot.java | 10 ++++++---- .../java/io/jenkins/plugins/delphix/Tags.java | 2 ++ .../java/io/jenkins/plugins/job/JobHelper.java | 1 - .../plugins/properties/DelphixProperties.java | 2 +- .../io/jenkins/plugins/util/CredentialUtil.java | 2 +- .../java/io/jenkins/plugins/util/DctSdkUtil.java | 14 +++++++------- .../java/io/jenkins/plugins/util/Helper.java | 8 +++++--- .../io/jenkins/plugins/util/ValidationUtil.java | 4 ++-- .../jenkins/plugins/vdb/VDBRequestBuilder.java | 4 ++-- 11 files changed, 42 insertions(+), 33 deletions(-) diff --git a/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java b/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java index 5b69750..eb630bd 100644 --- a/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java +++ b/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java @@ -3,8 +3,9 @@ import static io.jenkins.plugins.util.CredentialUtil.getAllCredentialsListBoxModel; import java.io.IOException; import java.nio.file.Paths; -import java.util.Arrays; import java.util.List; + +import edu.umd.cs.findbugs.annotations.NonNull; import jakarta.servlet.ServletException; import org.jenkinsci.Symbol; import org.kohsuke.stapler.AncestorInPath; @@ -59,6 +60,7 @@ public boolean isApplicable(Class aClass) { return true; } + @NonNull @Override public String getDisplayName() { return Messages.Delete_DisplayName(); @@ -71,7 +73,7 @@ public ListBoxModel doFillCredentialIdItems(@AncestorInPath Item item, public FormValidation doCheckCredentialId(@QueryParameter String value) throws IOException, ServletException { - if (value.length() == 0) + if (value.isEmpty()) return FormValidation.error(Messages.Credential_Empty()); return FormValidation.ok(); } @@ -79,8 +81,8 @@ public FormValidation doCheckCredentialId(@QueryParameter String value) } @Override - public void perform(Run run, FilePath workspace, EnvVars env, Launcher launcher, - TaskListener listener) throws InterruptedException, IOException { + public void perform(Run run, @NonNull FilePath workspace, @NonNull EnvVars env, @NonNull Launcher launcher, + @NonNull TaskListener listener) throws InterruptedException, IOException { Helper helper = new Helper(listener); listener.getLogger().println(Messages.Delete_Start(run.getId())); try { @@ -99,18 +101,18 @@ public void perform(Run run, FilePath workspace, EnvVars env, Launcher lau } } else if (vdbId != null) { - List vdbList = Arrays.asList(vdbId.split(",")); + String[] vdbList = vdbId.split(","); for (String vdb : vdbList) { listener.getLogger().println(Messages.Delete_Message3(vdb)); deleteVDB(run, vdb, listener, dctSdkUtil); } } else if (name != null) { - List nameList = Arrays.asList(name.split(",")); + String[] nameList = name.split(","); for (String vdbname : nameList) { listener.getLogger().println(Messages.Delete_Message5(vdbname)); SearchVDBsResponse result = dctSdkUtil.searchVDB(vdbname); - if (result.getItems().size() == 0) { + if (result.getItems().isEmpty()) { listener.getLogger().println(Messages.Delete_Error3(vdbname)); run.setResult(Result.FAILURE); } diff --git a/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromBookmark.java b/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromBookmark.java index 1ad1c37..9e19350 100644 --- a/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromBookmark.java +++ b/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromBookmark.java @@ -1,5 +1,6 @@ package io.jenkins.plugins.delphix; +import edu.umd.cs.findbugs.annotations.NonNull; import hudson.EnvVars; import hudson.Extension; import hudson.FilePath; @@ -52,6 +53,7 @@ public String getBookmarkId() { @Extension public static final class ProvisionDescriptor extends BuildStepDescriptor { + @NonNull @Override public String getDisplayName() { return Messages.ProvisionVDBBookmark_DisplayName(); @@ -69,7 +71,7 @@ public boolean isApplicable(Class jobType) { public FormValidation doCheckCredentialId(@QueryParameter String value) throws IOException, ServletException { - if (value.length() == 0) + if (value.isEmpty()) return FormValidation.error(Messages.Credential_Empty()); return FormValidation.ok(); } @@ -104,7 +106,7 @@ public FormValidation doCheckJsonParam(@QueryParameter String value) public FormValidation doCheckBookmarkId(@QueryParameter String value) throws IOException, ServletException { - if (value.length() == 0) + if (value.isEmpty()) return FormValidation.error(Messages.BookmarkId_Empty()); return FormValidation.ok(); } @@ -112,8 +114,8 @@ public FormValidation doCheckBookmarkId(@QueryParameter String value) } @Override - public void perform(Run run, FilePath workspace, EnvVars env, Launcher launcher, - TaskListener listener) throws InterruptedException, IOException { + public void perform(Run run, @NonNull FilePath workspace, @NonNull EnvVars env, @NonNull Launcher launcher, + @NonNull TaskListener listener) throws InterruptedException, IOException { VDBRequestBuilder vdbRequestBuilder = new VDBRequestBuilder(); Helper helper = new Helper(listener); listener.getLogger().println(Messages._ProvisionVDBBookmark_Info(run.getId())); @@ -134,7 +136,7 @@ public void perform(Run run, FilePath workspace, EnvVars env, Launcher lau listener.getLogger().println( Messages.ProvisionVDB_Start(provisionResponse.getVdbId(), job.getId())); JobHelper jobHelper = new JobHelper(dctSdkUtil, listener, job.getId()); - boolean status = false; + boolean status; if (skipPolling) { status = jobHelper.waitForGetVDB( run, provisionResponse.getVdbId()); diff --git a/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromSnapshot.java b/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromSnapshot.java index ac9cf7d..e57936c 100644 --- a/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromSnapshot.java +++ b/src/main/java/io/jenkins/plugins/delphix/ProvisionVDBFromSnapshot.java @@ -1,5 +1,6 @@ package io.jenkins.plugins.delphix; +import edu.umd.cs.findbugs.annotations.NonNull; import hudson.EnvVars; import hudson.Extension; import hudson.FilePath; @@ -56,6 +57,7 @@ public void setSnapshotId(String snapshotId) { @Extension public static final class ProvisionDescriptor extends BuildStepDescriptor { + @NonNull @Override public String getDisplayName() { return Messages.ProvisionVDBSnapshot_DisplayName(); @@ -73,7 +75,7 @@ public boolean isApplicable(Class jobType) { public FormValidation doCheckCredentialId(@QueryParameter String value) throws IOException, ServletException { - if (value.length() == 0) + if (value.isEmpty()) return FormValidation.error(Messages.Credential_Empty()); return FormValidation.ok(); } @@ -108,8 +110,8 @@ public FormValidation doCheckJsonParam(@QueryParameter String value) } @Override - public void perform(Run run, FilePath workspace, EnvVars env, Launcher launcher, - TaskListener listener) throws InterruptedException, IOException { + public void perform(Run run, @NonNull FilePath workspace, @NonNull EnvVars env, @NonNull Launcher launcher, + @NonNull TaskListener listener) throws InterruptedException, IOException { VDBRequestBuilder vdbRequestBuilder = new VDBRequestBuilder(); Helper helper = new Helper(listener); listener.getLogger().println(Messages._ProvisionVDBSnapshot_Info(run.getId())); @@ -130,7 +132,7 @@ public void perform(Run run, FilePath workspace, EnvVars env, Launcher lau listener.getLogger().println( Messages.ProvisionVDB_Start(provisionResponse.getVdbId(), job.getId())); JobHelper jobHelper = new JobHelper(dctSdkUtil, listener, job.getId()); - boolean status = false; + boolean status; if (skipPolling) { status = jobHelper.waitForGetVDB( run, provisionResponse.getVdbId()); diff --git a/src/main/java/io/jenkins/plugins/delphix/Tags.java b/src/main/java/io/jenkins/plugins/delphix/Tags.java index 7d70bbb..fbe296f 100644 --- a/src/main/java/io/jenkins/plugins/delphix/Tags.java +++ b/src/main/java/io/jenkins/plugins/delphix/Tags.java @@ -1,6 +1,7 @@ package io.jenkins.plugins.delphix; +import edu.umd.cs.findbugs.annotations.NonNull; import org.kohsuke.stapler.DataBoundConstructor; import hudson.Extension; import hudson.model.AbstractDescribableImpl; @@ -35,6 +36,7 @@ public DescriptorImpl getDescriptor() { */ @Extension public static class DescriptorImpl extends Descriptor { + @NonNull @Override public String getDisplayName() { return ""; diff --git a/src/main/java/io/jenkins/plugins/job/JobHelper.java b/src/main/java/io/jenkins/plugins/job/JobHelper.java index cf91a54..a5f51f2 100644 --- a/src/main/java/io/jenkins/plugins/job/JobHelper.java +++ b/src/main/java/io/jenkins/plugins/job/JobHelper.java @@ -1,6 +1,5 @@ package io.jenkins.plugins.job; -import com.delphix.dct.ApiClient; import com.delphix.dct.ApiException; import com.delphix.dct.models.Job; import com.delphix.dct.models.VDB; diff --git a/src/main/java/io/jenkins/plugins/properties/DelphixProperties.java b/src/main/java/io/jenkins/plugins/properties/DelphixProperties.java index b7b0d19..9e48f3d 100644 --- a/src/main/java/io/jenkins/plugins/properties/DelphixProperties.java +++ b/src/main/java/io/jenkins/plugins/properties/DelphixProperties.java @@ -53,7 +53,7 @@ private void writeMap(Map vdbDetails) { catch (IOException e) { this.listener.getLogger().print(e.getMessage()); } - try (FileOutputStream fileOut = new FileOutputStream(this.file, false);) { + try (FileOutputStream fileOut = new FileOutputStream(this.file, false)) { for (Map.Entry entry : vdbDetails.entrySet()) { this.properties.put(entry.getKey(), entry.getValue().toString()); } diff --git a/src/main/java/io/jenkins/plugins/util/CredentialUtil.java b/src/main/java/io/jenkins/plugins/util/CredentialUtil.java index dfde3fb..0ece21a 100644 --- a/src/main/java/io/jenkins/plugins/util/CredentialUtil.java +++ b/src/main/java/io/jenkins/plugins/util/CredentialUtil.java @@ -30,7 +30,7 @@ public static ListBoxModel getAllCredentialsListBoxModel(@Nullable final Item it } } return result.includeEmptyValue() - .includeMatchingAs(ACL.SYSTEM, item, StringCredentials.class, + .includeMatchingAs(ACL.SYSTEM2, item, StringCredentials.class, Collections.emptyList(), CredentialsMatchers.always()) .includeCurrentValue(credentialId); } diff --git a/src/main/java/io/jenkins/plugins/util/DctSdkUtil.java b/src/main/java/io/jenkins/plugins/util/DctSdkUtil.java index bdd6d0f..02c197c 100644 --- a/src/main/java/io/jenkins/plugins/util/DctSdkUtil.java +++ b/src/main/java/io/jenkins/plugins/util/DctSdkUtil.java @@ -38,7 +38,7 @@ public DctSdkUtil(Run run, TaskListener listener, String credId) { return; } this.defaultClient = Configuration.getDefaultApiClient(); - this.defaultClient.setVerifyingSsl(!DelphixGlobalConfiguration.get().getDisableSsl()); + this.defaultClient.setVerifyingSsl(!DelphixGlobalConfiguration.get().getDisableSsl()); this.defaultClient.setConnectTimeout(Constant.TIMEOUT); this.defaultClient.setReadTimeout(Constant.TIMEOUT); this.defaultClient.setWriteTimeout(Constant.TIMEOUT); @@ -53,7 +53,7 @@ public ApiClient getDefaultClient() { } /** - * + * * @param provisionVDBFromBookmarkParameters * @return * @throws ApiException @@ -61,28 +61,28 @@ public ApiClient getDefaultClient() { public ProvisionVDBResponse provisionVdbFromBookmark( ProvisionVDBFromBookmarkParameters provisionVDBFromBookmarkParameters) throws ApiException { - ProvisionVDBResponse result = null; + ProvisionVDBResponse result; VdbsApi apiInstance = new VdbsApi(this.defaultClient); result = apiInstance.provisionVdbFromBookmark(provisionVDBFromBookmarkParameters); return result; } /** - * + * * @param provisionVDBBySnapshotParameters * @return * @throws ApiException */ public ProvisionVDBResponse provisionVdbBySnapshot( ProvisionVDBBySnapshotParameters provisionVDBBySnapshotParameters) throws ApiException { - ProvisionVDBResponse result = null; + ProvisionVDBResponse result; VdbsApi apiInstance = new VdbsApi(this.defaultClient); result = apiInstance.provisionVdbBySnapshot(provisionVDBBySnapshotParameters); return result; } /** - * + * * @param vdbId * @param force * @return @@ -116,7 +116,7 @@ public SearchVDBsResponse searchVDB(String name) throws ApiException { String sort = "id"; PermissionEnum permission = PermissionEnum.fromValue("READ"); SearchBody searchBody = new SearchBody(); - String filterExpr = "name EQ \'" + name + "\'"; + String filterExpr = "name EQ '" + name + "'"; searchBody.setFilterExpression(filterExpr); SearchVDBsResponse result = apiInstance.searchVdbs(limit, cursor, sort, permission, searchBody); return result; diff --git a/src/main/java/io/jenkins/plugins/util/Helper.java b/src/main/java/io/jenkins/plugins/util/Helper.java index a67f8b9..1e9c6d1 100644 --- a/src/main/java/io/jenkins/plugins/util/Helper.java +++ b/src/main/java/io/jenkins/plugins/util/Helper.java @@ -19,6 +19,7 @@ import com.delphix.dct.models.VDB; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import edu.umd.cs.findbugs.annotations.NonNull; import hudson.FilePath; import hudson.model.TaskListener; import io.jenkins.plugins.constant.Constant; @@ -34,10 +35,11 @@ public Helper(TaskListener listener) { } public List getFileList(Path rootDir, String pattern) throws IOException { - List matchesList = new ArrayList(); - FileVisitor matcherVisitor = new SimpleFileVisitor() { + List matchesList = new ArrayList<>(); + FileVisitor matcherVisitor = new SimpleFileVisitor<>() { + @NonNull @Override - public FileVisitResult visitFile(Path file, BasicFileAttributes attribs) + public FileVisitResult visitFile(Path file, @NonNull BasicFileAttributes attribs) throws IOException { FileSystem fs = FileSystems.getDefault(); PathMatcher matcher = fs.getPathMatcher(pattern); diff --git a/src/main/java/io/jenkins/plugins/util/ValidationUtil.java b/src/main/java/io/jenkins/plugins/util/ValidationUtil.java index bf1d8df..a137bf5 100644 --- a/src/main/java/io/jenkins/plugins/util/ValidationUtil.java +++ b/src/main/java/io/jenkins/plugins/util/ValidationUtil.java @@ -23,8 +23,8 @@ public class ValidationUtil { public ValidationUtil() { strictGsonObjectAdapter = new Gson().getAdapter(JsonObject.class); result = null; - snapshotFieldSet = new HashSet(); - bookmarkFieldSet = new HashSet(); + snapshotFieldSet = new HashSet<>(); + bookmarkFieldSet = new HashSet<>(); } public void validateJsonFormat(String json) { diff --git a/src/main/java/io/jenkins/plugins/vdb/VDBRequestBuilder.java b/src/main/java/io/jenkins/plugins/vdb/VDBRequestBuilder.java index 16a105d..c6e1b61 100644 --- a/src/main/java/io/jenkins/plugins/vdb/VDBRequestBuilder.java +++ b/src/main/java/io/jenkins/plugins/vdb/VDBRequestBuilder.java @@ -18,7 +18,7 @@ public ProvisionVDBBySnapshotParameters provisionFromSnapshotParameter(String sn String jsonParameters, String sourceDataId, String environmentUserId, String repositoryId, String engineId, String targetGroupId, String databaseName, boolean vdbRestart, String snapshotPolicyId, String retentionPolicyId) { - ProvisionVDBBySnapshotParameters provisionVDBBySnapshotParameters = null; + ProvisionVDBBySnapshotParameters provisionVDBBySnapshotParameters; if (jsonParameters != null) { provisionVDBBySnapshotParameters = gson.fromJson(jsonParameters, ProvisionVDBBySnapshotParameters.class); @@ -55,7 +55,7 @@ public ProvisionVDBFromBookmarkParameters provisionFromBookmarkParameter(String String jsonParameters, String environmentUserId, String repositoryId, String targetGroupId, String databaseName, boolean vdbRestart, String snapshotPolicyId, String retentionPolicyId) { - ProvisionVDBFromBookmarkParameters provisionVDBFromBookmarkParameters = null; + ProvisionVDBFromBookmarkParameters provisionVDBFromBookmarkParameters; if (jsonParameters != null) { provisionVDBFromBookmarkParameters = gson.fromJson(jsonParameters, ProvisionVDBFromBookmarkParameters.class); From 5a1d4cb43e665b4f669a5d7efff16ab35ec3d87f Mon Sep 17 00:00:00 2001 From: strangelookingnerd <49242855+strangelookingnerd@users.noreply.github.com> Date: Wed, 2 Jul 2025 08:32:22 +0200 Subject: [PATCH 3/4] Suppress spotbugs findings --- src/main/java/io/jenkins/plugins/delphix/ProvisonVDB.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/io/jenkins/plugins/delphix/ProvisonVDB.java b/src/main/java/io/jenkins/plugins/delphix/ProvisonVDB.java index bd09f96..aa8eab7 100644 --- a/src/main/java/io/jenkins/plugins/delphix/ProvisonVDB.java +++ b/src/main/java/io/jenkins/plugins/delphix/ProvisonVDB.java @@ -1,10 +1,13 @@ package io.jenkins.plugins.delphix; import java.util.List; + +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.kohsuke.stapler.DataBoundSetter; import hudson.tasks.Builder; +@SuppressFBWarnings(value = "PA_PUBLIC_PRIMITIVE_ATTRIBUTE", justification = "legacy code") public abstract class ProvisonVDB extends Builder { public boolean autoSelectRepository; public List tagList; From e1826570ad69f797c46fb6643557b02979b35b7f Mon Sep 17 00:00:00 2001 From: strangelookingnerd <49242855+strangelookingnerd@users.noreply.github.com> Date: Wed, 2 Jul 2025 08:39:04 +0200 Subject: [PATCH 4/4] Use API plugins over direct / transitive dependencies to reduce plugin footprint --- pom.xml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 2d04974..bf35b70 100644 --- a/pom.xml +++ b/pom.xml @@ -60,9 +60,20 @@ - commons-validator - commons-validator - 1.8.0 + org.jenkins-ci.plugins + jackson2-api + + + io.jenkins.plugins + gson-api + + + io.jenkins.plugins + okhttp-api + + + io.jenkins.plugins + commons-lang3-api org.jenkins-ci.plugins @@ -100,12 +111,7 @@ org.jetbrains.kotlin kotlin-stdlib-common - 1.6.20 - - - com.google.code.gson - gson - 2.10.1 + 1.9.22