Skip to content

Commit c92f248

Browse files
committed
Merge branch '3.3.x'
Closes gh-43081
2 parents 5d8047a + 30efd52 commit c92f248

File tree

3 files changed

+70
-49
lines changed

3 files changed

+70
-49
lines changed

buildSrc/src/main/java/org/springframework/boot/build/antora/AntoraAsciidocAttributes.java

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,14 @@ public AntoraAsciidocAttributes(Project project, BomExtension dependencyBom,
8383

8484
public Map<String, String> get() {
8585
Map<String, String> attributes = new LinkedHashMap<>();
86+
Map<String, String> internal = new LinkedHashMap<>();
8687
addBuildTypeAttribute(attributes);
8788
addGitHubAttributes(attributes);
88-
addVersionAttributes(attributes);
89+
addVersionAttributes(attributes, internal);
8990
addArtifactAttributes(attributes);
9091
addUrlJava(attributes);
9192
addUrlLibraryLinkAttributes(attributes);
92-
addPropertyAttributes(attributes);
93+
addPropertyAttributes(attributes, internal);
9394
return attributes;
9495
}
9596

@@ -115,7 +116,7 @@ private String determineGitHubRef() {
115116
return versionRoot.substring(0, lastDot) + ".x";
116117
}
117118

118-
private void addVersionAttributes(Map<String, String> attributes) {
119+
private void addVersionAttributes(Map<String, String> attributes, Map<String, String> internal) {
119120
this.libraries.forEach((library) -> {
120121
String name = "version-" + library.getLinkRootName();
121122
String value = library.getVersion().toString();
@@ -126,29 +127,33 @@ private void addVersionAttributes(Map<String, String> attributes) {
126127
addDependencyVersion(attributes, "jackson-annotations", "com.fasterxml.jackson.core:jackson-annotations");
127128
addDependencyVersion(attributes, "jackson-core", "com.fasterxml.jackson.core:jackson-core");
128129
addDependencyVersion(attributes, "jackson-databind", "com.fasterxml.jackson.core:jackson-databind");
129-
addSpringDataDependencyVersion(attributes, "spring-data-commons");
130-
addSpringDataDependencyVersion(attributes, "spring-data-couchbase");
131-
addSpringDataDependencyVersion(attributes, "spring-data-cassandra");
132-
addSpringDataDependencyVersion(attributes, "spring-data-elasticsearch");
133-
addSpringDataDependencyVersion(attributes, "spring-data-jdbc");
134-
addSpringDataDependencyVersion(attributes, "spring-data-jpa");
135-
addSpringDataDependencyVersion(attributes, "spring-data-mongodb");
136-
addSpringDataDependencyVersion(attributes, "spring-data-neo4j");
137-
addSpringDataDependencyVersion(attributes, "spring-data-r2dbc");
138-
addSpringDataDependencyVersion(attributes, "spring-data-rest", "spring-data-rest-core");
139-
addSpringDataDependencyVersion(attributes, "spring-data-ldap");
140-
}
141-
142-
private void addSpringDataDependencyVersion(Map<String, String> attributes, String artifactId) {
143-
addSpringDataDependencyVersion(attributes, artifactId, artifactId);
144-
}
145-
146-
private void addSpringDataDependencyVersion(Map<String, String> attributes, String name, String artifactId) {
147-
String version = getVersion("org.springframework.data:" + artifactId);
130+
addSpringDataDependencyVersion(attributes, internal, "spring-data-commons");
131+
addSpringDataDependencyVersion(attributes, internal, "spring-data-couchbase");
132+
addSpringDataDependencyVersion(attributes, internal, "spring-data-cassandra");
133+
addSpringDataDependencyVersion(attributes, internal, "spring-data-elasticsearch");
134+
addSpringDataDependencyVersion(attributes, internal, "spring-data-jdbc");
135+
addSpringDataDependencyVersion(attributes, internal, "spring-data-jpa");
136+
addSpringDataDependencyVersion(attributes, internal, "spring-data-mongodb");
137+
addSpringDataDependencyVersion(attributes, internal, "spring-data-neo4j");
138+
addSpringDataDependencyVersion(attributes, internal, "spring-data-r2dbc");
139+
addSpringDataDependencyVersion(attributes, internal, "spring-data-rest", "spring-data-rest-core");
140+
addSpringDataDependencyVersion(attributes, internal, "spring-data-ldap");
141+
}
142+
143+
private void addSpringDataDependencyVersion(Map<String, String> attributes, Map<String, String> internal,
144+
String artifactId) {
145+
addSpringDataDependencyVersion(attributes, internal, artifactId, artifactId);
146+
}
147+
148+
private void addSpringDataDependencyVersion(Map<String, String> attributes, Map<String, String> internal,
149+
String name, String artifactId) {
150+
String groupAndArtifactId = "org.springframework.data:" + artifactId;
151+
addDependencyVersion(attributes, name, groupAndArtifactId);
152+
String version = getVersion(groupAndArtifactId);
148153
String majorMinor = Arrays.stream(version.split("\\.")).limit(2).collect(Collectors.joining("."));
149154
String antoraVersion = version.endsWith(DASH_SNAPSHOT) ? majorMinor + DASH_SNAPSHOT : majorMinor;
150-
attributes.put("version-" + name + "-docs", antoraVersion);
151-
attributes.put("version-" + name + "-javadoc", majorMinor + ".x");
155+
internal.put("antoraversion-" + name, antoraVersion);
156+
internal.put("dotxversion-" + name, majorMinor + ".x");
152157
}
153158

154159
private void addDependencyVersion(Map<String, String> attributes, String name, String groupAndArtifactId) {
@@ -173,6 +178,7 @@ private void addUrlJava(Map<String, String> attributes) {
173178
}
174179

175180
private void addUrlLibraryLinkAttributes(Map<String, String> attributes) {
181+
Map<String, String> packageAttributes = new LinkedHashMap<>();
176182
this.libraries.forEach((library) -> {
177183
String prefix = "url-" + library.getLinkRootName() + "-";
178184
library.getLinks().forEach((name, link) -> {
@@ -181,22 +187,24 @@ private void addUrlLibraryLinkAttributes(Map<String, String> attributes) {
181187
link.packages()
182188
.stream()
183189
.map(this::packageAttributeName)
184-
.forEach((packageAttributeName) -> attributes.put(packageAttributeName, "{" + linkName + "}"));
190+
.forEach((packageAttributeName) -> packageAttributes.put(packageAttributeName,
191+
"{" + linkName + "}"));
185192
});
186193
});
194+
attributes.putAll(packageAttributes);
187195
}
188196

189197
private String packageAttributeName(String packageName) {
190198
return "javadoc-location-" + packageName.replace('.', '-');
191199
}
192200

193-
private void addPropertyAttributes(Map<String, String> attributes) {
201+
private void addPropertyAttributes(Map<String, String> attributes, Map<String, String> internal) {
194202
Properties properties = new Properties() {
195203

196204
@Override
197205
public synchronized Object put(Object key, Object value) {
198206
// Put directly because order is important for us
199-
return attributes.put(key.toString(), value.toString());
207+
return attributes.put(key.toString(), resolve(value.toString(), internal));
200208
}
201209

202210
};
@@ -208,4 +216,11 @@ public synchronized Object put(Object key, Object value) {
208216
}
209217
}
210218

219+
private String resolve(String value, Map<String, String> internal) {
220+
for (Map.Entry<String, String> entry : internal.entrySet()) {
221+
value = value.replace("{" + entry.getKey() + "}", entry.getValue());
222+
}
223+
return value;
224+
}
225+
211226
}

buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,34 +35,34 @@ url-paketo-docs=https://paketo.io/docs
3535
url-paketo-docs-java-buildpack={url-paketo-docs}/buildpacks/language-family-buildpacks/java
3636
url-spring-boot-for-apache-geode-docs=https://docs.spring.io/spring-boot-data-geode-build/2.0.x/reference/html5
3737
url-spring-boot-for-apache-geode-site=https://github.com/spring-projects/spring-boot-data-geode
38-
url-spring-data-cassandra-javadoc=https://docs.spring.io/spring-data/cassandra/docs/{version-spring-data-cassandra-javadoc}/api
38+
url-spring-data-cassandra-javadoc=https://docs.spring.io/spring-data/cassandra/docs/{dotxversion-spring-data-cassandra}/api
3939
url-spring-data-cassandra-site=https://spring.io/projects/spring-data-cassandra
40-
url-spring-data-cassandra-docs=https://docs.spring.io/spring-data/cassandra/reference/{version-spring-data-cassandra-docs}
41-
url-spring-data-commons-javadoc=https://docs.spring.io/spring-data/commons/docs/{version-spring-data-commons-javadoc}/api
42-
url-spring-data-couchbase-docs=https://docs.spring.io/spring-data/couchbase/reference/{version-spring-data-couchbase-docs}
40+
url-spring-data-cassandra-docs=https://docs.spring.io/spring-data/cassandra/reference/{antoraversion-spring-data-cassandra}
41+
url-spring-data-commons-javadoc=https://docs.spring.io/spring-data/commons/docs/{dotxversion-spring-data-commons}/api
42+
url-spring-data-couchbase-docs=https://docs.spring.io/spring-data/couchbase/reference/{antoraversion-spring-data-couchbase}
4343
url-spring-data-couchbase-site=https://spring.io/projects/spring-data-couchbase
44-
url-spring-data-couchbase-javadoc=https://docs.spring.io/spring-data/couchbase/docs/{version-spring-data-couchbase-javadoc}/api
45-
url-spring-data-elasticsearch-javadoc=https://docs.spring.io/spring-data/elasticsearch/docs/{version-spring-data-elasticsearch-javadoc}/api
46-
url-spring-data-elasticsearch-docs=https://docs.spring.io/spring-data/elasticsearch/reference/{version-spring-data-elasticsearch-docs}
44+
url-spring-data-couchbase-javadoc=https://docs.spring.io/spring-data/couchbase/docs/{dotxversion-spring-data-couchbase}/api
45+
url-spring-data-elasticsearch-javadoc=https://docs.spring.io/spring-data/elasticsearch/docs/{dotxversion-spring-data-elasticsearch}/api
46+
url-spring-data-elasticsearch-docs=https://docs.spring.io/spring-data/elasticsearch/reference/{antoraversion-spring-data-elasticsearch}
4747
url-spring-data-elasticsearch-site=https://spring.io/projects/spring-data-elasticsearch
4848
url-spring-data-envers-site=https://spring.io/projects/spring-data-envers
4949
url-spring-data-geode-site=https://spring.io/projects/spring-data-geode
50-
url-spring-data-jdbc-docs=https://docs.spring.io/spring-data/relational/reference/{version-spring-data-jdbc-docs}
51-
url-spring-data-jpa-javadoc=https://docs.spring.io/spring-data/jpa/docs/{version-spring-data-jpa-javadoc}/api
50+
url-spring-data-jdbc-docs=https://docs.spring.io/spring-data/relational/reference/{antoraversion-spring-data-jdbc}
51+
url-spring-data-jpa-javadoc=https://docs.spring.io/spring-data/jpa/docs/{dotxversion-spring-data-jpa}/api
5252
url-spring-data-jpa-site=https://spring.io/projects/spring-data-jpa
53-
url-spring-data-jpa-docs=https://docs.spring.io/spring-data/jpa/reference/{version-spring-data-jpa-docs}
53+
url-spring-data-jpa-docs=https://docs.spring.io/spring-data/jpa/reference/{antoraversion-spring-data-jpa}
5454
url-spring-data-ldap-site=https://spring.io/projects/spring-data-ldap
55-
url-spring-data-ldap-docs=https://docs.spring.io/spring-data/ldap/reference/{version-spring-data-ldap-docs}
56-
url-spring-data-mongodb-javadoc=https://docs.spring.io/spring-data/mongodb/docs/{version-spring-data-mongodb-javadoc}/api
55+
url-spring-data-ldap-docs=https://docs.spring.io/spring-data/ldap/reference/{antoraversion-spring-data-ldap}
56+
url-spring-data-mongodb-javadoc=https://docs.spring.io/spring-data/mongodb/docs/{dotxversion-spring-data-mongodb}/api
5757
url-spring-data-mongodb-site=https://spring.io/projects/spring-data-mongodb
58-
url-spring-data-mongodb-docs=https://docs.spring.io/spring-data/mongodb/reference/{version-spring-data-mongodb-docs}
59-
url-spring-data-neo4j-javadoc=https://docs.spring.io/spring-data/neo4j/docs/{version-spring-data-neo4j-javadoc}/api
60-
url-spring-data-neo4j-docs=https://docs.spring.io/spring-data/neo4j/reference/{version-spring-data-neo4j-docs}
58+
url-spring-data-mongodb-docs=https://docs.spring.io/spring-data/mongodb/reference/{antoraversion-spring-data-mongodb}
59+
url-spring-data-neo4j-javadoc=https://docs.spring.io/spring-data/neo4j/docs/{dotxversion-spring-data-neo4j}/api
60+
url-spring-data-neo4j-docs=https://docs.spring.io/spring-data/neo4j/reference/{antoraversion-spring-data-neo4j}
6161
url-spring-data-neo4j-site=https://spring.io/projects/spring-data-neo4j
62-
url-spring-data-r2dbc-javadoc=https://docs.spring.io/spring-data/r2dbc/docs/{version-spring-data-r2dbc-javadoc}/api
63-
url-spring-data-r2dbc-docs=https://docs.spring.io/spring-data/relational/reference/{version-spring-data-r2dbc-docs}
62+
url-spring-data-r2dbc-javadoc=https://docs.spring.io/spring-data/r2dbc/docs/{dotxversion-spring-data-r2dbc}/api
63+
url-spring-data-r2dbc-docs=https://docs.spring.io/spring-data/relational/reference/{antoraversion-spring-data-r2dbc}
6464
url-spring-data-redis-site=https://spring.io/projects/spring-data-redis
65-
url-spring-data-rest-javadoc=https://docs.spring.io/spring-data/rest/docs/{version-spring-data-rest-javadoc}/api
65+
url-spring-data-rest-javadoc=https://docs.spring.io/spring-data/rest/docs/{dotxversion-spring-data-rest}/api
6666
url-spring-data-site=https://spring.io/projects/spring-data
6767
url-jackson-annotations=https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-annotations/{version-jackson-annotations}
6868
url-jackson-core=https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-core/{version-jackson-core}

buildSrc/src/test/java/org/springframework/boot/build/antora/AntoraAsciidocAttributesTests.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,22 @@ void versionReferenceFromLibrary() {
9797
void versionReferenceFromSpringDataDependencyReleaseVersion() {
9898
AntoraAsciidocAttributes attributes = new AntoraAsciidocAttributes("1.2.3", true, BuildType.OPEN_SOURCE, null,
9999
mockDependencyVersions("3.2.5"), null);
100-
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb-docs", "3.2");
101-
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb-javadoc", "3.2.x");
100+
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb", "3.2.5");
101+
assertThat(attributes.get()).containsEntry("url-spring-data-mongodb-docs",
102+
"https://docs.spring.io/spring-data/mongodb/reference/3.2");
103+
assertThat(attributes.get()).containsEntry("url-spring-data-mongodb-javadoc",
104+
"https://docs.spring.io/spring-data/mongodb/docs/3.2.x/api");
102105
}
103106

104107
@Test
105108
void versionReferenceFromSpringDataDependencySnapshotVersion() {
106109
AntoraAsciidocAttributes attributes = new AntoraAsciidocAttributes("1.2.3", true, BuildType.OPEN_SOURCE, null,
107110
mockDependencyVersions("3.2.0-SNAPSHOT"), null);
108-
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb-docs", "3.2-SNAPSHOT");
109-
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb-javadoc", "3.2.x");
111+
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb", "3.2.0-SNAPSHOT");
112+
assertThat(attributes.get()).containsEntry("url-spring-data-mongodb-docs",
113+
"https://docs.spring.io/spring-data/mongodb/reference/3.2-SNAPSHOT");
114+
assertThat(attributes.get()).containsEntry("url-spring-data-mongodb-javadoc",
115+
"https://docs.spring.io/spring-data/mongodb/docs/3.2.x/api");
110116
}
111117

112118
@Test

0 commit comments

Comments
 (0)