From 0467247d5ca4e3e49c9a3fe9aa51116c740a7bf1 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Mon, 11 Aug 2025 16:14:09 +0200 Subject: [PATCH 1/3] Fix for #11021 On parent loading, the repositories were interpolated okay, but there was a problem that parent properties were not considered in interpolation. Fixes #11021 --- .../java/org/apache/maven/impl/model/DefaultModelBuilder.java | 1 + 1 file changed, 1 insertion(+) 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 c55c1ccadf33..95b7fd842ab7 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, From d4fe0e7f524ebd0ab6845626799b91c4d498ee3c Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Mon, 11 Aug 2025 16:45:58 +0200 Subject: [PATCH 2/3] Add UT --- .../impl/model/DefaultModelBuilderTest.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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 2b012185c4bf..9eedef803fdd 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,24 @@ public void testMergeRepositories() throws Exception { Repository.newBuilder() .id("second") .url("${secondParentRepo}") - .build())) - .build(); + .build(), + Repository.newBuilder() + .id("third") + .url("${thirdParentRepo}") + .build())).build(); + state.mergeRepositories(model, false); // after merge repositories = (List) 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) { From 78c61a612f26c231a27d073e699da228cfb9faa2 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Mon, 11 Aug 2025 16:46:51 +0200 Subject: [PATCH 3/3] Reformat --- .../org/apache/maven/impl/model/DefaultModelBuilderTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 9eedef803fdd..a35835d128b3 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 @@ -105,7 +105,8 @@ public void testMergeRepositories() throws Exception { Repository.newBuilder() .id("third") .url("${thirdParentRepo}") - .build())).build(); + .build())) + .build(); state.mergeRepositories(model, false);