From 2c5c9158cdb5f024fb63efdcb6da89514a5f23b3 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Tue, 7 Nov 2023 11:33:26 +0100 Subject: [PATCH 1/5] [MNG-7909] Apply Resolver 2.0.0 changes Changes: * IT MNG-4368 "smart install" undone * IT MNG-5175 force Wagon as it uses Wagon config * IT MNG-7470 adapt to new default and new transport --- ...68TimestampAwareArtifactInstallerTest.java | 3 ++- .../maven/it/MavenITmng5175WagonHttpTest.java | 2 ++ .../MavenITmng7470ResolverTransportTest.java | 22 +++++++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4368TimestampAwareArtifactInstallerTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4368TimestampAwareArtifactInstallerTest.java index b58ea201a..70de6f086 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4368TimestampAwareArtifactInstallerTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4368TimestampAwareArtifactInstallerTest.java @@ -27,13 +27,14 @@ /** * This is a test set for MNG-4368. + * Resolver 2.0.0 (in use since Maven 4.0.0-alpha-9) undoes this "smart" solution. * * @author Benjamin Bentmann */ public class MavenITmng4368TimestampAwareArtifactInstallerTest extends AbstractMavenIntegrationTestCase { public MavenITmng4368TimestampAwareArtifactInstallerTest() { - super("[2.0.3,3.0-alpha-1),[3.0-alpha-6,)"); + super("[2.0.3,3.0-alpha-1),[3.0-alpha-6,4.0.0-alpha-8]"); } /** diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java index 60a93dd8d..bd96fb58a 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java @@ -117,6 +117,8 @@ public void testmng5175_ReadTimeOutFromSettings() throws Exception { verifier.addCliArgument("--errors"); verifier.addCliArgument("-X"); verifier.addCliArgument("validate"); + verifier.addCliArgument( + "-Dmaven.resolver.transport=wagon"); // this tests Wagon integration and uses Wagon specific config verifier.execute(); verifier.verifyTextInLog( diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java index b6fa21bba..3bb20d55c 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java @@ -22,6 +22,8 @@ import java.util.HashMap; import java.util.Map; +import org.apache.maven.artifact.versioning.ArtifactVersion; +import org.apache.maven.artifact.versioning.DefaultArtifactVersion; import org.apache.maven.shared.verifier.Verifier; import org.apache.maven.shared.verifier.util.ResourceExtractor; import org.junit.jupiter.api.AfterEach; @@ -39,6 +41,9 @@ public class MavenITmng7470ResolverTransportTest extends AbstractMavenIntegratio private int port; + private static final ArtifactVersion JDK_TRANSPORT_IN_USE_SINCE = + new DefaultArtifactVersion("4.0.0-alpha-9-SNAPSHOT"); + public MavenITmng7470ResolverTransportTest() { super("[3.9.0,)"); } @@ -99,11 +104,15 @@ private void performTest(/* nullable */ final String transport, final String log private static final String WAGON_LOG_SNIPPET = "[DEBUG] Using transporter WagonTransporter"; - private static final String NATIVE_LOG_SNIPPET = "[DEBUG] Using transporter HttpTransporter"; + private static final String APACHE_LOG_SNIPPET = "[DEBUG] Using transporter HttpTransporter"; + + private static final String JDK_LOG_SNIPPET = "[DEBUG] Using transporter JdkHttpTransporter"; @Test public void testResolverTransportDefault() throws Exception { - performTest(null, NATIVE_LOG_SNIPPET); + performTest( + null, + JDK_TRANSPORT_IN_USE_SINCE.compareTo(getMavenVersion()) > 0 ? APACHE_LOG_SNIPPET : JDK_LOG_SNIPPET); } @Test @@ -112,7 +121,12 @@ public void testResolverTransportWagon() throws Exception { } @Test - public void testResolverTransportNative() throws Exception { - performTest("native", NATIVE_LOG_SNIPPET); + public void testResolverTransportApache() throws Exception { + performTest("apache", APACHE_LOG_SNIPPET); + } + + @Test + public void testResolverTransportJdk() throws Exception { + performTest("jdk", JDK_LOG_SNIPPET); } } From d42933a7c90d9e77d9909754bbbd0ecae5b11782 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Tue, 7 Nov 2023 11:49:38 +0100 Subject: [PATCH 2/5] Improve "default transport" detection It needs java + mavenVersion --- .../it/MavenITmng7470ResolverTransportTest.java | 13 ++++++++++--- .../maven/it/AbstractMavenIntegrationTestCase.java | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java index 3bb20d55c..e64ffab8f 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java @@ -41,6 +41,8 @@ public class MavenITmng7470ResolverTransportTest extends AbstractMavenIntegratio private int port; + private static final ArtifactVersion JDK_TRANSPORT_USABLE_ON_JDK_SINCE = new DefaultArtifactVersion("11"); + private static final ArtifactVersion JDK_TRANSPORT_IN_USE_SINCE = new DefaultArtifactVersion("4.0.0-alpha-9-SNAPSHOT"); @@ -108,11 +110,16 @@ private void performTest(/* nullable */ final String transport, final String log private static final String JDK_LOG_SNIPPET = "[DEBUG] Using transporter JdkHttpTransporter"; + private String defaultLogSnippet() { + if (JDK_TRANSPORT_USABLE_ON_JDK_SINCE.compareTo(getJavaVersion()) > 0) { + return APACHE_LOG_SNIPPET; + } + return JDK_TRANSPORT_IN_USE_SINCE.compareTo(getMavenVersion()) > 0 ? APACHE_LOG_SNIPPET : JDK_LOG_SNIPPET; + } + @Test public void testResolverTransportDefault() throws Exception { - performTest( - null, - JDK_TRANSPORT_IN_USE_SINCE.compareTo(getMavenVersion()) > 0 ? APACHE_LOG_SNIPPET : JDK_LOG_SNIPPET); + performTest(null, defaultLogSnippet()); } @Test diff --git a/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java b/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java index cc02af688..2630be278 100644 --- a/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java +++ b/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java @@ -94,7 +94,7 @@ protected String getName() { * * @return The Java version, never null. */ - private static ArtifactVersion getJavaVersion() { + protected static ArtifactVersion getJavaVersion() { if (javaVersion == null) { String version = System.getProperty("java.version"); version = version.replaceAll("[_-]", "."); From 3d0774a85f2195f27b841cdbad2fb1b52c051db1 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Tue, 7 Nov 2023 12:28:06 +0100 Subject: [PATCH 3/5] Tidy up --- .../maven/it/MavenITmng7470ResolverTransportTest.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java index e64ffab8f..3631fd5a6 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java @@ -27,6 +27,7 @@ import org.apache.maven.shared.verifier.Verifier; import org.apache.maven.shared.verifier.util.ResourceExtractor; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -43,7 +44,7 @@ public class MavenITmng7470ResolverTransportTest extends AbstractMavenIntegratio private static final ArtifactVersion JDK_TRANSPORT_USABLE_ON_JDK_SINCE = new DefaultArtifactVersion("11"); - private static final ArtifactVersion JDK_TRANSPORT_IN_USE_SINCE = + private static final ArtifactVersion JDK_TRANSPORT_IN_MAVEN_SINCE = new DefaultArtifactVersion("4.0.0-alpha-9-SNAPSHOT"); public MavenITmng7470ResolverTransportTest() { @@ -114,7 +115,7 @@ private String defaultLogSnippet() { if (JDK_TRANSPORT_USABLE_ON_JDK_SINCE.compareTo(getJavaVersion()) > 0) { return APACHE_LOG_SNIPPET; } - return JDK_TRANSPORT_IN_USE_SINCE.compareTo(getMavenVersion()) > 0 ? APACHE_LOG_SNIPPET : JDK_LOG_SNIPPET; + return JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) > 0 ? APACHE_LOG_SNIPPET : JDK_LOG_SNIPPET; } @Test @@ -129,11 +130,13 @@ public void testResolverTransportWagon() throws Exception { @Test public void testResolverTransportApache() throws Exception { - performTest("apache", APACHE_LOG_SNIPPET); + performTest( JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) > 0 ? "apache" : "native", APACHE_LOG_SNIPPET); } @Test public void testResolverTransportJdk() throws Exception { + Assumptions.assumeTrue(JDK_TRANSPORT_USABLE_ON_JDK_SINCE.compareTo(getJavaVersion()) < 1 + && JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) < 1); performTest("jdk", JDK_LOG_SNIPPET); } } From 8da5083b461a5274d1a4664e7ba6848f8c21aaa4 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Tue, 7 Nov 2023 12:30:13 +0100 Subject: [PATCH 4/5] Reformat --- .../apache/maven/it/MavenITmng7470ResolverTransportTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java index 3631fd5a6..a28e75e6b 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java @@ -130,7 +130,9 @@ public void testResolverTransportWagon() throws Exception { @Test public void testResolverTransportApache() throws Exception { - performTest( JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) > 0 ? "apache" : "native", APACHE_LOG_SNIPPET); + performTest( + JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) > 0 ? "apache" : "native", + APACHE_LOG_SNIPPET); } @Test From 33f84b7d971b044896c5de04d59646af52d31fa9 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Tue, 7 Nov 2023 13:06:00 +0100 Subject: [PATCH 5/5] Fix assumptions --- .../MavenITmng7470ResolverTransportTest.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java index a28e75e6b..4221d2c38 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java @@ -111,11 +111,26 @@ private void performTest(/* nullable */ final String transport, final String log private static final String JDK_LOG_SNIPPET = "[DEBUG] Using transporter JdkHttpTransporter"; + /** + * Returns {@code true} if JDK HttpClient transport is usable (Java11 or better). + */ + private boolean isJdkTransportUsable() { + return JDK_TRANSPORT_USABLE_ON_JDK_SINCE.compareTo(getJavaVersion()) < 1; + } + + /** + * Returns {@code true} if JDK HttpClient transport is present in Maven (since 4.0.0-alpha-9, the Resovler 2.0.0 + * upgrade). + */ + private boolean isJdkTransportPresent() { + return JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) < 1; + } + private String defaultLogSnippet() { - if (JDK_TRANSPORT_USABLE_ON_JDK_SINCE.compareTo(getJavaVersion()) > 0) { - return APACHE_LOG_SNIPPET; + if (isJdkTransportUsable() && isJdkTransportPresent()) { + return JDK_LOG_SNIPPET; } - return JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) > 0 ? APACHE_LOG_SNIPPET : JDK_LOG_SNIPPET; + return APACHE_LOG_SNIPPET; } @Test @@ -130,15 +145,12 @@ public void testResolverTransportWagon() throws Exception { @Test public void testResolverTransportApache() throws Exception { - performTest( - JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) > 0 ? "apache" : "native", - APACHE_LOG_SNIPPET); + performTest(isJdkTransportPresent() ? "apache" : "native", APACHE_LOG_SNIPPET); } @Test public void testResolverTransportJdk() throws Exception { - Assumptions.assumeTrue(JDK_TRANSPORT_USABLE_ON_JDK_SINCE.compareTo(getJavaVersion()) < 1 - && JDK_TRANSPORT_IN_MAVEN_SINCE.compareTo(getMavenVersion()) < 1); + Assumptions.assumeTrue(isJdkTransportUsable() && isJdkTransportPresent()); performTest("jdk", JDK_LOG_SNIPPET); } }