diff --git a/pom.xml b/pom.xml index 6d93d4d65..25c9d0638 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.jenkins-ci.plugins plugin - 4.76 + 5.12 @@ -33,7 +33,7 @@ Robert Sandell robert.sandell@cloudbees.com CloudBees Inc. - http://www.linkedin.com/in/robertsandell + https://www.linkedin.com/in/robertsandell architect developer @@ -55,7 +55,7 @@ - 2.426 + 2.479 ${jenkins.baseline}.3 2.42.1 -SNAPSHOT @@ -274,7 +274,7 @@ io.jenkins.tools.bom bom-${jenkins.baseline}.x - 2815.vf5d6f093b_23e + 4628.v2b_234a_1a_20d0 pom import diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritManagement.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritManagement.java index 8d8cb672d..01d6ed267 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritManagement.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritManagement.java @@ -48,15 +48,15 @@ import net.sf.json.JSONObject; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerProxy; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.bind.JavaScriptMethod; import org.kohsuke.stapler.interceptor.RequirePOST; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import edu.umd.cs.findbugs.annotations.CheckForNull; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import java.io.IOException; import java.net.URLDecoder; import java.net.URLEncoder; @@ -112,7 +112,8 @@ public DescriptorImpl getDescriptor() { } @Override - public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + @RequirePOST + public ContextMenu doContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { checkPermission(); Jenkins jenkins = Jenkins.get(); ContextMenu menu = new ContextMenu(); @@ -259,13 +260,13 @@ public JSONObject getServerStatuses() { /** * Add a new server. * - * @param req the StaplerRequest - * @param rsp the StaplerResponse + * @param req the StaplerRequest2 + * @param rsp the StaplerResponse2 * @return the new GerritServer * @throws IOException when error sending redirect back to the list of servers */ @RequirePOST - public GerritServer doAddNewServer(StaplerRequest req, StaplerResponse rsp) throws IOException { + public GerritServer doAddNewServer(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { checkPermission(); String serverName = req.getParameter("name"); PluginImpl plugin = PluginImpl.getInstance(); @@ -403,14 +404,14 @@ public FormValidation doNameFreeCheck(@QueryParameter("value") final String valu /** * Saves the form to the configuration and disk. * - * @param req StaplerRequest - * @param rsp StaplerResponse + * @param req StaplerRequest2 + * @param rsp StaplerResponse2 * @throws ServletException if something unfortunate happens. * @throws IOException if something unfortunate happens. * @throws InterruptedException if something unfortunate happens. */ @RequirePOST - public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws ServletException, + public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws ServletException, IOException, InterruptedException { checkPermission(); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritProjectListUpdater.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritProjectListUpdater.java index ad12424fd..51ae6e2de 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritProjectListUpdater.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritProjectListUpdater.java @@ -271,7 +271,7 @@ private void tryLoadProjectList() { activeConfig.getGerritAuthentication() ); List projects = readProjects(sshConnection.executeCommandReader(GERRIT_LS_PROJECTS)); - if (projects.size() > 0) { + if (!projects.isEmpty()) { setGerritProjects(projects); logger.info("Project list from {} contains {} entries", serverName, projects.size()); } else { @@ -318,7 +318,7 @@ private IGerritHudsonTriggerConfig getConfig() { * @throws IOException if something unfortunate happens. */ public static List readProjects(Reader commandReader) throws IOException { - List projects = new ArrayList(); + List projects = new ArrayList<>(); BufferedReader br = new BufferedReader(commandReader); String line = br.readLine(); @@ -365,7 +365,7 @@ public synchronized void setGerritProjects(List projects) { */ public synchronized List getGerritProjects() { if (gerritProjects == null) { - gerritProjects = new ArrayList(); + gerritProjects = new ArrayList<>(); } return gerritProjects; } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritRebuildValidator.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritRebuildValidator.java index 7e2b838e0..fc2c81920 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritRebuildValidator.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritRebuildValidator.java @@ -30,6 +30,8 @@ import hudson.Extension; import hudson.model.Run; +import java.io.Serial; + /** * Disables the rebuild button for Gerrit triggered builds. * This plugin provides its own "rebuild" functionality. @@ -38,6 +40,7 @@ */ @Extension(optional = true) public class GerritRebuildValidator extends RebuildValidator { + @Serial private static final long serialVersionUID = 2704238052581467905L; @Override diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritServer.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritServer.java index 992f05914..113c17e36 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritServer.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritServer.java @@ -60,7 +60,6 @@ import java.util.Timer; import java.util.TimerTask; import java.util.Map.Entry; -import java.util.concurrent.Callable; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -68,7 +67,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.security.stapler.StaplerAccessibleType; @@ -86,8 +85,8 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.bind.JavaScriptMethod; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -464,7 +463,7 @@ public void start() { //do not try to connect to gerrit unless there is a URL or a hostname in the text fields List categories = config.getCategories(); if (categories == null) { - categories = new LinkedList(); + categories = new LinkedList<>(); } if (categories.isEmpty()) { categories.add(new VerdictCategory("Code-Review", "Code Review")); @@ -669,7 +668,7 @@ public List getGerritProjects() { if (projectListUpdater != null) { return projectListUpdater.getGerritProjects(); } else { - return new ArrayList(); + return new ArrayList<>(); } } @@ -768,7 +767,7 @@ public FormValidation doTestConnection( File file = new File(gerritAuthKeyFile); String password = null; - if (gerritAuthKeyFilePassword != null && gerritAuthKeyFilePassword.length() > 0) { + if (gerritAuthKeyFilePassword != null && !gerritAuthKeyFilePassword.isEmpty()) { password = Secret.fromString(gerritAuthKeyFilePassword).getPlainText(); } if (SshUtil.checkPassPhrase(file, password)) { @@ -780,12 +779,7 @@ public FormValidation doTestConnection( gerritProxy, new Authentication(file, gerritUserName, password)); ExecutorService service = Executors.newFixedThreadPool(THREADS_FOR_TEST_CONNECTION); - Future future = service.submit(new Callable() { - @Override - public Integer call() throws Exception { - return sshConnection.executeCommandReader(GerritConnection.CMD_STREAM_EVENTS).read(); - } - }); + Future future = service.submit(() -> sshConnection.executeCommandReader(GerritConnection.CMD_STREAM_EVENTS).read()); int readChar; try { readChar = future.get(TIMEOUT_FOR_TEST_CONNECTION, TimeUnit.SECONDS); @@ -851,14 +845,11 @@ public FormValidation doTestRestConnection( } int statusCode = execute.getStatusLine().getStatusCode(); - switch (statusCode) { - case HttpURLConnection.HTTP_OK: - return FormValidation.ok(Messages.Success()); - case HttpURLConnection.HTTP_UNAUTHORIZED: - return FormValidation.error(Messages.HttpConnectionUnauthorized()); - default: - return FormValidation.error(Messages.HttpConnectionError(statusCode)); - } + return switch (statusCode) { + case HttpURLConnection.HTTP_OK -> FormValidation.ok(Messages.Success()); + case HttpURLConnection.HTTP_UNAUTHORIZED -> FormValidation.error(Messages.HttpConnectionUnauthorized()); + default -> FormValidation.error(Messages.HttpConnectionError(statusCode)); + }; } @@ -881,18 +872,14 @@ public ListBoxModel doFillDefaultSlaveIdItems( } ReplicationConfig replicationConfig = server.getConfig().getReplicationConfig(); if (replicationConfig == null || !replicationConfig.isEnableReplication() - || replicationConfig.getGerritSlaves().size() == 0) { + || replicationConfig.getGerritSlaves().isEmpty()) { logger.trace(Messages.GerritSlaveNotDefined()); items.add(Messages.GerritSlaveNotDefined(), ""); return items; } for (GerritSlave slave : replicationConfig.getGerritSlaves()) { boolean selected; - if (slave.getId().equals(replicationConfig.getDefaultSlaveId())) { - selected = true; - } else { - selected = false; - } + selected = slave.getId().equals(replicationConfig.getDefaultSlaveId()); items.add(new ListBoxModel.Option(slave.getName(), slave.getId(), selected)); } return items; @@ -920,7 +907,7 @@ public ListBoxModel doFillNotificationLevelItems() { */ public static Map notificationLevelTextsById() { ResourceBundleHolder holder = ResourceBundleHolder.get(Messages.class); - Map textsById = new LinkedHashMap(Notify.values().length, 1); + Map textsById = new LinkedHashMap<>(Notify.values().length, 1); for (Notify level : Notify.values()) { textsById.put(level, holder.format("NotificationLevel_" + level)); } @@ -929,14 +916,14 @@ public static Map notificationLevelTextsById() { /** * Saves the form to the configuration and disk. - * @param req StaplerRequest - * @param rsp StaplerResponse + * @param req StaplerRequest2 + * @param rsp StaplerResponse2 * @throws ServletException if something unfortunate happens. * @throws IOException if something unfortunate happens. * @throws InterruptedException if something unfortunate happens. */ @RequirePOST - public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws ServletException, + public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws ServletException, IOException, InterruptedException { checkPermission(); @@ -1012,13 +999,12 @@ public List getConfiguredJobs() { private void changeSelectedServerInJobs(String oldName) { for (Job job : PluginImpl.getConfiguredJobs_(oldName)) { - if (!(job instanceof AbstractProject)) { + if (!(job instanceof AbstractProject project)) { logger.warn("Unable to modify Gerrit Trigger configurations for job [" + job.getName() + "] after Gerrit server has been renamed from [" + oldName + "] to [" + name + "]." + " This feature is only supported for AbstractProject types e.g. Freestyle Jobs."); return; } - AbstractProject project = (AbstractProject)job; GerritTrigger trigger = (GerritTrigger)project.getTrigger(GerritTrigger.class); if (trigger != null) { @@ -1041,12 +1027,11 @@ private void changeSelectedServerInJobs(String oldName) { private void removeGerritTriggerInJobs() { for (Job job : getConfiguredJobs()) { - if (!(job instanceof AbstractProject)) { + if (!(job instanceof AbstractProject project)) { logger.warn("Unable to remove Gerrit Trigger ffrom job [" + job.getName() + "]. " + " This feature is only supported for AbstractProject types e.g. Freestyle Jobs."); return; } - AbstractProject project = (AbstractProject)job; GerritTrigger trigger = (GerritTrigger)project.getTrigger(GerritTrigger.class); trigger.stop(); @@ -1164,10 +1149,7 @@ public void run() { * @return true if this server has errors. */ public boolean hasErrors() { - if (isConnectionError()) { - return true; - } - return false; + return isConnectionError(); } /** @@ -1176,10 +1158,7 @@ public boolean hasErrors() { * @return true if this server has warnings. */ public boolean hasWarnings() { - if (isGerritSnapshotVersion() || hasDisabledFeatures()) { - return true; - } - return false; + return isGerritSnapshotVersion() || hasDisabledFeatures(); } /** @@ -1191,9 +1170,7 @@ public boolean hasWarnings() { public boolean isConnectionError() { //if it is null then we haven't started at all. if (gerritConnectionListener != null && !gerritConnectionListener.isConnected()) { - if (timeoutWakeup) { - return true; - } + return timeoutWakeup; } return false; } @@ -1206,9 +1183,7 @@ public boolean isConnectionError() { @JavaScriptMethod public boolean isGerritSnapshotVersion() { if (gerritConnectionListener != null && gerritConnectionListener.isConnected()) { - if (gerritConnectionListener.isSnapShotGerrit()) { - return true; - } + return gerritConnectionListener.isSnapShotGerrit(); } return false; } @@ -1235,9 +1210,7 @@ public boolean isGerritMissedEventsSupported() { public boolean hasDisabledFeatures() { if (gerritConnectionListener != null && gerritConnectionListener.isConnected()) { List disabledFeatures = gerritConnectionListener.getDisabledFeatures(); - if (disabledFeatures != null && !disabledFeatures.isEmpty()) { - return true; - } + return disabledFeatures != null && !disabledFeatures.isEmpty(); } return false; } @@ -1254,7 +1227,7 @@ public List getDisabledFeatures() { return features; } } - return new LinkedList(); + return new LinkedList<>(); } /** @@ -1275,14 +1248,14 @@ private void setConnectionResponse(String response) { /** * Saves the form to the configuration and disk. - * @param req StaplerRequest - * @param rsp StaplerResponse + * @param req StaplerRequest2 + * @param rsp StaplerResponse2 * @throws ServletException if something unfortunate happens. * @throws IOException if something unfortunate happens. * @throws InterruptedException if something unfortunate happens. */ @RequirePOST - public void doRemoveConfirm(StaplerRequest req, StaplerResponse rsp) throws ServletException, + public void doRemoveConfirm(StaplerRequest2 req, StaplerResponse2 rsp) throws ServletException, IOException, InterruptedException { @@ -1363,7 +1336,7 @@ public FormValidation doUrlCheck( @QueryParameter("value") final String value) { - if (value == null || value.length() <= 0) { + if (value == null || value.isEmpty()) { return FormValidation.error(Messages.EmptyError()); } else { try { @@ -1467,7 +1440,7 @@ public FormValidation doNameFreeCheck( */ public List generateHelper() { WatchTimeExceptionData data = config.getExceptionData(); - List list = new LinkedList(); + List list = new LinkedList<>(); list.add(new ExceptionDataHelper(Messages.MondayDisplayName(), Calendar.MONDAY, data)); list.add(new ExceptionDataHelper(Messages.TuesdayDisplayName(), Calendar.TUESDAY, data)); list.add(new ExceptionDataHelper(Messages.WednesdayDisplayName(), Calendar.WEDNESDAY, data)); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/JenkinsAwareGerritHandler.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/JenkinsAwareGerritHandler.java index e6e550737..c6d93f109 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/JenkinsAwareGerritHandler.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/JenkinsAwareGerritHandler.java @@ -75,7 +75,7 @@ public void notifyListeners(GerritEvent event) { } } - try (ACLContext ctx = ACL.as(ACL.SYSTEM)) { + try (ACLContext ctx = ACL.as2(ACL.SYSTEM2)) { // The read deal super.notifyListeners(event); } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/PluginImpl.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/PluginImpl.java index d03e9e81d..ed6670dd0 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/PluginImpl.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/PluginImpl.java @@ -51,7 +51,7 @@ import hudson.model.Run; import hudson.security.Permission; import hudson.security.PermissionGroup; - +import hudson.security.PermissionScope; import jenkins.model.GlobalConfiguration; import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; @@ -106,7 +106,8 @@ public class PluginImpl extends GlobalConfiguration { public static final Permission MANUAL_TRIGGER = new Permission(PERMISSION_GROUP, "ManualTrigger", Messages._ManualTriggerPermissionDescription(), - Jenkins.ADMINISTER); + Jenkins.ADMINISTER, + PermissionScope.JENKINS); /** * The permission that allows users to perform the * {@link com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.actions.RetriggerAction}. @@ -114,10 +115,11 @@ public class PluginImpl extends GlobalConfiguration { public static final Permission RETRIGGER = new Permission(PERMISSION_GROUP, "Retrigger", Messages._RetriggerPermissionDescription(), - Item.BUILD); + Item.BUILD, + PermissionScope.JENKINS); private static final Logger logger = LoggerFactory.getLogger(PluginImpl.class); - private final List servers = new CopyOnWriteArrayList(); + private final List servers = new CopyOnWriteArrayList<>(); private transient GerritHandler gerritEventManager; private transient volatile boolean active = false; @@ -207,7 +209,7 @@ public static List getServers_() { * @return the list of server names as a list. */ public List getServerNames() { - LinkedList names = new LinkedList(); + LinkedList names = new LinkedList<>(); for (GerritServer s : getServers()) { names.add(s.getName()); } @@ -409,6 +411,7 @@ public boolean containsServer(String serverName) { for (GerritServer s : getServers()) { if (s.getName().equals(serverName)) { contains = true; + break; } } return contains; @@ -543,7 +546,7 @@ public static GerritHandler getHandler_() { * @return the list of jobs configured with this server. */ public List getConfiguredJobs(String serverName) { - LinkedList configuredJobs = new LinkedList(); + LinkedList configuredJobs = new LinkedList<>(); for (Job project : Jenkins.get().getItems(Job.class)) { //get the jobs GerritTrigger gerritTrigger = GerritTrigger.getTrigger(project); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/SystemEventThread.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/SystemEventThread.java index 69f3d107c..16409a683 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/SystemEventThread.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/SystemEventThread.java @@ -59,7 +59,7 @@ public SystemEventThread(Coordinator coordinator) { */ @Override public void run() { - try (ACLContext ctx = ACL.as(ACL.SYSTEM)) { + try (ACLContext ctx = ACL.as2(ACL.SYSTEM2)) { super.run(); } } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/GerritTriggerException.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/GerritTriggerException.java index b03ec4758..c509af049 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/GerritTriggerException.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/GerritTriggerException.java @@ -23,6 +23,8 @@ */ package com.sonyericsson.hudson.plugins.gerrit.trigger.api.exception; +import java.io.Serial; + /** * A exception class for Gerrit Trigger API. * @@ -30,6 +32,7 @@ */ public class GerritTriggerException extends Exception { + @Serial private static final long serialVersionUID = 1L; private int code; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/PluginNotFoundException.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/PluginNotFoundException.java index bd1f74cf7..7a9bde37f 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/PluginNotFoundException.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/PluginNotFoundException.java @@ -23,6 +23,8 @@ */ package com.sonyericsson.hudson.plugins.gerrit.trigger.api.exception; +import java.io.Serial; + /** * A exception class regarding plugin status. * @@ -30,6 +32,7 @@ */ public class PluginNotFoundException extends GerritTriggerException { + @Serial private static final long serialVersionUID = 1L; private static final String MSG_NOTFOUND = "Gerrit trigger plugin is not found or still not loaded."; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/PluginStatusException.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/PluginStatusException.java index 5278a2317..c9072b2b1 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/PluginStatusException.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/api/exception/PluginStatusException.java @@ -23,6 +23,8 @@ */ package com.sonyericsson.hudson.plugins.gerrit.trigger.api.exception; +import java.io.Serial; + /** * A exception class regarding plugin status. * @@ -30,6 +32,7 @@ */ public class PluginStatusException extends GerritTriggerException { + @Serial private static final long serialVersionUID = 1L; private static final String MSG_INACTIVE = "Gerrit trigger plugin is inactive."; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/Config.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/Config.java index 926b2eb6a..c880aa14a 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/Config.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/Config.java @@ -42,7 +42,7 @@ import org.apache.http.auth.Credentials; import org.apache.http.auth.UsernamePasswordCredentials; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import java.io.File; import java.util.Calendar; @@ -277,7 +277,7 @@ public Config(IGerritHudsonTriggerConfig config) { projectListFetchDelay = config.getProjectListFetchDelay(); projectListRefreshInterval = config.getProjectListRefreshInterval(); if (config.getCategories() != null) { - categories = new LinkedList(); + categories = new LinkedList<>(); for (VerdictCategory cat : config.getCategories()) { categories.add(new VerdictCategory(cat.getVerdictValue(), cat.getVerdictDescription())); } @@ -395,7 +395,7 @@ public void setValues(JSONObject formData) { "enableProjectAutoCompletion", DEFAULT_ENABLE_PROJECT_AUTO_COMPLETION); - categories = new LinkedList(); + categories = new LinkedList<>(); if (formData.has("verdictCategories")) { Object cat = formData.get("verdictCategories"); if (cat instanceof JSONArray) { @@ -467,7 +467,7 @@ private void setVoteValues(JSONObject formData) { private Integer getValueFromFormData(JSONObject formData, String key) { if (formData.has(key)) { String testData = formData.optString(key); - if (testData == null || testData.equals("")) { + if (testData == null || testData.isEmpty()) { return null; } else { try { @@ -487,8 +487,8 @@ private Integer getValueFromFormData(JSONObject formData, String key) { * @return the WatchTimeExceptionData */ private WatchTimeExceptionData addWatchTimeExceptionData(JSONObject formData) { - List days = new LinkedList(); - List exceptionTimes = new LinkedList(); + List days = new LinkedList<>(); + List exceptionTimes = new LinkedList<>(); int[] daysAsInt = new int[]{}; if (formData.has("watchdogExceptions")) { JSONObject jsonObject = formData.getJSONObject(("watchdogExceptions")); @@ -537,7 +537,7 @@ private WatchTimeExceptionData addWatchTimeExceptionData(JSONObject formData) { private WatchTimeExceptionData addWatchTimeExceptionData(WatchTimeExceptionData data) { if (data != null) { int[] daysAsInt = data.getDaysOfWeek(); - List exceptionTimes = new LinkedList(); + List exceptionTimes = new LinkedList<>(); for (TimeSpan s : data.getTimesOfDay()) { Time newFromTime = new Time(s.getFrom().getHour(), s.getFrom().getMinute()); Time newToTime = new Time(s.getTo().getHour(), s.getTo().getMinute()); @@ -564,7 +564,7 @@ public Config() { * @param formData the data * @param req a path. */ - public Config(JSONObject formData, StaplerRequest req) { + public Config(JSONObject formData, StaplerRequest2 req) { this(formData); } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/PluginConfig.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/PluginConfig.java index 24c505056..b33f91251 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/PluginConfig.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/PluginConfig.java @@ -29,9 +29,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Objects; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -105,7 +106,7 @@ public PluginConfig(PluginConfig pluginConfig) { * @param formData the data * @param req a path. */ - public PluginConfig(JSONObject formData, StaplerRequest req) { + public PluginConfig(JSONObject formData, StaplerRequest2 req) { this(formData); } @@ -276,11 +277,7 @@ private List getFilterInFromFormData(JSONObject formData) { */ public void updateEventFilter() { List filter; - if (filterIn != null) { - filter = filterIn; - } else { - filter = getDefaultEventFilter(); - } + filter = Objects.requireNonNullElseGet(filterIn, PluginConfig::getDefaultEventFilter); logger.info("Listening to event types: {}", filter); for (GerritEventType type : GerritEventType.values()) { type.setInteresting(filter.contains(type.getTypeValue())); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/ReplicationConfig.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/ReplicationConfig.java index 1fd289213..ff62e4861 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/ReplicationConfig.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/ReplicationConfig.java @@ -79,7 +79,7 @@ private ReplicationConfig(boolean enableReplication, public ReplicationConfig(ReplicationConfig config) { enableReplication = config.isEnableReplication(); if (config.getGerritSlaves() != null) { - slaves = new LinkedList(); + slaves = new LinkedList<>(); for (GerritSlave slave : config.getGerritSlaves()) { GerritSlave slaveCopy = new GerritSlave(slave.getName(), slave.getHost(), slave.getTimeoutInSeconds()); slaves.add(slaveCopy); @@ -96,7 +96,7 @@ public ReplicationConfig(ReplicationConfig config) { */ @DataBoundConstructor public ReplicationConfig() { - this(false, new LinkedList(), false, null); + this(false, new LinkedList<>(), false, null); } /** @@ -214,7 +214,7 @@ public GerritSlave getGerritSlave(String id, boolean defaultSlave) { */ public static ReplicationConfig createReplicationConfigFromJSON(JSONObject formData) { ReplicationConfig replicationConfig; - List slaves = new LinkedList(); + List slaves = new LinkedList<>(); boolean enableReplication = formData.has(ENABLE_REPLICATION_JSON_KEY); if (enableReplication) { @@ -227,7 +227,7 @@ public static ReplicationConfig createReplicationConfigFromJSON(JSONObject formD } else if (slavesAsJSON instanceof JSONObject) { slaves.add(GerritSlave.createGerritSlaveFromJSON((JSONObject)slavesAsJSON)); } - if (slaves.size() == 0) { + if (slaves.isEmpty()) { throw new Failure(Messages.OneSlaveMustBeDefined()); } @@ -245,6 +245,7 @@ public static ReplicationConfig createReplicationConfigFromJSON(JSONObject formD for (GerritSlave gerritSlave : slaves) { if (defaultSlaveId.equals(gerritSlave.getId())) { defaultSlaveExist = true; + break; } } if (!defaultSlaveExist) { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/dependency/DependencyQueueTaskDispatcher.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/dependency/DependencyQueueTaskDispatcher.java index 906d9bc49..748617dd9 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/dependency/DependencyQueueTaskDispatcher.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/dependency/DependencyQueueTaskDispatcher.java @@ -86,7 +86,7 @@ public DependencyQueueTaskDispatcher() { */ DependencyQueueTaskDispatcher(GerritHandler gerritHandler) { this.currentlyTriggeringEvents = Collections.newSetFromMap( - new ConcurrentHashMap()); + new ConcurrentHashMap<>()); if (gerritHandler == null) { logger.error("Gerrit Handler was not available to construct DependencyQueueTaskDispatcher"); } else { @@ -118,7 +118,7 @@ public static DependencyQueueTaskDispatcher getInstance() { @Override public CauseOfBlockage canRun(Queue.Item item) { //Job check - if (!(item.task instanceof Job)) { + if (!(item.task instanceof Job p)) { logger.debug("Not an Job instance: {}", item.task); return null; } @@ -143,7 +143,6 @@ public CauseOfBlockage canRun(Queue.Item item) { logger.debug("{} is already buildable for {}", item, event); return null; } - Job p = (Job)item.task; GerritTrigger trigger = GerritTrigger.getTrigger(p); //The project being checked has no Gerrit Trigger if (trigger == null) { @@ -202,7 +201,7 @@ public CauseOfBlockage canRun(Queue.Item item) { return null; } - List actualDependencies = new ArrayList(dependencies.size()); + List actualDependencies = new ArrayList<>(dependencies.size()); for (Run run : parentRuns) { if (dependencies.contains(run.getParent())) { actualDependencies.add(run); @@ -272,7 +271,7 @@ private GerritCause getGerritCause(Queue.Item item) { * @return the list of projects */ public static List getProjectsFromString(String projects, Item context) { - List dependencyJobs = new ArrayList(); + List dependencyJobs = new ArrayList<>(); if (projects == null || projects.isEmpty()) { return null; } else { @@ -282,7 +281,7 @@ public static List getProjectsFromString(String projects, Item context) { String projectName = tokens.nextToken().trim(); if (!projectName.isEmpty()) { Item item = jenkins.getItem(projectName, context, Item.class); - if ((item != null) && (item instanceof Job)) { + if ((item instanceof Job)) { dependencyJobs.add((Job)item); logger.debug("project dependency job added : {}", item); } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/dependency/GerritDependencyAction.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/dependency/GerritDependencyAction.java index 5f7325aa6..1a68019cd 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/dependency/GerritDependencyAction.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/dependency/GerritDependencyAction.java @@ -23,7 +23,7 @@ public class GerritDependencyAction extends InvisibleAction implements Environme * @param runs List of runs it depend on */ public GerritDependencyAction(List runs) { - deps = new ArrayList(runs.size()); + deps = new ArrayList<>(runs.size()); for (Run run : runs) { deps.add(run.getParent().getFullName() + "#" + run.getNumber() + "#" + run.getResult()); } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/BuildMemoryReport.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/BuildMemoryReport.java index 31da2a0c5..dfda3b927 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/BuildMemoryReport.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/BuildMemoryReport.java @@ -36,7 +36,6 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Collection; -import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -59,28 +58,25 @@ public class BuildMemoryReport implements Map TS_FORMAT = new ThreadLocal() { + public static final ThreadLocal TS_FORMAT = new ThreadLocal<>() { @Override public DateFormat get() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"); } - }; + }; /** * Default Constructor. */ public BuildMemoryReport() { - internal = new TreeMap>( - new Comparator() { - @Override - public int compare(GerritTriggeredEvent a, GerritTriggeredEvent b) { - int to = a.getEventCreatedOn().compareTo(b.getEventCreatedOn()) * -1; - if (to == 0) { - return Integer.compare(a.hashCode(), b.hashCode()) * -1; - } - return to; - } - }); + internal = new TreeMap<>( + (a, b) -> { + int to = a.getEventCreatedOn().compareTo(b.getEventCreatedOn()) * -1; + if (to == 0) { + return Integer.compare(a.hashCode(), b.hashCode()) * -1; + } + return to; + }); } /** @@ -91,16 +87,8 @@ public int compare(GerritTriggeredEvent a, GerritTriggeredEvent b) { */ public List>> getSortedEntrySet() { List>> entries = - new LinkedList>>(entrySet()); - entries.sort(new Comparator>>() { - @Override - public int compare(Map.Entry> a, - Map.Entry> b) { - return a.getKey().getEventCreatedOn().compareTo(b.getKey().getEventCreatedOn()) * -1; - } - }); + new LinkedList<>(entrySet()); + entries.sort((a, b) -> a.getKey().getEventCreatedOn().compareTo(b.getKey().getEventCreatedOn()) * -1); return entries; } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/Diagnostics.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/Diagnostics.java index 69f34fb1b..a16aa6374 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/Diagnostics.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/Diagnostics.java @@ -39,11 +39,12 @@ import jenkins.model.Jenkins; import jenkins.model.ModelObjectWithChildren; import jenkins.model.ModelObjectWithContextMenu; -import org.acegisecurity.Authentication; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.interceptor.RequirePOST; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; +import org.springframework.security.core.Authentication; import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; @@ -60,7 +61,8 @@ public class Diagnostics implements ModelObjectWithChildren, ModelObjectWithContextMenu { @Override - public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + @RequirePOST + public ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { return getContextMenu(null); } @@ -70,8 +72,8 @@ public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse * * @param context the url prefix to put on all urls. * @return the selectable reports. - * @see #doChildrenContextMenu(StaplerRequest, StaplerResponse) - * @see com.sonyericsson.hudson.plugins.gerrit.trigger.GerritManagement#doContextMenu(StaplerRequest, StaplerResponse) + * @see #doChildrenContextMenu(StaplerRequest2, StaplerResponse2) + * @see com.sonyericsson.hudson.plugins.gerrit.trigger.GerritManagement#doContextMenu(StaplerRequest2, StaplerResponse2) */ @Restricted(NoExternalUse.class) public ContextMenu getContextMenu(String context) { @@ -158,7 +160,8 @@ public EventListenersReport getEventListeners() { } @Override - public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse response) throws Exception { + @RequirePOST + public ContextMenu doContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { return getContextMenu(null); } @@ -171,7 +174,7 @@ public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse respons * @throws IOException if so * @see #isDebugMode() */ - public void doTriggerDebugEvent(StaplerRequest request, StaplerResponse response) throws IOException { + public void doTriggerDebugEvent(StaplerRequest2 request, StaplerResponse2 response) throws IOException { if (!isDebugMode()) { throw new IllegalStateException("Can only be done in a dev environment!"); } @@ -187,7 +190,7 @@ public void doTriggerDebugEvent(StaplerRequest request, StaplerResponse response } //Todo maybe some configuration from the request? ManualPatchsetCreated event = new ManualPatchsetCreated(); - Authentication authentication = Jenkins.getAuthentication(); + Authentication authentication = Jenkins.getAuthentication2(); event.setUserName(authentication.getName()); event.setAccount(new Account(authentication.getName(), authentication.getName() + "@example.com")); Change change = new Change(); @@ -221,7 +224,7 @@ public void doTriggerDebugEvent(StaplerRequest request, StaplerResponse response } /** - * Helping {@link #doTriggerDebugEvent(StaplerRequest, StaplerResponse)}. + * Helping {@link #doTriggerDebugEvent(StaplerRequest2, StaplerResponse2)}. */ private static final Random RND = new Random(); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/EventListenersReport.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/EventListenersReport.java index a8b3b0d06..ade0cb696 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/EventListenersReport.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/EventListenersReport.java @@ -110,13 +110,8 @@ public String getName(GerritEventListener listener) { public static EventListenersReport report() { GerritHandler handler = PluginImpl.getHandler_(); if (handler != null) { - Set jobs = new TreeSet(new Comparator() { - @Override - public int compare(EventListener o1, EventListener o2) { - return o1.getJob().compareTo(o2.getJob()); - } - }); - Set others = new LinkedHashSet(); + Set jobs = new TreeSet<>(Comparator.comparing(EventListener::getJob)); + Set others = new LinkedHashSet<>(); Set view = handler.getGerritEventListenersView(); for (GerritEventListener listener : view) { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/events/ManualPatchsetCreated.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/events/ManualPatchsetCreated.java index 51e40161e..0271413ff 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/events/ManualPatchsetCreated.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/events/ManualPatchsetCreated.java @@ -109,7 +109,7 @@ public GerritEvent getEvent() { @Override public synchronized void addListener(GerritEventLifecycleListener listener) { if (listeners == null) { - listeners = new LinkedList(); + listeners = new LinkedList<>(); } if (!listeners.contains(listener)) { listeners.add(listener); @@ -137,32 +137,17 @@ public synchronized void fireTriggerScanDone() { @Override public synchronized void fireProjectTriggered(final Job project) { - fireEvent(new ListenerVisitor() { - @Override - public void visit(GerritEventLifecycleListener listener, GerritEvent event) { - listener.projectTriggered(event, project); - } - }); + fireEvent((listener, event) -> listener.projectTriggered(event, project)); } @Override public synchronized void fireBuildStarted(final Run build) { - fireEvent(new ListenerVisitor() { - @Override - public void visit(GerritEventLifecycleListener listener, GerritEvent event) { - listener.buildStarted(event, build); - } - }); + fireEvent((listener, event) -> listener.buildStarted(event, build)); } @Override public synchronized void fireBuildCompleted(final Run build) { - fireEvent(new ListenerVisitor() { - @Override - public void visit(GerritEventLifecycleListener listener, GerritEvent event) { - listener.buildCompleted(event, build); - } - }); + fireEvent((listener, event) -> listener.buildCompleted(event, build)); } @Override @@ -190,7 +175,7 @@ private synchronized void fireEvent(ListenerVisitor visitor) { */ protected synchronized List getListeners() { if (listeners != null) { - return new LinkedList(listeners); + return new LinkedList<>(listeners); } else { return null; } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/GerritMessageProvider.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/GerritMessageProvider.java index 3f23b91a6..0eca42659 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/GerritMessageProvider.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/GerritMessageProvider.java @@ -30,6 +30,7 @@ import hudson.model.Run; import jenkins.model.Jenkins; +import java.io.Serial; import java.io.Serializable; import java.util.Collection; import java.util.Collections; @@ -41,6 +42,7 @@ * @author Gustaf Lundh <gustaf.lundh@sonymobile.com> */ public abstract class GerritMessageProvider implements Serializable, ExtensionPoint { + @Serial private static final long serialVersionUID = -2019176207418719449L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ParameterExpander.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ParameterExpander.java index 45e36bc0e..f9018b60b 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ParameterExpander.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ParameterExpander.java @@ -52,6 +52,8 @@ import org.slf4j.LoggerFactory; import static com.sonyericsson.hudson.plugins.gerrit.trigger.utils.Logic.shouldSkip; + +import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -113,7 +115,7 @@ public String getBuildStartedCommand(Run r, TaskListener taskListener, Notify.ALL.name()); StringBuilder startedStats = new StringBuilder(); if (stats.getTotalBuildsToStart() > 1) { - startedStats.append(stats.toString()); + startedStats.append(stats); } String buildStartMessage = trigger.getBuildStartMessage(); if (buildStartMessage != null && !buildStartMessage.isEmpty()) { @@ -142,11 +144,7 @@ public String getBuildStartedCommand(Run r, TaskListener taskListener, * @return empty if null or the iterable */ private static Iterable emptyIfNull(Iterable iterable) { - if (iterable == null) { - return Collections.emptyList(); - } else { - return iterable; - } + return Objects.requireNonNullElse(iterable, Collections.emptyList()); } /** @@ -225,9 +223,8 @@ public Integer getBuildStartedCodeReviewValue(Run r) { private Map createStandardParameters(Run r, GerritTriggeredEvent gerritEvent, Integer codeReview, Integer verified, String notifyLevel) { // VERIFIED CODE_REVIEW - Map map = new HashMap(DEFAULT_PARAMETERS_COUNT); - if (gerritEvent instanceof ChangeBasedEvent) { - ChangeBasedEvent event = (ChangeBasedEvent)gerritEvent; + Map map = new HashMap<>(DEFAULT_PARAMETERS_COUNT); + if (gerritEvent instanceof ChangeBasedEvent event) { map.put("GERRIT_NAME", event.getChange().getProject()); map.put("CHANGE_ID", event.getChange().getId()); map.put("BRANCH", event.getChange().getBranch()); @@ -390,7 +387,7 @@ protected Integer getVerifiedValue(Result res, GerritTrigger trigger) { @CheckForNull public Integer getMinimumVerifiedValue(MemoryImprint memoryImprint, boolean onlyBuilt, Integer maxAllowedVerifiedValue) { - Integer verified = Integer.MAX_VALUE; + int verified = Integer.MAX_VALUE; for (Entry entry : memoryImprint.getEntries()) { if (entry == null) { continue; @@ -430,7 +427,7 @@ public Integer getMinimumVerifiedValue(MemoryImprint memoryImprint, boolean only */ @CheckForNull public Integer getMinimumCodeReviewValue(MemoryImprint memoryImprint, boolean onlyBuilt) { - Integer codeReview = Integer.MAX_VALUE; + int codeReview = Integer.MAX_VALUE; for (Entry entry : memoryImprint.getEntries()) { Run build = entry.getBuild(); if (build == null) { @@ -501,7 +498,7 @@ public Notify getHighestNotificationLevel(MemoryImprint memoryImprint, boolean o */ public Notify getNotificationLevel(GerritTrigger trigger) { String level = trigger.getNotificationLevel(); - if (level != null && level.length() > 0) { + if (level != null && !level.isEmpty()) { return Notify.valueOf(level); } Notify serverLevel = config.getNotificationLevel(); @@ -653,7 +650,7 @@ private String createBuildsStats(MemoryImprint memoryImprint, TaskListener liste // If the user has specified a message, use it // otherwise use a generic indicator if (customMessage == null || customMessage.isEmpty()) { - str.append(res.toString()); + str.append(res); if (shouldSkip(trigger.getSkipVote(), res)) { str.append(" (skipped)"); } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ToGerritRunListener.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ToGerritRunListener.java index 7bb60af1e..8247bba3e 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ToGerritRunListener.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/ToGerritRunListener.java @@ -49,6 +49,7 @@ import java.io.IOException; import java.util.List; +import java.util.Objects; import jenkins.model.Jenkins; @@ -213,10 +214,7 @@ public synchronized boolean isProjectTriggeredAndIncomplete(Job p, GerritTrigger //misnomer: the project is considered "building", even if the build hasn't been created //for that project yet. As long as the project exists, and does not have a completed //build, it is "building". - if (memory.isBuilding(event, p)) { - return true; - } - return false; + return memory.isBuilding(event, p); } @Override @@ -508,11 +506,7 @@ private String obtainUnsuccessfulMessage(@Nullable GerritTriggeredEvent event, if (filepath != null && !filepath.isEmpty()) { EnvVars envVars; - if (listener == null) { - envVars = build.getEnvironment(); - } else { - envVars = build.getEnvironment(listener); - } + envVars = build.getEnvironment(Objects.requireNonNullElse(listener, TaskListener.NULL)); // The filename may contain environment variables filepath = envVars.expand(filepath); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildCompletedRestCommandJob.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildCompletedRestCommandJob.java index 9ab3bc7eb..19de254a5 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildCompletedRestCommandJob.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildCompletedRestCommandJob.java @@ -77,9 +77,9 @@ public BuildCompletedRestCommandJob(IGerritHudsonTriggerConfig config, BuildMemo @Override protected ReviewInput createReview() { - try (ACLContext ctx = ACL.as(ACL.SYSTEM)) { + try (ACLContext ctx = ACL.as2(ACL.SYSTEM2)) { String message = parameterExpander.getBuildCompletedMessage(memoryImprint, listener); - Collection scoredLabels = new ArrayList(); + Collection scoredLabels = new ArrayList<>(); if (memoryImprint.getEvent().isScorable()) { if (config.isRestCodeReview()) { Integer crValue = parameterExpander.getMinimumCodeReviewValue(memoryImprint, true); @@ -100,7 +100,7 @@ protected ReviewInput createReview() { } Notify notificationLevel = parameterExpander.getHighestNotificationLevel(memoryImprint, true); List gerritMessageProviders = GerritMessageProvider.all(); - Collection commentedFiles = new ArrayList(); + Collection commentedFiles = new ArrayList<>(); if (gerritMessageProviders != null) { for (GerritMessageProvider gerritMessageProvider : gerritMessageProviders) { for (BuildMemory.MemoryImprint.Entry e : memoryImprint.getEntries()) { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildStartedRestCommandJob.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildStartedRestCommandJob.java index 86987a954..36a3ca114 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildStartedRestCommandJob.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildStartedRestCommandJob.java @@ -85,7 +85,7 @@ public BuildStartedRestCommandJob(IGerritHudsonTriggerConfig config, Run build, protected ReviewInput createReview() { String message = parameterExpander.getBuildStartedMessage(build, listener, event, stats); - Collection scoredLabels = new ArrayList(); + Collection scoredLabels = new ArrayList<>(); if (event.isScorable()) { if (config.isRestCodeReview()) { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/ssh/BuildCompletedCommandJob.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/ssh/BuildCompletedCommandJob.java index c89291653..a0c2fac17 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/ssh/BuildCompletedCommandJob.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/ssh/BuildCompletedCommandJob.java @@ -62,7 +62,7 @@ public BuildCompletedCommandJob(IGerritHudsonTriggerConfig config, @Override public void run() { - try (ACLContext ctx = ACL.as(ACL.SYSTEM)) { + try (ACLContext ctx = ACL.as2(ACL.SYSTEM2)) { GerritNotifier notifier = GerritNotifierFactory.getInstance() .createGerritNotifier((IGerritHudsonTriggerConfig)getConfig(), this); notifier.buildCompleted(memoryImprint, listener); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/ssh/BuildStartedCommandJob.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/ssh/BuildStartedCommandJob.java index 5043505fb..ae2c48d42 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/ssh/BuildStartedCommandJob.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/ssh/BuildStartedCommandJob.java @@ -72,7 +72,7 @@ public BuildStartedCommandJob(IGerritHudsonTriggerConfig config, Run build, @Override public void run() { - try (ACLContext ctx = ACL.as(ACL.SYSTEM)) { + try (ACLContext ctx = ACL.as2(ACL.SYSTEM2)) { GerritNotifier notifier = GerritNotifierFactory.getInstance() .createGerritNotifier((IGerritHudsonTriggerConfig)getConfig(), this); notifier.buildStarted(build, taskListener, event, stats); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java index 9b2c86e46..ccb42f520 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java @@ -79,7 +79,7 @@ public int compare(GerritTriggeredEvent o1, GerritTriggeredEvent o2) { } private TreeMap memory = - new TreeMap( + new TreeMap<>( new GerritTriggeredEventComparator()); private static final Logger logger = LoggerFactory.getLogger(BuildMemory.class); @@ -394,7 +394,7 @@ public synchronized boolean isBuilding(GerritTriggeredEvent event) { public synchronized List getBuilds(GerritTriggeredEvent event) { MemoryImprint pb = memory.get(event); if (pb != null) { - List list = new LinkedList(); + List list = new LinkedList<>(); for (Entry entry : pb.getEntries()) { if (entry.getBuild() != null) { list.add(entry.getBuild()); @@ -480,7 +480,7 @@ public synchronized void removeProject(Job project) { public synchronized BuildMemoryReport report() { BuildMemoryReport report = new BuildMemoryReport(); for (Map.Entry entry : memory.entrySet()) { - List triggered = new LinkedList(); + List triggered = new LinkedList<>(); for (Entry tr : entry.getValue().list) { triggered.add(tr.clone()); } @@ -495,7 +495,7 @@ public synchronized BuildMemoryReport report() { public static class MemoryImprint { private GerritTriggeredEvent event; - private List list = new ArrayList(); + private List list = new ArrayList<>(); /** * Constructor. @@ -532,7 +532,7 @@ public GerritTriggeredEvent getEvent() { * @return the memory entries. */ public synchronized Entry[] getEntries() { - return list.toArray(new Entry[list.size()]); + return list.toArray(new Entry[0]); } /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/notification/NotificationCommands.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/notification/NotificationCommands.java index bfa31de3c..58acd1554 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/notification/NotificationCommands.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/notification/NotificationCommands.java @@ -84,7 +84,7 @@ public void addTopicChangeCommand(String gerritCommand) { * @return true if commandsTopicChange contains items, otherwise false. */ public boolean hasTopicChanges() { - return commandsTopicChange.size() > 0; + return !commandsTopicChange.isEmpty(); } /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/AbandonedPatchsetInterruption.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/AbandonedPatchsetInterruption.java index 014b2c5f3..392f0a320 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/AbandonedPatchsetInterruption.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/AbandonedPatchsetInterruption.java @@ -26,11 +26,14 @@ import com.sonyericsson.hudson.plugins.gerrit.trigger.Messages; import jenkins.model.CauseOfInterruption; +import java.io.Serial; + /** * A cause class for new build interruption. * @author ckreisl */ public final class AbandonedPatchsetInterruption extends CauseOfInterruption { + @Serial private static final long serialVersionUID = 1L; @Override diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/DynamicConfigurationCacheProxy.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/DynamicConfigurationCacheProxy.java index 22b89d026..830518edf 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/DynamicConfigurationCacheProxy.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/DynamicConfigurationCacheProxy.java @@ -19,9 +19,9 @@ */ final class DynamicConfigurationCacheProxy { private static final DynamicConfigurationCacheProxy CACHE_PROXY = new DynamicConfigurationCacheProxy(); - private final Map> cache = new HashMap>(); + private final Map> cache = new HashMap<>(); private static final Logger logger = LoggerFactory.getLogger(DynamicConfigurationCacheProxy.class); - private final Map ttl = new HashMap(); + private final Map ttl = new HashMap<>(); /** * Private constructor. diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/EventListener.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/EventListener.java index 50856c489..c0afe3fe3 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/EventListener.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/EventListener.java @@ -121,8 +121,7 @@ public void gerritEvent(GerritEvent event) { // to just return now without processing the event. return; } - if (event instanceof GerritTriggeredEvent) { - GerritTriggeredEvent triggeredEvent = (GerritTriggeredEvent)event; + if (event instanceof GerritTriggeredEvent triggeredEvent) { synchronized (this) { if (t.isInteresting(triggeredEvent)) { logger.trace("The event is interesting."); @@ -230,11 +229,10 @@ public void gerritEvent(CommentAdded event) { * @param event GerritTriggeredEvent. */ private void abortBuild(GerritTrigger t, GerritTriggeredEvent event) { - if (!(event instanceof ChangeBasedEvent)) { + if (!(event instanceof ChangeBasedEvent changeBasedEvent)) { return; } - ChangeBasedEvent changeBasedEvent = (ChangeBasedEvent)event; if (t.getBuildCancellationPolicy() != null && t.getBuildCancellationPolicy().isEnabled()) { t.getRunningJobs(t.getJob()).cancelTriggeredJob(changeBasedEvent, t.getJob().getFullName(), t.getBuildCancellationPolicy()); @@ -272,8 +270,7 @@ protected void schedule(GerritTrigger t, GerritCause cause, GerritTriggeredEvent if (cause instanceof GerritUserCause) { // it's a manual trigger, no need for a quiet period projectbuildDelay = 0; - } else if (project instanceof ParameterizedJobMixIn.ParameterizedJob) { - ParameterizedJobMixIn.ParameterizedJob abstractProject = (ParameterizedJobMixIn.ParameterizedJob)project; + } else if (project instanceof ParameterizedJobMixIn.ParameterizedJob abstractProject) { if (abstractProject.getQuietPeriod() > projectbuildDelay) { projectbuildDelay = abstractProject.getQuietPeriod(); } @@ -288,8 +285,7 @@ protected void schedule(GerritTrigger t, GerritCause cause, GerritTriggeredEvent + project.getClass().getName()); } - if (event instanceof ChangeBasedEvent) { - ChangeBasedEvent changeBasedEvent = (ChangeBasedEvent)event; + if (event instanceof ChangeBasedEvent changeBasedEvent) { if (null != changeBasedEvent.getPatchSet()) { logger.info("Project {} Build Scheduled: {} By event: {}", project.getName(), (futureBuild != null), @@ -300,8 +296,7 @@ protected void schedule(GerritTrigger t, GerritCause cause, GerritTriggeredEvent project.getName(), (futureBuild != null), changeBasedEvent.getChange().getNumber()); } - } else if (event instanceof RefUpdated) { - RefUpdated refUpdated = (RefUpdated)event; + } else if (event instanceof RefUpdated refUpdated) { logger.info("Project {} Build Scheduled: {} By event: {}", project.getName(), (futureBuild != null), refUpdated.getRefUpdate().getRefName() + " " + refUpdated.getRefUpdate().getNewRev()); @@ -399,7 +394,7 @@ protected ParametersAction createParameters(GerritTriggeredEvent event, Job proj private List getDefaultParametersValues(Job project) { ParametersDefinitionProperty paramDefProp = (ParametersDefinitionProperty)project.getProperty(ParametersDefinitionProperty.class); - List defValues = new ArrayList(); + List defValues = new ArrayList<>(); /* * This check is made ONLY if someone calls this method even if isParametrized() is false. diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritCause.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritCause.java index 207c3c528..bac0e6b7b 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritCause.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritCause.java @@ -224,11 +224,7 @@ public boolean equals(Object o) { if (silentMode != that.silentMode) { return false; } - if (!tEvent.equals(that.tEvent)) { - return false; - } - - return true; + return tEvent.equals(that.tEvent); } @Override diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritConnectionListener.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritConnectionListener.java index 120b3e078..f3f788e8b 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritConnectionListener.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritConnectionListener.java @@ -155,7 +155,7 @@ public void checkGerritVersionFeatures() { if (connected) { GerritVersionNumber version = GerritVersionChecker.createVersionNumber(getVersionString()); - List list = new LinkedList(); + List list = new LinkedList<>(); for (GerritVersionChecker.Feature f : GerritVersionChecker.Feature.values()) { if (!GerritVersionChecker.isCorrectVersion(version, f)) { list.add(f); @@ -202,13 +202,8 @@ public boolean equals(Object obj) { } GerritConnectionListener other = (GerritConnectionListener)obj; if (serverName == null) { - if (other.serverName != null) { - return false; - } - } else if (!serverName.equals(other.serverName)) { - return false; - } - return true; + return other.serverName == null; + } else return serverName.equals(other.serverName); } } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritDynamicUrlProcessor.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritDynamicUrlProcessor.java index 0c0009764..aded282d4 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritDynamicUrlProcessor.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritDynamicUrlProcessor.java @@ -101,31 +101,29 @@ private static Pattern buildLinePattern() { if (!firstoperator) { operators.append("|"); } - operators.append(regexEscapted(type.getOperator())); + operators.append(regexEscaped(type.getOperator())); firstoperator = false; } operators.append(")"); return Pattern.compile(projectBranchFile + "\\s*" - + operators.toString() + + operators + "\\s*(.+)$"); } /** - * Escapted char for use in regex pattern. + * Escaped char for use in regex pattern. * - * @param symbol to escapted char + * @param symbol to escaped char * - * @return escapted symbol + * @return escaped symbol */ - private static String regexEscapted(char symbol) { - switch (symbol) { - case '^': - return "\\^"; - default: - return String.valueOf(symbol); - } + private static String regexEscaped(char symbol) { + return switch (symbol) { + case '^' -> "\\^"; + default -> String.valueOf(symbol); + }; } /** @@ -141,7 +139,7 @@ private static List readAndParseTriggerConfig(BufferedReader read throws IOException, ParseException { Pattern linePattern = buildLinePattern(); - List dynamicGerritProjects = new ArrayList(); + List dynamicGerritProjects = new ArrayList<>(); List branches = null; List topics = null; List hashtags = null; @@ -188,55 +186,62 @@ private static List readAndParseTriggerConfig(BufferedReader read logger.trace("==> item:({}) oper:({}) text:({})", item, oper, text); - if (SHORTNAME_PROJECT.equals(item)) { // Project - // stash previous project to the list - if (dynamicGerritProject != null) { - dynamicGerritProjects.add(dynamicGerritProject); - } + switch (item) { + case SHORTNAME_PROJECT -> { + // stash previous project to the list + if (dynamicGerritProject != null) { + dynamicGerritProjects.add(dynamicGerritProject); + } - branches = new ArrayList(); - topics = new ArrayList(); - hashtags = new ArrayList<>(); - filePaths = new ArrayList(); - forbiddenFilePaths = new ArrayList(); - dynamicGerritProject = new GerritProject(type, text, branches, topics, - filePaths, forbiddenFilePaths, false); - } else if (SHORTNAME_BRANCH.equals(item)) { // Branch - if (branches == null) { - throw new ParseException("Line " + lineNr + ": attempt to use 'Branch' before 'Project'", lineNr); - } - Branch branch = new Branch(type, text); - branches.add(branch); - dynamicGerritProject.setBranches(branches); - } else if (SHORTNAME_TOPIC.equals(item)) { // Topic - if (topics == null) { - throw new ParseException("Line " + lineNr + ": attempt to use 'Topic' before 'Project'", lineNr); - } - Topic topic = new Topic(type, text); - topics.add(topic); - dynamicGerritProject.setTopics(topics); - } else if (SHORTNAME_FILE.equals(item)) { // FilePath - if (filePaths == null) { - throw new ParseException("Line " + lineNr + ": attempt to use 'FilePath' before 'Project'", lineNr); + branches = new ArrayList<>(); + topics = new ArrayList<>(); + hashtags = new ArrayList<>(); + filePaths = new ArrayList<>(); + forbiddenFilePaths = new ArrayList<>(); + dynamicGerritProject = new GerritProject(type, text, branches, topics, + filePaths, forbiddenFilePaths, false); + } + case SHORTNAME_BRANCH -> { + if (branches == null) { + throw new ParseException("Line " + lineNr + ": attempt to use 'Branch' before 'Project'", lineNr); + } + Branch branch = new Branch(type, text); + branches.add(branch); + dynamicGerritProject.setBranches(branches); + } + case SHORTNAME_TOPIC -> { + if (topics == null) { + throw new ParseException("Line " + lineNr + ": attempt to use 'Topic' before 'Project'", lineNr); + } + Topic topic = new Topic(type, text); + topics.add(topic); + dynamicGerritProject.setTopics(topics); + } + case SHORTNAME_FILE -> { // FilePath + if (filePaths == null) { + throw new ParseException("Line " + lineNr + ": attempt to use 'FilePath' before 'Project'", lineNr); + } + FilePath filePath = new FilePath(type, text); + filePaths.add(filePath); + dynamicGerritProject.setFilePaths(filePaths); + } + case SHORTNAME_FORBIDDEN_FILE -> { // ForbiddenFilePath + if (forbiddenFilePaths == null) { + throw new ParseException("Line " + lineNr + ": attempt to use 'ForbiddenFilePath' before 'Project'", lineNr); + } + FilePath filePath = new FilePath(type, text); + forbiddenFilePaths.add(filePath); + dynamicGerritProject.setForbiddenFilePaths(forbiddenFilePaths); + } + case SHORTNAME_HASHTAG -> { + if (hashtags == null) { + throw new ParseException("Line " + lineNr + ": attempt to use 'hashtag' before 'Project'", lineNr); + } + Hashtag hashtag = new Hashtag(type, text); + hashtags.add(hashtag); + dynamicGerritProject.setHashtags(hashtags); + } } - FilePath filePath = new FilePath(type, text); - filePaths.add(filePath); - dynamicGerritProject.setFilePaths(filePaths); - } else if (SHORTNAME_FORBIDDEN_FILE.equals(item)) { // ForbiddenFilePath - if (forbiddenFilePaths == null) { - throw new ParseException("Line " + lineNr + ": attempt to use 'ForbiddenFilePath' before 'Project'", lineNr); - } - FilePath filePath = new FilePath(type, text); - forbiddenFilePaths.add(filePath); - dynamicGerritProject.setForbiddenFilePaths(forbiddenFilePaths); - } else if (SHORTNAME_HASHTAG.equals(item)) { - if (hashtags == null) { - throw new ParseException("Line " + lineNr + ": attempt to use 'hashtag' before 'Project'", lineNr); - } - Hashtag hashtag = new Hashtag(type, text); - hashtags.add(hashtag); - dynamicGerritProject.setHashtags(hashtags); - } } // Finally stash the last project to the list diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritItemListener.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritItemListener.java index c8585d030..dba6a5f66 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritItemListener.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritItemListener.java @@ -65,8 +65,7 @@ public class GerritItemListener extends ItemListener { */ @Override public void onDeleted(Item item) { - if (item instanceof Job) { - Job project = (Job)item; + if (item instanceof Job project) { GerritTrigger gerritTrigger = GerritTrigger.getTrigger(project); if (gerritTrigger != null) { gerritTrigger.stop(); @@ -91,8 +90,7 @@ public void onDeleted(Item item) { */ @Override public void onLocationChanged(Item item, String oldFullName, String newFullName) { - if (item instanceof Job) { - Job project = (Job)item; + if (item instanceof Job project) { GerritTrigger gerritTrigger = GerritTrigger.getTrigger(project); if (gerritTrigger != null) { gerritTrigger.onJobRenamed(oldFullName, newFullName); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritProjectList.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritProjectList.java index 7d9b9df55..80d6f3a70 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritProjectList.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritProjectList.java @@ -50,7 +50,7 @@ public final class GerritProjectList { * projectList data structure has Gerrit project's pattern as key value * and as content a ArrayList of Jenkins jobs related to that Gerrit project. */ - private Map> projectList = new HashMap>(); + private Map> projectList = new HashMap<>(); /** * A private Constructor prevents any other class from instantiating. @@ -118,7 +118,7 @@ public static void addProject(GerritProject project, GerritTrigger trigger) { GerritProjectList inst = getInstance(); String key = inst.createKeyString(project); if (key != null) { - inst.projectList.computeIfAbsent(key, unused -> new ArrayList()); + inst.projectList.computeIfAbsent(key, unused -> new ArrayList<>()); inst.projectList.get(key).add(trigger); } } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritQueueListener.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritQueueListener.java index d58d5f239..9c021911c 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritQueueListener.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritQueueListener.java @@ -26,8 +26,7 @@ public class GerritQueueListener extends QueueListener { public void onLeft(LeftItem item) { if (item.isCancelled() && item.task instanceof Job) { for (Cause cause : item.getCauses()) { - if (cause instanceof GerritCause && !((GerritCause)cause).isSilentMode()) { - GerritCause gerritCause = (GerritCause)cause; + if (cause instanceof GerritCause gerritCause && !gerritCause.isSilentMode()) { GerritTriggeredEvent event = gerritCause.getEvent(); ToGerritRunListener runListener = ToGerritRunListener.getInstance(); runListener.setQueueCancelled((Job)item.task, event); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritSaveableListener.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritSaveableListener.java index 0cf468c92..2767b69ba 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritSaveableListener.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritSaveableListener.java @@ -16,8 +16,7 @@ public class GerritSaveableListener extends SaveableListener { @Override public void onChange(Saveable o, XmlFile file) { - if (o instanceof Job) { - Job project = (Job)o; + if (o instanceof Job project) { GerritTrigger gerritTrigger = GerritTrigger.getTrigger(project); if (gerritTrigger == null) { PluginImpl plugin = PluginImpl.getInstance(); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java index 3b599168c..182e992d6 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java @@ -752,7 +752,7 @@ private List getVerdictCategoriesList() { return server.getConfig().getCategories(); } else { logger.error("Could not find server {}", serverName); - return new LinkedList(); + return new LinkedList<>(); } } @@ -927,8 +927,7 @@ public int hashCode() { @Override public boolean equals(Object obj) { - if (obj instanceof GerritTrigger) { - GerritTrigger that = (GerritTrigger)obj; + if (obj instanceof GerritTrigger that) { if (job == null || that.job == null) { return super.equals(obj); } else { @@ -949,8 +948,8 @@ public boolean equals(Object obj) { private boolean isChangeInteresting(Change change, GerritProject project, GerritQueryHandler gerritQueryHandler) { boolean shouldTrigger = false; boolean containsFilePathsOrForbiddenFilePaths = ((project.getFilePaths() != null - && project.getFilePaths().size() > 0) - || (project.getForbiddenFilePaths() != null && project.getForbiddenFilePaths().size() > 0)); + && !project.getFilePaths().isEmpty()) + || (project.getForbiddenFilePaths() != null && !project.getForbiddenFilePaths().isEmpty())); if (isFileTriggerEnabled() && containsFilePathsOrForbiddenFilePaths) { if (project.isInteresting(change, @@ -1050,11 +1049,7 @@ private boolean isChangeBasedEventInteresting(ChangeBasedEvent event, GerritProj return true; } - if (isTopicAssociationInteresting(event, project)) { - return true; - } - - return false; + return isTopicAssociationInteresting(event, project); } /** @@ -1110,9 +1105,7 @@ public boolean isOnlyAbortRunningBuild(GerritTriggeredEvent event) { IGerritHudsonTriggerConfig serverConfig = getServerConfig(event); if (serverConfig != null && serverConfig.isGerritBuildCurrentPatchesOnly()) { - if (serverConfig.getBuildCurrentPatchesOnly().isAbortAbandonedPatchsets()) { - return true; - } + return serverConfig.getBuildCurrentPatchesOnly().isAbortAbandonedPatchsets(); } return false; @@ -1160,13 +1153,11 @@ public boolean isInteresting(GerritTriggeredEvent event) { while (allGerritProjects.hasNext()) { GerritProject p = allGerritProjects.next(); try { - if (event instanceof ChangeBasedEvent) { - ChangeBasedEvent changeBasedEvent = (ChangeBasedEvent)event; + if (event instanceof ChangeBasedEvent changeBasedEvent) { if (isChangeBasedEventInteresting(changeBasedEvent, p)) { return true; } - } else if (event instanceof RefUpdated) { - RefUpdated refUpdated = (RefUpdated)event; + } else if (event instanceof RefUpdated refUpdated) { Change change = new Change(); change.setProject(refUpdated.getRefUpdate().getProject()); change.setBranch(refUpdated.getRefUpdate().getRefName()); @@ -1595,7 +1586,7 @@ private Iterator getAllGerritProjectsIterator() { */ private void initializeTriggerOnEvents() { if (triggerOnEvents == null) { - triggerOnEvents = new LinkedList(); + triggerOnEvents = new LinkedList<>(); } if (triggerOnEvents.isEmpty()) { triggerOnEvents.add(new PluginPatchsetCreatedEvent()); @@ -2125,7 +2116,7 @@ public boolean isTriggerOnDraftPublishedEnabled() { * @return list of GerritSlave (can be empty but never null) */ public List gerritSlavesToWaitFor(String gerritServerName) { - List gerritSlaves = new ArrayList(); + List gerritSlaves = new ArrayList<>(); GerritServer gerritServer = PluginImpl.getServer_(gerritServerName); if (gerritServer == null) { @@ -2152,7 +2143,7 @@ public List gerritSlavesToWaitFor(String gerritServerName) { @Override public List getProjectActions() { - List list = new LinkedList(); + List list = new LinkedList<>(); list.add(triggerInformationAction); return list; } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerBuildChooser.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerBuildChooser.java index 5df36d4ba..9b781aa72 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerBuildChooser.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerBuildChooser.java @@ -44,7 +44,6 @@ import hudson.plugins.git.util.BuildData; import hudson.remoting.VirtualChannel; -import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevWalk; import org.jenkinsci.plugins.gitclient.GitClient; @@ -54,6 +53,7 @@ import java.io.IOException; +import java.io.Serial; import java.util.Collection; import java.util.Collections; import java.util.logging.Logger; @@ -65,6 +65,7 @@ * @author Andrew Bayer */ public class GerritTriggerBuildChooser extends BuildChooser { + @Serial private static final long serialVersionUID = 2003462680723330645L; /** @@ -170,24 +171,20 @@ public Build prevBuildForChangelog(String singleBranch, BuildData data, GitClien @SuppressWarnings("serial") private ObjectId getFirstParent(final ObjectId id, GitClient git) throws GitException, IOException, InterruptedException { - return git.withRepository(new RepositoryCallback() { - @Override - public ObjectId invoke(Repository repository, VirtualChannel virtualChannel) - throws IOException, InterruptedException { - ObjectId result = null; - try (RevWalk walk = new RevWalk(repository)) { - RevCommit commit = walk.parseCommit(id); - if (commit.getParentCount() > 0) { - result = commit.getParent(0); - } else { - // If this is the first commit in the git, there is no parent. - result = id; - } - } catch (Exception e) { - throw new GitException("Failed to find parent id. ", e); + return git.withRepository((RepositoryCallback) (repository, virtualChannel) -> { + ObjectId result = null; + try (RevWalk walk = new RevWalk(repository)) { + RevCommit commit = walk.parseCommit(id); + if (commit.getParentCount() > 0) { + result = commit.getParent(0); + } else { + // If this is the first commit in the git, there is no parent. + result = id; } - return result; + } catch (Exception e) { + throw new GitException("Failed to find parent id. ", e); } + return result; }); } @@ -212,7 +209,8 @@ public String getLegacyId() { */ private static class GetGerritEventRevision implements BuildChooserContext.ContextCallable, String> { - static final long serialVersionUID = 0L; + @Serial + private static final long serialVersionUID = 0L; @Override public String invoke(Run build, VirtualChannel channel) { GerritCause cause = build.getCause(GerritCause.class); @@ -234,7 +232,8 @@ public String invoke(Run build, VirtualChannel channel) { */ private static class GetGerritEventRefspec implements BuildChooserContext.ContextCallable, String> { - static final long serialVersionUID = 0L; + @Serial + private static final long serialVersionUID = 0L; @Override public String invoke(Run build, VirtualChannel channel) { GerritCause cause = build.getCause(GerritCause.class); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerDescriptor.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerDescriptor.java index c451620e7..2d1f7dbdf 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerDescriptor.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerDescriptor.java @@ -89,10 +89,10 @@ public FormValidation doCheckDependencyJobsNames(@AncestorInPath Item project, @ // Check that all jobs are legit, actual projects. while (tokens.hasMoreTokens()) { String projectName = tokens.nextToken().trim(); - if (!projectName.equals("")) { + if (!projectName.isEmpty()) { Jenkins jenkins = Jenkins.get(); Item item = jenkins.getItem(projectName, project, Item.class); - if ((item == null) || !(item instanceof Job)) { + if (!(item instanceof Job)) { AbstractProject nearest = AbstractProject.findNearest(projectName); String path = ""; if (nearest != null) { @@ -107,7 +107,7 @@ public FormValidation doCheckDependencyJobsNames(@AncestorInPath Item project, @ } //Check there are no cycles in the dependencies, by exploring all dependencies recursively //Only way of creating a cycle is if this project is in the dependencies somewhere. - Set explored = new HashSet(); + Set explored = new HashSet<>(); List directDependencies = DependencyQueueTaskDispatcher.getProjectsFromString(value, project); if (directDependencies == null) { @@ -118,9 +118,9 @@ public FormValidation doCheckDependencyJobsNames(@AncestorInPath Item project, @ if (directDependency.getFullName().equals(project.getFullName())) { return FormValidation.error(Messages.CannotAddSelfAsDependency()); } - java.util.Queue toExplore = new LinkedList(); + java.util.Queue toExplore = new LinkedList<>(); toExplore.add(directDependency); - while (toExplore.size() > 0) { + while (!toExplore.isEmpty()) { Job currentlyExploring = toExplore.remove(); explored.add(currentlyExploring); GerritTrigger currentTrigger = GerritTrigger.getTrigger(currentlyExploring); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerParameters.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerParameters.java index 2ba5afdc4..2a7d9d68c 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerParameters.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerParameters.java @@ -59,7 +59,6 @@ import java.util.List; import java.util.Set; import java.util.TreeSet; -import java.util.stream.Collectors; /** * The parameters to add to a build. @@ -306,7 +305,7 @@ public enum GerritTriggerParameters { * @see #name() */ public static Set getNamesSet() { - Set names = new TreeSet(); + Set names = new TreeSet<>(); for (GerritTriggerParameters p : GerritTriggerParameters.values()) { names.add(p.name()); } @@ -447,13 +446,11 @@ public static void setOrCreateParameters(GerritTriggeredEvent gerritEvent, Job p GERRIT_EVENT_TYPE.setOrCreateStringParameterValue( parameters, gerritEvent.getEventType().getTypeValue(), escapeQuotes); GERRIT_EVENT_HASH.setOrCreateStringParameterValue( - parameters, String.valueOf(((java.lang.Object)gerritEvent).hashCode()), escapeQuotes); - if (gerritEvent instanceof ChangeBasedEvent) { - ChangeBasedEvent event = (ChangeBasedEvent)gerritEvent; + parameters, String.valueOf(gerritEvent.hashCode()), escapeQuotes); + if (gerritEvent instanceof ChangeBasedEvent event) { setOrCreateParametersForChangeBasedEvent(event, parameters, escapeQuotes, nameAndEmailParameterMode, changeSubjectMode, project, commitMessageMode, commentTextMode); - } else if (gerritEvent instanceof RefUpdated) { - RefUpdated event = (RefUpdated)gerritEvent; + } else if (gerritEvent instanceof RefUpdated event) { GERRIT_REFNAME.setOrCreateStringParameterValue( parameters, event.getRefUpdate().getRefName(), escapeQuotes); GERRIT_PROJECT.setOrCreateStringParameterValue( @@ -616,10 +613,8 @@ private static void setOrCreateParametersForChangeBasedEvent(ChangeBasedEvent ev getUpdatedApprovals((CommentAdded)event), false); } if (event instanceof HashtagsChanged) { - String addedHashtags = ((HashtagsChanged)event).getAddedHashtags().stream() - .collect(Collectors.joining(",")); - String removedHashtags = ((HashtagsChanged)event).getRemovedHashtags().stream() - .collect(Collectors.joining(",")); + String addedHashtags = String.join(",", ((HashtagsChanged) event).getAddedHashtags()); + String removedHashtags = String.join(",", ((HashtagsChanged) event).getRemovedHashtags()); GERRIT_ADDED_HASHTAGS.setOrCreateStringParameterValue(parameters, addedHashtags, escapeQuotes); GERRIT_REMOVED_HASHTAGS.setOrCreateStringParameterValue(parameters, removedHashtags, escapeQuotes); } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTimer.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTimer.java index 51df3f7bd..2052913ff 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTimer.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTimer.java @@ -64,7 +64,7 @@ public final class GerritTriggerTimer { * The private constructor (this is a singleton class). */ private GerritTriggerTimer() { - scheduledTasks = new HashMap(); + scheduledTasks = new HashMap<>(); } /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritUserCause.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritUserCause.java index 47ae23915..291646d36 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritUserCause.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritUserCause.java @@ -54,7 +54,7 @@ public GerritUserCause() { */ public GerritUserCause(GerritTriggeredEvent event, boolean silentMode, TriggerContext context) { super(event, silentMode, context); - this.authenticationName = Jenkins.getAuthentication().getName(); + this.authenticationName = Jenkins.getAuthentication2().getName(); } /** @@ -90,7 +90,7 @@ public GerritUserCause(GerritTriggeredEvent event, boolean silentMode, */ public GerritUserCause(GerritTriggeredEvent event, boolean silentMode) { super(event, silentMode); - this.authenticationName = Jenkins.getAuthentication().getName(); + this.authenticationName = Jenkins.getAuthentication2().getName(); } //CS IGNORE MagicNumber FOR NEXT 9 LINES. REASON: As it should be. diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/NewPatchSetInterruption.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/NewPatchSetInterruption.java index 57bf3dd89..352e1fcd9 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/NewPatchSetInterruption.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/NewPatchSetInterruption.java @@ -27,11 +27,14 @@ import jenkins.model.CauseOfInterruption; +import java.io.Serial; + /** * A cause class for new patchset interruption. * @author rinrinne (rinrin.ne@gmail.com) */ public final class NewPatchSetInterruption extends CauseOfInterruption { + @Serial private static final long serialVersionUID = 1L; @Override diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/RunningJobs.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/RunningJobs.java index 2d3aaf741..a6b6a75ef 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/RunningJobs.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/RunningJobs.java @@ -129,11 +129,10 @@ private void cancelOutDatedEvents(ChangeBasedEvent event, BuildCancellationPolic Iterator it = runningJobs.iterator(); while (it.hasNext()) { GerritTriggeredEvent runningEvent = it.next(); - if (!(runningEvent instanceof ChangeBasedEvent)) { + if (!(runningEvent instanceof ChangeBasedEvent runningChangeBasedEvent)) { continue; } - ChangeBasedEvent runningChangeBasedEvent = ((ChangeBasedEvent)runningEvent); if (shouldIgnoreEvent(event, policy, runningChangeBasedEvent)) { continue; } @@ -208,11 +207,7 @@ private boolean shouldIgnoreEvent(ChangeBasedEvent event, boolean isAbortAbandonedPatchset = policy.isAbortAbandonedPatchsets() && (event instanceof ChangeAbandoned); - if (!abortBecauseOfTopic && !shouldCancelPatchsetNumber && !isAbortAbandonedPatchset) { - return true; - } - - return false; + return !abortBecauseOfTopic && !shouldCancelPatchsetNumber && !isAbortAbandonedPatchset; } /** @@ -255,11 +250,10 @@ private void cancelMatchingJobs(GerritTriggeredEvent event, String jobName, Caus for (Computer c : jenkins.getComputers()) { for (Executor e : c.getAllExecutors()) { Queue.Executable currentExecutable = e.getCurrentExecutable(); - if (!(currentExecutable instanceof Run)) { + if (!(currentExecutable instanceof Run run)) { continue; } - Run run = (Run)currentExecutable; if (!checkCausedByGerrit(event, run.getCauses())) { continue; } @@ -288,10 +282,9 @@ private void cancelMatchingJobs(GerritTriggeredEvent event, String jobName, Caus */ private boolean checkCausedByGerrit(GerritTriggeredEvent event, Collection causes) { for (Cause c : causes) { - if (!(c instanceof GerritCause)) { + if (!(c instanceof GerritCause gc)) { continue; } - GerritCause gc = (GerritCause)c; if (gc.getEvent() == event) { return true; } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/RetriggerAction.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/RetriggerAction.java index 8babeb036..2c30461c4 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/RetriggerAction.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/RetriggerAction.java @@ -35,8 +35,8 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.verb.POST; import static com.sonyericsson.hudson.plugins.gerrit.trigger.utils.StringUtil.getPluginImageUrl; @@ -119,12 +119,12 @@ public boolean isVisible() { /** * Handles the request to re-trigger and redirects back to the page that called. - * @param request StaplerRequest the request. - * @param response StaplerResponse the response handler. + * @param request StaplerRequest2 the request. + * @param response StaplerResponse2 the response handler. * @throws IOException in case of Stapler issues */ @POST - public void doIndex(StaplerRequest request, StaplerResponse response) throws IOException { + public void doIndex(StaplerRequest2 request, StaplerResponse2 response) throws IOException { if (!hasPermission()) { //TODO Access denied message to user? diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/RetriggerAllAction.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/RetriggerAllAction.java index 8b45d22d9..05b1e3067 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/RetriggerAllAction.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/RetriggerAllAction.java @@ -37,8 +37,8 @@ import hudson.model.Job; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.verb.POST; import static com.sonyericsson.hudson.plugins.gerrit.trigger.utils.StringUtil.getPluginImageUrl; @@ -143,12 +143,12 @@ public boolean isVisible() { /** * Handles the request to re-trigger and redirects back to the page that called. - * @param request StaplerRequest the request. - * @param response StaplerResponse the response handler. + * @param request StaplerRequest2 the request. + * @param response StaplerResponse2 the response handler. * @throws IOException in case of Stapler issues */ @POST - public void doIndex(StaplerRequest request, StaplerResponse response) throws IOException { + public void doIndex(StaplerRequest2 request, StaplerResponse2 response) throws IOException { if (!hasPermission()) { //TODO Access denied message to user? diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction.java index c65da12c9..5cceb1b6e 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction.java @@ -47,18 +47,19 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.verb.POST; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpSession; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Objects; import static com.sonyericsson.hudson.plugins.gerrit.trigger.utils.StringUtil.getPluginImageUrl; @@ -196,7 +197,7 @@ public String getFrontEndUrl(String serverName) { * */ public ArrayList getEnabledServers() { - ArrayList enabledServers = new ArrayList(); + ArrayList enabledServers = new ArrayList<>(); for (GerritServer s : PluginImpl.getServers_()) { if (s.getConfig().isEnableManualTrigger()) { enabledServers.add(s.getName()); @@ -288,11 +289,7 @@ public String toReadableHtml(String subject) { if (subject != null && subject.length() > MAX_SUBJECT_STR_LENGTH) { subject = subject.substring(0, MAX_SUBJECT_STR_LENGTH); } - if (subject != null) { - return subject; - } else { - return ""; - } + return Objects.requireNonNullElse(subject, ""); } /** @@ -310,8 +307,8 @@ public String toReadableHtml(String subject) { @POST public void doGerritSearch(@QueryParameter("queryString") final String queryString, @QueryParameter("selectedServer") final String selectedServer, - @QueryParameter("allPatchSets") final boolean allPatchSets, StaplerRequest request, - StaplerResponse response) throws IOException { + @QueryParameter("allPatchSets") final boolean allPatchSets, StaplerRequest2 request, + StaplerResponse2 response) throws IOException { HttpSession session = request.getSession(); // Create session if nothing. if (session == null) { @@ -370,8 +367,8 @@ public void doGerritSearch(@QueryParameter("queryString") final String queryStri @SuppressWarnings("unused") //Called from jelly @POST - public void doBuild(@QueryParameter("selectedIds") String selectedIds, StaplerRequest request, - StaplerResponse response) throws IOException { + public void doBuild(@QueryParameter("selectedIds") String selectedIds, StaplerRequest2 request, + StaplerResponse2 response) throws IOException { HttpSession session = request.getSession(); if (session == null) { logger.debug("Session alreay closed."); @@ -390,10 +387,10 @@ public void doBuild(@QueryParameter("selectedIds") String selectedIds, StaplerRe session.removeAttribute(SESSION_BUILD_ERROR); String[] selectedRows = null; - if (selectedIds != null && selectedIds.length() > 0) { + if (selectedIds != null && !selectedIds.isEmpty()) { selectedRows = selectedIds.split("\\[\\]"); } - if (selectedRows == null || selectedRows.length <= 0) { + if (selectedRows == null || selectedRows.length == 0) { logger.debug("No builds selected."); session.setAttribute(SESSION_BUILD_ERROR, Messages.ErrorSelectSomethingToBuild()); response.sendRedirect2("."); @@ -467,15 +464,14 @@ public String generateTheId(JSONObject change, JSONObject patch) { */ @Restricted(NoExternalUse.class) HashMap indexResult(List result) { - HashMap map = new HashMap(); + HashMap map = new HashMap<>(); for (JSONObject res : result) { if (!res.has("type")) { String changeId = generateTheId(res, null); map.put(changeId, res); JSONArray arr = res.getJSONArray("patchSets"); for (Object obj : arr) { - if (obj instanceof JSONObject) { - JSONObject patch = (JSONObject)obj; + if (obj instanceof JSONObject patch) { String theId = generateTheId(res, patch); map.put(theId, patch); } @@ -536,7 +532,7 @@ public List getParametersForPatchSet( JSONObject jsonChange, JSONObject jsonPatchSet, String serverName) { - List parameters = new LinkedList(); + List parameters = new LinkedList<>(); Change change = new Change(jsonChange); PatchSet patchSet = new PatchSet(jsonPatchSet); PatchsetCreated event = new PatchsetCreated(); @@ -593,9 +589,9 @@ public boolean hasUrl(ParameterValue parameterValue) { */ public String getGerritUrl(JSONObject change, String serverName) { String url = change.optString("url", null); - if (url != null && url.length() > 0) { + if (url != null && !url.isEmpty()) { return url; - } else if (change.optString("number", "").length() > 0) { + } else if (!change.optString("number", "").isEmpty()) { if (getServerConfig(serverName) != null) { return getServerConfig(serverName).getGerritFrontEndUrlFor( change.getString("number"), "1"); @@ -629,7 +625,7 @@ private ManualPatchsetCreated findAndCreatePatchSetEvent(String rowId, JSONObject change = indexed.get(changeId); if (change != null) { logger.debug("Found the change: {}", change); - return new ManualPatchsetCreated(change, patch, Jenkins.getAuthentication().getName()); + return new ManualPatchsetCreated(change, patch, Jenkins.getAuthentication2().getName()); } else { logger.trace("No change found with id {}", changeId); return null; @@ -708,7 +704,7 @@ public String toString() { /** * Represents a "vote"-type or Approval of a change in the JSON structure. */ - public static enum Approval { + public enum Approval { /** * A Code Review Approval type Code-Review. */ @@ -717,7 +713,7 @@ public static enum Approval { * A Verified Approval type Verified. */ VERIFIED("Verified"); - private String type; + private final String type; /** * Standard constructor. diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/TriggerMonitor.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/TriggerMonitor.java index 22d8ccf23..ec0c69926 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/TriggerMonitor.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/TriggerMonitor.java @@ -44,7 +44,7 @@ */ public class TriggerMonitor implements GerritEventLifecycleListener { - private List events = new LinkedList(); + private List events = new LinkedList<>(); /** * Adds the event and a holder for its state to the list of triggered events. @@ -66,10 +66,7 @@ public synchronized void add(GerritEventLifecycle gerritEventLifecycle) { * @see #getEvents() */ public synchronized boolean contains(GerritEventLifecycle gerritEventLifecycle) { - if (findState(gerritEventLifecycle.getEvent()) != null) { - return true; - } - return false; + return findState(gerritEventLifecycle.getEvent()) != null; } /** @@ -172,7 +169,7 @@ public static class EventState { */ EventState(GerritEventLifecycle gerritEventLifecycle) { this.gerritEventLifecycle = gerritEventLifecycle; - builds = new LinkedList(); + builds = new LinkedList<>(); } /** @@ -249,7 +246,7 @@ public boolean isUnTriggered() { if (!triggerScanStarted) { return false; } else { - return triggerScanDone && builds.size() <= 0; + return triggerScanDone && builds.isEmpty(); } } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/BuildCancellationPolicy.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/BuildCancellationPolicy.java index a04187b26..55c456741 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/BuildCancellationPolicy.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/BuildCancellationPolicy.java @@ -30,7 +30,7 @@ import net.sf.json.JSONObject; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerRequest2; /** * Rules regarding cancellation of builds for when patchsets of the same change comes in. @@ -187,7 +187,7 @@ public static BuildCancellationPolicy createPolicyFromJSON(JSONObject obj) { @Symbol("buildCancellationPolicy") public static class DescriptorImpl extends Descriptor { @Override - public BuildCancellationPolicy newInstance(final StaplerRequest req, final JSONObject formData) + public BuildCancellationPolicy newInstance(final StaplerRequest2 req, final JSONObject formData) throws FormException { if (formData.has("buildCancellationPolicy")) { return super.newInstance(req, formData.getJSONObject("buildCancellationPolicy")); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/CompareType.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/CompareType.java index 451efef4e..f2a84f8e0 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/CompareType.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/CompareType.java @@ -53,7 +53,7 @@ public enum CompareType { * @return a list of available displaynames. */ public static List getDisplayNames() { - List list = new LinkedList(); + List list = new LinkedList<>(); for (CompareType t : values()) { list.add(t.getDisplayName()); } @@ -88,13 +88,13 @@ public static CompareType findByOperator(char operator) { return PLAIN; } - private CompareUtil util; + private final CompareUtil util; /** * Private Constructor. * @param util the CompareUtil to use for comparison. */ - private CompareType(CompareUtil util) { + CompareType(CompareUtil util) { this.util = util; } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/CompareUtil.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/CompareUtil.java index b8df9df82..e93e8c02a 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/CompareUtil.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/CompareUtil.java @@ -56,7 +56,7 @@ public interface CompareUtil { * Compares based on Ant-style paths. * like my/**/something*.git */ - static class AntCompareUtil implements CompareUtil { + class AntCompareUtil implements CompareUtil { @Override public boolean matches(String pattern, String str) { @@ -82,7 +82,7 @@ public char getOperator() { /** * Compares with pattern.equals(str). */ - static class PlainCompareUtil implements CompareUtil { + class PlainCompareUtil implements CompareUtil { @Override public boolean matches(String pattern, String str) { @@ -105,7 +105,7 @@ public char getOperator() { * string.matches(pattern) * @see java.util.regex.Pattern */ - static class RegExpCompareUtil implements CompareUtil { + class RegExpCompareUtil implements CompareUtil { @Override public boolean matches(String pattern, String str) { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/GerritProject.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/GerritProject.java index 9f09a53bd..f46b83944 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/GerritProject.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/GerritProject.java @@ -303,7 +303,7 @@ public boolean isInteresting(Change change) { * @return true if the rules match or no rules. */ private boolean isInterestingTopic(String topic) { - if (topics != null && topics.size() > 0) { + if (topics != null && !topics.isEmpty()) { for (Topic t : topics) { if (t.isInteresting(topic)) { return true; @@ -321,7 +321,7 @@ private boolean isInterestingTopic(String topic) { * @return true if the rules match or no rules. */ private boolean isInterestingHashtags(List tags) { - if (this.hashtags != null && this.hashtags.size() > 0) { + if (this.hashtags != null && !this.hashtags.isEmpty()) { return this.hashtags.stream().anyMatch(h-> h.isInteresting(tags)); } return true; @@ -334,7 +334,7 @@ private boolean isInterestingHashtags(List tags) { * @return true if the rules match or no rules. */ private boolean isInterestingFile(List files) { - List tmpFiles = new ArrayList(files); + List tmpFiles = new ArrayList<>(files); tmpFiles.remove(MAGIC_FILE_NAME_COMMIT_MSG); tmpFiles.remove(MAGIC_FILE_NAME_MERGE_LIST); tmpFiles.remove(MAGIC_FILE_NAME_PATCHSET_LEVEL); @@ -362,7 +362,7 @@ private boolean isInterestingFile(List files) { return false; } - if (filePaths != null && filePaths.size() > 0) { + if (filePaths != null && !filePaths.isEmpty()) { for (FilePath f : filePaths) { if (f.isInteresting(tmpFiles)) { return true; @@ -400,7 +400,7 @@ public ComboBoxModel doFillPatternItems(@AncestorInPath Item project, @QueryPara } else { project.checkPermission(Item.CONFIGURE); } - Collection projects = new HashSet(); + Collection projects = new HashSet<>(); if (serverName != null && !serverName.isEmpty()) { if (ANY_SERVER.equals(serverName)) { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/SkipVote.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/SkipVote.java index f914539d9..8febf0822 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/SkipVote.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/SkipVote.java @@ -26,6 +26,7 @@ import org.kohsuke.stapler.DataBoundConstructor; +import java.io.Serial; import java.io.Serializable; /** @@ -35,6 +36,7 @@ * @author Robert Sandell <robert.sandell@sonymobile.com> */ public class SkipVote implements Serializable { + @Serial private static final long serialVersionUID = -372913758160165355L; private boolean onSuccessful; private boolean onFailed; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/Topic.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/Topic.java index 4834d4d2b..a38d345bc 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/Topic.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/Topic.java @@ -95,10 +95,7 @@ public boolean isInteresting(String topic) { if (topic == null) { topic = ""; } - if (compareType.matches(pattern, topic)) { - return true; - } - return false; + return compareType.matches(pattern, topic); } /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TopicAssociation.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TopicAssociation.java index 2f62b5beb..22bab15d4 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TopicAssociation.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TopicAssociation.java @@ -147,11 +147,7 @@ public boolean isInterestingChangeStatus(final Change c) { return false; } - if (isAbandonedChange && ignoreAbandonedChangeStatus) { - return false; - } - - return true; + return !isAbandonedChange || !ignoreAbandonedChangeStatus; } /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggerContext.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggerContext.java index a5a2a765a..4d0d074db 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggerContext.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggerContext.java @@ -87,7 +87,7 @@ public synchronized List getOthers() { if (others == null) { return null; } - return new ArrayList(others); + return new ArrayList<>(others); } /** @@ -160,7 +160,7 @@ void setEvent(GerritTriggeredEvent event) { */ public synchronized void addOtherBuild(Run build) { if (others == null) { - others = new LinkedList(); + others = new LinkedList<>(); } TriggeredItemEntity other = findOtherBuild(build); if (other == null) { @@ -181,7 +181,7 @@ public synchronized void addOtherBuild(Run build) { */ public synchronized void addOtherProject(Job project) { if (others == null) { - others = new LinkedList(); + others = new LinkedList<>(); } if (findOtherProject(project) == null) { others.add(new TriggeredItemEntity(project)); @@ -238,7 +238,7 @@ private synchronized TriggeredItemEntity findOtherProject(Job project) { * @return a list of builds from this context. */ public synchronized List getOtherBuilds() { - List list = new LinkedList(); + List list = new LinkedList<>(); if (others != null) { for (TriggeredItemEntity entity : others) { if (entity.getBuild() != null) { @@ -255,7 +255,7 @@ public synchronized List getOtherBuilds() { * @return a list of projects from this context. */ public synchronized List getOtherProjects() { - List list = new LinkedList(); + List list = new LinkedList<>(); if (others != null) { for (TriggeredItemEntity entity : others) { if (entity.getProject() != null) { @@ -276,7 +276,7 @@ public synchronized List getOtherProjects() { */ public synchronized List getSortedOthers() { int lastBuilding = 0; - LinkedList result = new LinkedList(); + LinkedList result = new LinkedList<>(); if (others != null) { for (TriggeredItemEntity entity : others) { Run build = entity.getBuild(); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggerContextConverter.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggerContextConverter.java index c99501dc1..486625170 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggerContextConverter.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggerContextConverter.java @@ -114,7 +114,7 @@ private TriggeredItemEntity unmarshalItemEntity(HierarchicalStreamReader reader, reader.moveDown(); if ("buildNumber".equalsIgnoreCase(reader.getNodeName())) { String buildNumberStr = reader.getValue(); - if (buildNumberStr != null && buildNumberStr.length() > 0) { + if (buildNumberStr != null && !buildNumberStr.isEmpty()) { try { buildNumber = Integer.parseInt(buildNumberStr); } catch (NumberFormatException e) { @@ -143,7 +143,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co TriggeredItemEntity entity = unmarshalItemEntity(reader, context); tc.setThisBuild(entity); } else if ("others".equalsIgnoreCase(reader.getNodeName())) { - List list = new LinkedList(); + List list = new LinkedList<>(); while (reader.hasMoreChildren()) { reader.moveDown(); TriggeredItemEntity entity = unmarshalItemEntity(reader, context); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggeredItemEntity.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggeredItemEntity.java index c664148fe..4aceabdc4 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggeredItemEntity.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggeredItemEntity.java @@ -191,10 +191,7 @@ public boolean equals(Object obj) { if (!Objects.equals(this.buildNumber, other.buildNumber)) { return false; } - if (!Objects.equals(this.projectId, other.projectId)) { - return false; - } - return true; + return Objects.equals(this.projectId, other.projectId); } /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeAbandonedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeAbandonedEvent.java index 326b34cce..2ce89ae0b 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeAbandonedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeAbandonedEvent.java @@ -27,6 +27,8 @@ import com.sonyericsson.hudson.plugins.gerrit.trigger.Messages; import hudson.Extension; import hudson.model.Descriptor; + +import java.io.Serial; import java.io.Serializable; import jenkins.model.Jenkins; import org.jenkinsci.Symbol; @@ -36,6 +38,7 @@ * An event configuration that causes the build to be triggered when a change is abandoned. */ public class PluginChangeAbandonedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = -8490721342780735276L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeMergedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeMergedEvent.java index a49ec10a9..82f4b7e94 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeMergedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeMergedEvent.java @@ -31,6 +31,7 @@ import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; +import java.io.Serial; import java.io.Serializable; /** @@ -38,6 +39,7 @@ * @author Tomas Westling <tomas.westling@sonymobile.com> */ public class PluginChangeMergedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = 2277980034044218950L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeRestoredEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeRestoredEvent.java index eea8b7adc..93492d014 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeRestoredEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginChangeRestoredEvent.java @@ -27,6 +27,8 @@ import com.sonyericsson.hudson.plugins.gerrit.trigger.Messages; import hudson.Extension; import hudson.model.Descriptor; + +import java.io.Serial; import java.io.Serializable; import jenkins.model.Jenkins; import org.jenkinsci.Symbol; @@ -37,6 +39,7 @@ * restored. */ public class PluginChangeRestoredEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = -9137390315878224618L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginCommentAddedContainsEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginCommentAddedContainsEvent.java index c735ba002..a48624013 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginCommentAddedContainsEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginCommentAddedContainsEvent.java @@ -25,6 +25,7 @@ import hudson.Extension; +import java.io.Serial; import java.io.Serializable; import java.util.regex.Pattern; @@ -60,6 +61,7 @@ public String getDisplayName() { } } + @Serial private static final long serialVersionUID = -1190562081236235820L; private String commentAddedCommentContains; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginCommentAddedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginCommentAddedEvent.java index 69f641ee2..77519cbde 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginCommentAddedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginCommentAddedEvent.java @@ -42,6 +42,7 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; +import java.io.Serial; import java.io.Serializable; import java.util.Collection; import java.util.HashMap; @@ -52,6 +53,7 @@ * @author Tomas Westling <tomas.westling@sonymobile.com> */ public class PluginCommentAddedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = -1190562081236235819L; private String verdictCategory; private String commentAddedTriggerApprovalValue; @@ -127,7 +129,7 @@ public ListBoxModel doFillVerdictCategoryItems( Collection list = null; if (ANY_SERVER.equals(serverName)) { //list all configured VCs in all servers - Map map = new HashMap(); + Map map = new HashMap<>(); for (GerritServer server : PluginImpl.getServers_()) { for (VerdictCategory vc : server.getConfig().getCategories()) { if (!map.containsKey(vc.getVerdictValue())) { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginDraftPublishedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginDraftPublishedEvent.java index c31bf455d..1a2e67481 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginDraftPublishedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginDraftPublishedEvent.java @@ -36,6 +36,7 @@ import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; +import java.io.Serial; import java.io.Serializable; /** @@ -43,6 +44,7 @@ * @author David Pursehouse <david.pursehouse@sonymobile.com> */ public class PluginDraftPublishedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = -8543595301119872587L; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginHashtagsChangedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginHashtagsChangedEvent.java index 0e41568af..bc60468a0 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginHashtagsChangedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginHashtagsChangedEvent.java @@ -33,6 +33,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.Serial; import java.io.Serializable; import java.util.regex.Pattern; @@ -59,6 +60,7 @@ public String getDisplayName() { } } + @Serial private static final long serialVersionUID = -7504226521891459396L; private String hashtagChanged; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginPatchsetCreatedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginPatchsetCreatedEvent.java index 3053b0d23..2eacab6e1 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginPatchsetCreatedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginPatchsetCreatedEvent.java @@ -36,6 +36,7 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; +import java.io.Serial; import java.io.Serializable; import java.util.regex.Pattern; @@ -45,6 +46,7 @@ * @author Tomas Westling <tomas.westling@sonymobile.com> */ public class PluginPatchsetCreatedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = 970946986242309088L; private boolean excludeDrafts = false; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginPrivateStateChangedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginPrivateStateChangedEvent.java index 88fb78965..1decc4117 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginPrivateStateChangedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginPrivateStateChangedEvent.java @@ -23,6 +23,7 @@ */ package com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events; +import java.io.Serial; import java.io.Serializable; import org.jenkinsci.Symbol; @@ -40,6 +41,7 @@ * private state changed. */ public class PluginPrivateStateChangedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = 782691143033502579L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginRefUpdatedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginRefUpdatedEvent.java index 42f40b45b..426b0b902 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginRefUpdatedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginRefUpdatedEvent.java @@ -31,6 +31,7 @@ import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; +import java.io.Serial; import java.io.Serializable; /** @@ -38,6 +39,7 @@ * @author Tomas Westling <tomas.westling@sonymobile.com> */ public class PluginRefUpdatedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = -5022000932167615055L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginRerunCheckEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginRerunCheckEvent.java index a181e14b8..5a34ab327 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginRerunCheckEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginRerunCheckEvent.java @@ -23,6 +23,7 @@ */ package com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events; +import java.io.Serial; import java.io.Serializable; import org.jenkinsci.Symbol; @@ -40,6 +41,7 @@ * gerrit checks plugin rerun check is triggered. */ public class PluginRerunCheckEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = 5530163420962242330L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginTopicChangedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginTopicChangedEvent.java index 2246c424c..ab593b006 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginTopicChangedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginTopicChangedEvent.java @@ -31,12 +31,14 @@ import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; +import java.io.Serial; import java.io.Serializable; /** * An event configuration that causes the build to be triggered when a topic is changed. */ public class PluginTopicChangedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = -8490721342780735276L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginWipStateChangedEvent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginWipStateChangedEvent.java index 39c0766c1..61de34406 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginWipStateChangedEvent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/events/PluginWipStateChangedEvent.java @@ -23,6 +23,7 @@ */ package com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events; +import java.io.Serial; import java.io.Serializable; import org.jenkinsci.Symbol; @@ -40,6 +41,7 @@ * WIP state changed. */ public class PluginWipStateChangedEvent extends PluginGerritEvent implements Serializable { + @Serial private static final long serialVersionUID = 5530163420962242330L; /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/parameters/Base64EncodedStringParameterValue.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/parameters/Base64EncodedStringParameterValue.java index c91879d3d..3e65e11ec 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/parameters/Base64EncodedStringParameterValue.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/parameters/Base64EncodedStringParameterValue.java @@ -27,6 +27,8 @@ import hudson.model.StringParameterValue; +import java.io.Serial; + /** * A parameter value for Base64 encoded string. * @@ -34,6 +36,7 @@ */ public class Base64EncodedStringParameterValue extends StringParameterValue { + @Serial private static final long serialVersionUID = 1L; private static final int ABBREVIATE_LENGTH = 10; private static final int ABBREVIATE_START = 7; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/impls/RabbitMQMessageListenerImpl.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/impls/RabbitMQMessageListenerImpl.java index 28230992a..74922cc1b 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/impls/RabbitMQMessageListenerImpl.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/impls/RabbitMQMessageListenerImpl.java @@ -60,7 +60,7 @@ public class RabbitMQMessageListenerImpl extends MessageQueueListener { private static final String GERRIT_VERSION = "gerrit-version"; private GerritTriggerApi api = null; - private Set queueNames = new CopyOnWriteArraySet(); + private Set queueNames = new CopyOnWriteArraySet<>(); @Override public String getName() { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/playback/EventTimeSlice.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/playback/EventTimeSlice.java index 9a7319a51..ceb3fb79a 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/playback/EventTimeSlice.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/playback/EventTimeSlice.java @@ -46,7 +46,7 @@ public class EventTimeSlice { /** * events to persist. */ - protected List events = Collections.synchronizedList(new ArrayList()); + protected List events = Collections.synchronizedList(new ArrayList<>()); /** * diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/playback/GerritMissedEventsPlaybackManager.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/playback/GerritMissedEventsPlaybackManager.java index a515243e0..c640e90fb 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/playback/GerritMissedEventsPlaybackManager.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/playback/GerritMissedEventsPlaybackManager.java @@ -56,11 +56,11 @@ import java.net.HttpURLConnection; import java.net.URLEncoder; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; -import java.util.Iterator; import java.util.List; import java.util.Scanner; import java.util.concurrent.ScheduledExecutorService; @@ -102,7 +102,7 @@ public class GerritMissedEventsPlaybackManager implements ConnectionListener, Na * List that contains received Gerrit Events. */ protected List receivedEventCache - = Collections.synchronizedList(new ArrayList()); + = Collections.synchronizedList(new ArrayList<>()); private boolean isSupported = false; private boolean playBackComplete = false; @@ -187,7 +187,7 @@ public void checkIfEventsLogPluginSupported() { Boolean newValue = GerritPluginChecker.isPluginEnabled(server.getConfig(), EVENTS_LOG_PLUGIN_NAME, true); if (newValue == null) { logger.warn("Could not determine plugin support for " + EVENTS_LOG_PLUGIN_NAME - + "; leaving status as " + String.valueOf(isSupported)); + + "; leaving status as " + isSupported); } else { isSupported = newValue; } @@ -265,14 +265,13 @@ public void connectionEstablished() { logger.debug("({}) Processing missed event {}", serverName, evt); boolean receivedEvtFound = false; synchronized (receivedEventCache) { - Iterator i = receivedEventCache.iterator(); // Must be in synchronized block - while (i.hasNext()) { - GerritTriggeredEvent rEvt = i.next(); - if (rEvt.equals(evt)) { - receivedEvtFound = true; - break; - } - } + // Must be in synchronized block + for (GerritTriggeredEvent rEvt : receivedEventCache) { + if (rEvt.equals(evt)) { + receivedEvtFound = true; + break; + } + } } if (receivedEvtFound) { logger.debug("({}) Event already triggered...skipping trigger.", serverName); @@ -329,9 +328,8 @@ public void gerritEvent(GerritEvent event) { startPersistenceCheck(); } - if (event instanceof GerritTriggeredEvent) { + if (event instanceof GerritTriggeredEvent triggeredEvent) { logger.debug("Recording timestamp due to an event {} for server: {}", event, serverName); - GerritTriggeredEvent triggeredEvent = (GerritTriggeredEvent)event; Provider provider = triggeredEvent.getProvider(); if (provider != null) { @@ -347,14 +345,13 @@ public void gerritEvent(GerritEvent event) { if (!playBackComplete) { boolean receivedEvtFound = false; synchronized (this) { - Iterator i = receivedEventCache.iterator(); // Must be in synchronized block - while (i.hasNext()) { - GerritTriggeredEvent rEvt = i.next(); - if (rEvt.equals(triggeredEvent)) { - receivedEvtFound = true; - break; - } - } + // Must be in synchronized block + for (GerritTriggeredEvent rEvt : receivedEventCache) { + if (rEvt.equals(triggeredEvent)) { + receivedEvtFound = true; + break; + } + } } if (!receivedEvtFound) { receivedEventCache.add(triggeredEvent); @@ -363,7 +360,7 @@ public void gerritEvent(GerritEvent event) { logger.debug("Event {} ALREADY in received cache for server: {}", event, serverName); } } else { - receivedEventCache = Collections.synchronizedList(new ArrayList()); + receivedEventCache = Collections.synchronizedList(new ArrayList<>()); logger.debug("Playback complete...will NOT add event {} to received cache for server: {}" , event, serverName); } @@ -381,7 +378,7 @@ protected List getEventsFromDateRange(Date lowerDate) thro GerritServer server = PluginImpl.getServer_(serverName); if (server == null) { logger.error("Server for {} could not be found.", serverName); - return Collections.synchronizedList(new ArrayList()); + return Collections.synchronizedList(new ArrayList<>()); } IGerritHudsonTriggerConfig config = server.getConfig(); @@ -396,7 +393,7 @@ protected List getEventsFromDateRange(Date lowerDate) thro * @return collection of events. */ private List createEventsFromString(String eventsString) { - List events = Collections.synchronizedList(new ArrayList()); + List events = Collections.synchronizedList(new ArrayList<>()); Scanner scanner = new Scanner(eventsString); while (scanner.hasNextLine()) { String line = scanner.nextLine(); @@ -480,7 +477,7 @@ protected String buildEventsLogURL(IGerritHudsonTriggerConfig config, Date date1 throws UnsupportedEncodingException { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String url = EVENTS_LOG_PLUGIN_URL + "?t1=" + URLEncoder.encode(df.format(date1), "UTF-8"); + String url = EVENTS_LOG_PLUGIN_URL + "?t1=" + URLEncoder.encode(df.format(date1), StandardCharsets.UTF_8); String gerritFrontEndUrl = config.getGerritFrontEndUrl(); String restUrl = gerritFrontEndUrl; diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/replication/ReplicationCache.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/replication/ReplicationCache.java index 7dc32201d..b92440e98 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/replication/ReplicationCache.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/replication/ReplicationCache.java @@ -24,6 +24,7 @@ package com.sonyericsson.hudson.plugins.gerrit.trigger.replication; +import java.util.Objects; import java.util.concurrent.TimeUnit; import org.slf4j.Logger; @@ -113,11 +114,7 @@ public ReplicationCache(long expiration, TimeUnit unit) { this.expiration = DEFAULT_EXPIRATION_IN_MINUTES; } - if (unit != null) { - this.unit = unit; - } else { - this.unit = TimeUnit.MINUTES; - } + this.unit = Objects.requireNonNullElse(unit, TimeUnit.MINUTES); } /** @@ -257,13 +254,8 @@ public boolean equals(Object obj) { return false; } if (targetNode == null) { - if (other.targetNode != null) { - return false; - } - } else if (!targetNode.equals(other.targetNode)) { - return false; - } - return true; + return other.targetNode == null; + } else return targetNode.equals(other.targetNode); } /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/replication/ReplicationQueueTaskDispatcher.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/replication/ReplicationQueueTaskDispatcher.java index 9758bf372..5725ec937 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/replication/ReplicationQueueTaskDispatcher.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/replication/ReplicationQueueTaskDispatcher.java @@ -33,7 +33,6 @@ import hudson.model.queue.CauseOfBlockage; import java.util.Date; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -107,7 +106,7 @@ private static ReplicationCache createDefaultCache() { */ ReplicationQueueTaskDispatcher(@CheckForNull GerritHandler gerritHandler, @NonNull ReplicationCache replicationCache) { - blockedItems = new ConcurrentHashMap(); + blockedItems = new ConcurrentHashMap<>(); this.replicationCache = replicationCache; if (gerritHandler != null) { gerritHandler.addListener(this); @@ -125,7 +124,7 @@ public CauseOfBlockage canRun(Item item) { if (item.isBuildable()) { return null; } - Long itemId = Long.valueOf(item.getId()); + Long itemId = item.getId(); if (blockedItems.containsKey(itemId)) { BlockedItem blockedItem = blockedItems.get(itemId); if (blockedItem.canRunWithTimeoutCheck()) { @@ -165,10 +164,9 @@ public CauseOfBlockage canRun(Item item) { * @param blockedItem The blocked item to update */ private void updateFromReplicationCache(BlockedItem blockedItem) { - Iterator it = blockedItem.slavesWaitingFor.values().iterator(); - while (it.hasNext()) { + for (GerritSlave gerritSlave : blockedItem.slavesWaitingFor.values()) { RefReplicated refReplicated = replicationCache.getIfPresent(blockedItem.gerritServer, - blockedItem.gerritProject, blockedItem.ref, it.next().getHost()); + blockedItem.gerritProject, blockedItem.ref, gerritSlave.getHost()); if (refReplicated != null) { blockedItem.processRefReplicatedEvent(refReplicated); logger.trace("processed a replication event from the cache, remaining number of events waiting for: {}" @@ -204,7 +202,7 @@ private BlockedItem getBlockedItem(Item item) { logger.trace("Gerrit Cause null for item: {} !", item.getId()); return null; } - if (gerritCause.getEvent() != null && gerritCause.getEvent() instanceof RepositoryModifiedEvent + if (gerritCause.getEvent() != null && gerritCause.getEvent() instanceof RepositoryModifiedEvent repositoryModifiedEvent && item.task instanceof Job) { GerritTrigger gerritTrigger = GerritTrigger.getTrigger((Job)item.task); @@ -222,7 +220,6 @@ private BlockedItem getBlockedItem(Item item) { return null; } - RepositoryModifiedEvent repositoryModifiedEvent = (RepositoryModifiedEvent)gerritCause.getEvent(); String eventDesc = getEventDescription(gerritCause.getEvent()); logger.debug(eventDesc); Date createdOnDate = null; @@ -260,7 +257,8 @@ private BlockedItem getBlockedItem(Item item) { return null; } - boolean useTimestampWhenProcessingRefReplicatedEvent = false; + boolean useTimestampWhenProcessingRefReplicatedEvent = (gerritCause.getEvent() instanceof RefUpdated) + || (gerritCause.getEvent() instanceof ChangeMerged); // we need to perform a timestamp check if // we are looking at a RefUpdated event. // The reason for this is due to the fact that the ref @@ -269,10 +267,6 @@ private BlockedItem getBlockedItem(Item item) { // correct event. // The same is true for ChangeMerged events, as the expected // ref is 'refs/heads/'. - if ((gerritCause.getEvent() instanceof RefUpdated) - || (gerritCause.getEvent() instanceof ChangeMerged)) { - useTimestampWhenProcessingRefReplicatedEvent = true; - } logger.debug(eventDesc + " is blocked"); return new BlockedItem(repositoryModifiedEvent.getModifiedProject(), reference, @@ -359,7 +353,7 @@ public BlockedItem(String gerritProject, String ref, String gerritServer, List(gerritSlaves.size()); + this.slavesWaitingFor = new ConcurrentHashMap<>(gerritSlaves.size()); for (GerritSlave gerritSlave : gerritSlaves) { slavesWaitingFor.put(gerritSlave.getHost(), gerritSlave); } @@ -428,7 +422,7 @@ public void processRefReplicatedEvent(RefReplicated refReplicated) { slavesWaitingFor.remove(refReplicated.getTargetNode()); } - if (slavesWaitingFor.size() == 0) { + if (slavesWaitingFor.isEmpty()) { logger.debug("No more slaves to wait for ({})", getEventDescription()); canRun = true; } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/utils/GerritPluginChecker.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/utils/GerritPluginChecker.java index b41c32b60..0f4b30d8f 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/utils/GerritPluginChecker.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/utils/GerritPluginChecker.java @@ -80,26 +80,16 @@ private static String buildURL(IGerritHudsonTriggerConfig config) { * @return true/false if installed or not. */ private static boolean decodeStatus(int statusCode, String pluginName, boolean quiet) { - String message = ""; - switch (statusCode) { - case HttpURLConnection.HTTP_OK: - message = Messages.PluginInstalled(pluginName); - break; - case HttpURLConnection.HTTP_NOT_FOUND: - message = Messages.PluginNotInstalled(pluginName); - break; - case HttpURLConnection.HTTP_UNAUTHORIZED: - message = Messages.PluginHttpConnectionUnauthorized(pluginName, - Messages.HttpConnectionUnauthorized()); - break; - case HttpURLConnection.HTTP_FORBIDDEN: - message = Messages.PluginHttpConnectionForbidden(pluginName, - Messages.HttpConnectionUnauthorized()); - break; - default: - message = Messages.PluginHttpConnectionGeneralError(pluginName, - Messages.HttpConnectionError(statusCode)); - } + String message = switch (statusCode) { + case HttpURLConnection.HTTP_OK -> Messages.PluginInstalled(pluginName); + case HttpURLConnection.HTTP_NOT_FOUND -> Messages.PluginNotInstalled(pluginName); + case HttpURLConnection.HTTP_UNAUTHORIZED -> Messages.PluginHttpConnectionUnauthorized(pluginName, + Messages.HttpConnectionUnauthorized()); + case HttpURLConnection.HTTP_FORBIDDEN -> Messages.PluginHttpConnectionForbidden(pluginName, + Messages.HttpConnectionUnauthorized()); + default -> Messages.PluginHttpConnectionGeneralError(pluginName, + Messages.HttpConnectionError(statusCode)); + }; logMsg(message, quiet); return HttpURLConnection.HTTP_OK == statusCode; } @@ -144,9 +134,7 @@ public static Boolean isPluginEnabled(IGerritHudsonTriggerConfig config, String } logger.trace("{}plugins/{}/", restUrl, pluginName); - CloseableHttpResponse execute = null; - try { - execute = HttpUtils.performHTTPGet(config, restUrl + "plugins/" + pluginName + "/"); + try (CloseableHttpResponse execute = HttpUtils.performHTTPGet(config, restUrl + "plugins/" + pluginName + "/")) { int statusCode = execute.getStatusLine().getStatusCode(); logger.debug("status code: {}", statusCode); return decodeStatus(statusCode, pluginName, quiet); @@ -154,14 +142,6 @@ public static Boolean isPluginEnabled(IGerritHudsonTriggerConfig config, String logger.warn(Messages.PluginHttpConnectionGeneralError(pluginName, e.getMessage()), e); return null; - } finally { - if (execute != null) { - try { - execute.close(); - } catch (Exception exp) { - logger.trace("Error happened when close http client.", exp); - } - } } } } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/utils/StringUtil.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/utils/StringUtil.java index 946d2b64e..ea91315be 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/utils/StringUtil.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/utils/StringUtil.java @@ -78,7 +78,7 @@ private StringUtil() { */ public static String makeRefSpec(ChangeBasedEvent event) { if (event.getPatchSet() != null && event.getPatchSet().getRef() != null) { - if (event.getPatchSet().getRef().length() > 0) { + if (!event.getPatchSet().getRef().isEmpty()) { return event.getPatchSet().getRef(); } } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/version/GerritVersionChecker.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/version/GerritVersionChecker.java index b4b3789a6..fa4eb9959 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/version/GerritVersionChecker.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/version/GerritVersionChecker.java @@ -41,7 +41,7 @@ public final class GerritVersionChecker { /** * The feature version we want to compare the current Gerrit version with. */ - public static enum Feature { + public enum Feature { // Skipping WIPStateChanged & PrivateStateChanged version check due to not necessary for now. /** * Triggering on files, added in Gerrit 2.3. diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/workflow/SetGerritReviewStep.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/workflow/SetGerritReviewStep.java index 979b66946..4dc2979ff 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/workflow/SetGerritReviewStep.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/workflow/SetGerritReviewStep.java @@ -27,6 +27,8 @@ import hudson.Extension; import hudson.Util; import hudson.model.Run; + +import java.io.Serial; import java.util.Collections; import java.util.Set; import edu.umd.cs.findbugs.annotations.CheckForNull; @@ -130,6 +132,7 @@ protected Void run() throws Exception { return null; } + @Serial private static final long serialVersionUID = 1L; } diff --git a/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/ajaxTriggerMonitor.jelly b/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/ajaxTriggerMonitor.jelly index 14d27551b..4f6e3130a 100644 --- a/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/ajaxTriggerMonitor.jelly +++ b/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/ajaxTriggerMonitor.jelly @@ -26,7 +26,7 @@ xmlns:t="/lib/hudson" xmlns:s="/lib/form" xmlns:p="/lib/hudson/project"> - + diff --git a/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/help-Search.jelly b/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/help-Search.jelly index f5261033f..0847a2c25 100644 --- a/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/help-Search.jelly +++ b/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/help-Search.jelly @@ -1,7 +1,7 @@
- + diff --git a/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly b/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly index 3c84d2a2a..afd08653b 100644 --- a/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly +++ b/src/main/resources/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerAction/index.jelly @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@

