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..bf35b70 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
@@ -58,21 +60,28 @@
- commons-validator
- commons-validator
- 1.8.0
+ org.jenkins-ci.plugins
+ jackson2-api
- org.jenkins-ci.plugins
- credentials
+ io.jenkins.plugins
+ gson-api
+
+
+ io.jenkins.plugins
+ okhttp-api
+
+
+ io.jenkins.plugins
+ commons-lang3-api
org.jenkins-ci.plugins
- plain-credentials
+ credentials
org.jenkins-ci.plugins
- structs
+ plain-credentials
org.jenkins-ci.plugins.workflow
@@ -102,12 +111,7 @@
org.jetbrains.kotlin
kotlin-stdlib-common
- 1.6.20
-
-
- com.google.code.gson
- gson
- 2.10.1
+ 1.9.22
diff --git a/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java b/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java
index 8802a9e..eb630bd 100644
--- a/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java
+++ b/src/main/java/io/jenkins/plugins/delphix/DeleteVDB.java
@@ -3,9 +3,10 @@
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 javax.servlet.ServletException;
+
+import edu.umd.cs.findbugs.annotations.NonNull;
+import jakarta.servlet.ServletException;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
@@ -59,6 +60,7 @@ public boolean isApplicable(Class extends AbstractProject> 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 e6d41e1..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;
@@ -20,7 +21,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;
@@ -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 extends AbstractProject> 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 12b1948..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;
@@ -19,7 +20,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;
@@ -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 extends AbstractProject> 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/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;
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 55b3cea..0ece21a 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;
@@ -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);