Skip to content

Commit 8b4f411

Browse files
committed
Refine links in spring-boot-dependencies
Add support for a root name and change `reference` to `docs`. See gh-39779
1 parent 7a41750 commit 8b4f411

File tree

4 files changed

+82
-42
lines changed

4 files changed

+82
-42
lines changed

buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java

+16-9
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public void library(String name, String version, Action<LibraryHandler> action)
124124
: null;
125125
addLibrary(new Library(name, libraryHandler.calendarName, libraryVersion, libraryHandler.groups,
126126
libraryHandler.prohibitedVersions, libraryHandler.considerSnapshots, versionAlignment,
127-
libraryHandler.links));
127+
libraryHandler.linkRootName, libraryHandler.links));
128128
}
129129

130130
public void effectiveBomArtifact() {
@@ -232,6 +232,8 @@ public static class LibraryHandler {
232232

233233
private AlignWithVersionHandler alignWithVersion;
234234

235+
private String linkRootName;
236+
235237
private final Map<String, Function<LibraryVersion, String>> links = new HashMap<>();
236238

237239
@Inject
@@ -271,8 +273,13 @@ public void alignWithVersion(Action<AlignWithVersionHandler> action) {
271273
}
272274

273275
public void links(Action<LinksHandler> action) {
276+
links(null, action);
277+
}
278+
279+
public void links(String linkRootName, Action<LinksHandler> action) {
274280
LinksHandler handler = new LinksHandler();
275281
action.execute(handler);
282+
this.linkRootName = linkRootName;
276283
this.links.putAll(handler.links);
277284
}
278285

@@ -431,20 +438,20 @@ public void github(Function<LibraryVersion, String> linkFactory) {
431438
add("github", linkFactory);
432439
}
433440

434-
public void javadoc(String linkTemplate) {
435-
javadoc(asFactory(linkTemplate));
441+
public void docs(String linkTemplate) {
442+
docs(asFactory(linkTemplate));
436443
}
437444

438-
public void javadoc(Function<LibraryVersion, String> linkFactory) {
439-
add("javadoc", linkFactory);
445+
public void docs(Function<LibraryVersion, String> linkFactory) {
446+
add("docs", linkFactory);
440447
}
441448

442-
public void reference(String linkTemplate) {
443-
reference(asFactory(linkTemplate));
449+
public void javadoc(String linkTemplate) {
450+
javadoc(asFactory(linkTemplate));
444451
}
445452

446-
public void reference(Function<LibraryVersion, String> linkFactory) {
447-
add("reference", linkFactory);
453+
public void javadoc(Function<LibraryVersion, String> linkFactory) {
454+
add("javadoc", linkFactory);
448455
}
449456

450457
public void releaseNotes(String linkTemplate) {

buildSrc/src/main/java/org/springframework/boot/build/bom/Library.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ public class Library {
6262

6363
private final VersionAlignment versionAlignment;
6464

65+
private final String linkRootName;
66+
6567
private final Map<String, Function<LibraryVersion, String>> links;
6668

6769
/**
@@ -75,11 +77,13 @@ public class Library {
7577
* @param prohibitedVersions version of the library that are prohibited
7678
* @param considerSnapshots whether to consider snapshots
7779
* @param versionAlignment version alignment, if any, for the library
80+
* @param linkRootName the root name to use when generating link variable or
81+
* {@code null} to generate one based on the library {@code name}
7882
* @param links a list of HTTP links relevant to the library
7983
*/
8084
public Library(String name, String calendarName, LibraryVersion version, List<Group> groups,
8185
List<ProhibitedVersion> prohibitedVersions, boolean considerSnapshots, VersionAlignment versionAlignment,
82-
Map<String, Function<LibraryVersion, String>> links) {
86+
String linkRootName, Map<String, Function<LibraryVersion, String>> links) {
8387
this.name = name;
8488
this.calendarName = (calendarName != null) ? calendarName : name;
8589
this.version = version;
@@ -89,6 +93,7 @@ public Library(String name, String calendarName, LibraryVersion version, List<Gr
8993
this.prohibitedVersions = prohibitedVersions;
9094
this.considerSnapshots = considerSnapshots;
9195
this.versionAlignment = versionAlignment;
96+
this.linkRootName = linkRootName;
9297
this.links = Collections.unmodifiableMap(links);
9398
}
9499

@@ -124,6 +129,10 @@ public VersionAlignment getVersionAlignment() {
124129
return this.versionAlignment;
125130
}
126131

132+
public String getLinkRootName() {
133+
return this.linkRootName;
134+
}
135+
127136
public Map<String, String> getLinks() {
128137
Map<String, String> links = new TreeMap<>();
129138
this.links.forEach((name, linkFactory) -> links.put(name, linkFactory.apply(this.version)));

buildSrc/src/test/java/org/springframework/boot/build/bom/bomr/UpgradeApplicatorTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void whenUpgradeIsAppliedToLibraryWithVersionThenBomIsUpdated() throws IOExcepti
5454
FileCopyUtils.copy(new File("src/test/resources/gradle.properties"), gradleProperties);
5555
new UpgradeApplicator(bom.toPath(), gradleProperties.toPath())
5656
.apply(new Upgrade(new Library("ActiveMQ", null, new LibraryVersion(DependencyVersion.parse("5.15.11")),
57-
null, null, false, null, Collections.emptyMap()), DependencyVersion.parse("5.16")));
57+
null, null, false, null, null, Collections.emptyMap()), DependencyVersion.parse("5.16")));
5858
String bomContents = Files.readString(bom.toPath());
5959
assertThat(bomContents).hasSize(originalContents.length() - 3);
6060
}
@@ -67,7 +67,7 @@ void whenUpgradeIsAppliedToLibraryWithVersionPropertyThenGradlePropertiesIsUpdat
6767
FileCopyUtils.copy(new File("src/test/resources/gradle.properties"), gradleProperties);
6868
new UpgradeApplicator(bom.toPath(), gradleProperties.toPath())
6969
.apply(new Upgrade(new Library("Kotlin", null, new LibraryVersion(DependencyVersion.parse("1.3.70")), null,
70-
null, false, null, Collections.emptyMap()), DependencyVersion.parse("1.4")));
70+
null, false, null, null, Collections.emptyMap()), DependencyVersion.parse("1.4")));
7171
Properties properties = new Properties();
7272
try (InputStream in = new FileInputStream(gradleProperties)) {
7373
properties.load(in);

0 commit comments

Comments
 (0)