From 7392bb97552a4a4e86243dd96c22ad9f3daecabe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 22:58:22 +0200 Subject: [PATCH 01/10] Remove unused imports --- .../plugins/credentials/CredentialsParameterDefinition.java | 1 - .../plugins/credentials/GlobalCredentialsConfiguration.java | 1 - .../java/com/cloudbees/plugins/credentials/PluginImpl.java | 1 - .../plugins/credentials/UserCredentialsProvider.java | 1 - .../plugins/credentials/impl/BaseStandardCredentials.java | 5 ----- .../credentials/CredentialsUnavailableExceptionTest.java | 6 ------ .../cloudbees/plugins/credentials/cli/CLICommandsTest.java | 1 - .../plugins/credentials/impl/DummyCredentials.java | 1 - 8 files changed, 17 deletions(-) diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsParameterDefinition.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsParameterDefinition.java index 074d2d38..6e12e568 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsParameterDefinition.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsParameterDefinition.java @@ -12,7 +12,6 @@ import hudson.security.ACL; import hudson.util.ListBoxModel; import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Set; import jenkins.model.Jenkins; diff --git a/src/main/java/com/cloudbees/plugins/credentials/GlobalCredentialsConfiguration.java b/src/main/java/com/cloudbees/plugins/credentials/GlobalCredentialsConfiguration.java index 28805b11..19ba0b63 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/GlobalCredentialsConfiguration.java +++ b/src/main/java/com/cloudbees/plugins/credentials/GlobalCredentialsConfiguration.java @@ -42,7 +42,6 @@ import jenkins.model.GlobalConfigurationCategory; import jenkins.model.Jenkins; import net.sf.json.JSONObject; -import org.jenkins.ui.icon.IconSpec; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpResponse; diff --git a/src/main/java/com/cloudbees/plugins/credentials/PluginImpl.java b/src/main/java/com/cloudbees/plugins/credentials/PluginImpl.java index f47e630c..4315ceb0 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/PluginImpl.java +++ b/src/main/java/com/cloudbees/plugins/credentials/PluginImpl.java @@ -24,7 +24,6 @@ package com.cloudbees.plugins.credentials; import hudson.Plugin; -import java.util.Arrays; import org.jenkins.ui.icon.Icon; import org.jenkins.ui.icon.IconSet; import org.jenkins.ui.icon.IconType; diff --git a/src/main/java/com/cloudbees/plugins/credentials/UserCredentialsProvider.java b/src/main/java/com/cloudbees/plugins/credentials/UserCredentialsProvider.java index b08272b5..6070de20 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/UserCredentialsProvider.java +++ b/src/main/java/com/cloudbees/plugins/credentials/UserCredentialsProvider.java @@ -43,7 +43,6 @@ import hudson.security.ACL; import hudson.security.AccessDeniedException2; import hudson.security.Permission; -import hudson.util.CopyOnWriteMap; import java.io.IOException; import java.io.ObjectStreamException; import java.net.URI; diff --git a/src/main/java/com/cloudbees/plugins/credentials/impl/BaseStandardCredentials.java b/src/main/java/com/cloudbees/plugins/credentials/impl/BaseStandardCredentials.java index 94ff1cb1..dd417e06 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/impl/BaseStandardCredentials.java +++ b/src/main/java/com/cloudbees/plugins/credentials/impl/BaseStandardCredentials.java @@ -31,9 +31,7 @@ import com.cloudbees.plugins.credentials.CredentialsMatchers; import com.cloudbees.plugins.credentials.CredentialsProvider; import com.cloudbees.plugins.credentials.CredentialsScope; -import com.cloudbees.plugins.credentials.CredentialsSelectHelper; import com.cloudbees.plugins.credentials.CredentialsStore; -import com.cloudbees.plugins.credentials.CredentialsStoreAction; import com.cloudbees.plugins.credentials.common.IdCredentials; import com.cloudbees.plugins.credentials.common.StandardCredentials; import com.cloudbees.plugins.credentials.domains.Domain; @@ -47,10 +45,7 @@ import hudson.util.FormValidation; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.util.EnumSet; -import java.util.Set; import jenkins.model.Jenkins; -import org.apache.commons.lang.StringUtils; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; diff --git a/src/test/java/com/cloudbees/plugins/credentials/CredentialsUnavailableExceptionTest.java b/src/test/java/com/cloudbees/plugins/credentials/CredentialsUnavailableExceptionTest.java index eb24eae4..5f561925 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/CredentialsUnavailableExceptionTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/CredentialsUnavailableExceptionTest.java @@ -42,7 +42,6 @@ import hudson.model.Job; import hudson.model.Result; import hudson.model.Run; -import hudson.model.StreamBuildListener; import hudson.model.TaskListener; import hudson.scm.ChangeLogParser; import hudson.scm.ChangeLogSet; @@ -55,13 +54,8 @@ import hudson.triggers.SCMTrigger; import hudson.triggers.Trigger; import hudson.util.Secret; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; -import java.io.PrintStream; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; diff --git a/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java b/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java index a0b079a7..ac8b48d5 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java @@ -44,7 +44,6 @@ import java.util.List; import jenkins.model.Jenkins; import org.hamcrest.Matcher; -import org.hamcrest.MatcherAssert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; diff --git a/src/test/java/com/cloudbees/plugins/credentials/impl/DummyCredentials.java b/src/test/java/com/cloudbees/plugins/credentials/impl/DummyCredentials.java index e73322b7..46e8b490 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/impl/DummyCredentials.java +++ b/src/test/java/com/cloudbees/plugins/credentials/impl/DummyCredentials.java @@ -24,7 +24,6 @@ package com.cloudbees.plugins.credentials.impl; import com.cloudbees.plugins.credentials.BaseCredentials; -import com.cloudbees.plugins.credentials.Credentials; import com.cloudbees.plugins.credentials.CredentialsDescriptor; import com.cloudbees.plugins.credentials.CredentialsScope; import com.cloudbees.plugins.credentials.common.UsernamePasswordCredentials; From a32e090b2fc016a0a92a8df17dad75e8f367a00c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 23:01:18 +0200 Subject: [PATCH 02/10] Remove unnecessary semicolons in Groovy code --- .../ProviderImpl/help.groovy | 24 +++++++++---------- .../UserCredentialsProvider/help.groovy | 22 ++++++++--------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/main/resources/com/cloudbees/plugins/credentials/SystemCredentialsProvider/ProviderImpl/help.groovy b/src/main/resources/com/cloudbees/plugins/credentials/SystemCredentialsProvider/ProviderImpl/help.groovy index 9244faa7..f0e1a7a2 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/SystemCredentialsProvider/ProviderImpl/help.groovy +++ b/src/main/resources/com/cloudbees/plugins/credentials/SystemCredentialsProvider/ProviderImpl/help.groovy @@ -24,36 +24,36 @@ package com.cloudbees.plugins.credentials.SystemCredentialsProvider.ProviderImpl import com.cloudbees.plugins.credentials.CredentialsProvider -import hudson.security.ACL; +import hudson.security.ACL div() { - text(_("Provides credentials from the root of Jenkins. ")); - text(_("Credentials will be available to: ")); + text(_("Provides credentials from the root of Jenkins. ")) + text(_("Credentials will be available to: ")) ul() { li() { text(_("Authentication: ")) code() { - text(ACL.SYSTEM.name); + text(ACL.SYSTEM.name) } } - def p = CredentialsProvider.USE_ITEM; + def p = CredentialsProvider.USE_ITEM while (p!=null && !p.enabled) { p = p.impliedBy - }; + } if (p != null) { li() { text(_("Users with permission: ")) code() { - text(p.group.title); - text("/"); - text(p.name); + text(p.group.title) + text("/") + text(p.name) } } } } - text(_("Credentials will be available in: ")); + text(_("Credentials will be available in: ")) ul(){ - li(_("Global scoped credentials be available to all items within Jenkins")); - li(_("System scoped credentials restricted to system level operations such as connecting build agents")); + li(_("Global scoped credentials be available to all items within Jenkins")) + li(_("System scoped credentials restricted to system level operations such as connecting build agents")) } } diff --git a/src/main/resources/com/cloudbees/plugins/credentials/UserCredentialsProvider/help.groovy b/src/main/resources/com/cloudbees/plugins/credentials/UserCredentialsProvider/help.groovy index 13494a53..d555d983 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/UserCredentialsProvider/help.groovy +++ b/src/main/resources/com/cloudbees/plugins/credentials/UserCredentialsProvider/help.groovy @@ -24,34 +24,34 @@ package com.cloudbees.plugins.credentials.UserCredentialsProvider import com.cloudbees.plugins.credentials.CredentialsProvider -import hudson.security.ACL; +import hudson.security.ACL div() { - text(_("Provides each user with a personal credential store. ")); - text(_("Credentials will be available to: ")); + text(_("Provides each user with a personal credential store. ")) + text(_("Credentials will be available to: ")) ul() { li() { text(_("Immediate operations performed by the user who defined the credentials")) } - def p = CredentialsProvider.USE_OWN; + def p = CredentialsProvider.USE_OWN while (p != null && !p.enabled) { p = p.impliedBy - }; + } if (p != null) { li() { text(_("Jobs with credentials parameters when directly triggered by a user with the permission: ")) code() { - text(p.group.title); - text("/"); - text(p.name); + text(p.group.title) + text("/") + text(p.name) } } li() { text(_("Jobs running as the user and the user has the permission: ")) code() { - text(p.group.title); - text("/"); - text(p.name); + text(p.group.title) + text("/") + text(p.name) } } } From 7fa0c275a4e6de53be59c89289dd4b03b4768107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 23:37:43 +0200 Subject: [PATCH 03/10] Remove some unchecked type warnings --- .../plugins/credentials/cli/CLICommandsTest.java | 14 +++++++------- .../credentials/fingerpints/FingerprintTest.java | 4 ++-- .../impl/CertificateCredentialsImplTest.java | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java b/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java index ac8b48d5..fe36071e 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java @@ -88,14 +88,14 @@ public void createSmokes() { CLICommand cmd = new CreateCredentialsDomainByXmlCommand(); CLICommandInvoker invoker = new CLICommandInvoker(r, cmd); assertThat(SystemCredentialsProvider.getInstance().getDomainCredentialsMap().keySet(), - (Matcher) not(hasItem(hasProperty("name", is("smokes"))))); + not(hasItem(hasProperty("name", is("smokes"))))); assertThat(invoker.withStdin(asStream( "\n" + " smokes\n" + "")) .invokeWithArgs("system::system::jenkins"), succeededSilently()); assertThat(SystemCredentialsProvider.getInstance().getDomainCredentialsMap().keySet(), - (Matcher) hasItem(hasProperty("name", is("smokes")))); + hasItem(hasProperty("name", is("smokes")))); cmd = new CreateCredentialsByXmlCommand(); invoker = new CLICommandInvoker(r, cmd); assertThat(invoker.withStdin(asStream( @@ -132,7 +132,7 @@ public void createNonHappy() { CLICommand cmd = new CreateCredentialsDomainByXmlCommand(); CLICommandInvoker invoker = new CLICommandInvoker(r, cmd); assertThat(SystemCredentialsProvider.getInstance().getDomainCredentialsMap().keySet(), - (Matcher) not(hasItem(hasProperty("name", is("smokes"))))); + not(hasItem(hasProperty("name", is("smokes"))))); assumeThat(invoker.withStdin(asStream( "\n" + " smokes\n" @@ -347,15 +347,15 @@ public void importCredentialsAsXML() throws IOException { CLICommandInvoker invoker = new CLICommandInvoker(r, new ImportCredentialsAsXmlCommand()); assertThat(SystemCredentialsProvider.getInstance().getDomainCredentialsMap().keySet(), - (Matcher) not(hasItem(hasProperty("name", is("smokes"))))); + not(hasItem(hasProperty("name", is("smokes"))))); invoker.withStdin(input).invokeWithArgs("system::system::jenkins"); assertThat(SystemCredentialsProvider.getInstance().getDomainCredentialsMap().keySet(), - (Matcher) hasItem(hasProperty("name", is("smokes")))); + hasItem(hasProperty("name", is("smokes")))); assertThat(SystemCredentialsProvider.getInstance().getDomainCredentialsMap().get(Domain.global()), - (Matcher) hasItem(hasProperty("id", is("global-cred-id")))); + hasItem(hasProperty("id", is("global-cred-id")))); assertThat(SystemCredentialsProvider.getInstance().getDomainCredentialsMap().get(new Domain("smokes", null, null)), - (Matcher) hasItem(hasProperty("id", is("smokes-id")))); + hasItem(hasProperty("id", is("smokes-id")))); } diff --git a/src/test/java/com/cloudbees/plugins/credentials/fingerpints/FingerprintTest.java b/src/test/java/com/cloudbees/plugins/credentials/fingerpints/FingerprintTest.java index 53f1622e..292ee2d3 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/fingerpints/FingerprintTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/fingerpints/FingerprintTest.java @@ -102,7 +102,7 @@ public void parameterizedBuildUsageTracked() throws Exception { false ))); - j.assertBuildStatusSuccess((Future) job.scheduleBuild2(0, + j.assertBuildStatusSuccess(job.scheduleBuild2(0, new ParametersAction(new CredentialsParameterValue("SECRET", "secret-id", "The secret", true)))); fingerprint = CredentialsProvider.getFingerprintOf(credentials); @@ -116,7 +116,7 @@ public void parameterizedBuildUsageTracked() throws Exception { // need to have the job do something otherwise the parameter will be unused job.getBuildersList().add(new CaptureEnvironmentBuilder()); - j.assertBuildStatusSuccess((Future) job.scheduleBuild2(0, + j.assertBuildStatusSuccess(job.scheduleBuild2(0, new ParametersAction(new CredentialsParameterValue("SECRET", "secret-id", "The secret", true)))); fingerprint = CredentialsProvider.getFingerprintOf(credentials); diff --git a/src/test/java/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImplTest.java b/src/test/java/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImplTest.java index 179f8aec..a50bf39c 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImplTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImplTest.java @@ -108,7 +108,7 @@ public void verifyGlobalMasterSourceConvertedToUploadedSource() throws Exception CertificateCredentialsImpl.FileOnMasterKeyStoreSource storeSource = new CertificateCredentialsImpl.FileOnMasterKeyStoreSource(p12.getAbsolutePath()); CertificateCredentialsImpl credentials = new CertificateCredentialsImpl(null, "abc123", null, "password", storeSource); CredentialsStore folderStore = getFolderStore(folder); - Domain domain = new Domain("test", "test", Collections.EMPTY_LIST); + Domain domain = new Domain("test", "test", Collections.emptyList()); folderStore.addDomain(domain, credentials); folderStore.save(); folder.doReload(); @@ -157,7 +157,7 @@ public void verifyUserWithRunScriptsCanUploadMasterKeySource() throws Exception assertThat(result, succeeded()); - Domain domain = new Domain("test", "test", Collections.EMPTY_LIST); + Domain domain = new Domain("test", "test", Collections.emptyList()); // check the data is correctly updated in memory CredentialsStore folderStore = getFolderStore(folder); From 8056b49d16f3afc3bac8d9a6c9a461cb0544ab6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 23:43:19 +0200 Subject: [PATCH 04/10] Replace StringBuffer with StringBuilder It's not required to be thread-safe inside this method, therefore no StringBuffer is required. --- .../cloudbees/plugins/credentials/domains/AntPathMatcher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/cloudbees/plugins/credentials/domains/AntPathMatcher.java b/src/main/java/com/cloudbees/plugins/credentials/domains/AntPathMatcher.java index bdb43459..bdbdfe86 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/domains/AntPathMatcher.java +++ b/src/main/java/com/cloudbees/plugins/credentials/domains/AntPathMatcher.java @@ -390,7 +390,7 @@ public String extractPathWithinPattern(String pattern, String path) { String[] patternParts = StringUtils.split(pattern, this.pathSeparator); String[] pathParts = StringUtils.split(path, this.pathSeparator); - StringBuffer buffer = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); // Add any path parts that have a wildcarded pattern part. int puts = 0; From 25d3e64e62505086d4a1e42254e41de373c3f9ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 23:40:52 +0200 Subject: [PATCH 05/10] Simplify array iteration --- .../cloudbees/plugins/credentials/domains/AntPathMatcher.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/cloudbees/plugins/credentials/domains/AntPathMatcher.java b/src/main/java/com/cloudbees/plugins/credentials/domains/AntPathMatcher.java index bdbdfe86..6994774f 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/domains/AntPathMatcher.java +++ b/src/main/java/com/cloudbees/plugins/credentials/domains/AntPathMatcher.java @@ -245,8 +245,8 @@ private boolean matchStrings(String pattern, String str) { char ch; boolean containsStar = false; - for (int i = 0; i < patArr.length; i++) { - if (patArr[i] == '*') { + for (char c : patArr) { + if (c == '*') { containsStar = true; break; } From 3dbacab53e31bc3b9df3939a5818e359b2b802c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 23:48:37 +0200 Subject: [PATCH 06/10] Simplify object comparison with Objects.equals() --- .../plugins/credentials/CredentialsProviderManager.java | 3 ++- .../com/cloudbees/plugins/credentials/domains/Domain.java | 8 +++----- .../plugins/credentials/matchers/BeanPropertyMatcher.java | 6 ++++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsProviderManager.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsProviderManager.java index 6fd1a022..af733955 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsProviderManager.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsProviderManager.java @@ -42,6 +42,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; import jenkins.model.GlobalConfiguration; @@ -303,7 +304,7 @@ public int compare(CredentialsProviderTypeRestriction o1, CredentialsProviderTyp } }); } - if (restrictions == null ? this.restrictions != null : !restrictions.equals(this.restrictions)) { + if (!Objects.equals(restrictions, this.restrictions)) { this.restrictions = restrictions; this.restrictionGroups = null; try { diff --git a/src/main/java/com/cloudbees/plugins/credentials/domains/Domain.java b/src/main/java/com/cloudbees/plugins/credentials/domains/Domain.java index 1512cfd4..16493912 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/domains/Domain.java +++ b/src/main/java/com/cloudbees/plugins/credentials/domains/Domain.java @@ -34,6 +34,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Objects; + import org.kohsuke.stapler.DataBoundConstructor; /** @@ -224,11 +226,7 @@ public boolean equals(Object o) { Domain domain = (Domain) o; - if (name != null ? !name.equals(domain.name) : domain.name != null) { - return false; - } - - return true; + return Objects.equals(name, domain.name); } /** diff --git a/src/main/java/com/cloudbees/plugins/credentials/matchers/BeanPropertyMatcher.java b/src/main/java/com/cloudbees/plugins/credentials/matchers/BeanPropertyMatcher.java index d1f2389b..146b8eee 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/matchers/BeanPropertyMatcher.java +++ b/src/main/java/com/cloudbees/plugins/credentials/matchers/BeanPropertyMatcher.java @@ -34,6 +34,8 @@ import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.Objects; + import org.apache.commons.lang.StringEscapeUtils; /** @@ -109,7 +111,7 @@ public boolean matches(@NonNull Credentials item) { } try { Object actual = readMethod.invoke(item); - return expected == null ? actual == null : expected.equals(actual); + return Objects.equals(expected, actual); } catch (IllegalAccessException e) { return false; // if we cannot access it then it's not a match } catch (InvocationTargetException e) { @@ -150,7 +152,7 @@ public boolean equals(Object o) { if (!name.equals(that.name)) { return false; } - return expected != null ? expected.equals(that.expected) : that.expected == null; + return Objects.equals(expected, that.expected); } From 7d6e7cae000938cc12840ba1e9d9496906024521 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 23:56:18 +0200 Subject: [PATCH 07/10] Simplify integer comparison with Integer.compare() --- .../plugins/credentials/CredentialsProviderManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsProviderManager.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsProviderManager.java index af733955..ad6d455db 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsProviderManager.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsProviderManager.java @@ -300,7 +300,7 @@ public int compare(CredentialsProviderTypeRestriction o1, CredentialsProviderTyp if (index2 == -1) { return -1; } - return index1 < index2 ? -1 : (index1 == index2 ? 0 : 1); + return Integer.compare(index1, index2); } }); } From d80f7e73d4129d19628ec1befd3caf1eb332a857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 23:59:57 +0200 Subject: [PATCH 08/10] Simplify JUnit assertions --- .../cloudbees/plugins/credentials/CredentialsProviderTest.java | 2 +- .../plugins/credentials/SystemCredentialsProviderTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/cloudbees/plugins/credentials/CredentialsProviderTest.java b/src/test/java/com/cloudbees/plugins/credentials/CredentialsProviderTest.java index deee8eb7..36d8355c 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/CredentialsProviderTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/CredentialsProviderTest.java @@ -223,7 +223,7 @@ public void testUpdateAndDeleteCredentials() throws IOException { @Test public void testHaveDummyCredentialsType() throws Exception { - assertTrue(!CredentialsProvider.allCredentialsDescriptors().isEmpty()); + assertFalse(CredentialsProvider.allCredentialsDescriptors().isEmpty()); DummyCredentials.DescriptorImpl descriptor = null; for (Descriptor d : CredentialsProvider.allCredentialsDescriptors()) { if (d instanceof DummyCredentials.DescriptorImpl) { diff --git a/src/test/java/com/cloudbees/plugins/credentials/SystemCredentialsProviderTest.java b/src/test/java/com/cloudbees/plugins/credentials/SystemCredentialsProviderTest.java index 7db2624c..0f6c2630 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/SystemCredentialsProviderTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/SystemCredentialsProviderTest.java @@ -88,7 +88,7 @@ public void malformedInput() throws Exception { @Test public void smokes() throws Exception { - assertEquals(true, !CredentialsProvider.allCredentialsDescriptors().isEmpty()); + assertFalse(CredentialsProvider.allCredentialsDescriptors().isEmpty()); assertNotNull(SystemCredentialsProvider.getInstance().getDescriptor()); assertNotNull(SystemCredentialsProvider.getInstance().getCredentials()); } From 4382ed02cb4ce2e78a6a3ad779da7d5de81e8954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Tue, 13 Aug 2019 23:09:52 +0200 Subject: [PATCH 09/10] Fix unterminated Javascript statements --- .../FileOnMasterKeyStoreSource/config.jelly | 4 ++-- .../UploadedKeyStoreSource/config.jelly | 4 ++-- src/main/resources/lib/credentials/select/select.js | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl/FileOnMasterKeyStoreSource/config.jelly b/src/main/resources/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl/FileOnMasterKeyStoreSource/config.jelly index c012d827..da5225be 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl/FileOnMasterKeyStoreSource/config.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl/FileOnMasterKeyStoreSource/config.jelly @@ -32,7 +32,7 @@ - \ No newline at end of file + diff --git a/src/main/resources/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl/UploadedKeyStoreSource/config.jelly b/src/main/resources/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl/UploadedKeyStoreSource/config.jelly index ed261284..9516c5fe 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl/UploadedKeyStoreSource/config.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl/UploadedKeyStoreSource/config.jelly @@ -42,7 +42,7 @@ - \ No newline at end of file + diff --git a/src/main/resources/lib/credentials/select/select.js b/src/main/resources/lib/credentials/select/select.js index 76678715..46494687 100644 --- a/src/main/resources/lib/credentials/select/select.js +++ b/src/main/resources/lib/credentials/select/select.js @@ -116,7 +116,7 @@ window.credentials.refreshAll = function () { } h(); }); -} +}; window.credentials.addSubmit = function (e) { var id; var containerId = "container" + (iota++); From c72a8bba55b098522cf1cb4afe16970275c52ba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scheibe?= Date: Wed, 14 Aug 2019 00:00:25 +0200 Subject: [PATCH 10/10] Collapse identical catch blocks to reduce code duplication --- .../credentials/ContextMenuIconUtils.java | 14 ++-------- .../credentials/CredentialsDescriptor.java | 12 ++------ .../credentials/CredentialsMatchers.java | 6 +--- .../credentials/CredentialsNameProvider.java | 6 +--- .../credentials/CredentialsResolver.java | 5 +--- .../credentials/CredentialsSelectHelper.java | 4 +-- .../credentials/CredentialsStoreAction.java | 12 ++------ .../cli/BaseCredentialsCLICommand.java | 4 +-- .../impl/CertificateCredentialsImpl.java | 28 ++----------------- .../matchers/BeanPropertyMatcher.java | 4 +-- 10 files changed, 18 insertions(+), 77 deletions(-) diff --git a/src/main/java/com/cloudbees/plugins/credentials/ContextMenuIconUtils.java b/src/main/java/com/cloudbees/plugins/credentials/ContextMenuIconUtils.java index 8ba11f7d..c8a02283 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/ContextMenuIconUtils.java +++ b/src/main/java/com/cloudbees/plugins/credentials/ContextMenuIconUtils.java @@ -177,11 +177,7 @@ public static Icon getIconByClassSpec(String spec) { try { Method getIconByClassSpec = IconSet.class.getMethod("getIconByClassSpec", Object.class); return (Icon) getIconByClassSpec.invoke(IconSet.icons, spec); - } catch (NoSuchMethodException e) { - // ignore - } catch (IllegalAccessException e) { - // ignore - } catch (InvocationTargetException e) { + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { // ignore } return IconSet.icons.getIconByClassSpec(spec); @@ -227,9 +223,7 @@ public static Icon getIcon(@NonNull Action action) { if (icon == null) { icon = IconSet.icons.getIconByUrl(action.getIconFileName()); } - } catch (InvocationTargetException e) { - icon = null; - } catch (IllegalAccessException e) { + } catch (InvocationTargetException | IllegalAccessException e) { icon = null; } return icon; @@ -259,9 +253,7 @@ public static String getQualifiedUrl(@CheckForNull Icon icon) { } } return null; - } catch (NoSuchFieldException e) { - // ignore we'll use a JellyContext - } catch (IllegalAccessException e) { + } catch (NoSuchFieldException | IllegalAccessException e) { // ignore we'll use a JellyContext } JellyContext ctx = new JellyContext(); diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsDescriptor.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsDescriptor.java index e2d37d36..81e1e352 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsDescriptor.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsDescriptor.java @@ -496,9 +496,7 @@ public void calcFillSettings(String field, Map attributes) { } } - } catch (AssertionError e) { - // ignore, we did the best we could - } catch (UnsupportedEncodingException e) { + } catch (AssertionError | UnsupportedEncodingException e) { // ignore, we did the best we could } } @@ -542,9 +540,7 @@ public void calcAutoCompleteSettings(String field, Map attribute } } - } catch (AssertionError e) { - // ignore, we did the best we could - } catch (UnsupportedEncodingException e) { + } catch (AssertionError | UnsupportedEncodingException e) { // ignore, we did the best we could } } @@ -601,9 +597,7 @@ public String toCheckUrl() { } } - } catch (AssertionError e) { - // ignore, we did the best we could - } catch (UnsupportedEncodingException e) { + } catch (AssertionError | UnsupportedEncodingException e) { // ignore, we did the best we could } return checkUrl; diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsMatchers.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsMatchers.java index 3f24002e..af927204 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsMatchers.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsMatchers.java @@ -603,11 +603,7 @@ public void exitLiteral(CQLParser.LiteralContext ctx) { Class enumClazz = Class.forName(enumClass); Field field = enumClazz.getDeclaredField(enumConst); literal = (Serializable) field.get(null); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsNameProvider.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsNameProvider.java index 171ad021..5d8f7612 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsNameProvider.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsNameProvider.java @@ -91,11 +91,7 @@ Result name(@NonNull Credentials credentials, @NonNull Class clazz) { try { CredentialsNameProvider nameProvider = nameWith.value().newInstance(); return new Result(nameProvider.getName(credentials), nameWith.priority()); - } catch (ClassCastException e) { - // ignore - } catch (InstantiationException e) { - // ignore - } catch (IllegalAccessException e) { + } catch (ClassCastException | InstantiationException | IllegalAccessException e) { // ignore } } diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsResolver.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsResolver.java index 6eeecd81..65e29824 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsResolver.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsResolver.java @@ -135,10 +135,7 @@ public static CredentialsResolver getRes } LOGGER.log(Level.SEVERE, "Resolver {0} for type {1} resolves to {2} which is not assignable to {1}", new Object[]{resolver.getClass(), clazz, resolver.getToClass()}); - } catch (InstantiationException e) { - LOGGER.log(Level.WARNING, "Could not instantiate resolver: " + resolveWith.value(), e); - return null; - } catch (IllegalAccessException e) { + } catch (InstantiationException | IllegalAccessException e) { LOGGER.log(Level.WARNING, "Could not instantiate resolver: " + resolveWith.value(), e); return null; } diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsSelectHelper.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsSelectHelper.java index d25804b0..8f21d10f 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsSelectHelper.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsSelectHelper.java @@ -899,9 +899,7 @@ public ModelObject getContext(String token) { } catch (NoSuchMethodException e) { // old Jenkins pre SECURITY-243 return User.get(token, false, Collections.emptyMap()); - } catch (InvocationTargetException e) { - return null; - } catch (IllegalAccessException e) { + } catch (InvocationTargetException | IllegalAccessException e) { return null; } } diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsStoreAction.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsStoreAction.java index 787fcf62..2871c7f6 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsStoreAction.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsStoreAction.java @@ -545,9 +545,7 @@ public HttpResponse doCreateDomain(StaplerRequest req) throws ServletException, try { XMLUtils.safeTransform(new StreamSource(req.getReader()), new StreamResult(out)); out.close(); - } catch (TransformerException e) { - throw new IOException("Failed to parse credential", e); - } catch (SAXException e) { + } catch (TransformerException | SAXException e) { throw new IOException("Failed to parse credential", e); } @@ -810,9 +808,7 @@ public HttpResponse doCreateCredentials(StaplerRequest req) throws ServletExcept try { XMLUtils.safeTransform(new StreamSource(req.getReader()), new StreamResult(out)); out.close(); - } catch (TransformerException e) { - throw new IOException("Failed to parse credential", e); - } catch (SAXException e) { + } catch (TransformerException | SAXException e) { throw new IOException("Failed to parse credential", e); } @@ -1007,9 +1003,7 @@ public void updateByXml(Source source) throws IOException { try { XMLUtils.safeTransform(source, new StreamResult(out)); out.close(); - } catch (TransformerException e) { - throw new IOException("Failed to parse credential", e); - } catch (SAXException e) { + } catch (TransformerException | SAXException e) { throw new IOException("Failed to parse credential", e); } diff --git a/src/main/java/com/cloudbees/plugins/credentials/cli/BaseCredentialsCLICommand.java b/src/main/java/com/cloudbees/plugins/credentials/cli/BaseCredentialsCLICommand.java index c81909d5..0c06aeff 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/cli/BaseCredentialsCLICommand.java +++ b/src/main/java/com/cloudbees/plugins/credentials/cli/BaseCredentialsCLICommand.java @@ -99,9 +99,7 @@ protected static HierarchicalStreamReader safeXmlStreamReader(Source source) thr try { XMLUtils.safeTransform(source, new StreamResult(out)); out.close(); - } catch (TransformerException e) { - throw new IOException("Failed to parse", e); - } catch (SAXException e) { + } catch (TransformerException | SAXException e) { throw new IOException("Failed to parse", e); } return new XppDriver().createReader(new StringReader(out.toString())); diff --git a/src/main/java/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl.java b/src/main/java/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl.java index f8ce61ff..47caf809 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl.java +++ b/src/main/java/com/cloudbees/plugins/credentials/impl/CertificateCredentialsImpl.java @@ -156,17 +156,7 @@ public synchronized KeyStore getKeyStore() { } try { keyStore.load(new ByteArrayInputStream(keyStoreSource.getKeyStoreBytes()), toCharArray(password)); - } catch (CertificateException e) { - LogRecord lr = new LogRecord(Level.WARNING, "Credentials ID {0}: Could not load keystore from {1}"); - lr.setParameters(new Object[]{getId(), keyStoreSource}); - lr.setThrown(e); - LOGGER.log(lr); - } catch (NoSuchAlgorithmException e) { - LogRecord lr = new LogRecord(Level.WARNING, "Credentials ID {0}: Could not load keystore from {1}"); - lr.setParameters(new Object[]{getId(), keyStoreSource}); - lr.setThrown(e); - LOGGER.log(lr); - } catch (IOException e) { + } catch (CertificateException | NoSuchAlgorithmException | IOException e) { LogRecord lr = new LogRecord(Level.WARNING, "Credentials ID {0}: Could not load keystore from {1}"); lr.setParameters(new Object[]{getId(), keyStoreSource}); lr.setThrown(e); @@ -336,13 +326,7 @@ protected static FormValidation validateCertificateKeystore(String type, byte[] return FormValidation.ok(StringUtils .defaultIfEmpty(StandardCertificateCredentials.NameProvider.getSubjectDN(keyStore), buf.toString())); - } catch (KeyStoreException e) { - return FormValidation.warning(e, Messages.CertificateCredentialsImpl_LoadKeystoreFailed()); - } catch (CertificateException e) { - return FormValidation.warning(e, Messages.CertificateCredentialsImpl_LoadKeystoreFailed()); - } catch (NoSuchAlgorithmException e) { - return FormValidation.warning(e, Messages.CertificateCredentialsImpl_LoadKeystoreFailed()); - } catch (IOException e) { + } catch (KeyStoreException | CertificateException | NoSuchAlgorithmException | IOException e) { return FormValidation.warning(e, Messages.CertificateCredentialsImpl_LoadKeystoreFailed()); } finally { if (passwordChars != null) { @@ -698,13 +682,7 @@ public HttpResponse doUpload(@NonNull StaplerRequest req) throws ServletExceptio Method m = XStream2.class.getMethod("addCriticalField", Class.class, String.class); m.invoke(Items.XSTREAM2, CertificateCredentialsImpl.class, "keyStoreSource"); } - catch (IllegalAccessException e) { - throw new ExceptionInInitializerError(e); - } - catch (InvocationTargetException e) { - throw new ExceptionInInitializerError(e); - } - catch (NoSuchMethodException e) { + catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { throw new ExceptionInInitializerError(e); } } diff --git a/src/main/java/com/cloudbees/plugins/credentials/matchers/BeanPropertyMatcher.java b/src/main/java/com/cloudbees/plugins/credentials/matchers/BeanPropertyMatcher.java index 146b8eee..a297a969 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/matchers/BeanPropertyMatcher.java +++ b/src/main/java/com/cloudbees/plugins/credentials/matchers/BeanPropertyMatcher.java @@ -112,9 +112,7 @@ public boolean matches(@NonNull Credentials item) { try { Object actual = readMethod.invoke(item); return Objects.equals(expected, actual); - } catch (IllegalAccessException e) { - return false; // if we cannot access it then it's not a match - } catch (InvocationTargetException e) { + } catch (IllegalAccessException | InvocationTargetException e) { return false; // if we cannot access it then it's not a match } }