From 09400df47b88bb8f42670b56327957256330f3ca Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 9 Oct 2024 09:21:09 +0100 Subject: [PATCH 1/2] Make URL creation more robust in Bomr's version resolver Using URI#resolve is brittle as the behavior changes depending on whether or not the URI ends with a /. This can result in the original URI's path being lost and the URLs for the Maven metadata files being incorrect. See gh-42333 --- .../boot/build/bom/bomr/MavenMetadataVersionResolver.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/MavenMetadataVersionResolver.java b/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/MavenMetadataVersionResolver.java index 2da3daee56..f7b5c58191 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/MavenMetadataVersionResolver.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/MavenMetadataVersionResolver.java @@ -43,6 +43,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponentsBuilder; /** * A {@link VersionResolver} that examines {@code maven-metadata.xml} to determine the @@ -76,7 +77,10 @@ final class MavenMetadataVersionResolver implements VersionResolver { private Set resolveVersions(String groupId, String artifactId, MavenArtifactRepository repository) { Set versions = new HashSet<>(); - URI url = repository.getUrl().resolve(groupId.replace('.', '/') + "/" + artifactId + "/maven-metadata.xml"); + URI url = UriComponentsBuilder.fromUri(repository.getUrl()) + .pathSegment(groupId.replace('.', '/'), artifactId, "maven-metadata.xml") + .build() + .toUri(); try { HttpHeaders headers = new HttpHeaders(); String username = repository.getCredentials().getUsername(); From 7082c811677d26d4a510fa99a7ab5b9bf95466b6 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 9 Oct 2024 09:34:28 +0100 Subject: [PATCH 2/2] Reinstate Maven Central as a source for dependency upgrades See gh-42333 --- .../java/org/springframework/boot/build/bom/bomr/UpgradeBom.java | 1 + 1 file changed, 1 insertion(+) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/UpgradeBom.java b/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/UpgradeBom.java index 1865f97c30..fced373524 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/UpgradeBom.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/UpgradeBom.java @@ -43,6 +43,7 @@ public abstract class UpgradeBom extends UpgradeDependencies { } private void addOpenSourceRepositories() { + getRepositoryNames().add(ArtifactRepositoryContainer.DEFAULT_MAVEN_CENTRAL_REPO_NAME); getProject().getRepositories().withType(MavenArtifactRepository.class, (repository) -> { String name = repository.getName(); if (name.startsWith("spring-") && !name.endsWith("-snapshot")) {