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