[MNG-7909] Apply Resolver 2.0.0 changes (#317)

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
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 b58ea20..70de6f0 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 <a href="https://issues.apache.org/jira/browse/MNG-4368">MNG-4368</a>.
+ * 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 60a93dd..bd96fb5 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 @@
         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 b6fa21b..4221d2c 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,9 +22,12 @@
 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;
+import org.junit.jupiter.api.Assumptions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -39,6 +42,11 @@
 
     private int port;
 
+    private static final ArtifactVersion JDK_TRANSPORT_USABLE_ON_JDK_SINCE = new DefaultArtifactVersion("11");
+
+    private static final ArtifactVersion JDK_TRANSPORT_IN_MAVEN_SINCE =
+            new DefaultArtifactVersion("4.0.0-alpha-9-SNAPSHOT");
+
     public MavenITmng7470ResolverTransportTest() {
         super("[3.9.0,)");
     }
@@ -99,11 +107,35 @@
 
     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";
+
+    /**
+     * 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 (isJdkTransportUsable() && isJdkTransportPresent()) {
+            return JDK_LOG_SNIPPET;
+        }
+        return APACHE_LOG_SNIPPET;
+    }
 
     @Test
     public void testResolverTransportDefault() throws Exception {
-        performTest(null, NATIVE_LOG_SNIPPET);
+        performTest(null, defaultLogSnippet());
     }
 
     @Test
@@ -112,7 +144,13 @@
     }
 
     @Test
-    public void testResolverTransportNative() throws Exception {
-        performTest("native", NATIVE_LOG_SNIPPET);
+    public void testResolverTransportApache() throws Exception {
+        performTest(isJdkTransportPresent() ? "apache" : "native", APACHE_LOG_SNIPPET);
+    }
+
+    @Test
+    public void testResolverTransportJdk() throws Exception {
+        Assumptions.assumeTrue(isJdkTransportUsable() && isJdkTransportPresent());
+        performTest("jdk", JDK_LOG_SNIPPET);
     }
 }
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 cc02af6..2630be2 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 @@
      *
      * @return The Java version, never <code>null</code>.
      */
-    private static ArtifactVersion getJavaVersion() {
+    protected static ArtifactVersion getJavaVersion() {
         if (javaVersion == null) {
             String version = System.getProperty("java.version");
             version = version.replaceAll("[_-]", ".");