From 006ddda5c6964104df3c6a4722fba4803dcb9a96 Mon Sep 17 00:00:00 2001 From: Fred Bricon Date: Sat, 19 Aug 2023 14:05:41 +0200 Subject: [PATCH] [Maven-Runtime] Replace aether-okhttp-connector with Maven's wagon-http Co-authored-by: Hannes Wellmann --- RELEASE_NOTES.md | 13 ++++++ .../.settings/org.eclipse.jdt.core.prefs | 9 ++++ .../META-INF/MANIFEST.MF | 2 +- .../forceQualifierUpdate.txt | 1 + org.eclipse.m2e.maven.runtime/pom.xml | 43 ++++++++++++------- .../eclipse/m2e/tests/common/HttxWagon.java | 5 +-- target-platform/target-platform.target | 12 ++++++ 7 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 org.eclipse.m2e.editor.lemminx.tests/.settings/org.eclipse.jdt.core.prefs diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 2410301ad..48a14beb0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -8,6 +8,19 @@ Updated the embedded Maven from version 3.9.4 to 3.9.5; [Maven 3.9.5 Release Notes](https://maven.apache.org/docs/3.9.5/release-notes.html). +### Dropped aether-okhttp-connector + +Previously, m2e embedded [`aether-okhttp-connector`](https://github.com/takari/aether-connector-okhttp), an alternative to Wagon HTTP connector, based on [OkHttp](https://square.github.io/okhttp/), which was developed at a time when Maven 2's HTTP Connector didn't leverage HTTP/2 and parallel downloads. + +However, the usage of this alternative connector introduced certain inconsistencies when compared to regular Maven CLI builds. +These discrepancies, often revolving around matters of authentication and proxies, posed challenges. +Maven 3.x significantly improved its resolver implementations, largely mitigating the advantages of `aether-okhttp-connector` and bringing new features. +This shift left the `aether-okhttp-connector` outdated and that project has now been abandoned. + +m2e 2.4 has been adjusted to better align with the Maven 3.9 runtime. +This adjustment is expected to result in fewer issues pertaining to artifact resolution and proxy authentication. +However, due to its removal from the runtime, there exists a potential risk that third-party Plug-ins dependent on m2e's integrated `OkHttp` functionality might experience disruptions. + ## 2.4.0 * 📅 Release Date: 29th August 2023 diff --git a/org.eclipse.m2e.editor.lemminx.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.m2e.editor.lemminx.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..62ef3488c --- /dev/null +++ b/org.eclipse.m2e.editor.lemminx.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/org.eclipse.m2e.editor.lemminx.tests/META-INF/MANIFEST.MF b/org.eclipse.m2e.editor.lemminx.tests/META-INF/MANIFEST.MF index cffcea50c..2c8b65515 100644 --- a/org.eclipse.m2e.editor.lemminx.tests/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.editor.lemminx.tests/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Require-Bundle: org.junit, org.eclipse.ui.ide, org.eclipse.core.resources, org.eclipse.ui.workbench.texteditor, - org.eclipse.core.runtime, + org.eclipse.m2e.maven.runtime;bundle-version="[3.9.400,4.0.0)", org.eclipse.ui.tests.harness, org.eclipse.jface.text, org.eclipse.m2e.core.ui, diff --git a/org.eclipse.m2e.feature/forceQualifierUpdate.txt b/org.eclipse.m2e.feature/forceQualifierUpdate.txt index 330e2451a..afc096bce 100644 --- a/org.eclipse.m2e.feature/forceQualifierUpdate.txt +++ b/org.eclipse.m2e.feature/forceQualifierUpdate.txt @@ -1,2 +1,3 @@ # To force a version qualifier update add the bug here Update build-qualifier because maven-runtime version update to Maven 3.9.5 +Update build-qualifier because maven-runtime dropped aether-okhttp-connector diff --git a/org.eclipse.m2e.maven.runtime/pom.xml b/org.eclipse.m2e.maven.runtime/pom.xml index 57e0fe5a0..e033fd6f5 100644 --- a/org.eclipse.m2e.maven.runtime/pom.xml +++ b/org.eclipse.m2e.maven.runtime/pom.xml @@ -33,15 +33,14 @@ bundle. So make sure the following variable has the value of the maven-resolver-* jars https://bugs.eclipse.org/bugs/show_bug.cgi?id=529540 --> 1.9.16 + 1.16.0 0.0.7 - 0.17.8 target/jars ${project.build.directory}/classes-source false %Y%m%d-%H%M - org.apache.maven @@ -78,17 +77,6 @@ plexus-build-api ${plexus-build-api.version} - - io.takari.aether - aether-connector-okhttp - ${okhttp-connector.version} - - - org.eclipse.aether - aether-util - - - org.apache.maven.resolver maven-resolver-impl @@ -101,6 +89,18 @@ org.apache.maven.resolver maven-resolver-transport-wagon + + org.apache.maven.resolver + maven-resolver-transport-file + + + org.apache.maven.resolver + maven-resolver-transport-http + + + org.apache.maven.wagon + wagon-http + org.apache.maven.wagon wagon-file @@ -140,6 +140,17 @@ 2.0.7 provided + + commons-codec + commons-codec + ${apache-commons-codec.version} + provided + + + org.apache.commons + commons-lang3 + provided + javax.annotation javax.annotation-api @@ -192,14 +203,16 @@ org.sonatype.plexus.*;provider=m2e;mandatory:=provider,\ org.eclipse.aether.*;provider=m2e;mandatory:=provider;version=${maven-resolver.version},\ com.google.inject.*;provider=m2e;mandatory:=provider,\ - io.takari.*;provider=m2e;mandatory:=provider,\ + org.apache.maven.wagon.*;provider=m2e;mandatory:=provider,\ org.eclipse.sisu.*;provider=m2e;mandatory:=provider;version=${maven-resolver.version} Import-Package: \ org.slf4j;version="[1.7.31,3.0.0)",\ org.slf4j.*;version="[1.7.31,3.0.0)",\ javax.inject;version="[1.0.0,2.0.0)",\ javax.annotation;version="[1.2.0,2.0.0)", \ - org.apache.commons.cli;version="[1.4.0,2.0.0)" + org.apache.commons.cli;version="[1.4.0,2.0.0)", \ + org.apache.commons.codec*, \ + org.apache.commons.lang3* Require-Bundle: \ com.google.guava;bundle-version="32.0.1" diff --git a/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttxWagon.java b/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttxWagon.java index c38f36c26..550e3e1da 100644 --- a/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttxWagon.java +++ b/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttxWagon.java @@ -25,19 +25,18 @@ import org.apache.maven.wagon.authentication.AuthenticationException; import org.apache.maven.wagon.authentication.AuthenticationInfo; import org.apache.maven.wagon.authorization.AuthorizationException; +import org.apache.maven.wagon.providers.http.HttpWagon; import org.apache.maven.wagon.proxy.ProxyInfoProvider; import org.apache.maven.wagon.repository.Repository; import org.apache.maven.wagon.resource.Resource; -import io.takari.aether.wagon.OkHttpsWagon; - /** * A special wagon for testing that allows to record the requests made to a repository. Use * {@link #setRequestFilterPattern(String, boolean)} to configure what to record and to optionally clear previous * records. The repository URL to use with this wagon looks like {@code httx://localhost/}. */ -public class HttxWagon extends OkHttpsWagon { +public class HttxWagon extends HttpWagon { //MUST NOT start with "http", because otherwise the io.takari.aether.connector.AetherRepositoryConnector will consider it as default http(s) and will handle the connection. static String PROTOCOL = "httx"; diff --git a/target-platform/target-platform.target b/target-platform/target-platform.target index c979d0ef0..ed60dd8fe 100644 --- a/target-platform/target-platform.target +++ b/target-platform/target-platform.target @@ -100,6 +100,18 @@ 1.6.0 jar + + commons-codec + commons-codec + 1.16.0 + jar + + + org.apache.commons + commons-lang3 + 3.13.0 + jar +