${%Trigger a Gerrit event manually}

- + @@ -38,7 +38,7 @@
@@ -46,13 +46,13 @@ @@ -60,18 +60,18 @@
- +

- ${request.session.getAttribute('error_search').message} + ${request2.session.getAttribute('error_search').message}

- - + +

- ${request.session.getAttribute('error_build')} + ${request2.session.getAttribute('error_build')}

@@ -82,7 +82,7 @@ - + @@ -121,7 +121,7 @@ class="gt-search__checkbox" /> - + - + @@ -261,9 +261,9 @@
@@ -229,7 +229,7 @@
diff --git a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildCompletedRestCommandJobHudsonTest.java b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildCompletedRestCommandJobHudsonTest.java index 92b95fb72..a1a5d7ec4 100644 --- a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildCompletedRestCommandJobHudsonTest.java +++ b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/job/rest/BuildCompletedRestCommandJobHudsonTest.java @@ -46,8 +46,8 @@ import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.TestExtension; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import java.io.IOException; import java.io.PrintWriter; @@ -192,7 +192,7 @@ public String getUrlName() { * @param response the response * @throws IOException if so. */ - public void doDynamic(StaplerRequest request, StaplerResponse response) throws IOException { + public void doDynamic(StaplerRequest2 request, StaplerResponse2 response) throws IOException { lastPath = request.getRestOfPath(); lastContent = IOUtils.toString(request.getReader()); diff --git a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/WorkflowTest.java b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/WorkflowTest.java index 0a44fa527..fb508d6dc 100644 --- a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/WorkflowTest.java +++ b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/WorkflowTest.java @@ -32,6 +32,7 @@ import com.sonyericsson.hudson.plugins.gerrit.trigger.mock.Setup; import com.sonyericsson.hudson.plugins.gerrit.trigger.mock.TestUtils; import com.sonymobile.tools.gerrit.gerritevents.dto.events.PatchsetCreated; +import hudson.model.Item; import hudson.model.RootAction; import hudson.model.Run; import net.sf.json.JSONObject; @@ -45,8 +46,8 @@ import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.TestExtension; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import java.io.IOException; import java.io.PrintWriter; @@ -235,7 +236,7 @@ public void testWorkflowStepSetsUnsuccessfulMessageWithSuccessfulBuild() throws } /** - * Tests a {@link JenkinsRule#configRoundtrip(hudson.model.Job)} on the workflow job. + * Tests a {@link JenkinsRule#configRoundtrip(Item)}} on the workflow job. * * @throws Exception if so. */ @@ -266,7 +267,7 @@ public void testConfigRoundTrip() throws Exception { * @return the job * @throws IOException if so */ - private WorkflowJob createWorkflowJob(PatchsetCreated event) throws IOException { + private WorkflowJob createWorkflowJob(PatchsetCreated event) throws Exception { return createWorkflowJob(event, "" + "node {\n" + " stage ('Build') {\n" @@ -282,7 +283,7 @@ private WorkflowJob createWorkflowJob(PatchsetCreated event) throws IOException * @return the job * @throws IOException if so */ - private WorkflowJob createWorkflowJob(PatchsetCreated event, String script) throws IOException { + private WorkflowJob createWorkflowJob(PatchsetCreated event, String script) throws Exception { WorkflowJob job = jenkinsRule.jenkins.createProject(WorkflowJob.class, "WFJob"); job.setDefinition(new CpsFlowDefinition(script, true)); @@ -397,7 +398,7 @@ public String getUrlName() { * @param response the response * @throws IOException if so. */ - public void doDynamic(StaplerRequest request, StaplerResponse response) throws IOException { + public void doDynamic(StaplerRequest2 request, StaplerResponse2 response) throws IOException { try { this.lastContent = IOUtils.toString(request.getReader()); } finally { diff --git a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerActionPermissionTest.java b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerActionPermissionTest.java index c98b904ed..c33601c1f 100644 --- a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerActionPermissionTest.java +++ b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/actions/manual/ManualTriggerActionPermissionTest.java @@ -169,7 +169,7 @@ public void testGetRequiredPermission() throws Exception { /** * Tests that a privileged user can perform a search via - * {@link ManualTriggerAction#doGerritSearch(String, String, boolean, org.kohsuke.stapler.StaplerRequest, org.kohsuke.stapler.StaplerResponse)}. + * {@link ManualTriggerAction#doGerritSearch(String, String, boolean, org.kohsuke.stapler.StaplerRequest2, org.kohsuke.stapler.StaplerResponse2)}. * * @throws Exception if so. */ @@ -198,7 +198,7 @@ public void testDoGerritSearch() throws Exception { /** * Tests that an anonymous user can not perform a search via - * {@link ManualTriggerAction#doGerritSearch(String, String, boolean, org.kohsuke.stapler.StaplerRequest, org.kohsuke.stapler.StaplerResponse)}. + * {@link ManualTriggerAction#doGerritSearch(String, String, boolean, org.kohsuke.stapler.StaplerRequest2, org.kohsuke.stapler.StaplerResponse2)}. * * @throws Exception if so. */