You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2021/03/13 16:34:29 UTC
[maven] branch master updated: Revert "[MNG-7046] Revert MNG-5639
and make repo config static only"
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new a5c68f7 Revert "[MNG-7046] Revert MNG-5639 and make repo config static only"
a5c68f7 is described below
commit a5c68f7a4afd9c58e727f09dc119b1160decd854
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Mon Mar 1 23:33:14 2021 +0100
Revert "[MNG-7046] Revert MNG-5639 and make repo config static only"
This reverts commit 8c9c303f9c20396b2d2810a872b16245f9eabfcb.
---
.../apache/maven/project/ProjectModelResolver.java | 5 ++--
.../project/DefaultMavenProjectBuilderTest.java | 10 +++++++
...pom-resolves-from-property-based-repository.xml | 31 ++++++++++++++++++++++
.../maven/model/building/DefaultModelBuilder.java | 11 +++++++-
.../repository/internal/DefaultModelResolver.java | 4 +++
5 files changed, 58 insertions(+), 3 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java b/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
index ae44924..b1b28ef 100644
--- a/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
@@ -93,8 +93,9 @@ public class ProjectModelResolver
this.resolver = resolver;
this.remoteRepositoryManager = remoteRepositoryManager;
this.pomRepositories = new ArrayList<>();
- this.externalRepositories = repositories;
- this.repositories = repositories;
+ this.externalRepositories = Collections.unmodifiableList( new ArrayList<>( repositories ) );
+ this.repositories = new ArrayList<>();
+ this.repositories.addAll( externalRepositories );
this.repositoryMerging = repositoryMerging;
this.repositoryIds = new HashSet<>();
this.modelPool = modelPool;
diff --git a/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java b/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
index 9338cd2..2bff5d0 100644
--- a/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
@@ -192,6 +192,16 @@ public class DefaultMavenProjectBuilderTest
assertNotNull( result.getDependencyResolutionResult() );
}
+ public void testImportScopePomResolvesFromPropertyBasedRepository()
+ throws Exception
+ {
+ File pomFile = getTestFile( "src/test/resources/projects/import-scope-pom-resolves-from-property-based-repository.xml" );
+ ProjectBuildingRequest request = newBuildingRequest();
+ request.setProcessPlugins( false );
+ request.setResolveDependencies( true );
+ projectBuilder.build( pomFile, request );
+ }
+
/**
* Tests whether local version range parent references are build correctly.
*
diff --git a/maven-core/src/test/resources/projects/import-scope-pom-resolves-from-property-based-repository.xml b/maven-core/src/test/resources/projects/import-scope-pom-resolves-from-property-based-repository.xml
new file mode 100644
index 0000000..4c29a3b
--- /dev/null
+++ b/maven-core/src/test/resources/projects/import-scope-pom-resolves-from-property-based-repository.xml
@@ -0,0 +1,31 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>test</groupId>
+ <artifactId>imported-pom-found</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+
+ <properties>
+ <repo.url>file:src/test/remote-repo</repo.url>
+ </properties>
+
+ <repositories>
+ <repository>
+ <id>central</id>
+ <url>${repo.url}</url>
+ </repository>
+ </repositories>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its</groupId>
+ <artifactId>a</artifactId>
+ <version>0.1</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index 51d2b06..62afcd1 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -476,6 +476,9 @@ public class DefaultModelBuilder
result.setEffectiveModel( resultModel );
+ // Now the fully interpolated model is available: reconfigure the resolver
+ configureResolver( request.getModelResolver(), resultModel, problems, true );
+
return resultModel;
}
@@ -807,6 +810,12 @@ public class DefaultModelBuilder
private void configureResolver( ModelResolver modelResolver, Model model, DefaultModelProblemCollector problems )
{
+ configureResolver( modelResolver, model, problems, false );
+ }
+
+ private void configureResolver( ModelResolver modelResolver, Model model, DefaultModelProblemCollector problems,
+ boolean replaceRepositories )
+ {
if ( modelResolver == null )
{
return;
@@ -820,7 +829,7 @@ public class DefaultModelBuilder
{
try
{
- modelResolver.addRepository( repository, false );
+ modelResolver.addRepository( repository, replaceRepositories );
}
catch ( InvalidRepositoryException e )
{
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
index 0819477..993d38e 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
@@ -67,6 +67,8 @@ class DefaultModelResolver
private List<RemoteRepository> repositories;
+ private final List<RemoteRepository> externalRepositories;
+
private final ArtifactResolver resolver;
private final VersionRangeResolver versionRangeResolver;
@@ -86,6 +88,7 @@ class DefaultModelResolver
this.versionRangeResolver = versionRangeResolver;
this.remoteRepositoryManager = remoteRepositoryManager;
this.repositories = repositories;
+ this.externalRepositories = Collections.unmodifiableList( new ArrayList<>( repositories ) );
this.repositoryIds = new HashSet<>();
}
@@ -99,6 +102,7 @@ class DefaultModelResolver
this.versionRangeResolver = original.versionRangeResolver;
this.remoteRepositoryManager = original.remoteRepositoryManager;
this.repositories = new ArrayList<>( original.repositories );
+ this.externalRepositories = original.externalRepositories;
this.repositoryIds = new HashSet<>();
}