Skip to content

Commit 91536a8

Browse files
committedFeb 4, 2025
Merge branch '3.4.x'
2 parents a39556b + ccf4050 commit 91536a8

File tree

2 files changed

+44
-17
lines changed

2 files changed

+44
-17
lines changed
 

‎buildSrc/SpringRepositorySupport.groovy

+16-9
Original file line numberDiff line numberDiff line change
@@ -100,29 +100,29 @@ class SpringRepositoriesExtension {
100100
}
101101

102102
private void addRepositories(action) {
103-
addCommercialRepository("release", "/spring-enterprise-maven-prod-local", action)
103+
addCommercialRepository("release", false, "/spring-enterprise-maven-prod-local", action)
104104
if (this.version.contains("-")) {
105-
addOssRepository("milestone", "/milestone", action)
105+
addOssRepository("milestone", false, "/milestone", action)
106106
}
107107
if (this.version.endsWith("-SNAPSHOT")) {
108-
addCommercialRepository("snapshot", "/spring-enterprise-maven-dev-local", action)
109-
addOssRepository("snapshot", "/snapshot", action)
108+
addCommercialRepository("snapshot", true, "/spring-enterprise-maven-dev-local", action)
109+
addOssRepository("snapshot", true, "/snapshot", action)
110110
}
111111
}
112112

113-
private void addOssRepository(id, path, action) {
113+
private void addOssRepository(id, snapshot, path, action) {
114114
def name = "spring-oss-" + id
115115
def url = "https://repo.spring.io" + path
116-
addRepository(name, url, action)
116+
addRepository(name, snapshot, url, action)
117117
}
118118

119-
private void addCommercialRepository(id, path, action) {
119+
private void addCommercialRepository(id, snapshot, path, action) {
120120
if (!"commercial".equalsIgnoreCase(this.buildType)) return
121121
def name = "spring-commercial-" + id
122122
def url = fromEnv("COMMERCIAL_%SREPO_URL", id, "https://usw1.packages.broadcom.com" + path)
123123
def username = fromEnv("COMMERCIAL_%SREPO_USERNAME", id)
124124
def password = fromEnv("COMMERCIAL_%SREPO_PASSWORD", id)
125-
addRepository(name, url, { maven ->
125+
addRepository(name, snapshot, url, { maven ->
126126
maven.credentials { credentials ->
127127
credentials.setUsername(username)
128128
credentials.setPassword(password)
@@ -131,10 +131,17 @@ class SpringRepositoriesExtension {
131131
})
132132
}
133133

134-
private void addRepository(name, url, action) {
134+
private void addRepository(name, snapshot, url, action) {
135135
this.repositories.maven { maven ->
136136
maven.setName(name)
137137
maven.setUrl(url)
138+
maven.content { content ->
139+
if (snapshot) {
140+
content.snapshotsOnly()
141+
} else {
142+
content.releasesOnly()
143+
}
144+
}
138145
action(maven)
139146
}
140147
}

‎buildSrc/src/main/java/org/springframework/boot/build/RepositoryTransformersExtension.java

+28-8
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@
1717
package org.springframework.boot.build;
1818

1919
import java.net.URI;
20+
import java.util.ArrayList;
21+
import java.util.Collections;
22+
import java.util.Comparator;
23+
import java.util.List;
2024
import java.util.function.BiFunction;
25+
import java.util.function.Function;
2126

2227
import javax.inject.Inject;
2328

@@ -96,19 +101,34 @@ private String mavenRepositoryXml(String indent, MavenArtifactRepository reposit
96101
private String transform(String line, BiFunction<MavenArtifactRepository, String, String> generator) {
97102
StringBuilder result = new StringBuilder();
98103
String indent = getIndent(line);
99-
this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
100-
String name = repository.getName();
101-
if (name.startsWith("spring-")) {
102-
String fragment = generator.apply(repository, indent);
103-
if (fragment != null) {
104-
result.append(!result.isEmpty() ? "\n" : "");
105-
result.append(fragment);
106-
}
104+
getSpringRepositories().forEach((repository) -> {
105+
String fragment = generator.apply(repository, indent);
106+
if (fragment != null) {
107+
result.append(!result.isEmpty() ? "\n" : "");
108+
result.append(fragment);
107109
}
108110
});
109111
return result.toString();
110112
}
111113

114+
private List<MavenArtifactRepository> getSpringRepositories() {
115+
List<MavenArtifactRepository> springRepositories = new ArrayList<>(this.project.getRepositories()
116+
.withType(MavenArtifactRepository.class)
117+
.stream()
118+
.filter(this::isSpringReposirory)
119+
.toList());
120+
Function<MavenArtifactRepository, Boolean> bySnapshots = (repository) -> repository.getName()
121+
.contains("snapshot");
122+
Function<MavenArtifactRepository, String> byName = null;
123+
Collections.sort(springRepositories, Comparator.comparing(bySnapshots).thenComparing(byName));
124+
System.err.println(">>>> " + springRepositories);
125+
return springRepositories;
126+
}
127+
128+
private boolean isSpringReposirory(MavenArtifactRepository repository) {
129+
return (repository.getName().startsWith("spring-"));
130+
}
131+
112132
private String getIndent(String line) {
113133
return line.substring(0, line.length() - line.stripLeading().length());
114134
}

0 commit comments

Comments
 (0)
Failed to load comments.