Skip to content

Commit 14d6d44

Browse files
authored
Resolver 2.0.13 (#11137)
Resolver 2.0.13 has fixed several bugs and issues from 2.0.11 causing endless loops/stack overflow with some more complex graphs. Changes in ITs: * classpath string is now levelOrder (not preOrder as Maven 3) * error string comparison that fits apache and jdk transport (error message is slightly different)
1 parent 7baf2a8 commit 14d6d44

File tree

7 files changed

+55
-19
lines changed

7 files changed

+55
-19
lines changed

compat/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ protected DefaultRepositorySystemSession initRepoSession() throws Exception {
310310
DependencyTraverser depTraverser = new FatArtifactTraverser();
311311
session.setDependencyTraverser(depTraverser);
312312

313-
DependencyManager depManager = new ClassicDependencyManager(true, session.getScopeManager());
313+
DependencyManager depManager = new ClassicDependencyManager(session.getScopeManager());
314314
session.setDependencyManager(depManager);
315315

316316
DependencySelector depFilter = new AndDependencySelector(

compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenSessionBuilderSupplier.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
4444
import org.eclipse.aether.util.artifact.DefaultArtifactTypeRegistry;
4545
import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
46+
import org.eclipse.aether.util.graph.manager.TransitiveDependencyManager;
4647
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
4748
import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector;
4849
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
@@ -95,7 +96,9 @@ protected DependencyManager getDependencyManager() {
9596
}
9697

9798
public DependencyManager getDependencyManager(boolean transitive) {
98-
return new ClassicDependencyManager(transitive, getScopeManager());
99+
return transitive
100+
? new TransitiveDependencyManager(getScopeManager())
101+
: new ClassicDependencyManager(getScopeManager());
99102
}
100103

101104
protected DependencySelector getDependencySelector() {

impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/RepositorySystemSupplier.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,12 +195,14 @@ static BasicRepositoryConnectorFactory newBasicRepositoryConnectorFactory(
195195
TransporterProvider transporterProvider,
196196
RepositoryLayoutProvider layoutProvider,
197197
ChecksumPolicyProvider checksumPolicyProvider,
198+
PathProcessor pathProcessor,
198199
ChecksumProcessor checksumProcessor,
199200
Map<String, ProvidedChecksumsSource> providedChecksumsSources) {
200201
return new BasicRepositoryConnectorFactory(
201202
transporterProvider,
202203
layoutProvider,
203204
checksumPolicyProvider,
205+
pathProcessor,
204206
checksumProcessor,
205207
providedChecksumsSources);
206208
}
@@ -251,8 +253,8 @@ static RemoteRepositoryFilterManager newRemoteRepositoryFilterManager(
251253
@Provides
252254
@Named(GroupIdRemoteRepositoryFilterSource.NAME)
253255
static GroupIdRemoteRepositoryFilterSource newGroupIdRemoteRepositoryFilterSource(
254-
RepositorySystemLifecycle repositorySystemLifecycle) {
255-
return new GroupIdRemoteRepositoryFilterSource(repositorySystemLifecycle);
256+
RepositorySystemLifecycle repositorySystemLifecycle, PathProcessor pathProcessor) {
257+
return new GroupIdRemoteRepositoryFilterSource(repositorySystemLifecycle, pathProcessor);
256258
}
257259

258260
@Provides
@@ -566,8 +568,10 @@ static SparseDirectoryTrustedChecksumsSource newSparseDirectoryTrustedChecksumsS
566568
@Provides
567569
@Named(SummaryFileTrustedChecksumsSource.NAME)
568570
static SummaryFileTrustedChecksumsSource newSummaryFileTrustedChecksumsSource(
569-
LocalPathComposer localPathComposer, RepositorySystemLifecycle repositorySystemLifecycle) {
570-
return new SummaryFileTrustedChecksumsSource(localPathComposer, repositorySystemLifecycle);
571+
LocalPathComposer localPathComposer,
572+
RepositorySystemLifecycle repositorySystemLifecycle,
573+
PathProcessor pathProcessor) {
574+
return new SummaryFileTrustedChecksumsSource(localPathComposer, repositorySystemLifecycle, pathProcessor);
571575
}
572576

573577
@Provides

impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ protected Map<String, RemoteRepositoryFilterSource> createRemoteRepositoryFilter
541541
HashMap<String, RemoteRepositoryFilterSource> result = new HashMap<>();
542542
result.put(
543543
GroupIdRemoteRepositoryFilterSource.NAME,
544-
new GroupIdRemoteRepositoryFilterSource(getRepositorySystemLifecycle()));
544+
new GroupIdRemoteRepositoryFilterSource(getRepositorySystemLifecycle(), getPathProcessor()));
545545
result.put(
546546
PrefixesRemoteRepositoryFilterSource.NAME,
547547
new PrefixesRemoteRepositoryFilterSource(
@@ -608,7 +608,8 @@ protected Map<String, TrustedChecksumsSource> createTrustedChecksumsSources() {
608608
new SparseDirectoryTrustedChecksumsSource(getChecksumProcessor(), getLocalPathComposer()));
609609
result.put(
610610
SummaryFileTrustedChecksumsSource.NAME,
611-
new SummaryFileTrustedChecksumsSource(getLocalPathComposer(), getRepositorySystemLifecycle()));
611+
new SummaryFileTrustedChecksumsSource(
612+
getLocalPathComposer(), getRepositorySystemLifecycle(), getPathProcessor()));
612613
return result;
613614
}
614615

@@ -709,6 +710,7 @@ protected BasicRepositoryConnectorFactory createBasicRepositoryConnectorFactory(
709710
getTransporterProvider(),
710711
getRepositoryLayoutProvider(),
711712
getChecksumPolicyProvider(),
713+
getPathProcessor(),
712714
getChecksumProcessor(),
713715
getProvidedChecksumsSources());
714716
}

its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ void connectionProblems() throws Exception {
9393
void connectionProblemsPlugin() throws Exception {
9494
testit(
9595
54312,
96-
new String[] {
96+
new String[] { // JDK "Connection to..." Apache "Connect to..."
9797
".*The following artifacts could not be resolved: org.apache.maven.its.plugins:maven-it-plugin-not-exists:pom:1.2.3 \\(absent\\): "
9898
+ "Could not transfer artifact org.apache.maven.its.plugins:maven-it-plugin-not-exists:pom:1.2.3 from/to "
99-
+ "central \\(http://localhost:.*/repo\\): Connection to http://localhost:.*2/repo/ refused.*"
99+
+ "central \\(http://localhost:.*/repo\\):.*Connect.*refused.*"
100100
},
101101
"pom-plugin.xml");
102102
}

its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,40 @@ public void testitMNG3813() throws Exception {
6868

6969
assertEquals("8", pclProps.getProperty(resName + ".count"));
7070

71-
assertTrue(pclProps.getProperty(resName + ".0").endsWith("/dep-a-0.1.jar!/" + resName));
72-
assertTrue(pclProps.getProperty(resName + ".1").endsWith("/dep-aa-0.1.jar!/" + resName));
73-
assertTrue(pclProps.getProperty(resName + ".2").endsWith("/dep-ac-0.1.jar!/" + resName));
74-
assertTrue(pclProps.getProperty(resName + ".3").endsWith("/dep-ab-0.1.jar!/" + resName));
75-
assertTrue(pclProps.getProperty(resName + ".4").endsWith("/dep-ad-0.1.jar!/" + resName));
76-
assertTrue(pclProps.getProperty(resName + ".5").endsWith("/dep-c-0.1.jar!/" + resName));
77-
assertTrue(pclProps.getProperty(resName + ".6").endsWith("/dep-b-0.1.jar!/" + resName));
78-
assertTrue(pclProps.getProperty(resName + ".7").endsWith("/dep-d-0.1.jar!/" + resName));
71+
// The following dependency section spans this dependency tree:
72+
// dep-a
73+
// dep-aa
74+
// dep-ac
75+
// dep-ab
76+
// dep-ad
77+
// dep-c
78+
// dep-b
79+
// dep-d
80+
//
81+
// Given this tree, the correct/expected class path using preOrder is:
82+
// dep-a, dep-aa, dep-ac, dep-ab, dep-ad, dep-c, dep-b, dep-d
83+
// The correct/expected class path using levelOrder is:
84+
// dep-a, dep-c, dep-b, dep-d, dep-aa, dep-ac, dep-ab, dep-ad
85+
if (matchesVersionRange("[,4.1.0-SNAPSHOT)")) {
86+
// preOrder
87+
assertTrue(pclProps.getProperty(resName + ".0").endsWith("/dep-a-0.1.jar!/" + resName));
88+
assertTrue(pclProps.getProperty(resName + ".1").endsWith("/dep-aa-0.1.jar!/" + resName));
89+
assertTrue(pclProps.getProperty(resName + ".2").endsWith("/dep-ac-0.1.jar!/" + resName));
90+
assertTrue(pclProps.getProperty(resName + ".3").endsWith("/dep-ab-0.1.jar!/" + resName));
91+
assertTrue(pclProps.getProperty(resName + ".4").endsWith("/dep-ad-0.1.jar!/" + resName));
92+
assertTrue(pclProps.getProperty(resName + ".5").endsWith("/dep-c-0.1.jar!/" + resName));
93+
assertTrue(pclProps.getProperty(resName + ".6").endsWith("/dep-b-0.1.jar!/" + resName));
94+
assertTrue(pclProps.getProperty(resName + ".7").endsWith("/dep-d-0.1.jar!/" + resName));
95+
} else {
96+
// levelOrder
97+
assertTrue(pclProps.getProperty(resName + ".0").endsWith("/dep-a-0.1.jar!/" + resName));
98+
assertTrue(pclProps.getProperty(resName + ".1").endsWith("/dep-c-0.1.jar!/" + resName));
99+
assertTrue(pclProps.getProperty(resName + ".2").endsWith("/dep-b-0.1.jar!/" + resName));
100+
assertTrue(pclProps.getProperty(resName + ".3").endsWith("/dep-d-0.1.jar!/" + resName));
101+
assertTrue(pclProps.getProperty(resName + ".4").endsWith("/dep-aa-0.1.jar!/" + resName));
102+
assertTrue(pclProps.getProperty(resName + ".5").endsWith("/dep-ac-0.1.jar!/" + resName));
103+
assertTrue(pclProps.getProperty(resName + ".6").endsWith("/dep-ab-0.1.jar!/" + resName));
104+
assertTrue(pclProps.getProperty(resName + ".7").endsWith("/dep-ad-0.1.jar!/" + resName));
105+
}
79106
}
80107
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ under the License.
162162
<plexusInterpolationVersion>1.28</plexusInterpolationVersion>
163163
<plexusTestingVersion>1.6.0</plexusTestingVersion>
164164
<plexusXmlVersion>4.1.0</plexusXmlVersion>
165-
<resolverVersion>2.0.11</resolverVersion>
165+
<resolverVersion>2.0.13</resolverVersion>
166166
<securityDispatcherVersion>4.1.0</securityDispatcherVersion>
167167
<sisuVersion>0.9.0.M4</sisuVersion>
168168
<slf4jVersion>2.0.17</slf4jVersion>

0 commit comments

Comments
 (0)