You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2025/08/12 09:43:16 UTC
(maven) branch master updated: Uninterpolated repositories from parent POMs during model building (#11037)
This is an automated email from the ASF dual-hosted git repository.
cstamas 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 1b942bd88a Uninterpolated repositories from parent POMs during model building (#11037)
1b942bd88a is described below
commit 1b942bd88aebe5671e7a1428031ec75162bc64c8
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Tue Aug 12 11:43:11 2025 +0200
Uninterpolated repositories from parent POMs during model building (#11037)
On parent loading, the repositories were interpolated okay, but there was a problem that parent own properties were not considered in interpolation (of own repositories).
Fixes #11021
---
.../org/apache/maven/impl/model/DefaultModelBuilder.java | 1 +
.../apache/maven/impl/model/DefaultModelBuilderTest.java | 14 +++++++++++---
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java
index c55c1ccadf..95b7fd842a 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java
@@ -511,6 +511,7 @@ public void mergeRepositories(Model model, boolean replace) {
Model interpolatedModel = interpolateModel(
Model.newBuilder()
.pomFile(model.getPomFile())
+ .properties(model.getProperties())
.repositories(model.getRepositories())
.build(),
request,
diff --git a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelBuilderTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelBuilderTest.java
index 2b012185c4..a35835d128 100644
--- a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelBuilderTest.java
+++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelBuilderTest.java
@@ -92,6 +92,7 @@ public void testMergeRepositories() throws Exception {
assertEquals(1, repositories.size()); // central
Model model = Model.newBuilder()
+ .properties(Map.of("thirdParentRepo", "https://third.repo"))
.repositories(Arrays.asList(
Repository.newBuilder()
.id("first")
@@ -100,18 +101,25 @@ public void testMergeRepositories() throws Exception {
Repository.newBuilder()
.id("second")
.url("${secondParentRepo}")
+ .build(),
+ Repository.newBuilder()
+ .id("third")
+ .url("${thirdParentRepo}")
.build()))
.build();
+
state.mergeRepositories(model, false);
// after merge
repositories = (List<RemoteRepository>) repositoriesField.get(state);
- assertEquals(3, repositories.size());
+ assertEquals(4, repositories.size());
assertEquals("first", repositories.get(0).getId());
- assertEquals("https://some.repo", repositories.get(0).getUrl()); // interpolated
+ assertEquals("https://some.repo", repositories.get(0).getUrl()); // interpolated (user properties)
assertEquals("second", repositories.get(1).getId());
assertEquals("${secondParentRepo}", repositories.get(1).getUrl()); // un-interpolated (no source)
- assertEquals("central", repositories.get(2).getId()); // default
+ assertEquals("third", repositories.get(2).getId());
+ assertEquals("https://third.repo", repositories.get(2).getUrl()); // interpolated (own model properties)
+ assertEquals("central", repositories.get(3).getId()); // default
}
private Path getPom(String name) {