From 02a7f32c7e19c5142cfc6b42e82ee21a34391b8c Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:23:06 -0700 Subject: [PATCH 01/19] Use `System#lineSeparator` where possible --- .../org/jenkinsci/test/acceptance/plugins/git/GitRepo.java | 2 +- src/test/java/plugins/GerritTriggerTest.java | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitRepo.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitRepo.java index 42a29514c..85507a1c3 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitRepo.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitRepo.java @@ -149,7 +149,7 @@ public String gitDir(File dir, Object... args) { while ((line = reader.readLine()) != null) { builder.append(line); - builder.append(System.getProperty("line.separator")); + builder.append(System.lineSeparator()); } int r = p.waitFor(); diff --git a/src/test/java/plugins/GerritTriggerTest.java b/src/test/java/plugins/GerritTriggerTest.java index 979f401f8..7115ce462 100644 --- a/src/test/java/plugins/GerritTriggerTest.java +++ b/src/test/java/plugins/GerritTriggerTest.java @@ -307,9 +307,7 @@ private static String stringFrom(Process p) throws InterruptedException, IOExcep assertThat(p.waitFor(), is(equalTo(0))); StringWriter writer = new StringWriter(); IOUtils.copy(p.getInputStream(), writer, StandardCharsets.UTF_8); - String string = writer.toString() - .replaceAll(System.getProperty("line.separator"), "") - .replaceAll(" ", ""); + String string = writer.toString().replaceAll(System.lineSeparator(), "").replaceAll(" ", ""); writer.close(); return string; } From 7697f3737c8c512bb2a35be9aa61671a4653c82c Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:23:34 -0700 Subject: [PATCH 02/19] Remove unnecessary modifiers --- .../plugins/dashboard_view/controls/JobFiltersArea.java | 2 +- .../test/acceptance/utils/SystemEnvironmentVariables.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/JobFiltersArea.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/JobFiltersArea.java index 80797c37a..210340aa5 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/JobFiltersArea.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/JobFiltersArea.java @@ -73,7 +73,7 @@ public void setIncludeRegex(String regex) { * * @author peter-mueller */ - public static enum StatusFilter { + public enum StatusFilter { /** * Only show enabled jobs. */ diff --git a/src/main/java/org/jenkinsci/test/acceptance/utils/SystemEnvironmentVariables.java b/src/main/java/org/jenkinsci/test/acceptance/utils/SystemEnvironmentVariables.java index b596c71ea..4f70643f9 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/utils/SystemEnvironmentVariables.java +++ b/src/main/java/org/jenkinsci/test/acceptance/utils/SystemEnvironmentVariables.java @@ -7,7 +7,7 @@ */ public class SystemEnvironmentVariables { - public static final String getPropertyVariableOrEnvironment(String property, String def) { + public static String getPropertyVariableOrEnvironment(String property, String def) { String propertyValue = System.getProperty(property); From 2442ed64631cf57517a27dc81900370382e968db Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:26:12 -0700 Subject: [PATCH 03/19] Stop using deprecated method --- .../test/acceptance/plugins/ssh_slaves/SshSlaveLauncher.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/ssh_slaves/SshSlaveLauncher.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/ssh_slaves/SshSlaveLauncher.java index d09495f71..496f88624 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/ssh_slaves/SshSlaveLauncher.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/ssh_slaves/SshSlaveLauncher.java @@ -143,9 +143,10 @@ public void selectCredentials(final String credentialsId) { public void setSshHostKeyVerificationStrategy(Class type) { try { - SshHostKeyVerificationStrategy strategy = type.newInstance(); + SshHostKeyVerificationStrategy strategy = + type.getDeclaredConstructor().newInstance(); hostKeyVerificationStrategy.select(strategy.id()); - } catch (InstantiationException | IllegalAccessException e) { + } catch (ReflectiveOperationException e) { throw new IllegalArgumentException(type.getName() + " is missing a default constructor.", e); } } From 7f8cc85e51d19421c7bdc74a4bc485dcae87d855 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:26:45 -0700 Subject: [PATCH 04/19] Use `isEmpty()` where possible --- src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java | 2 +- .../plugins/workflow_multibranch/GithubBranchSource.java | 2 +- .../java/org/jenkinsci/test/acceptance/po/PageAreaImpl.java | 2 +- .../jenkinsci/test/acceptance/po/WorkflowMultiBranchJob.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java b/src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java index 4ebbc11d1..8c529e261 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java @@ -183,7 +183,7 @@ public String toString() { protected RuntimeException timeoutException(String message, Throwable lastException) { if (predicate != null) { String diagnosis = predicate.diagnose(lastException, message); - if (diagnosis != null && !diagnosis.equals("")) { + if (diagnosis != null && !diagnosis.isEmpty()) { message += ". " + diagnosis; } } diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/workflow_multibranch/GithubBranchSource.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/workflow_multibranch/GithubBranchSource.java index d8fc2a437..f6d151819 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/workflow_multibranch/GithubBranchSource.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/workflow_multibranch/GithubBranchSource.java @@ -46,7 +46,7 @@ public GithubBranchSource credential(final String credName) { public GithubBranchSource selectRepository(final String repoName) { waitFor().withTimeout(Duration.ofSeconds(10)).until((Callable) () -> { final Select select = new Select(repository.resolve()); - return select.getOptions().size() > 0; + return !select.getOptions().isEmpty(); }); this.repository.select(repoName); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/PageAreaImpl.java b/src/main/java/org/jenkinsci/test/acceptance/po/PageAreaImpl.java index 839e089d7..ca3f301ad 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/PageAreaImpl.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/PageAreaImpl.java @@ -57,7 +57,7 @@ public String getPath() { @Override public String getPath(String rel) { - if (rel.length() == 0) { + if (rel.isEmpty()) { return path; } diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/WorkflowMultiBranchJob.java b/src/main/java/org/jenkinsci/test/acceptance/po/WorkflowMultiBranchJob.java index 5ae44ad8b..4f43a5053 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/WorkflowMultiBranchJob.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/WorkflowMultiBranchJob.java @@ -54,7 +54,7 @@ public void reIndex() { final List scanRepoNow = driver.findElements(by.xpath("//div[@class=\"task\"]//*[text()=\"Scan Repository Now\"]")); - if (scanRepoNow.size() > 0) { + if (!scanRepoNow.isEmpty()) { // JENKINS-41416 scanRepoNow.get(0).click(); } else { From e83202fb5d52deb733959a03258b022eaae388ad Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:27:16 -0700 Subject: [PATCH 05/19] Remove unnecessary semicolons --- .../test/acceptance/plugins/job_dsl/JobDslRemovedJobAction.java | 2 +- .../test/acceptance/plugins/logparser/LogParserPublisher.java | 1 - src/test/java/plugins/JabberPluginTest.java | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/job_dsl/JobDslRemovedJobAction.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/job_dsl/JobDslRemovedJobAction.java index c76b5d217..538039d6f 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/job_dsl/JobDslRemovedJobAction.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/job_dsl/JobDslRemovedJobAction.java @@ -8,5 +8,5 @@ public enum JobDslRemovedJobAction { IGNORE, DISABLE, - DELETE; + DELETE } diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/logparser/LogParserPublisher.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/logparser/LogParserPublisher.java index e6ae9bb8e..34de7bda5 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/logparser/LogParserPublisher.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/logparser/LogParserPublisher.java @@ -24,7 +24,6 @@ public enum RuleType { RuleType(String projecttype) { this.projecttype = projecttype; } - ; public String getProjecttype() { return projecttype; diff --git a/src/test/java/plugins/JabberPluginTest.java b/src/test/java/plugins/JabberPluginTest.java index 46c3f5585..4b153fd1a 100644 --- a/src/test/java/plugins/JabberPluginTest.java +++ b/src/test/java/plugins/JabberPluginTest.java @@ -64,7 +64,6 @@ public void jabber_notification_success_publishing() throws IOException, Interru ec.jabberPassword.set(jabberPasswordString); // sleep(10000); } - ; MUCConfig mc = ec.addMUCConfig(); { From 435ff382d1ab56de05f611099077454f14f565ad Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:28:14 -0700 Subject: [PATCH 06/19] Use diamond operator where possible --- .../test/acceptance/FallbackConfig.java | 2 +- .../jenkinsci/test/acceptance/Matchers.java | 28 +++++++++---------- .../test/acceptance/junit/FilterRule.java | 4 +-- .../junit/JUnitProgressReporter.java | 2 +- .../junit/JenkinsAcceptanceTestRule.java | 2 +- .../jenkinsci/test/acceptance/junit/Wait.java | 4 +-- .../ConfigFileProvider.java | 2 +- .../job_config_history/JobConfigHistory.java | 2 +- .../acceptance/plugins/ldap/LdapDetails.java | 2 +- .../plugins/maven/MavenModuleSet.java | 2 +- .../jenkinsci/test/acceptance/po/Build.java | 2 +- .../test/acceptance/po/BuildHistory.java | 6 ++-- .../po/CapybaraPortingLayerImpl.java | 4 +-- .../jenkinsci/test/acceptance/po/Control.java | 8 +++--- .../test/acceptance/po/FormValidation.java | 4 +-- .../jenkinsci/test/acceptance/po/Jenkins.java | 2 +- .../org/jenkinsci/test/acceptance/po/Job.java | 2 +- .../test/acceptance/po/LdapSecurityRealm.java | 2 +- .../test/acceptance/po/PageObject.java | 2 +- .../jenkinsci/test/acceptance/po/Slave.java | 2 +- .../jenkinsci/test/acceptance/po/View.java | 12 ++++---- .../test/acceptance/po/ViewsMixIn.java | 2 +- .../test/acceptance/po/Workspace.java | 2 +- .../utils/aether/ConsoleTransferListener.java | 2 +- .../plugins/CompressArtifactsPluginTest.java | 2 +- .../java/plugins/CredentialsBindingTest.java | 2 +- src/test/java/plugins/GerritTriggerTest.java | 4 +-- src/test/java/plugins/JUnitPluginTest.java | 2 +- src/test/java/plugins/MatrixPluginTest.java | 2 +- .../plugins/MatrixReloadedPluginTest.java | 2 +- .../plugins/NodeLabelParameterPluginTest.java | 2 +- .../plugins/PostBuildScriptPluginTest.java | 2 +- 32 files changed, 60 insertions(+), 60 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java b/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java index 751634764..9fb7f613f 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java +++ b/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java @@ -117,7 +117,7 @@ private WebDriver createWebDriver(TestCleaner cleaner, TestName testName) throws case "chrome-container": return createContainerWebDriver(cleaner, "selenium/standalone-chrome:4.24.0", new ChromeOptions()); case "chrome": - Map prefs = new HashMap(); + Map prefs = new HashMap<>(); prefs.put(LANGUAGE_SELECTOR, "en"); ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("prefs", prefs); diff --git a/src/main/java/org/jenkinsci/test/acceptance/Matchers.java b/src/main/java/org/jenkinsci/test/acceptance/Matchers.java index 5845dfbef..9b4f29667 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/Matchers.java +++ b/src/main/java/org/jenkinsci/test/acceptance/Matchers.java @@ -34,7 +34,7 @@ public static Matcher hasContent(final String content) { } public static Matcher hasContent(final Pattern pattern) { - return new Matcher("Text matching %s", pattern) { + return new Matcher<>("Text matching %s", pattern) { // text captured the time matchesSafely was executed private String pageText; @@ -59,7 +59,7 @@ public void describeMismatchSafely(WebDriver item, Description mismatchDescripti * Matches that matches {@link WebDriver} when it has an element that matches to the given selector. */ public static Matcher hasElement(final By selector) { - return new Matcher("contains element that matches %s", selector) { + return new Matcher<>("contains element that matches %s", selector) { @Override public boolean matchesSafely(WebDriver item) { try { @@ -78,7 +78,7 @@ public void describeMismatchSafely(WebDriver item, Description d) { } public static Matcher hasURL(final URL url) { - return new Matcher("URL matching %s", url) { + return new Matcher<>("URL matching %s", url) { @Override public boolean matchesSafely(WebDriver item) { return item.getCurrentUrl().equals(url.toString()); @@ -95,7 +95,7 @@ public void describeMismatchSafely(WebDriver item, Description mismatchDescripti * For asserting that a {@link PageObject}'s top page has an action of the given name. */ public static Matcher hasAction(final String displayName) { - return new Matcher("contains action titled %s", displayName) { + return new Matcher<>("contains action titled %s", displayName) { @Override public boolean matchesSafely(PageObject po) { try { @@ -147,7 +147,7 @@ public static org.hamcrest.Matcher containsString(final String format, f * Matches if a string contains a portion that matches to the regular expression. */ public static Matcher containsRegexp(final Pattern re) { - return new Matcher("Matches regexp %s", re.toString()) { + return new Matcher<>("Matches regexp %s", re.toString()) { @Override public boolean matchesSafely(String item) { return re.matcher(item).find(); @@ -156,7 +156,7 @@ public boolean matchesSafely(String item) { } public static Matcher pageObjectExists() { - return new Matcher("Page object exists") { + return new Matcher<>("Page object exists") { private @CheckForNull HttpURLConnection conn; // Store for later defect localization @Override @@ -178,7 +178,7 @@ public boolean matchesSafely(PageObject item) { } public static Matcher pageObjectDoesNotExist() { - return new Matcher("Page object does not exist") { + return new Matcher<>("Page object does not exist") { private @CheckForNull HttpURLConnection conn; // Store for later defect localization @Override @@ -199,7 +199,7 @@ public boolean matchesSafely(PageObject item) { } public static Matcher hasLoggedInUser(final String user) { - return new Matcher("has logged in user %s", user) { + return new Matcher<>("has logged in user %s", user) { @Override public boolean matchesSafely(final Jenkins jenkins) { final User currentUser = jenkins.getCurrentUser(); @@ -217,7 +217,7 @@ public void describeMismatchSafely(final Jenkins item, final Description desc) { } public static Matcher loggedInAs(final String user) { - return new Matcher("has logged in user %s", user) { + return new Matcher<>("has logged in user %s", user) { @Override public boolean matchesSafely(final Login login) { final User currentUser = login.getJenkins().getCurrentUser(); @@ -235,7 +235,7 @@ public void describeMismatchSafely(final Login item, final Description desc) { } public static Matcher hasInvalidLoginInformation() { - return new Matcher("has invalid login information message") { + return new Matcher<>("has invalid login information message") { @Override public boolean matchesSafely(final Login login) { try { @@ -254,7 +254,7 @@ public void describeMismatchSafely(final Login item, final Description desc) { } public static Matcher isMemberOf(final String group) { - return new Matcher(" is member of group %s", group) { + return new Matcher<>(" is member of group %s", group) { @Override public boolean matchesSafely(final User user) { user.open(); @@ -279,7 +279,7 @@ public void describeMismatchSafely(final User item, final Description desc) { } public static Matcher fullNameIs(final String fullName) { - return new Matcher(" full name is %s", fullName) { + return new Matcher<>(" full name is %s", fullName) { @Override public boolean matchesSafely(final User user) { if (user.fullName() != null) { @@ -296,7 +296,7 @@ public void describeMismatchSafely(final User item, final Description desc) { } public static Matcher mailAddressIs(final String mail) { - return new Matcher(" mail address is %s", mail) { + return new Matcher<>(" mail address is %s", mail) { @Override public boolean matchesSafely(final User user) { if (user.mail() != null) { @@ -313,7 +313,7 @@ public void describeMismatchSafely(final User item, final Description desc) { } public static Matcher existingFile() { - return new Matcher("an existing file") { + return new Matcher<>("an existing file") { @Override public boolean matchesSafely(final File item) { return item.exists() && item.isFile(); diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/FilterRule.java b/src/main/java/org/jenkinsci/test/acceptance/junit/FilterRule.java index faca1510f..3b5f914a4 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/FilterRule.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/FilterRule.java @@ -70,7 +70,7 @@ public abstract static class Filter { public abstract String whySkip(Statement base, Description description); public static Set getAnnotations(Description description, Class type) { - Set annotations = new HashSet(); + Set annotations = new HashSet<>(); annotations.add(description.getAnnotation(type)); annotations.add(description.getTestClass().getAnnotation(type)); annotations.remove(null); @@ -78,7 +78,7 @@ public static Set getAnnotations(Description descripti } public static Set getAnnotations(Description description) { - Set annotations = new HashSet(); + Set annotations = new HashSet<>(); annotations.addAll(description.getAnnotations()); annotations.addAll(Arrays.asList(description.getTestClass().getAnnotations())); return annotations; diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/JUnitProgressReporter.java b/src/main/java/org/jenkinsci/test/acceptance/junit/JUnitProgressReporter.java index 275b83169..d097a9358 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/JUnitProgressReporter.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/JUnitProgressReporter.java @@ -14,7 +14,7 @@ * @author Ullrich Hafner */ public class JUnitProgressReporter extends RunListener { - private final Set results = new CopyOnWriteArraySet(); + private final Set results = new CopyOnWriteArraySet<>(); @Override public void testStarted(final Description description) throws Exception { diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/JenkinsAcceptanceTestRule.java b/src/main/java/org/jenkinsci/test/acceptance/junit/JenkinsAcceptanceTestRule.java index f87b56faa..c78c14616 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/JenkinsAcceptanceTestRule.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/JenkinsAcceptanceTestRule.java @@ -90,7 +90,7 @@ private Statement decorateWithRules(Statement body) { collectGlobalRules(rules); // Make sure Jenkins is started between -1 and 0 - rules.computeIfAbsent(0, k -> new LinkedHashSet()); + rules.computeIfAbsent(0, k -> new LinkedHashSet<>()); rules.get(0).add(jenkinsBoot(rules)); for (Set rulesGroup : rules.values()) { diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java b/src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java index 8c529e261..33a1727df 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/Wait.java @@ -117,7 +117,7 @@ public Wait withMessage(String pattern, Object... args) { // For convenience as we have quite a lot of Callables historically public Return until(final Callable isTrue) { - return super.until(new Function() { + return super.until(new Function<>() { @Override public Return apply(Subject input) { try { @@ -153,7 +153,7 @@ public String diagnose(Throwable lastException, String message) { } public Return until(final Wait.Predicate isTrue) { - Function fun = new Function() { + Function fun = new Function<>() { @Override public Return apply(Subject input) { try { diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/config_file_provider/ConfigFileProvider.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/config_file_provider/ConfigFileProvider.java index 8e178a719..d5e880b52 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/config_file_provider/ConfigFileProvider.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/config_file_provider/ConfigFileProvider.java @@ -45,7 +45,7 @@ public ConfigFileProvider(Folder f) { public T addFile(Class type) { visit(url("selectProvider")); - WebElement radio = findCaption(type, new Finder() { + WebElement radio = findCaption(type, new Finder<>() { @Override protected WebElement find(String caption) { return outer.find(by.radioButton(caption)); diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/job_config_history/JobConfigHistory.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/job_config_history/JobConfigHistory.java index acb7d6336..ee559ac23 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/job_config_history/JobConfigHistory.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/job_config_history/JobConfigHistory.java @@ -48,7 +48,7 @@ public List getChanges() { open(); final List rows = all(by.xpath("//table//a[text()='(RAW)']/../../*[1]")); - final ArrayList changes = new ArrayList(rows.size()); + final ArrayList changes = new ArrayList<>(rows.size()); for (WebElement row : rows) { changes.add(new Change(this, row.getText())); diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/ldap/LdapDetails.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/ldap/LdapDetails.java index 5fa3faba1..d475b86ef 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/ldap/LdapDetails.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/ldap/LdapDetails.java @@ -281,7 +281,7 @@ public void setEnvironmentVariables(List environmentVar public void addEnvironmentVariable(LdapEnvironmentVariable environmentVariable) { if (this.environmentVariables == null) { - this.environmentVariables = new LinkedList(); + this.environmentVariables = new LinkedList<>(); } this.environmentVariables.add(environmentVariable); } diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/maven/MavenModuleSet.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/maven/MavenModuleSet.java index 906593a32..c0b00481e 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/maven/MavenModuleSet.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/maven/MavenModuleSet.java @@ -98,7 +98,7 @@ public T addBuildSettings(final Class type, final C * @see #getPublisher(Class) */ public T addBuildSettings(Class type) { - WebElement checkbox = findCaption(type, new Finder() { + WebElement checkbox = findCaption(type, new Finder<>() { @Override protected WebElement find(String caption) { return outer.find(by.checkbox(caption)); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Build.java b/src/main/java/org/jenkinsci/test/acceptance/po/Build.java index 82726f039..15974cc14 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Build.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Build.java @@ -242,7 +242,7 @@ public Build shouldBe(final Result result) { } private Matcher resultIs(final Result expected) { - return new Matcher("Build result %s", expected) { + return new Matcher<>("Build result %s", expected) { @Override public boolean matchesSafely(Build item) { return item.getResult().equals(expected.name()); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/BuildHistory.java b/src/main/java/org/jenkinsci/test/acceptance/po/BuildHistory.java index ff9703ca8..1e3855631 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/BuildHistory.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/BuildHistory.java @@ -31,7 +31,7 @@ public Set getBuilds() { WebElement progressiveRendering = findIfNotVisible(by.xpath("//*[@tooltip='Computation in progress.']")); waitFor(progressiveRendering).until(we -> !we.isDisplayed()); - LinkedHashSet builds = new LinkedHashSet(); + LinkedHashSet builds = new LinkedHashSet<>(); for (WebElement element : all(by.xpath( "//a[@href]/span[text() = 'Console output']/.. | " + "//a[@href][img/@alt = 'Console output']"))) { String href = element.getAttribute("href"); @@ -50,7 +50,7 @@ public Set getBuilds() { public Set getBuildsOf(Job... _jobs) { List jobs = Arrays.asList(_jobs); - LinkedHashSet builds = new LinkedHashSet(); + LinkedHashSet builds = new LinkedHashSet<>(); for (Build b : getBuilds()) { if (jobs.contains(b.job)) { builds.add(b); @@ -61,7 +61,7 @@ public Set getBuildsOf(Job... _jobs) { } public static Matcher containsBuildOf(final Job job) { - return new Matcher("Build history containing a build of %s", job) { + return new Matcher<>("Build history containing a build of %s", job) { @Override public boolean matchesSafely(BuildHistory item) { return !item.getBuildsOf(job).isEmpty(); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/CapybaraPortingLayerImpl.java b/src/main/java/org/jenkinsci/test/acceptance/po/CapybaraPortingLayerImpl.java index dde844c75..84f57a6d0 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/CapybaraPortingLayerImpl.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/CapybaraPortingLayerImpl.java @@ -181,7 +181,7 @@ public void waitFor( @Override public WebElement find(final By selector) { try { - return waitFor().withTimeout(Duration.ofMillis(time.seconds(1))).until(new Callable() { + return waitFor().withTimeout(Duration.ofMillis(time.seconds(1))).until(new Callable<>() { @Override public WebElement call() { for (WebElement element : driver.findElements(selector)) { @@ -508,7 +508,7 @@ protected T newInstance(Class type, Object... args) { } protected T findCaption(Class type, Function finder) { - return findCaption(type, new Finder() { + return findCaption(type, new Finder<>() { @Override protected T find(String caption) { return finder.apply(caption); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Control.java b/src/main/java/org/jenkinsci/test/acceptance/po/Control.java index 66047e667..2b46ca852 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Control.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Control.java @@ -211,7 +211,7 @@ public void selectDropdownMenu(String displayName) { * Given a menu button that shows a list of build steps, select the right item from the menu * to insert the said build step. */ - private final Finder findDropDownMenuItem = new Finder() { + private final Finder findDropDownMenuItem = new Finder<>() { @Override protected WebElement find(String caption) { WebElement menuButton = resolve(); @@ -245,7 +245,7 @@ public void selectDropdownMenuAlt(Class type) { elasticSleep(1000); } - private final Finder findDropDownMenuItemBySelector = new Finder() { + private final Finder findDropDownMenuItemBySelector = new Finder<>() { @Override protected WebElement find(String caption) { WebElement menuButton = resolve(); @@ -289,7 +289,7 @@ private WebElement findElement(WebElement context, By selector) { } public void select(Class describable) { - String element = findCaption(describable, new Finder() { + String element = findCaption(describable, new Finder<>() { @Override protected String find(String caption) { return Control.this.getElement(by.option(caption)) != null ? caption : null; @@ -300,7 +300,7 @@ protected String find(String caption) { } public void choose(Class describable) { - String element = findCaption(describable, new Finder() { + String element = findCaption(describable, new Finder<>() { @Override protected String find(String caption) { final By xpath = by.xpath("//input[@type = 'radio' and @value = '%s']", caption); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/FormValidation.java b/src/main/java/org/jenkinsci/test/acceptance/po/FormValidation.java index 68198be88..4f10dda5b 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/FormValidation.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/FormValidation.java @@ -135,7 +135,7 @@ public String toString() { * When either there is no validation or empty OK was returned (there is no way to tell that apart). */ public static Matcher silent() { - return new Matcher("No form validation result should be presented") { + return new Matcher<>("No form validation result should be presented") { @Override public boolean matchesSafely(FormValidation item) { return item.getKind() == Kind.OK && item.getMessage().isEmpty(); @@ -155,7 +155,7 @@ public static Matcher reports(final Kind kind, final String mess public static Matcher reports(final Kind kind, final org.hamcrest.Matcher message) { StringDescription sd = new StringDescription(); message.describeTo(sd); - return new Matcher("Validation reporting " + kind + " with message: " + sd) { + return new Matcher<>("Validation reporting " + kind + " with message: " + sd) { @Override public boolean matchesSafely(FormValidation item) { return item.getKind() == kind && message.matches(item.getMessage()); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Jenkins.java b/src/main/java/org/jenkinsci/test/acceptance/po/Jenkins.java index f5814b9bd..13ca19340 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Jenkins.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Jenkins.java @@ -179,7 +179,7 @@ public void restart() { } public void waitForLoad(int seconds) { - List> ignoring = new ArrayList>(); + List> ignoring = new ArrayList<>(); ignoring.add(AssertionError.class); ignoring.add(NoSuchElementException.class); ignoring.add(WebDriverException.class); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Job.java b/src/main/java/org/jenkinsci/test/acceptance/po/Job.java index 2420b3bb2..b1c2fb28d 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Job.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Job.java @@ -75,7 +75,7 @@ public Job(PageObject context, URL url, String name) { public T useScm(Class type) { ensureConfigPage(); - WebElement radio = findCaption(type, new Finder() { + WebElement radio = findCaption(type, new Finder<>() { @Override protected WebElement find(String caption) { return outer.find(by.radioButton(caption)); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/LdapSecurityRealm.java b/src/main/java/org/jenkinsci/test/acceptance/po/LdapSecurityRealm.java index dd7be4ac8..dfc11db41 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/LdapSecurityRealm.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/LdapSecurityRealm.java @@ -58,7 +58,7 @@ public LdapSecurityRealm(GlobalSecurityConfig context, String path) { } private T useGroupMembershipStrategy(Class type) { - WebElement radio = findCaption(type, new Finder() { + WebElement radio = findCaption(type, new Finder<>() { @Override protected WebElement find(String caption) { return getElement(by.radioButton(caption)); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/PageObject.java b/src/main/java/org/jenkinsci/test/acceptance/po/PageObject.java index 36ab3c594..a5be5261d 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/PageObject.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/PageObject.java @@ -146,7 +146,7 @@ public Control control(By selector) { final int existingSize = existing.size(); action.run(); - return waitFor().withTimeout(Duration.ofSeconds(10)).until(new Function() { + return waitFor().withTimeout(Duration.ofSeconds(10)).until(new Function<>() { @Nullable @Override public String apply(@Nullable CapybaraPortingLayer input) { diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Slave.java b/src/main/java/org/jenkinsci/test/acceptance/po/Slave.java index 23299587d..0942b578c 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Slave.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Slave.java @@ -64,7 +64,7 @@ public int getExecutorCount() { } public static Matcher runBuildsInOrder(final Job... jobs) { - return new Matcher("agent run build in order: %s", Joiner.on(' ').join(jobs)) { + return new Matcher<>("agent run build in order: %s", Joiner.on(' ').join(jobs)) { @Override public boolean matchesSafely(Slave slave) { slave.visit("builds"); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/View.java b/src/main/java/org/jenkinsci/test/acceptance/po/View.java index a4073cf65..15d08a552 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/View.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/View.java @@ -71,7 +71,7 @@ public BuildHistory getBuildHistory() { } public static Matcher containsJob(final Job needle) { - return new Matcher("Contains job " + needle.name) { + return new Matcher<>("Contains job " + needle.name) { @Override public boolean matchesSafely(View view) { for (JsonNode job : view.getJson().get("jobs")) { @@ -131,7 +131,7 @@ public boolean matchesSafely(View item) { } public static Matcher containsColumnHeaderTooltip(String tooltip) { - return new Matcher("Contains ToolTip " + tooltip) { + return new Matcher<>("Contains ToolTip " + tooltip) { @Override public boolean matchesSafely(View item) { WebElement webElement = item.getElement(By.xpath("//th[contains(@tooltip, '" + tooltip + "')]")); @@ -141,7 +141,7 @@ public boolean matchesSafely(View item) { } public static Matcher containsColumnHeader(String headerName) { - return new Matcher("Contains ToolTip " + headerName) { + return new Matcher<>("Contains ToolTip " + headerName) { @Override public boolean matchesSafely(View item) { WebElement webElement = item.getElement(By.xpath("//th/a[text() = '" + headerName + "']")); @@ -151,7 +151,7 @@ public boolean matchesSafely(View item) { } public static Matcher containsImage(String imageName) { - return new Matcher("Contains image " + imageName) { + return new Matcher<>("Contains image " + imageName) { @Override public boolean matchesSafely(View item) { WebElement webElement = item.getElement(By.xpath("//img[contains(@src, '" + imageName + "')]")); @@ -161,7 +161,7 @@ public boolean matchesSafely(View item) { } public static Matcher containsSvgWithText(String text) { - return new Matcher("Contains svg with text " + text) { + return new Matcher<>("Contains svg with text " + text) { @Override public boolean matchesSafely(View item) { WebElement webElement = item.getElement( @@ -172,7 +172,7 @@ public boolean matchesSafely(View item) { } public static Matcher containsLinkWithTooltip(String text) { - return new Matcher("Contains link with tooltip " + text) { + return new Matcher<>("Contains link with tooltip " + text) { @Override public boolean matchesSafely(View item) { WebElement webElement = item.getElement(By.cssSelector(String.format("a[tooltip='%s']", text))); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/ViewsMixIn.java b/src/main/java/org/jenkinsci/test/acceptance/po/ViewsMixIn.java index baa2f2872..8dc821faf 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/ViewsMixIn.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/ViewsMixIn.java @@ -20,7 +20,7 @@ public T create(final Class type) { public T create(final Class type, String name) { - final Finder finder = new Finder() { + final Finder finder = new Finder<>() { @Override protected WebElement find(String caption) { return outer.find(by.radioButton(caption)); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Workspace.java b/src/main/java/org/jenkinsci/test/acceptance/po/Workspace.java index 261cb7809..1994ac7f2 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Workspace.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Workspace.java @@ -37,7 +37,7 @@ public void wipeOut() { } public static Matcher workspaceContains(final String file) { - return new Matcher("%s in job workspace", file) { + return new Matcher<>("%s in job workspace", file) { @Override public boolean matchesSafely(Job job) { job.getWorkspace().open(); diff --git a/src/main/java/org/jenkinsci/test/acceptance/utils/aether/ConsoleTransferListener.java b/src/main/java/org/jenkinsci/test/acceptance/utils/aether/ConsoleTransferListener.java index 96202b394..97eaa64b4 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/utils/aether/ConsoleTransferListener.java +++ b/src/main/java/org/jenkinsci/test/acceptance/utils/aether/ConsoleTransferListener.java @@ -28,7 +28,7 @@ public class ConsoleTransferListener extends AbstractTransferListener { private PrintStream out; - private Map downloads = new ConcurrentHashMap(); + private Map downloads = new ConcurrentHashMap<>(); private int lastLength; diff --git a/src/test/java/plugins/CompressArtifactsPluginTest.java b/src/test/java/plugins/CompressArtifactsPluginTest.java index 557f07d41..030e02f22 100644 --- a/src/test/java/plugins/CompressArtifactsPluginTest.java +++ b/src/test/java/plugins/CompressArtifactsPluginTest.java @@ -130,7 +130,7 @@ private Build generateArtifact() { } private Matcher hasCompressedArtifacts() { - return new Matcher("Build has compressed artifacts") { + return new Matcher<>("Build has compressed artifacts") { @Override public boolean matchesSafely(Build build) { final String script = "!Jenkins.instance.rootPath.child('jobs/%s/builds/%s/archive/').exists()"; diff --git a/src/test/java/plugins/CredentialsBindingTest.java b/src/test/java/plugins/CredentialsBindingTest.java index a744c472d..64deb418f 100644 --- a/src/test/java/plugins/CredentialsBindingTest.java +++ b/src/test/java/plugins/CredentialsBindingTest.java @@ -245,7 +245,7 @@ private void testPersonalCredentials( private void waitForLogToBeFullyLoaded(final Build b, String text) { waitFor( driver, - new Matcher("Console log is not fully loaded") { + new Matcher<>("Console log is not fully loaded") { @Override public boolean matchesSafely(WebDriver item) { String pageText = CapybaraPortingLayerImpl.getPageContent(visit(b.getConsoleUrl())); diff --git a/src/test/java/plugins/GerritTriggerTest.java b/src/test/java/plugins/GerritTriggerTest.java index 7115ce462..0c54ab56a 100644 --- a/src/test/java/plugins/GerritTriggerTest.java +++ b/src/test/java/plugins/GerritTriggerTest.java @@ -108,7 +108,7 @@ public class GerritTriggerTest extends AbstractJUnitTest { private String gtPrivateKey; // List of changes to abandon - private List changes = new ArrayList(); + private List changes = new ArrayList<>(); private File ssh; @After @@ -160,7 +160,7 @@ public void setupSSHWrapper() throws IOException { ssh.toPath(), new HashSet<>(Arrays.asList(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_EXECUTE))); - changes = new ArrayList(); + changes = new ArrayList<>(); } @BeforeClass diff --git a/src/test/java/plugins/JUnitPluginTest.java b/src/test/java/plugins/JUnitPluginTest.java index f863f070b..a6435bf3c 100644 --- a/src/test/java/plugins/JUnitPluginTest.java +++ b/src/test/java/plugins/JUnitPluginTest.java @@ -80,7 +80,7 @@ private void assertMessage(String test, String content) { // Given that there may be several tests with the same name, we assert // that at least one of the pages have the requested content final List elements = all(by.xpath("//a[text()='%s']", test)); - final List testPages = new ArrayList(elements.size()); + final List testPages = new ArrayList<>(elements.size()); for (WebElement e : elements) { testPages.add(e.getAttribute("href")); } diff --git a/src/test/java/plugins/MatrixPluginTest.java b/src/test/java/plugins/MatrixPluginTest.java index c87cd74bc..95df29345 100644 --- a/src/test/java/plugins/MatrixPluginTest.java +++ b/src/test/java/plugins/MatrixPluginTest.java @@ -264,7 +264,7 @@ private void rebuildCombination(MatrixProject job, String... combinations) { } private Matcher built() { - return new Matcher("Matrix run exists") { + return new Matcher<>("Matrix run exists") { @Override public boolean matchesSafely(MatrixRun item) { return item.exists(); diff --git a/src/test/java/plugins/MatrixReloadedPluginTest.java b/src/test/java/plugins/MatrixReloadedPluginTest.java index c0ec4facc..0a298289e 100644 --- a/src/test/java/plugins/MatrixReloadedPluginTest.java +++ b/src/test/java/plugins/MatrixReloadedPluginTest.java @@ -74,7 +74,7 @@ public void rebuild_one_combination() { } private Matcher exists() { - return new Matcher("Matrix run exists") { + return new Matcher<>("Matrix run exists") { @Override public boolean matchesSafely(MatrixRun item) { return item.exists(); diff --git a/src/test/java/plugins/NodeLabelParameterPluginTest.java b/src/test/java/plugins/NodeLabelParameterPluginTest.java index ff8ebd776..098d118fa 100644 --- a/src/test/java/plugins/NodeLabelParameterPluginTest.java +++ b/src/test/java/plugins/NodeLabelParameterPluginTest.java @@ -532,7 +532,7 @@ private void shouldBeTriggeredWithoutValidOnlineNode(Build build, String nodenam } private Matcher started() { - return new Matcher("Build has started") { + return new Matcher<>("Build has started") { @Override public boolean matchesSafely(Build build) { return build.hasStarted(); diff --git a/src/test/java/plugins/PostBuildScriptPluginTest.java b/src/test/java/plugins/PostBuildScriptPluginTest.java index 2a671af27..723a6069c 100644 --- a/src/test/java/plugins/PostBuildScriptPluginTest.java +++ b/src/test/java/plugins/PostBuildScriptPluginTest.java @@ -57,7 +57,7 @@ private PostBuildScript addMarkerPostBuildStep() { } private Matcher runPostBuildStep() { - return new Matcher("post build step was run") { + return new Matcher<>("post build step was run") { @Override public boolean matchesSafely(Build item) { return item.getConsole().contains("RUNNING_POST_BUILD_STEP"); From d62b8287587caa2b48daa761575921145db64390 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:29:27 -0700 Subject: [PATCH 07/19] Remove redundant `if` statement --- .../LocalOverrideUpdateCenterMetadataDecoratorImpl.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/update_center/LocalOverrideUpdateCenterMetadataDecoratorImpl.java b/src/main/java/org/jenkinsci/test/acceptance/update_center/LocalOverrideUpdateCenterMetadataDecoratorImpl.java index 88400175d..788aa66ef 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/update_center/LocalOverrideUpdateCenterMetadataDecoratorImpl.java +++ b/src/main/java/org/jenkinsci/test/acceptance/update_center/LocalOverrideUpdateCenterMetadataDecoratorImpl.java @@ -118,9 +118,7 @@ private boolean isPluginEnvironmentVariable(String name) { if (name.endsWith(".jpi")) { return true; } - if (name.endsWith("_JPI")) { // http://stackoverflow.com/a/36992531/12916 - return true; - } - return false; + // http://stackoverflow.com/a/36992531/12916 + return name.endsWith("_JPI"); } } From 0181404f864e08616a27be765963d99c0334c6bc Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:29:50 -0700 Subject: [PATCH 08/19] Remove redundant local variables --- .../test/acceptance/docker/fixtures/GitLabContainer.java | 3 +-- .../org/jenkinsci/test/acceptance/plugins/git/GitScm.java | 3 +-- .../jenkinsci/test/acceptance/recorder/TestRecorderRule.java | 5 +---- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/docker/fixtures/GitLabContainer.java b/src/main/java/org/jenkinsci/test/acceptance/docker/fixtures/GitLabContainer.java index e383c6961..0b5104128 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/docker/fixtures/GitLabContainer.java +++ b/src/main/java/org/jenkinsci/test/acceptance/docker/fixtures/GitLabContainer.java @@ -89,8 +89,7 @@ public HttpResponse createRepo(String repoName, String token) throws Run .header("PRIVATE-TOKEN", token) .POST(HttpRequest.BodyPublishers.ofString("{ \"name\": \"" + repoName + "\" }")) .build(); - HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); - return response; + return client.send(request, HttpResponse.BodyHandlers.ofString()); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java index 7235ed672..0fa57c754 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java @@ -164,8 +164,7 @@ public GitScm customNameAndMail(String name, String email) { * @return behaviour, to access .addPath() method */ public SparseCheckoutPaths sparseCheckout() { - SparseCheckoutPaths behaviour = addBehaviour(SparseCheckoutPaths.class); - return behaviour; + return addBehaviour(SparseCheckoutPaths.class); } /** diff --git a/src/main/java/org/jenkinsci/test/acceptance/recorder/TestRecorderRule.java b/src/main/java/org/jenkinsci/test/acceptance/recorder/TestRecorderRule.java index b684f5850..76e6894b1 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/recorder/TestRecorderRule.java +++ b/src/main/java/org/jenkinsci/test/acceptance/recorder/TestRecorderRule.java @@ -71,12 +71,9 @@ private void startRecording(Description des) { String videoFormatName = VideoFormatKeys.ENCODING_QUICKTIME_ANIMATION; String compressorName = VideoFormatKeys.COMPRESSOR_NAME_QUICKTIME_ANIMATION; Dimension outputDimension = gc.getBounds().getSize(); - int bitDepth = BIT_DEPTH; - float quality = QUALITY_RATIO; - int screenRate = FRAME_RATE_PER_SEC; Format outputFormatForScreenCapture = getOutputFormatForScreenCapture( - videoFormatName, compressorName, outputDimension, bitDepth, quality, screenRate); + videoFormatName, compressorName, outputDimension, BIT_DEPTH, QUALITY_RATIO, FRAME_RATE_PER_SEC); this.screenRecorder = new JUnitScreenRecorder( gc, gc.getBounds(), getFileFormat(mimeType), outputFormatForScreenCapture, null, null, diagnostics); From 65229efc83bf422747b0ebc58b1a218463ce2564 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:32:22 -0700 Subject: [PATCH 09/19] Use try-with-resources where possible --- .../jenkinsci/test/acceptance/junit/FailureDiagnostics.java | 6 ++++-- .../acceptance/server/JenkinsControllerPoolProcess.java | 3 +-- src/test/java/plugins/DisplayUrlApiTest.java | 6 +----- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/FailureDiagnostics.java b/src/main/java/org/jenkinsci/test/acceptance/junit/FailureDiagnostics.java index 423ee3caf..7c60b79d7 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/FailureDiagnostics.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/FailureDiagnostics.java @@ -5,8 +5,10 @@ import java.io.FileWriter; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Stream; import org.codehaus.plexus.util.FileUtils; import org.jenkinsci.test.acceptance.guice.TestName; import org.jenkinsci.test.acceptance.guice.TestScope; @@ -103,8 +105,8 @@ protected void succeeded(Description description) { @Override public void failed(Throwable e, Description description) { if (dir.exists()) { - try { - Files.walk(dir.toPath()).forEach(p -> { + try (Stream stream = Files.walk(dir.toPath())) { + stream.forEach(p -> { if (Files.isRegularFile(p)) { // https://wiki.jenkins-ci.org/display/JENKINS/JUnit+Attachments+Plugin#JUnitAttachmentsPlugin-ByprintingoutthefilenameinaformatthatJenkinswillunderstand System.out.printf((JUNIT_ATTACHMENT) + "%n", p.toAbsolutePath()); diff --git a/src/main/java/org/jenkinsci/test/acceptance/server/JenkinsControllerPoolProcess.java b/src/main/java/org/jenkinsci/test/acceptance/server/JenkinsControllerPoolProcess.java index 7180e7a5d..1d73c38d2 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/server/JenkinsControllerPoolProcess.java +++ b/src/main/java/org/jenkinsci/test/acceptance/server/JenkinsControllerPoolProcess.java @@ -160,7 +160,7 @@ public void run() { */ private void processConnection(UnixSocketChannel c, JenkinsController j) { try { - try { + try (c) { try (InputStream in = ChannelStream.in(c); OutputStream out = ChannelStream.out(c)) { @@ -176,7 +176,6 @@ private void processConnection(UnixSocketChannel c, JenkinsController j) { System.out.println("done"); j.stop(); j.tearDown(); - c.close(); } } catch (IOException | InterruptedException e) { e.printStackTrace(); diff --git a/src/test/java/plugins/DisplayUrlApiTest.java b/src/test/java/plugins/DisplayUrlApiTest.java index 2b3611cdf..b04f2fe74 100644 --- a/src/test/java/plugins/DisplayUrlApiTest.java +++ b/src/test/java/plugins/DisplayUrlApiTest.java @@ -150,14 +150,10 @@ private String[] getURLS(String jobName) { } private void assertRedirect(String s) throws IOException { - CloseableHttpResponse response = null; HttpGet get = new HttpGet(s.trim()); - try { - response = (CloseableHttpResponse) client.execute(get); + try (CloseableHttpResponse response = (CloseableHttpResponse) client.execute(get)) { int responseCode = response.getStatusLine().getStatusCode(); assertEquals(String.format("URL %s is not reachable", s.trim()), 200, responseCode); - } finally { - response.close(); } } } From 0bce4a7fde97f932f0b3a306229c898fa55c4a0d Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:34:06 -0700 Subject: [PATCH 10/19] Arrays of wisdom of the ancients --- .../java/org/jenkinsci/test/acceptance/junit/WithPlugins.java | 2 +- .../acceptance/plugins/dashboard_view/controls/ColumnsArea.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/WithPlugins.java b/src/main/java/org/jenkinsci/test/acceptance/junit/WithPlugins.java index a629e0ffc..1123c3c3d 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/WithPlugins.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/WithPlugins.java @@ -183,7 +183,7 @@ private void installPlugins(List install) { LOGGER.info("All required plugins already installed."); } else { LOGGER.info("Installing plugins for test: " + install); - PluginSpec[] installList = install.toArray(new PluginSpec[install.size()]); + PluginSpec[] installList = install.toArray(new PluginSpec[0]); try { //noinspection deprecation pm.installPlugins(installList); diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java index da15433b8..fb1260b0b 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java @@ -56,7 +56,7 @@ public void removeAll() { By xpath = By.xpath("//div[@name='columns' and not(contains(.,'" + Column.LAST_STABLE.getText() + "'))]//button[@title='Delete']"); List columns = control(form).resolve().findElements(xpath); - Arrays.stream(columns.toArray(new WebElement[columns.size()])).forEach(WebElement::click); + Arrays.stream(columns.toArray(new WebElement[0])).forEach(WebElement::click); } /** From cfb7db7462fd4209327bd3ceb3a69e180fc9e8a7 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:40:38 -0700 Subject: [PATCH 11/19] Use `List#of` and `Map#of` where possible --- .../test/acceptance/FallbackConfig.java | 3 +- .../controller/WinstoneController.java | 3 +- .../docker/fixtures/JiraContainer.java | 3 +- .../test/acceptance/junit/FilterRule.java | 4 +- .../test/acceptance/junit/WithOS.java | 3 +- .../dashboard_view/controls/ColumnsArea.java | 3 +- .../dashboard_view/read/BreadCrumbs.java | 3 +- .../test/acceptance/plugins/git/GitRepo.java | 4 +- .../test/acceptance/po/BuildHistory.java | 3 +- .../po/CapybaraPortingLayerImpl.java | 3 +- .../test/acceptance/po/PluginManager.java | 3 +- .../test/acceptance/po/UpdateCenter.java | 4 +- .../test/acceptance/utils/IOUtil.java | 4 +- .../utils/aether/ArtifactResolverUtil.java | 4 +- src/test/java/core/FreestyleJobTest.java | 7 ++-- .../acceptance/junit/WithPluginsTest.java | 5 +-- .../UpdateCenterMetadataTest.java | 17 +++----- .../java/plugins/DashboardViewPluginTest.java | 5 +-- src/test/java/plugins/GerritTriggerTest.java | 3 +- src/test/java/plugins/MatrixPluginTest.java | 11 ++--- .../plugins/NodeLabelParameterPluginTest.java | 40 ++++++++----------- .../java/plugins/SupportCorePluginTest.java | 4 +- 22 files changed, 56 insertions(+), 83 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java b/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java index 9fb7f613f..8bbd61750 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java +++ b/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java @@ -18,7 +18,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; -import java.util.Collections; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -107,7 +106,7 @@ private WebDriver createWebDriver(TestCleaner cleaner, TestName testName) throws setDriverPropertyIfMissing("geckodriver", GeckoDriverService.GECKO_DRIVER_EXE_PROPERTY); GeckoDriverService.Builder builder = new GeckoDriverService.Builder(); if (display != null) { - builder.withEnvironment(Collections.singletonMap("DISPLAY", display)); + builder.withEnvironment(Map.of("DISPLAY", display)); } GeckoDriverService service = builder.build(); return new FirefoxDriver(service, buildFirefoxOptions(testName)); diff --git a/src/main/java/org/jenkinsci/test/acceptance/controller/WinstoneController.java b/src/main/java/org/jenkinsci/test/acceptance/controller/WinstoneController.java index 0804c95f1..310808d6a 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/controller/WinstoneController.java +++ b/src/main/java/org/jenkinsci/test/acceptance/controller/WinstoneController.java @@ -9,7 +9,6 @@ import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.logging.Logger; @@ -37,7 +36,7 @@ protected static List envVarOpts(String jenkins_opts) { if (getenv == null) { return Collections.emptyList(); } - return Arrays.asList(getenv.split("\\s+")); + return List.of(getenv.split("\\s+")); } public void addJavaOpt(String javaOpt) { diff --git a/src/main/java/org/jenkinsci/test/acceptance/docker/fixtures/JiraContainer.java b/src/main/java/org/jenkinsci/test/acceptance/docker/fixtures/JiraContainer.java index 93a7958b8..2278cf1f5 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/docker/fixtures/JiraContainer.java +++ b/src/main/java/org/jenkinsci/test/acceptance/docker/fixtures/JiraContainer.java @@ -12,7 +12,6 @@ import java.net.URLConnection; import java.nio.charset.StandardCharsets; import java.time.Duration; -import java.util.Arrays; import java.util.List; import javax.xml.rpc.ServiceException; import org.apache.commons.io.IOUtils; @@ -96,7 +95,7 @@ private void connect() throws IOException, ServiceException { public List getComments(String ticket) throws IOException, ServiceException { connect(); - return Arrays.asList(svc.getComments(token, ticket)); + return List.of(svc.getComments(token, ticket)); } public JiraSoapService getSvc() { diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/FilterRule.java b/src/main/java/org/jenkinsci/test/acceptance/junit/FilterRule.java index 3b5f914a4..c1e93afb0 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/FilterRule.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/FilterRule.java @@ -25,8 +25,8 @@ import com.google.inject.Inject; import java.lang.annotation.Annotation; -import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.jenkinsci.test.acceptance.guice.World; import org.junit.Assume; @@ -80,7 +80,7 @@ public static Set getAnnotations(Description descripti public static Set getAnnotations(Description description) { Set annotations = new HashSet<>(); annotations.addAll(description.getAnnotations()); - annotations.addAll(Arrays.asList(description.getTestClass().getAnnotations())); + annotations.addAll(List.of(description.getTestClass().getAnnotations())); return annotations; } } diff --git a/src/main/java/org/jenkinsci/test/acceptance/junit/WithOS.java b/src/main/java/org/jenkinsci/test/acceptance/junit/WithOS.java index c7040b491..2d4cecb6a 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/junit/WithOS.java +++ b/src/main/java/org/jenkinsci/test/acceptance/junit/WithOS.java @@ -8,6 +8,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.Arrays; +import java.util.List; import org.apache.commons.lang3.SystemUtils; import org.jenkinsci.test.acceptance.controller.JenkinsController; import org.jenkinsci.test.acceptance.controller.LocalController; @@ -76,7 +77,7 @@ private void check(WithOS withos, Class testCase) { String errorMsg = "Test and Jenkins instance must be running on any of the following operating systems: " + Arrays.toString(withos.os()); - if (!Arrays.asList(withos.os()).contains(currentOS())) { + if (!List.of(withos.os()).contains(currentOS())) { throw new AssumptionViolatedException(errorMsg); } } diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java index fb1260b0b..785534cb7 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java @@ -1,6 +1,5 @@ package org.jenkinsci.test.acceptance.plugins.dashboard_view.controls; -import java.util.Arrays; import java.util.List; import org.jenkinsci.test.acceptance.po.Control; import org.jenkinsci.test.acceptance.po.PageAreaImpl; @@ -56,7 +55,7 @@ public void removeAll() { By xpath = By.xpath("//div[@name='columns' and not(contains(.,'" + Column.LAST_STABLE.getText() + "'))]//button[@title='Delete']"); List columns = control(form).resolve().findElements(xpath); - Arrays.stream(columns.toArray(new WebElement[0])).forEach(WebElement::click); + columns.stream().forEach(WebElement::click); } /** diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/read/BreadCrumbs.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/read/BreadCrumbs.java index 20cfa57fa..5ffd53edf 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/read/BreadCrumbs.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/read/BreadCrumbs.java @@ -1,6 +1,5 @@ package org.jenkinsci.test.acceptance.plugins.dashboard_view.read; -import java.util.Arrays; import java.util.List; import org.jenkinsci.test.acceptance.po.PageAreaImpl; import org.jenkinsci.test.acceptance.po.PageObject; @@ -34,6 +33,6 @@ public BreadCrumbs(PageObject context, String path) { public List getBreadCrumbs() { final WebElement webElement = find(nameCrumb); final String[] crumbs = webElement.getText().split("\n"); - return Arrays.asList(crumbs); + return List.of(crumbs); } } diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitRepo.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitRepo.java index 85507a1c3..2cc66ac4f 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitRepo.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitRepo.java @@ -22,7 +22,6 @@ import java.nio.file.Paths; import java.nio.file.attribute.PosixFilePermission; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Properties; @@ -109,8 +108,7 @@ private File initDir() { Charset.defaultCharset()); Files.setPosixFilePermissions( ssh.toPath(), - new HashSet<>( - Arrays.asList(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_EXECUTE))); + new HashSet<>(List.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_EXECUTE))); } return createTempDir("git"); } catch (IOException e) { diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/BuildHistory.java b/src/main/java/org/jenkinsci/test/acceptance/po/BuildHistory.java index 1e3855631..620e37b6d 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/BuildHistory.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/BuildHistory.java @@ -1,6 +1,5 @@ package org.jenkinsci.test.acceptance.po; -import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -49,7 +48,7 @@ public Set getBuilds() { } public Set getBuildsOf(Job... _jobs) { - List jobs = Arrays.asList(_jobs); + List jobs = List.of(_jobs); LinkedHashSet builds = new LinkedHashSet<>(); for (Build b : getBuilds()) { if (jobs.contains(b.job)) { diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/CapybaraPortingLayerImpl.java b/src/main/java/org/jenkinsci/test/acceptance/po/CapybaraPortingLayerImpl.java index 84f57a6d0..71bca5985 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/CapybaraPortingLayerImpl.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/CapybaraPortingLayerImpl.java @@ -7,7 +7,6 @@ import java.lang.reflect.Constructor; import java.net.URL; import java.time.Duration; -import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable; import java.util.function.Consumer; @@ -501,7 +500,7 @@ protected T newInstance(Class type, Object... args) { return type.cast(c.newInstance(args)); } - throw new AssertionError("No matching constructor found in " + type + ": " + Arrays.asList(args)); + throw new AssertionError("No matching constructor found in " + type + ": " + List.of(args)); } catch (ReflectiveOperationException e) { throw new AssertionError("Failed to invoke a constructor of " + type, e); } diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/PluginManager.java b/src/main/java/org/jenkinsci/test/acceptance/po/PluginManager.java index 7e95b6928..3a3eb57c1 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/PluginManager.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/PluginManager.java @@ -8,7 +8,6 @@ import java.time.Duration; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -190,7 +189,7 @@ public boolean installPlugins(final PluginSpec... specs) throws UnableToResolveD return false; } List pluginToBeInstalled = - ucmd.get(jenkins).transitiveDependenciesOf(jenkins, Arrays.asList(specs)); + ucmd.get(jenkins).transitiveDependenciesOf(jenkins, List.of(specs)); for (PluginMetadata newPlugin : pluginToBeInstalled) { final String name = newPlugin.getName(); String requiredVersion = candidates.get(name); diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/UpdateCenter.java b/src/main/java/org/jenkinsci/test/acceptance/po/UpdateCenter.java index 8029b3967..85b009922 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/UpdateCenter.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/UpdateCenter.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.Iterables; import java.time.Duration; -import java.util.Arrays; +import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import org.apache.commons.lang3.ArrayUtils; import org.jenkinsci.test.acceptance.Matchers; @@ -58,7 +58,7 @@ public boolean isInstalled(String pluginShortName) throws InstallationFailedExce } throw new AssertionError( - "No record of installation being attempted for " + pluginShortName + "\n" + Arrays.asList(jobs)); + "No record of installation being attempted for " + pluginShortName + "\n" + List.of(jobs)); } /** diff --git a/src/main/java/org/jenkinsci/test/acceptance/utils/IOUtil.java b/src/main/java/org/jenkinsci/test/acceptance/utils/IOUtil.java index ffac68c78..4e114deaf 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/utils/IOUtil.java +++ b/src/main/java/org/jenkinsci/test/acceptance/utils/IOUtil.java @@ -29,7 +29,7 @@ import java.net.HttpURLConnection; import java.net.ServerSocket; import java.net.URL; -import java.util.Arrays; +import java.util.List; import java.util.logging.Logger; public class IOUtil { @@ -54,7 +54,7 @@ public class IOUtil { } } - throw new IOException("None of the paths exist: " + Arrays.asList(candidatePaths)); + throw new IOException("None of the paths exist: " + List.of(candidatePaths)); } /** diff --git a/src/main/java/org/jenkinsci/test/acceptance/utils/aether/ArtifactResolverUtil.java b/src/main/java/org/jenkinsci/test/acceptance/utils/aether/ArtifactResolverUtil.java index b26a19fc5..63b607a7e 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/utils/aether/ArtifactResolverUtil.java +++ b/src/main/java/org/jenkinsci/test/acceptance/utils/aether/ArtifactResolverUtil.java @@ -26,7 +26,7 @@ import jakarta.inject.Inject; import java.io.File; -import java.util.Arrays; +import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.maven.settings.Settings; @@ -100,7 +100,7 @@ public ArtifactResult resolve(DefaultArtifact artifact) { RemoteRepository repo = repoBuilder.build(); ArtifactResult r; try { - r = repoSystem.resolveArtifact(repoSystemSession, new ArtifactRequest(artifact, Arrays.asList(repo), null)); + r = repoSystem.resolveArtifact(repoSystemSession, new ArtifactRequest(artifact, List.of(repo), null)); } catch (ArtifactResolutionException e) { throw new RuntimeException("Could not resolve " + artifact + " from Maven repository", e); } diff --git a/src/test/java/core/FreestyleJobTest.java b/src/test/java/core/FreestyleJobTest.java index 770504e98..b2bb1fc2e 100644 --- a/src/test/java/core/FreestyleJobTest.java +++ b/src/test/java/core/FreestyleJobTest.java @@ -17,7 +17,8 @@ import java.net.URL; import java.nio.charset.StandardCharsets; import java.time.Duration; -import java.util.Collections; +import java.util.List; +import java.util.Map; import java.util.regex.Pattern; import org.apache.commons.io.IOUtils; import org.jenkinsci.test.acceptance.junit.AbstractJUnitTest; @@ -163,7 +164,7 @@ public void buildParametrized() { j.addShellStep("echo \">$text<\""); j.save(); - Build build = j.scheduleBuild(Collections.singletonMap("text", "asdf")).waitUntilFinished(); + Build build = j.scheduleBuild(Map.of("text", "asdf")).waitUntilFinished(); assertThat(build.getConsole(), containsString(">asdf<")); } @@ -284,7 +285,7 @@ public void scheduleFromView() throws Exception { view.scheduleJob(j.name); BuildWithParameters paramPage = new BuildWithParameters(j, new URL(driver.getCurrentUrl())); - paramPage.enter(Collections.singletonList(p), Collections.singletonMap("foo", "bar")); + paramPage.enter(List.of(p), Map.of("foo", "bar")); paramPage.start(); j.build(2).waitUntilStarted().shouldSucceed(); diff --git a/src/test/java/org/jenkinsci/test/acceptance/junit/WithPluginsTest.java b/src/test/java/org/jenkinsci/test/acceptance/junit/WithPluginsTest.java index 874434095..c504cac6c 100644 --- a/src/test/java/org/jenkinsci/test/acceptance/junit/WithPluginsTest.java +++ b/src/test/java/org/jenkinsci/test/acceptance/junit/WithPluginsTest.java @@ -26,7 +26,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -import java.util.Arrays; import java.util.List; import org.jenkinsci.test.acceptance.update_center.PluginSpec; import org.junit.Test; @@ -38,12 +37,12 @@ public class WithPluginsTest { @Test public void combine_WithPlugins_annotations() throws Exception { // TODO test annotation harvesting and test class inheritance - List annotations = Arrays.asList( + List annotations = List.of( FakeTestClass.class.getAnnotation(WithPlugins.class), FakeTestClass.class.getMethod("test").getAnnotation(WithPlugins.class)); List actual = WithPlugins.RuleImpl.combinePlugins(annotations); - List expected = Arrays.asList( + List expected = List.of( new PluginSpec("keep"), new PluginSpec("keepv@1"), new PluginSpec( diff --git a/src/test/java/org/jenkinsci/test/acceptance/update_center/UpdateCenterMetadataTest.java b/src/test/java/org/jenkinsci/test/acceptance/update_center/UpdateCenterMetadataTest.java index 9e904d967..d276d5fc8 100644 --- a/src/test/java/org/jenkinsci/test/acceptance/update_center/UpdateCenterMetadataTest.java +++ b/src/test/java/org/jenkinsci/test/acceptance/update_center/UpdateCenterMetadataTest.java @@ -7,8 +7,6 @@ import hudson.util.VersionNumber; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import org.hamcrest.Matchers; @@ -20,7 +18,7 @@ */ public class UpdateCenterMetadataTest { - public static final List NO_DEPS = Collections.emptyList(); + public static final List NO_DEPS = List.of(); private Jenkins jenkins = mock(Jenkins.class); @@ -37,12 +35,7 @@ public class UpdateCenterMetadataTest { plugins.put("provider", new PluginMetadata("provider", "jenkins:provider:1", "1", "1", NO_DEPS)); plugins.put( "consumer", - new PluginMetadata( - "consumer", - "jenkins:consumer:1", - "1", - "1", - Collections.singletonList(new Dependency("provider:1")))); + new PluginMetadata("consumer", "jenkins:consumer:1", "1", "1", List.of(new Dependency("provider:1")))); plugins.put( "complex", @@ -51,10 +44,10 @@ public class UpdateCenterMetadataTest { "jenkins:complex:1", "1", "1", - Arrays.asList(new Dependency("branchb:1"), new Dependency("brancha:1")))); + List.of(new Dependency("branchb:1"), new Dependency("brancha:1")))); plugins.put( "brancha", - new PluginMetadata("brancha", "jenkins:brancha:1", "1", "1", Arrays.asList(new Dependency("depa:1")))); + new PluginMetadata("brancha", "jenkins:brancha:1", "1", "1", List.of(new Dependency("depa:1")))); plugins.put("depa", new PluginMetadata("depa", "jenkins:depa:1", "1", "1", NO_DEPS)); plugins.put( "branchb", @@ -63,7 +56,7 @@ public class UpdateCenterMetadataTest { "jenkins:branchb:1", "1", "1", - Arrays.asList(new Dependency("depb0:1"), new Dependency("depb1:1")))); + List.of(new Dependency("depb0:1"), new Dependency("depb1:1")))); plugins.put("depb0", new PluginMetadata("depb0", "jenkins:depb0:1", "1", "1", NO_DEPS)); plugins.put("depb1", new PluginMetadata("depb1", "jenkins:depb1:1", "1", "1", NO_DEPS)); } diff --git a/src/test/java/plugins/DashboardViewPluginTest.java b/src/test/java/plugins/DashboardViewPluginTest.java index 75d98e8c0..95f4c36d2 100644 --- a/src/test/java/plugins/DashboardViewPluginTest.java +++ b/src/test/java/plugins/DashboardViewPluginTest.java @@ -9,7 +9,6 @@ import static org.junit.Assert.assertEquals; import jakarta.inject.Inject; -import java.util.Arrays; import java.util.List; import org.jenkinsci.test.acceptance.junit.WithPlugins; import org.jenkinsci.test.acceptance.plugins.dashboard_view.BuildStatisticsPortlet; @@ -231,13 +230,13 @@ public void filterByRegex() { view.open(); final List jobIDs = view.projectStatus.getJobIDs(); - assertEquals(Arrays.asList("a", "aa", "b"), jobIDs); + assertEquals(List.of("a", "aa", "b"), jobIDs); view.configure(() -> view.jobFilters.setIncludeRegex("a*")); view.open(); final List jobIDsFiltered = view.projectStatus.getJobIDs(); - assertEquals(Arrays.asList("a", "aa"), jobIDsFiltered); + assertEquals(List.of("a", "aa"), jobIDsFiltered); } @Test diff --git a/src/test/java/plugins/GerritTriggerTest.java b/src/test/java/plugins/GerritTriggerTest.java index 0c54ab56a..5853bd318 100644 --- a/src/test/java/plugins/GerritTriggerTest.java +++ b/src/test/java/plugins/GerritTriggerTest.java @@ -42,7 +42,6 @@ import java.nio.file.Files; import java.nio.file.attribute.PosixFilePermission; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.logging.ConsoleHandler; @@ -158,7 +157,7 @@ public void setupSSHWrapper() throws IOException { StandardCharsets.UTF_8); Files.setPosixFilePermissions( ssh.toPath(), - new HashSet<>(Arrays.asList(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_EXECUTE))); + new HashSet<>(List.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_EXECUTE))); changes = new ArrayList<>(); } diff --git a/src/test/java/plugins/MatrixPluginTest.java b/src/test/java/plugins/MatrixPluginTest.java index 95df29345..541f30ebc 100644 --- a/src/test/java/plugins/MatrixPluginTest.java +++ b/src/test/java/plugins/MatrixPluginTest.java @@ -6,8 +6,8 @@ import static org.hamcrest.Matchers.not; import com.google.inject.Inject; -import java.util.Collections; import java.util.List; +import java.util.Map; import org.jenkinsci.test.acceptance.Matcher; import org.jenkinsci.test.acceptance.junit.AbstractJUnitTest; import org.jenkinsci.test.acceptance.junit.Since; @@ -152,16 +152,13 @@ public void use_job_parameters_in_combination_filters() { job.addParameter(StringParameter.class).setName("condition"); job.save(); - MatrixBuild b = job.startBuild(Collections.singletonMap("condition", "false")) - .waitUntilFinished() - .as(MatrixBuild.class); + MatrixBuild b = + job.startBuild(Map.of("condition", "false")).waitUntilFinished().as(MatrixBuild.class); b.getConfiguration("run=yes").shouldExist(); b.getConfiguration("run=maybe").shouldNotExist(); b.getConfiguration("run=no").shouldNotExist(); - b = job.startBuild(Collections.singletonMap("condition", "true")) - .waitUntilFinished() - .as(MatrixBuild.class); + b = job.startBuild(Map.of("condition", "true")).waitUntilFinished().as(MatrixBuild.class); b.getConfiguration("run=yes").shouldExist(); b.getConfiguration("run=maybe").shouldExist(); b.getConfiguration("run=no").shouldNotExist(); diff --git a/src/test/java/plugins/NodeLabelParameterPluginTest.java b/src/test/java/plugins/NodeLabelParameterPluginTest.java index 098d118fa..bdb423e91 100644 --- a/src/test/java/plugins/NodeLabelParameterPluginTest.java +++ b/src/test/java/plugins/NodeLabelParameterPluginTest.java @@ -13,8 +13,8 @@ import com.google.inject.Inject; import java.util.ArrayList; -import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import org.apache.commons.lang3.SystemUtils; import org.jenkinsci.test.acceptance.Matcher; @@ -53,8 +53,7 @@ public void build_on_a_particular_slave() throws Exception { j.addParameter(NodeParameter.class).setName("slavename"); j.save(); - Build b = - j.startBuild(Collections.singletonMap("slavename", s.getName())).shouldSucceed(); + Build b = j.startBuild(Map.of("slavename", s.getName())).shouldSucceed(); assertThat(b.getNode(), is(s)); } @@ -80,8 +79,7 @@ public void build_with_preselected_node() throws Exception { assertThat(availableNodes.get(0).getText(), is("built-in")); assertThat(availableNodes.get(1).getText(), is(s.getName())); - Build b = - j.startBuild(Collections.singletonMap("slavename", s.getName())).shouldSucceed(); + Build b = j.startBuild(Map.of("slavename", s.getName())).shouldSucceed(); assertThat(s, is(b.getNode())); } @@ -96,12 +94,10 @@ public void run_on_label() throws Exception { j.addParameter(LabelParameter.class).setName("slavelabel"); j.save(); - Build b = j.startBuild(Collections.singletonMap("slavelabel", s1.getName())) - .shouldSucceed(); + Build b = j.startBuild(Map.of("slavelabel", s1.getName())).shouldSucceed(); assertThat(b.getNode(), is(s1)); - b = j.startBuild( - Collections.singletonMap("slavelabel", String.format("!%s && !%s", s1.getName(), s2.getName()))) + b = j.startBuild(Map.of("slavelabel", String.format("!%s && !%s", s1.getName(), s2.getName()))) .shouldSucceed(); assertThat(b.getNode(), is((Node) jenkins)); } @@ -120,8 +116,7 @@ public void run_on_several_slaves() throws Exception { j.concurrentBuild.check(); j.save(); - j.startBuild(Collections.singletonMap("slavename", s1.getName() + "," + s2.getName())) - .shouldSucceed(); + j.startBuild(Map.of("slavename", s1.getName() + "," + s2.getName())).shouldSucceed(); assertThat(j.getNextBuildNumber(), is(3)); @@ -156,7 +151,7 @@ public void run_on_a_particular_offline_slave() throws Exception { assertThat(s.isOffline(), is(true)); // use scheduleBuild instead of startBuild to avoid a timeout waiting for Build being started - Build b = j.scheduleBuild(Collections.singletonMap("slavename", s.getName())); + Build b = j.scheduleBuild(Map.of("slavename", s.getName())); elasticSleep( 3000); // TODO: not the best way to wait for the scheduled job to go through the queue, but a bit of // wait is needed @@ -197,7 +192,7 @@ public void run_on_a_particular_offline_slave_with_ignore() throws Exception { assertThat(s.isOffline(), is(true)); // use scheduleBuild instead of startBuild to avoid a timeout waiting for Build being started - Build b = j.scheduleBuild(Collections.singletonMap("slavename", s.getName())); + Build b = j.scheduleBuild(Map.of("slavename", s.getName())); elasticSleep( 3000); // TODO: not the best way to wait for the scheduled job to go through the queue, but a bit of // wait is needed @@ -236,7 +231,7 @@ public void run_on_several_online_and_offline_slaves() throws Exception { assertThat(s1.isOnline(), is(true)); // select both slaves for this build - Build b = j.startBuild(Collections.singletonMap("slavename", s1.getName() + "," + s2.getName())) + Build b = j.startBuild(Map.of("slavename", s1.getName() + "," + s2.getName())) .shouldSucceed(); // ensure that the build on the online slave has been done @@ -289,7 +284,7 @@ public void pending_build_with_no_valid_node() throws Exception { assertThat(s1.isOnline(), is(true)); // select both slaves for this build - Build b = j.startBuild(Collections.singletonMap("slavename", s1.getName())); + Build b = j.startBuild(Map.of("slavename", s1.getName())); // wait for the build on slave 1 to finish b.waitUntilFinished(); @@ -298,7 +293,7 @@ public void pending_build_with_no_valid_node() throws Exception { assertThat(s1.getBuildHistory().getBuildsOf(j), contains(b)); // use scheduleBuild instead of startBuild to avoid a timeout waiting for Build being started - b = j.scheduleBuild(Collections.singletonMap("slavename", s2.getName())); + b = j.scheduleBuild(Map.of("slavename", s2.getName())); waitFor(by.href("/queue/cancelItem?id=2")); // shown in queue elasticSleep(10000); // after some time @@ -336,7 +331,7 @@ public void trigger_if_succeeds_with_failed_main_build() throws Exception { j.save(); // select both slaves for this build - Build build = j.startBuild(Collections.singletonMap("slavename", s1.getName() + "," + s2.getName())) + Build build = j.startBuild(Map.of("slavename", s1.getName() + "," + s2.getName())) .shouldFail(); // verify failed result prevents the job to be built on further nodes. @@ -393,7 +388,7 @@ public void trigger_if_succeeds_with_failed_post_build_step() throws Exception { j.save(); // select both slaves for this build - j.startBuild(Collections.singletonMap( + j.startBuild(Map.of( "slavename", slaves.get(0).getName() + "," + slaves.get(1).getName())) .shouldFail(); @@ -402,7 +397,7 @@ public void trigger_if_succeeds_with_failed_post_build_step() throws Exception { // As the nodes get random names and the selected nodes are utilized in alphabetical order // of their names, the first build will not necessarily be done on s1. Thus, it can only // be verified that the job has been built on one of the slaves. - j.startBuild(Collections.singletonMap( + j.startBuild(Map.of( "slavename", slaves.get(0).getName() + "," + slaves.get(1).getName())) .shouldFail(); @@ -447,7 +442,7 @@ public void trigger_if_succeeds_with_unstable_post_build_step() throws Exception j.save(); // select both slaves for this build - j.startBuild(Collections.singletonMap( + j.startBuild(Map.of( "slavename", slaves.get(0).getName() + "," + slaves.get(1).getName())) .shouldFail(); @@ -456,7 +451,7 @@ public void trigger_if_succeeds_with_unstable_post_build_step() throws Exception // As the nodes get random names and the selected nodes are utilized in alphabetical order // of their names, the first build will not necessarily be done on s1. Thus, it can only // be verified that the job has been built on one of the slaves. - j.startBuild(Collections.singletonMap( + j.startBuild(Map.of( "slavename", slaves.get(0).getName() + "," + slaves.get(1).getName())) .shouldFail(); @@ -503,8 +498,7 @@ public void run_on_online_slave_and_master_with_node_restriction() throws Except assertThat("Amount of selectable nodes", slaves.size(), is(2)); assertThat(slaves, containsInAnyOrder(s1.getName(), s2.getName())); - j.startBuild(Collections.singletonMap("slavename", s1.getName() + "," + s2.getName())) - .waitUntilFinished(); + j.startBuild(Map.of("slavename", s1.getName() + "," + s2.getName())).waitUntilFinished(); assertThat(s1.getBuildHistory(), containsBuildOf(j)); assertThat(s2.getBuildHistory(), containsBuildOf(j)); diff --git a/src/test/java/plugins/SupportCorePluginTest.java b/src/test/java/plugins/SupportCorePluginTest.java index a576166d8..415813864 100644 --- a/src/test/java/plugins/SupportCorePluginTest.java +++ b/src/test/java/plugins/SupportCorePluginTest.java @@ -26,7 +26,7 @@ import static org.junit.Assert.assertFalse; -import java.util.Collections; +import java.util.Map; import java.util.logging.Level; import org.jenkinsci.test.acceptance.junit.AbstractJUnitTest; import org.jenkinsci.test.acceptance.junit.WithPlugins; @@ -40,7 +40,7 @@ public class SupportCorePluginTest extends AbstractJUnitTest { @Issue("JENKINS-27669") @Test public void emptyLogger() throws Exception { - JenkinsLogger logger = jenkins.createLogger("test", Collections.singletonMap("", Level.ALL)); + JenkinsLogger logger = jenkins.createLogger("test", Map.of("", Level.ALL)); assertFalse(logger.isEmpty()); } } From 9e3a944bc42552106f0c3a6b058c8259002f949b Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:44:09 -0700 Subject: [PATCH 12/19] Use lambda where possible --- .../plugins/dashboard_view/controls/ColumnsArea.java | 2 +- src/test/java/plugins/ConfigFileProviderTest.java | 9 +++------ src/test/java/plugins/DashboardViewPluginTest.java | 12 +++--------- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java index 785534cb7..7f115ff6f 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/dashboard_view/controls/ColumnsArea.java @@ -55,7 +55,7 @@ public void removeAll() { By xpath = By.xpath("//div[@name='columns' and not(contains(.,'" + Column.LAST_STABLE.getText() + "'))]//button[@title='Delete']"); List columns = control(form).resolve().findElements(xpath); - columns.stream().forEach(WebElement::click); + columns.forEach(WebElement::click); } /** diff --git a/src/test/java/plugins/ConfigFileProviderTest.java b/src/test/java/plugins/ConfigFileProviderTest.java index aec62ee49..8778667f7 100644 --- a/src/test/java/plugins/ConfigFileProviderTest.java +++ b/src/test/java/plugins/ConfigFileProviderTest.java @@ -174,12 +174,9 @@ public void testConfigFileProviderWithFolders() { // We want to delete the config file and re-run the job to see it fail jenkins.visit("configfiles"); - runThenHandleDialog(() -> { - driver.findElement( - by.xpath("//td[.='%s']/parent::tr/td[2]/a[1]", mvnConfig.id()) // this won't age well - ) - .click(); - }); + // this won't age well + runThenHandleDialog(() -> driver.findElement(by.xpath("//td[.='%s']/parent::tr/td[2]/a[1]", mvnConfig.id())) + .click()); jobLog = this.buildJobAndGetConsole(job, false); diff --git a/src/test/java/plugins/DashboardViewPluginTest.java b/src/test/java/plugins/DashboardViewPluginTest.java index 95f4c36d2..48a5f7569 100644 --- a/src/test/java/plugins/DashboardViewPluginTest.java +++ b/src/test/java/plugins/DashboardViewPluginTest.java @@ -250,17 +250,13 @@ public void configureDashboardFilterBuildExecutors() throws Exception { FreeStyleJob job = jenkins.jobs.create(); DashboardView v = createDashboardView(); - v.configure(() -> { - v.mainArea.setFilterBuildExecutors(filterBuildExecutors); - }); + v.configure(() -> v.mainArea.setFilterBuildExecutors(filterBuildExecutors)); v.open(); final List headers = v.buildExecutorStatus.getHeaders(); assertThat(headers.size(), is(2)); - job.configure(() -> { - job.setLabelExpression("test"); - }); + job.configure(() -> job.setLabelExpression("test")); v.open(); final List headers2 = v.buildExecutorStatus.getHeaders(); @@ -272,9 +268,7 @@ public void configureDashboardFilterBuildExecutors() throws Exception { public void configureDashboardFilterOnlyActivatedJobs() { DashboardView v = createDashboardView(); BuildStatisticsPortlet stats = v.addBottomPortlet(BuildStatisticsPortlet.class); - v.configure(() -> { - v.jobFilters.setStatusFilter(JobFiltersArea.StatusFilter.ENABLED); - }); + v.configure(() -> v.jobFilters.setStatusFilter(JobFiltersArea.StatusFilter.ENABLED)); final FreeStyleJob active = createFreeStyleJob(); final FreeStyleJob disabled = createFreeStyleJob(); From 311b20bae7844f5d4e0da278567dd390fdced11b Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:44:41 -0700 Subject: [PATCH 13/19] Use pattern variable where possible --- src/main/java/org/jenkinsci/test/acceptance/po/Build.java | 3 +-- .../org/jenkinsci/test/acceptance/po/ContainerPageObject.java | 3 +-- .../java/org/jenkinsci/test/acceptance/po/TopLevelItem.java | 3 +-- .../test/acceptance/server/PooledJenkinsController.java | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Build.java b/src/main/java/org/jenkinsci/test/acceptance/po/Build.java index 15974cc14..465e46daf 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Build.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Build.java @@ -333,11 +333,10 @@ public boolean equals(Object other) { return true; } - if (!(other instanceof Build)) { + if (!(other instanceof Build rhs)) { return false; } - Build rhs = (Build) other; // There is a problem comparing jobs for equality as there is no nice // way to access its full name. The default implementation assumes that // POs are equal iff they share the same URL which is not true for jobs inside view. diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/ContainerPageObject.java b/src/main/java/org/jenkinsci/test/acceptance/po/ContainerPageObject.java index 28c136937..336dbda50 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/ContainerPageObject.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/ContainerPageObject.java @@ -128,11 +128,10 @@ public boolean equals(Object other) { return true; } - if (!(other instanceof ContainerPageObject)) { + if (!(other instanceof ContainerPageObject rhs)) { return false; } - ContainerPageObject rhs = (ContainerPageObject) other; return this.url.toExternalForm().equals(rhs.url.toExternalForm()); } diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/TopLevelItem.java b/src/main/java/org/jenkinsci/test/acceptance/po/TopLevelItem.java index a10f75cca..91b208d19 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/TopLevelItem.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/TopLevelItem.java @@ -117,7 +117,7 @@ public boolean equals(Object other) { return true; } - if (!(other instanceof TopLevelItem)) { + if (!(other instanceof TopLevelItem rhs)) { return false; } @@ -125,7 +125,6 @@ public boolean equals(Object other) { // We use URL only as the concrete class may not be detected, e.g. when obtaining a job // from a BuildHistory // TODO: equality checking in the presence of views. - TopLevelItem rhs = (TopLevelItem) other; return url.toExternalForm().equals(rhs.url.toExternalForm()); } diff --git a/src/main/java/org/jenkinsci/test/acceptance/server/PooledJenkinsController.java b/src/main/java/org/jenkinsci/test/acceptance/server/PooledJenkinsController.java index 649849b65..f2bf61d48 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/server/PooledJenkinsController.java +++ b/src/main/java/org/jenkinsci/test/acceptance/server/PooledJenkinsController.java @@ -178,8 +178,7 @@ private InstallLogger(IJenkinsController controller, LogListener l) { @Override public Void call() throws IOException { - if (controller instanceof LogListenable) { - LogListenable ll = (LogListenable) controller; + if (controller instanceof LogListenable ll) { ll.addLogListener(l); } return null; From fa5428370f47cb720fd78043ca4ecaf8aa9baaab Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:48:15 -0700 Subject: [PATCH 14/19] Remove unnecessary null initialization --- .../java/org/jenkinsci/test/acceptance/FallbackConfig.java | 2 +- .../plugins/credentials/AbstractCredentialsTest.java | 2 +- .../java/org/jenkinsci/test/acceptance/utils/SHA1Sum.java | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java b/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java index 8bbd61750..87bfdb4e9 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java +++ b/src/main/java/org/jenkinsci/test/acceptance/FallbackConfig.java @@ -282,7 +282,7 @@ private Proxy createSeleniumProxy(String testName) throws UnknownHostException { // if we are running maven locally but the browser elsewhere (e.g. docker) using the "127.0.0.1" // address will not work for the browser String name = System.getenv("SELENIUM_PROXY_HOSTNAME"); - InetAddress proxyAddr = null; + InetAddress proxyAddr; if (name != null) { proxyAddr = InetAddress.getByName(name); } else { diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/credentials/AbstractCredentialsTest.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/credentials/AbstractCredentialsTest.java index a4cb8b83f..f758cc754 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/credentials/AbstractCredentialsTest.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/credentials/AbstractCredentialsTest.java @@ -67,7 +67,7 @@ protected CredentialsPage createCredentialsPage(Boolean userCredentials) { } protected CredentialsPage createCredentialsPage(Boolean userCredentials, String domain) { - CredentialsPage cp = null; + CredentialsPage cp; if (userCredentials) { cp = new CredentialsPage(jenkins, domain, CREATED_USER); // Make sure we are not going to have a 404, we got some issues like that diff --git a/src/main/java/org/jenkinsci/test/acceptance/utils/SHA1Sum.java b/src/main/java/org/jenkinsci/test/acceptance/utils/SHA1Sum.java index e8f8771e3..ead6aeb8d 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/utils/SHA1Sum.java +++ b/src/main/java/org/jenkinsci/test/acceptance/utils/SHA1Sum.java @@ -12,9 +12,9 @@ * Creates SHA1 sums of a file */ public class SHA1Sum { - private byte[] sha1 = null; - private String sha1String = null; - private File inFile = null; + private byte[] sha1; + private String sha1String; + private File inFile; public SHA1Sum(File inFile) { if (inFile.isFile()) { From c4c873f1a8adb457f76dbec3be5da0679feabaa5 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:49:15 -0700 Subject: [PATCH 15/19] Use proper string comparison --- .../java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java | 2 +- src/main/java/org/jenkinsci/test/acceptance/po/User.java | 2 +- .../test/acceptance/update_center/MockUpdateCenter.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java index 0fa57c754..52575dc8f 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/git/GitScm.java @@ -207,7 +207,7 @@ public GitScm chooseBuildStrategy(String strategy, int age, String ancestor) { StrategyToChooseBuild behaviour = addBehaviour(StrategyToChooseBuild.class); new Select(behaviour.selStrategy.resolve()).selectByVisibleText(strategy); - if (strategy == "Ancestry") { + if (strategy.equals("Ancestry")) { behaviour.numMaxAge.set(age); behaviour.txtAncestorCommit.set(ancestor); } diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/User.java b/src/main/java/org/jenkinsci/test/acceptance/po/User.java index 4aed915b3..72705fda8 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/User.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/User.java @@ -64,7 +64,7 @@ private void load() { if (property.isArray()) { for (JsonNode propertyNodes : property) { if (propertyNodes.get("address") != null - && propertyNodes.get("address").asText() != "null") { + && !propertyNodes.get("address").asText().equals("null")) { mail = propertyNodes.get("address").asText(); } } diff --git a/src/main/java/org/jenkinsci/test/acceptance/update_center/MockUpdateCenter.java b/src/main/java/org/jenkinsci/test/acceptance/update_center/MockUpdateCenter.java index bb1fa8c17..341890ad0 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/update_center/MockUpdateCenter.java +++ b/src/main/java/org/jenkinsci/test/acceptance/update_center/MockUpdateCenter.java @@ -249,7 +249,7 @@ private void updating(JSONObject plugin, String key, Object val) throws JSONExce if (!String.valueOf(val).equals(String.valueOf(old))) { // "-1" and "size" are both string literals in the caller, // so only check their identity to prevent a fallback to checking characters which is unneeded. - if (MINUS_ONE_STRING == val && "size" == key) { + if (MINUS_ONE_STRING == val && "size".equals(key)) { LOGGER.log(Level.FINE, "for {0} updating {1} from {2} to {3}", new Object[] { plugin.getString("name"), key, old, val }); From b56c443ed2dcfbe504d4abb6887218a0ab389779 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:50:01 -0700 Subject: [PATCH 16/19] Remove redundant casts --- .../test/acceptance/plugins/audit_trail/AuditTrailLogger.java | 2 +- src/test/java/plugins/NodeLabelParameterPluginTest.java | 2 +- src/test/java/plugins/SSHCredentialsTest.java | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/plugins/audit_trail/AuditTrailLogger.java b/src/main/java/org/jenkinsci/test/acceptance/plugins/audit_trail/AuditTrailLogger.java index 71991cb06..99b3a4aac 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/plugins/audit_trail/AuditTrailLogger.java +++ b/src/main/java/org/jenkinsci/test/acceptance/plugins/audit_trail/AuditTrailLogger.java @@ -84,7 +84,7 @@ public boolean hasLogged(Pattern pattern) { public List getEvents() { try { List events = new ArrayList<>(); - for (String line : (List) IOUtils.readLines(url.openStream(), StandardCharsets.UTF_8)) { + for (String line : IOUtils.readLines(url.openStream(), StandardCharsets.UTF_8)) { Matcher m = LOG_PATTERN.matcher(line); m.find(); events.add(m.group(1)); diff --git a/src/test/java/plugins/NodeLabelParameterPluginTest.java b/src/test/java/plugins/NodeLabelParameterPluginTest.java index bdb423e91..757c84d1c 100644 --- a/src/test/java/plugins/NodeLabelParameterPluginTest.java +++ b/src/test/java/plugins/NodeLabelParameterPluginTest.java @@ -99,7 +99,7 @@ public void run_on_label() throws Exception { b = j.startBuild(Map.of("slavelabel", String.format("!%s && !%s", s1.getName(), s2.getName()))) .shouldSucceed(); - assertThat(b.getNode(), is((Node) jenkins)); + assertThat(b.getNode(), is(jenkins)); } @Test diff --git a/src/test/java/plugins/SSHCredentialsTest.java b/src/test/java/plugins/SSHCredentialsTest.java index 75e6eb4e3..ae1385bff 100644 --- a/src/test/java/plugins/SSHCredentialsTest.java +++ b/src/test/java/plugins/SSHCredentialsTest.java @@ -101,8 +101,7 @@ public void manageDomainSSHCredentialsTest() throws MalformedURLException { dp.save(); CredentialsPage cp = createCredentialsPage(false); - final SshPrivateKeyCredential credInDomain = - (SshPrivateKeyCredential) createCredentials(SshPrivateKeyCredential.class, cp, SYSTEM_SCOPE); + final SshPrivateKeyCredential credInDomain = createCredentials(SshPrivateKeyCredential.class, cp, SYSTEM_SCOPE); prepareForVerify(cp, CRED_DSCR); verifyValueForCredential(cp, credInDomain.username, CRED_USER); From e7a5d2fe106e0745d3d24eeb3474708f278fb788 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:53:53 -0700 Subject: [PATCH 17/19] Remove concatenation with empty string --- src/main/java/org/jenkinsci/test/acceptance/po/Control.java | 4 ++-- src/test/java/plugins/DisplayUrlApiTest.java | 2 +- src/test/java/plugins/ExternalWorkspaceManagerPluginTest.java | 4 ++-- src/test/java/plugins/GradlePluginTest.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Control.java b/src/main/java/org/jenkinsci/test/acceptance/po/Control.java index 2b46ca852..a85c22f54 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Control.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Control.java @@ -222,7 +222,7 @@ protected WebElement find(String caption) { // With enough implementations registered the one we are looking for might // require scrolling in menu to become visible. This dirty hack stretch // yui menu so that all the items are visible. - executeScript("" + "YAHOO.util.Dom.batch(" + executeScript("YAHOO.util.Dom.batch(" + " document.querySelector('.yui-menu-body-scrolled')," + " function (el) {" + " el.style.height = 'auto';" @@ -253,7 +253,7 @@ protected WebElement find(String caption) { // With enough implementations registered the one we are looking for might // require scrolling in menu to become visible. This dirty hack stretch // yui menu so that all the items are visible. - executeScript("" + "YAHOO.util.Dom.batch(" + executeScript("YAHOO.util.Dom.batch(" + " document.querySelector('.yui-menu-body-scrolled')," + " function (el) {" + " el.style.height = 'auto';" diff --git a/src/test/java/plugins/DisplayUrlApiTest.java b/src/test/java/plugins/DisplayUrlApiTest.java index b04f2fe74..f8d88a30d 100644 --- a/src/test/java/plugins/DisplayUrlApiTest.java +++ b/src/test/java/plugins/DisplayUrlApiTest.java @@ -136,7 +136,7 @@ private void doTestRedirects() throws IOException { private String[] getURLS(String jobName) { return jenkins.runScript( - "" + "import org.jenkinsci.plugins.displayurlapi.DisplayURLProvider\n" + "import org.jenkinsci.plugins.displayurlapi.DisplayURLProvider\n" + "import org.jenkinsci.plugins.workflow.job.*\n" + "\n" + "WorkflowJob p = new WorkflowJob(Jenkins.getInstance(),\"%s\");\n" diff --git a/src/test/java/plugins/ExternalWorkspaceManagerPluginTest.java b/src/test/java/plugins/ExternalWorkspaceManagerPluginTest.java index 5fb618a53..23e57be24 100644 --- a/src/test/java/plugins/ExternalWorkspaceManagerPluginTest.java +++ b/src/test/java/plugins/ExternalWorkspaceManagerPluginTest.java @@ -107,7 +107,7 @@ public void shareWorkspaceTwoJobsTwoNodes() { verifyExternalWorkspacesAction(upstreamJob.name, upstreamBuild); WorkflowJob downstreamJob = createWorkflowJob(String.format( - "" + "def run = selectRun '%s' \n" + "def run = selectRun '%s' \n" + "def extWorkspace = exwsAllocate selectedRun: run \n" + "node ('test') { \n" + " exws (extWorkspace) { \n" @@ -129,7 +129,7 @@ public void shareWorkspaceTwoJobsTwoNodes() { @Test public void externalWorkspaceCleanup() { WorkflowJob job = createWorkflowJob(String.format( - "" + "def extWorkspace = exwsAllocate '%s' \n" + "def extWorkspace = exwsAllocate '%s' \n" + "node ('linux') { \n" + " exws (extWorkspace) { \n" + " try { \n" diff --git a/src/test/java/plugins/GradlePluginTest.java b/src/test/java/plugins/GradlePluginTest.java index 7bcf607b0..d2b63f825 100644 --- a/src/test/java/plugins/GradlePluginTest.java +++ b/src/test/java/plugins/GradlePluginTest.java @@ -135,7 +135,7 @@ private Build setUpAndRunPipelineBuild(final String jenkinsFile, final String gr final WorkflowJob workflowJob = jenkins.jobs.create(WorkflowJob.class); String copyResourceStep = workflowJob.copyResourceStep(gradleScript); - String test = "" + "pipeline {\n" + String test = "pipeline {\n" + "agent any\n" + "stages {\n" + "stage ('prepare_build') {\n" From 688362afd9208677d1c0dd8233c508aa3ec904bb Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:54:01 -0700 Subject: [PATCH 18/19] Remove redundant type argument --- .../test/acceptance/update_center/UpdateCenterMetadataTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/jenkinsci/test/acceptance/update_center/UpdateCenterMetadataTest.java b/src/test/java/org/jenkinsci/test/acceptance/update_center/UpdateCenterMetadataTest.java index d276d5fc8..331950cda 100644 --- a/src/test/java/org/jenkinsci/test/acceptance/update_center/UpdateCenterMetadataTest.java +++ b/src/test/java/org/jenkinsci/test/acceptance/update_center/UpdateCenterMetadataTest.java @@ -66,7 +66,7 @@ public class UpdateCenterMetadataTest { @Test public void transitiveDependenciesOfSimple() throws Exception { - assertThat(ucm.transitiveDependenciesOf(jenkins, specs()), Matchers.emptyIterable()); + assertThat(ucm.transitiveDependenciesOf(jenkins, specs()), Matchers.emptyIterable()); assertThat( ucm.transitiveDependenciesOf(jenkins, specs("standalone")), Matchers.contains(plugins.get("standalone"))); From bcce5204c81bf0a359b44862f7b2ec30b6010a67 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 6 Sep 2024 13:54:20 -0700 Subject: [PATCH 19/19] Remove unnecessary escaping --- src/test/java/plugins/CredentialsBindingTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/plugins/CredentialsBindingTest.java b/src/test/java/plugins/CredentialsBindingTest.java index 64deb418f..1a9caf606 100644 --- a/src/test/java/plugins/CredentialsBindingTest.java +++ b/src/test/java/plugins/CredentialsBindingTest.java @@ -234,7 +234,7 @@ private void testPersonalCredentials( final WorkflowJob job = PipelineTestUtils.createPipelineJobWithScript(jenkins.jobs, jobScript); Build b = job.startBuild(); - assertBuild(b, false, String.format("Could not find credentials entry with ID \'%s\'", CRED_ID)); + assertBuild(b, false, String.format("Could not find credentials entry with ID '%s'", CRED_ID)); this.authorizeUserToLaunchProject();