diff --git a/compat/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java b/compat/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java index 5214640c9335..206fc6245c9b 100644 --- a/compat/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java +++ b/compat/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java @@ -310,7 +310,7 @@ protected DefaultRepositorySystemSession initRepoSession() throws Exception { DependencyTraverser depTraverser = new FatArtifactTraverser(); session.setDependencyTraverser(depTraverser); - DependencyManager depManager = new ClassicDependencyManager(true, session.getScopeManager()); + DependencyManager depManager = new ClassicDependencyManager(session.getScopeManager()); session.setDependencyManager(depManager); DependencySelector depFilter = new AndDependencySelector( diff --git a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenSessionBuilderSupplier.java b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenSessionBuilderSupplier.java index d0f985a08306..0ee51533211f 100644 --- a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenSessionBuilderSupplier.java +++ b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenSessionBuilderSupplier.java @@ -43,6 +43,7 @@ import org.eclipse.aether.resolution.ArtifactDescriptorPolicy; import org.eclipse.aether.util.artifact.DefaultArtifactTypeRegistry; import org.eclipse.aether.util.graph.manager.ClassicDependencyManager; +import org.eclipse.aether.util.graph.manager.TransitiveDependencyManager; import org.eclipse.aether.util.graph.selector.AndDependencySelector; import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector; import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer; @@ -95,7 +96,9 @@ protected DependencyManager getDependencyManager() { } public DependencyManager getDependencyManager(boolean transitive) { - return new ClassicDependencyManager(transitive, getScopeManager()); + return transitive + ? new TransitiveDependencyManager(getScopeManager()) + : new ClassicDependencyManager(getScopeManager()); } protected DependencySelector getDependencySelector() { diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/RepositorySystemSupplier.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/RepositorySystemSupplier.java index 36197566df78..015f5ba38c02 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/RepositorySystemSupplier.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/RepositorySystemSupplier.java @@ -195,12 +195,14 @@ static BasicRepositoryConnectorFactory newBasicRepositoryConnectorFactory( TransporterProvider transporterProvider, RepositoryLayoutProvider layoutProvider, ChecksumPolicyProvider checksumPolicyProvider, + PathProcessor pathProcessor, ChecksumProcessor checksumProcessor, Map providedChecksumsSources) { return new BasicRepositoryConnectorFactory( transporterProvider, layoutProvider, checksumPolicyProvider, + pathProcessor, checksumProcessor, providedChecksumsSources); } @@ -251,8 +253,8 @@ static RemoteRepositoryFilterManager newRemoteRepositoryFilterManager( @Provides @Named(GroupIdRemoteRepositoryFilterSource.NAME) static GroupIdRemoteRepositoryFilterSource newGroupIdRemoteRepositoryFilterSource( - RepositorySystemLifecycle repositorySystemLifecycle) { - return new GroupIdRemoteRepositoryFilterSource(repositorySystemLifecycle); + RepositorySystemLifecycle repositorySystemLifecycle, PathProcessor pathProcessor) { + return new GroupIdRemoteRepositoryFilterSource(repositorySystemLifecycle, pathProcessor); } @Provides @@ -566,8 +568,10 @@ static SparseDirectoryTrustedChecksumsSource newSparseDirectoryTrustedChecksumsS @Provides @Named(SummaryFileTrustedChecksumsSource.NAME) static SummaryFileTrustedChecksumsSource newSummaryFileTrustedChecksumsSource( - LocalPathComposer localPathComposer, RepositorySystemLifecycle repositorySystemLifecycle) { - return new SummaryFileTrustedChecksumsSource(localPathComposer, repositorySystemLifecycle); + LocalPathComposer localPathComposer, + RepositorySystemLifecycle repositorySystemLifecycle, + PathProcessor pathProcessor) { + return new SummaryFileTrustedChecksumsSource(localPathComposer, repositorySystemLifecycle, pathProcessor); } @Provides diff --git a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java index 0ba603625382..c31d266d187d 100644 --- a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java +++ b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java @@ -541,7 +541,7 @@ protected Map createRemoteRepositoryFilter HashMap result = new HashMap<>(); result.put( GroupIdRemoteRepositoryFilterSource.NAME, - new GroupIdRemoteRepositoryFilterSource(getRepositorySystemLifecycle())); + new GroupIdRemoteRepositoryFilterSource(getRepositorySystemLifecycle(), getPathProcessor())); result.put( PrefixesRemoteRepositoryFilterSource.NAME, new PrefixesRemoteRepositoryFilterSource( @@ -608,7 +608,8 @@ protected Map createTrustedChecksumsSources() { new SparseDirectoryTrustedChecksumsSource(getChecksumProcessor(), getLocalPathComposer())); result.put( SummaryFileTrustedChecksumsSource.NAME, - new SummaryFileTrustedChecksumsSource(getLocalPathComposer(), getRepositorySystemLifecycle())); + new SummaryFileTrustedChecksumsSource( + getLocalPathComposer(), getRepositorySystemLifecycle(), getPathProcessor())); return result; } @@ -709,6 +710,7 @@ protected BasicRepositoryConnectorFactory createBasicRepositoryConnectorFactory( getTransporterProvider(), getRepositoryLayoutProvider(), getChecksumPolicyProvider(), + getPathProcessor(), getChecksumProcessor(), getProvidedChecksumsSources()); } diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java index 5ec5fa8c0f42..1b2dbfd9a09d 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java @@ -93,10 +93,10 @@ void connectionProblems() throws Exception { void connectionProblemsPlugin() throws Exception { testit( 54312, - new String[] { + new String[] { // JDK "Connection to..." Apache "Connect to..." ".*The following artifacts could not be resolved: org.apache.maven.its.plugins:maven-it-plugin-not-exists:pom:1.2.3 \\(absent\\): " + "Could not transfer artifact org.apache.maven.its.plugins:maven-it-plugin-not-exists:pom:1.2.3 from/to " - + "central \\(http://localhost:.*/repo\\): Connection to http://localhost:.*2/repo/ refused.*" + + "central \\(http://localhost:.*/repo\\):.*Connect.*refused.*" }, "pom-plugin.xml"); } diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java index 0331f30fe4c4..9c5638db9561 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java @@ -68,13 +68,40 @@ public void testitMNG3813() throws Exception { assertEquals("8", pclProps.getProperty(resName + ".count")); - assertTrue(pclProps.getProperty(resName + ".0").endsWith("/dep-a-0.1.jar!/" + resName)); - assertTrue(pclProps.getProperty(resName + ".1").endsWith("/dep-aa-0.1.jar!/" + resName)); - assertTrue(pclProps.getProperty(resName + ".2").endsWith("/dep-ac-0.1.jar!/" + resName)); - assertTrue(pclProps.getProperty(resName + ".3").endsWith("/dep-ab-0.1.jar!/" + resName)); - assertTrue(pclProps.getProperty(resName + ".4").endsWith("/dep-ad-0.1.jar!/" + resName)); - assertTrue(pclProps.getProperty(resName + ".5").endsWith("/dep-c-0.1.jar!/" + resName)); - assertTrue(pclProps.getProperty(resName + ".6").endsWith("/dep-b-0.1.jar!/" + resName)); - assertTrue(pclProps.getProperty(resName + ".7").endsWith("/dep-d-0.1.jar!/" + resName)); + // The following dependency section spans this dependency tree: + // dep-a + // dep-aa + // dep-ac + // dep-ab + // dep-ad + // dep-c + // dep-b + // dep-d + // + // Given this tree, the correct/expected class path using preOrder is: + // dep-a, dep-aa, dep-ac, dep-ab, dep-ad, dep-c, dep-b, dep-d + // The correct/expected class path using levelOrder is: + // dep-a, dep-c, dep-b, dep-d, dep-aa, dep-ac, dep-ab, dep-ad + if (matchesVersionRange("[,4.1.0-SNAPSHOT)")) { + // preOrder + assertTrue(pclProps.getProperty(resName + ".0").endsWith("/dep-a-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".1").endsWith("/dep-aa-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".2").endsWith("/dep-ac-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".3").endsWith("/dep-ab-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".4").endsWith("/dep-ad-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".5").endsWith("/dep-c-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".6").endsWith("/dep-b-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".7").endsWith("/dep-d-0.1.jar!/" + resName)); + } else { + // levelOrder + assertTrue(pclProps.getProperty(resName + ".0").endsWith("/dep-a-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".1").endsWith("/dep-c-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".2").endsWith("/dep-b-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".3").endsWith("/dep-d-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".4").endsWith("/dep-aa-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".5").endsWith("/dep-ac-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".6").endsWith("/dep-ab-0.1.jar!/" + resName)); + assertTrue(pclProps.getProperty(resName + ".7").endsWith("/dep-ad-0.1.jar!/" + resName)); + } } } diff --git a/pom.xml b/pom.xml index e980d4c567be..8a917a880718 100644 --- a/pom.xml +++ b/pom.xml @@ -162,7 +162,7 @@ under the License. 1.28 1.6.0 4.1.0 - 2.0.11 + 2.0.13 4.1.0 0.9.0.M4 2.0.17 @@ -678,6 +678,31 @@ under the License. + + + + true + + + false + + maven-2330 + https://repository.apache.org/content/repositories/maven-2330/ + + + + + + true + + + false + + maven-2330 + https://repository.apache.org/content/repositories/maven-2330/ + + +