diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml index a65d82e1b..90787cbb2 100644 --- a/.mvn/extensions.xml +++ b/.mvn/extensions.xml @@ -2,6 +2,6 @@ io.jenkins.tools.incrementals git-changelist-maven-extension - 1.3 + 1.6 diff --git a/Jenkinsfile b/Jenkinsfile index 55eb055aa..8d38b971d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,4 @@ buildPlugin(useContainerAgent: true, configurations: [ - [ platform: "linux", jdk: "8" ], - [ platform: "windows", jdk: "8" ], - [ platform: "linux", jdk: "11" ] + [platform: 'linux', jdk: 17], + [platform: 'windows', jdk: 11], ]) - -// [ platform: 'linux', jdk: '17', jenkins: '2.342' ] diff --git a/pom.xml b/pom.xml index ce4d3db44..678f5afbd 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ THE SOFTWARE. org.jenkins-ci.plugins plugin - 4.47 + 4.67 @@ -46,7 +46,7 @@ THE SOFTWARE. 3.23 -SNAPSHOT jenkinsci/${project.artifactId} - 2.332.1 + 2.387.3 1.14 - false - - + 3.5.3 + + High @@ -78,8 +76,8 @@ THE SOFTWARE. io.jenkins.tools.bom - bom-2.332.x - 1370.vfa_e23fe119c3 + bom-2.387.x + 2163.v2d916d90c305 import pom @@ -95,13 +93,6 @@ THE SOFTWARE. org.jenkins-ci.plugins javadoc - 217.v905b_86277a_2a_ - - - org.jenkins-ci - symbol-annotation - - org.jenkins-ci.plugins @@ -110,13 +101,6 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1119.va_a_5e9068da_d7 - - - com.fasterxml.jackson.dataformat - jackson-dataformat-yaml - - @@ -414,6 +398,11 @@ THE SOFTWARE. org.apache.commons commons-lang3 + + + org.slf4j + slf4j-api + @@ -453,6 +442,11 @@ THE SOFTWARE. org.apache.commons commons-lang3 + + + org.slf4j + slf4j-api + @@ -483,6 +477,11 @@ THE SOFTWARE. org.apache.commons commons-lang3 + + + org.slf4j + slf4j-api + @@ -499,11 +498,25 @@ THE SOFTWARE. org.apache.maven.resolver maven-resolver-transport-wagon ${resolverVersion} + + + + org.slf4j + slf4j-api + + org.apache.maven.resolver maven-resolver-connector-basic ${resolverVersion} + + + + org.slf4j + slf4j-api + + @@ -531,10 +544,12 @@ THE SOFTWARE. wagon-http ${wagonVersion} + commons-io commons-io + org.apache.httpcomponents httpcore @@ -543,6 +558,15 @@ THE SOFTWARE. org.apache.httpcomponents httpclient + + + org.slf4j + jcl-over-slf4j + + + org.slf4j + slf4j-api + @@ -568,10 +592,16 @@ THE SOFTWARE. wagon-ftp ${wagonVersion} + commons-io commons-io + + + org.slf4j + slf4j-api + @@ -599,7 +629,7 @@ THE SOFTWARE. org.apache.maven.reporting maven-reporting-api - 3.0 + 3.1.1 org.codehaus.plexus @@ -633,7 +663,7 @@ THE SOFTWARE. commons-cli - + commons-io commons-io @@ -668,10 +698,15 @@ THE SOFTWARE. wagon-webdav-jackrabbit ${wagonVersion} - + + org.slf4j jcl-over-slf4j + + org.slf4j + slf4j-api + nekohtml @@ -681,6 +716,7 @@ THE SOFTWARE. nekohtml xercesMinimal + commons-io commons-io @@ -705,7 +741,6 @@ THE SOFTWARE. io.jenkins.plugins commons-lang3-api - 3.12.0-36.vd97de6465d5b_ @@ -722,27 +757,32 @@ THE SOFTWARE. org.mockito - mockito-inline + mockito-core test - - - net.java.dev.jna - jna-platform - - org.jvnet.mock-javamail mock-javamail - 1.12 + 2.1 test + + + com.sun.activation + jakarta.activation + + - javax.mail - mail + com.sun.mail + jakarta.mail + + io.jenkins.plugins + jakarta-mail-api + test + org.jenkins-ci.test sample-plexus-component @@ -752,25 +792,13 @@ THE SOFTWARE. org.jenkins-ci.plugins promoted-builds - 3.10.1 + 892.vd6219fc0a_efb test - - - org.jenkins-ci.main - maven-plugin - - org.jenkins-ci.main jenkins-test-harness test - - - commons-net - commons-net - - org.jenkins-ci.plugins @@ -787,25 +815,10 @@ THE SOFTWARE. credentials-binding test - - org.jenkins-ci - annotation-indexer - provided - io.jenkins.configuration-as-code test-harness test - - - com.fasterxml.jackson.core - jackson-databind - - - com.fasterxml.jackson.dataformat - jackson-dataformat-yaml - - diff --git a/src/main/java/hudson/maven/AbstractMavenProcessFactory.java b/src/main/java/hudson/maven/AbstractMavenProcessFactory.java index d401a6930..7745560f2 100644 --- a/src/main/java/hudson/maven/AbstractMavenProcessFactory.java +++ b/src/main/java/hudson/maven/AbstractMavenProcessFactory.java @@ -1,5 +1,6 @@ package hudson.maven; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.AbortException; import hudson.EnvVars; import hudson.Extension; @@ -149,6 +150,7 @@ static final class Connection implements Serializable { // only used on the sender side that was Socket object locally private transient Socket socket; + @SuppressFBWarnings(value = "SE_BAD_FIELD_STORE", justification = "TODO needs triage") Connection(Socket socket) throws IOException { this.in = new SocketInputStream(socket); this.out = new SocketOutputStream(socket); diff --git a/src/main/java/hudson/maven/Maven3Builder.java b/src/main/java/hudson/maven/Maven3Builder.java index d1959c773..d45dc65d4 100644 --- a/src/main/java/hudson/maven/Maven3Builder.java +++ b/src/main/java/hudson/maven/Maven3Builder.java @@ -24,6 +24,7 @@ package hudson.maven; import edu.umd.cs.findbugs.annotations.CheckForNull; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.maven.MavenBuild.ProxyImpl2; import hudson.maven.reporters.TestFailureDetector; import hudson.maven.util.ExecutionEventLogger; @@ -360,6 +361,7 @@ private static class MavenExecutionListener extends AbstractExecutionListener im private final Map currentMojoStartPerModuleName = new ConcurrentHashMap<>(); + @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "TODO needs triage") protected ExecutionEventLogger eventLogger; MavenExecutionListener(Maven3Builder maven3Builder) { @@ -737,5 +739,6 @@ private String mojoExec(ExecutionEvent event) { private static final Logger LOGGER = Logger.getLogger(Maven3Builder.class.getName()); + @SuppressFBWarnings(value = "MS_SHOULD_BE_FINAL", justification = "TODO needs triage") public static boolean DUMP_PERFORMANCE_COUNTERS = Boolean.getBoolean(Maven3Builder.class.getName()+".dumpPerformanceCounters"); } diff --git a/src/main/java/hudson/maven/MavenBuild.java b/src/main/java/hudson/maven/MavenBuild.java index 09bc4064c..23c3e0e06 100644 --- a/src/main/java/hudson/maven/MavenBuild.java +++ b/src/main/java/hudson/maven/MavenBuild.java @@ -23,6 +23,7 @@ */ package hudson.maven; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.EnvVars; import hudson.ExtensionList; import hudson.FilePath; @@ -448,6 +449,7 @@ public boolean hasBuildFailures() { /** * {@link MavenBuildProxy} implementation. */ + @SuppressFBWarnings(value = "SE_BAD_FIELD_INNER_CLASS", justification = "TODO needs triage") class ProxyImpl implements MavenBuildProxy, Serializable { private static final long serialVersionUID = 8865133776526671879L; diff --git a/src/main/java/hudson/maven/MavenEmbedderRequest.java b/src/main/java/hudson/maven/MavenEmbedderRequest.java index 29272c6e9..de53551fc 100755 --- a/src/main/java/hudson/maven/MavenEmbedderRequest.java +++ b/src/main/java/hudson/maven/MavenEmbedderRequest.java @@ -22,6 +22,7 @@ * under the License. */ +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.model.TaskListener; import org.apache.maven.model.building.ModelBuildingRequest; import org.eclipse.aether.repository.WorkspaceReader; @@ -308,6 +309,7 @@ private void fetch() { } } + @SuppressFBWarnings(value = "DM_DEFAULT_ENCODING", justification = "TODO needs triage") private boolean shouldBeIgnored(URL url) { String s = url.toExternalForm(); if(s.contains("maven-plugin-tools-api")) diff --git a/src/main/java/hudson/maven/ProcessCache.java b/src/main/java/hudson/maven/ProcessCache.java index bb79dfdc7..89655357d 100644 --- a/src/main/java/hudson/maven/ProcessCache.java +++ b/src/main/java/hudson/maven/ProcessCache.java @@ -23,6 +23,7 @@ */ package hudson.maven; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.Util; import hudson.Proc; import hudson.model.BuildListener; @@ -238,6 +239,7 @@ public MavenProcess get(VirtualChannel owner, BuildListener listener, Factory fa + @SuppressFBWarnings(value = "MS_SHOULD_BE_REFACTORED_TO_BE_FINAL", justification = "TODO needs triage") public static int MAX_AGE = 5; static { diff --git a/src/main/java/hudson/maven/RedeployPublisher.java b/src/main/java/hudson/maven/RedeployPublisher.java index 0bd0b6d4d..ff3f6aeb7 100644 --- a/src/main/java/hudson/maven/RedeployPublisher.java +++ b/src/main/java/hudson/maven/RedeployPublisher.java @@ -23,6 +23,7 @@ */ package hudson.maven; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.Extension; import hudson.FilePath; import hudson.Launcher; @@ -199,6 +200,7 @@ private ArtifactRepository getDeploymentRepository(ArtifactRepositoryFactory fac * from the remote node and can not exist in controller see https://issues.jenkins.io/browse/JENKINS-8711 * */ + @SuppressFBWarnings(value = "RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE", justification = "TODO needs triage") private MavenEmbedder createEmbedder(TaskListener listener, AbstractBuild build) throws MavenEmbedderException, IOException, InterruptedException { MavenInstallation m=null; File settingsLoc = null, remoteGlobalSettingsFromConfig = null; diff --git a/src/main/java/hudson/maven/SplittableBuildListener.java b/src/main/java/hudson/maven/SplittableBuildListener.java index 24bf46366..d39a65553 100644 --- a/src/main/java/hudson/maven/SplittableBuildListener.java +++ b/src/main/java/hudson/maven/SplittableBuildListener.java @@ -23,6 +23,7 @@ */ package hudson.maven; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.console.ConsoleNote; import hudson.console.HyperlinkNote; import hudson.model.BuildListener; @@ -67,20 +68,24 @@ final class SplittableBuildListener implements BuildListener, Serializable { * {@link DeferredFileOutputStream} is used so that even if we get out of sync with Maven * and end up accumulating a lot of data, we still won't kill the JVM. */ + @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "TODO needs triage") private DeferredFileOutputStream unclaimed = newLog(); + @SuppressFBWarnings(value = "SE_BAD_FIELD_STORE", justification = "TODO needs triage") private volatile OutputStream side = unclaimed; /** * Constant {@link PrintStream} connected to both {@link #core} and {@link #side}. * This is so that we can change the side stream without the client noticing it. */ + @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "TODO needs triage") private final PrintStream logger; private int markCount = 0; private final Object markCountLock = new Object(); private final Object synchronizeLock = new Object(); + @SuppressFBWarnings(value = "DM_DEFAULT_ENCODING", justification = "TODO needs triage") public SplittableBuildListener(BuildListener core) { this.core = core; final OutputStream base = core.getLogger(); @@ -210,21 +215,25 @@ public PrintStream getLogger() { return logger; } + @SuppressFBWarnings(value = "DM_DEFAULT_ENCODING", justification = "TODO needs triage") public PrintWriter error(String msg) { core.error(msg); return new PrintWriter(logger, true); } + @SuppressFBWarnings(value = "DM_DEFAULT_ENCODING", justification = "TODO needs triage") public PrintWriter error(String format, Object... args) { core.error(format,args); return new PrintWriter(logger, true); } + @SuppressFBWarnings(value = "DM_DEFAULT_ENCODING", justification = "TODO needs triage") public PrintWriter fatalError(String msg) { core.fatalError(msg); return new PrintWriter(logger, true); } + @SuppressFBWarnings(value = "DM_DEFAULT_ENCODING", justification = "TODO needs triage") public PrintWriter fatalError(String format, Object... args) { core.fatalError(format,args); return new PrintWriter(logger, true); diff --git a/src/main/java/hudson/maven/reporters/MavenAbstractArtifactRecord.java b/src/main/java/hudson/maven/reporters/MavenAbstractArtifactRecord.java index e9b42b2b3..c5dd200c6 100644 --- a/src/main/java/hudson/maven/reporters/MavenAbstractArtifactRecord.java +++ b/src/main/java/hudson/maven/reporters/MavenAbstractArtifactRecord.java @@ -23,6 +23,7 @@ */ package hudson.maven.reporters; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.console.AnnotatedLargeText; import hudson.maven.MavenEmbedder; import hudson.maven.MavenEmbedderException; @@ -202,6 +203,7 @@ public HistoryWidgetImpl getHistoryWidget() { return new HistoryWidgetImpl(); } + @SuppressFBWarnings(value = "DM_BOXED_PRIMITIVE_FOR_PARSING", justification = "TODO needs triage") public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { return records.get(Integer.valueOf(token)); } diff --git a/src/main/java/hudson/maven/reporters/ReportAction.java b/src/main/java/hudson/maven/reporters/ReportAction.java index f0b0269d8..ff03de369 100644 --- a/src/main/java/hudson/maven/reporters/ReportAction.java +++ b/src/main/java/hudson/maven/reporters/ReportAction.java @@ -23,6 +23,7 @@ */ package hudson.maven.reporters; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.model.Action; import org.apache.maven.reporting.MavenReport; @@ -36,6 +37,7 @@ */ public final class ReportAction implements Action, Serializable { + @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "TODO needs triage") private final List entries = new ArrayList<>(); public static final class Entry { diff --git a/src/main/java/hudson/maven/util/ExecutionEventLogger.java b/src/main/java/hudson/maven/util/ExecutionEventLogger.java index d98bc1d0a..3d921c023 100644 --- a/src/main/java/hudson/maven/util/ExecutionEventLogger.java +++ b/src/main/java/hudson/maven/util/ExecutionEventLogger.java @@ -19,6 +19,7 @@ * under the License. */ +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.apache.maven.execution.BuildFailure; import org.apache.maven.execution.BuildSuccess; import org.apache.maven.execution.BuildSummary; @@ -38,6 +39,7 @@ import static org.apache.maven.shared.utils.logging.MessageUtils.buffer; // Note: copied from package org.apache.maven.cli with just one minor adaption for Maven3Mojo +@SuppressFBWarnings(value = "NM_SAME_SIMPLE_NAME_AS_SUPERCLASS", justification = "TODO needs triage") public class ExecutionEventLogger extends org.apache.maven.cli.event.ExecutionEventLogger { diff --git a/src/test/java/hudson/maven/MavenMultiModuleTest.java b/src/test/java/hudson/maven/MavenMultiModuleTest.java index 8d5497249..f8b3300f0 100644 --- a/src/test/java/hudson/maven/MavenMultiModuleTest.java +++ b/src/test/java/hudson/maven/MavenMultiModuleTest.java @@ -1,6 +1,6 @@ package hudson.maven; -import com.gargoylesoftware.htmlunit.html.HtmlPage; +import org.htmlunit.html.HtmlPage; import hudson.FilePath; import org.junit.Assert; import org.jvnet.hudson.test.Bug; diff --git a/src/test/java/hudson/maven/MavenOptsTest.java b/src/test/java/hudson/maven/MavenOptsTest.java index 259f042e0..75e102585 100644 --- a/src/test/java/hudson/maven/MavenOptsTest.java +++ b/src/test/java/hudson/maven/MavenOptsTest.java @@ -93,7 +93,7 @@ public void testNewlinesInOptsRemoved() throws Exception { Maven36xBuildTest.configureMaven36(); MavenModuleSet m = jenkins.createProject(MavenModuleSet.class, "p"); m.setScm(new ExtractResourceSCM(getClass().getResource("maven-surefire-unstable.zip"))); - m.setMavenOpts(JAVA_HEADLESS_OPT + " -XX:MaxPermSize=512m\r\n-Xms128m\r\n-Xmx512m"); + m.setMavenOpts(JAVA_HEADLESS_OPT + " -Xms128m\r\n-Xmx512m"); m.setGoals("install -Dmaven.compiler.target=1.8 -Dmaven.compiler.source=1.8"); assertBuildStatus(Result.UNSTABLE, m.scheduleBuild2(0).get()); diff --git a/src/test/java/hudson/maven/reporters/MavenMailerTest.java b/src/test/java/hudson/maven/reporters/MavenMailerTest.java index cad8ac56b..127b12db3 100644 --- a/src/test/java/hudson/maven/reporters/MavenMailerTest.java +++ b/src/test/java/hudson/maven/reporters/MavenMailerTest.java @@ -37,9 +37,9 @@ import hudson.tasks.Mailer; import hudson.tasks.Mailer.DescriptorImpl; -import javax.mail.Address; -import javax.mail.Message; -import javax.mail.internet.InternetAddress; +import jakarta.mail.Address; +import jakarta.mail.Message; +import jakarta.mail.internet.InternetAddress; import hudson.util.DescribableList; import jenkins.model.Jenkins; diff --git a/src/test/java/hudson/model/JobPropertyTest.java b/src/test/java/hudson/model/JobPropertyTest.java index cc8ce5946..6635164ae 100644 --- a/src/test/java/hudson/model/JobPropertyTest.java +++ b/src/test/java/hudson/model/JobPropertyTest.java @@ -24,8 +24,8 @@ package hudson.model; -import com.gargoylesoftware.htmlunit.WebAssert; -import com.gargoylesoftware.htmlunit.html.HtmlPage; +import org.htmlunit.WebAssert; +import org.htmlunit.html.HtmlPage; import hudson.maven.MavenModuleSet; diff --git a/src/test/java/lib/hudson/ListScmBrowsersTest.java b/src/test/java/lib/hudson/ListScmBrowsersTest.java index e96663925..cfbf7ed32 100644 --- a/src/test/java/lib/hudson/ListScmBrowsersTest.java +++ b/src/test/java/lib/hudson/ListScmBrowsersTest.java @@ -2,10 +2,10 @@ import static org.junit.Assert.assertTrue; -import com.gargoylesoftware.htmlunit.html.DomNodeUtil; -import com.gargoylesoftware.htmlunit.html.HtmlOption; -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import com.gargoylesoftware.htmlunit.html.HtmlSelect; +import org.htmlunit.html.DomNodeUtil; +import org.htmlunit.html.HtmlOption; +import org.htmlunit.html.HtmlPage; +import org.htmlunit.html.HtmlSelect; import hudson.maven.MavenModuleSet; import hudson.model.Item; diff --git a/src/test/resources/hudson/maven/maven-multimodule-unit-failure.zip b/src/test/resources/hudson/maven/maven-multimodule-unit-failure.zip index 9d1d6207d..248be1727 100755 Binary files a/src/test/resources/hudson/maven/maven-multimodule-unit-failure.zip and b/src/test/resources/hudson/maven/maven-multimodule-unit-failure.zip differ diff --git a/src/test/resources/hudson/maven/maven3-project.zip b/src/test/resources/hudson/maven/maven3-project.zip index 836815e53..4c9e4d76e 100644 Binary files a/src/test/resources/hudson/maven/maven3-project.zip and b/src/test/resources/hudson/maven/maven3-project.zip differ