Skip to content

Commit 726ee27

Browse files
committed
Merge branch '3.2.x' into 3.3.x
Closes gh-42269
2 parents 3649852 + 5bddca8 commit 726ee27

File tree

7 files changed

+133
-61
lines changed

7 files changed

+133
-61
lines changed

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@
1919
import java.io.IOException;
2020
import java.io.InputStream;
2121
import java.io.UncheckedIOException;
22+
import java.util.Arrays;
2223
import java.util.Collections;
2324
import java.util.LinkedHashMap;
2425
import java.util.List;
2526
import java.util.Map;
2627
import java.util.Properties;
28+
import java.util.stream.Collectors;
2729

2830
import org.gradle.api.Project;
2931

@@ -130,13 +132,21 @@ private void addSpringDataDependencyVersion(Map<String, String> attributes, Stri
130132
}
131133

132134
private void addSpringDataDependencyVersion(Map<String, String> attributes, String name, String artifactId) {
133-
addDependencyVersion(attributes, name, "org.springframework.data:" + artifactId);
135+
String version = getVersion("org.springframework.data:" + artifactId);
136+
String majorMinor = Arrays.stream(version.split("\\.")).limit(2).collect(Collectors.joining("."));
137+
String antoraVersion = version.endsWith(DASH_SNAPSHOT) ? majorMinor + DASH_SNAPSHOT : majorMinor;
138+
attributes.put("version-" + name + "-docs", antoraVersion);
139+
attributes.put("version-" + name + "-javadoc", majorMinor + ".x");
134140
}
135141

136142
private void addDependencyVersion(Map<String, String> attributes, String name, String groupAndArtifactId) {
143+
attributes.put("version-" + name, getVersion(groupAndArtifactId));
144+
}
145+
146+
private String getVersion(String groupAndArtifactId) {
137147
String version = this.dependencyVersions.get(groupAndArtifactId);
138148
Assert.notNull(version, () -> "No version found for " + groupAndArtifactId);
139-
attributes.put("version-" + name, version);
149+
return version;
140150
}
141151

142152
private void addArtifactAttributes(Map<String, String> attributes) {

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,15 @@ public String forAntora() {
253253
return result;
254254
}
255255

256+
public String forMajorMinorGeneration() {
257+
String[] parts = parts();
258+
String result = parts[0] + "." + parts[1] + ".x";
259+
if (toString().endsWith("SNAPSHOT")) {
260+
result += "-SNAPSHOT";
261+
}
262+
return result;
263+
}
264+
256265
private String[] parts() {
257266
return toString().split("[.-]");
258267
}

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

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,33 +33,33 @@ url-paketo-docs=https://paketo.io/docs
3333
url-paketo-docs-java-buildpack={url-paketo-docs}/buildpacks/language-family-buildpacks/java
3434
url-spring-boot-for-apache-geode-docs=https://docs.spring.io/spring-boot-data-geode-build/2.0.x/reference/html5
3535
url-spring-boot-for-apache-geode-site=https://github.com/spring-projects/spring-boot-data-geode
36-
url-spring-data-cassandra-javadoc=https://docs.spring.io/spring-data/cassandra/docs/{version-spring-data-cassandra}/api
36+
url-spring-data-cassandra-javadoc=https://docs.spring.io/spring-data/cassandra/docs/{version-spring-data-cassandra-javadoc}/api
3737
url-spring-data-cassandra-site=https://spring.io/projects/spring-data-cassandra
38-
url-spring-data-commons-javadoc=https://docs.spring.io/spring-data/commons/docs/{version-spring-data-commons}/api
39-
url-spring-data-couchbase-docs=https://docs.spring.io/spring-data/couchbase/reference/{version-spring-data-couchbase}
38+
url-spring-data-commons-javadoc=https://docs.spring.io/spring-data/commons/docs/{version-spring-data-commons-javadoc}/api
39+
url-spring-data-couchbase-docs=https://docs.spring.io/spring-data/couchbase/reference/{version-spring-data-couchbase-docs}
4040
url-spring-data-couchbase-site=https://spring.io/projects/spring-data-couchbase
41-
url-spring-data-couchbase-javadoc=https://docs.spring.io/spring-data/couchbase/docs/{version-spring-data-couchbase}/api
42-
url-spring-data-elasticsearch-javadoc=https://docs.spring.io/spring-data/elasticsearch/docs/{version-spring-data-elasticsearch}/api
43-
url-spring-data-elasticsearch-docs=https://docs.spring.io/spring-data/elasticsearch/reference/{version-spring-data-elasticsearch}
41+
url-spring-data-couchbase-javadoc=https://docs.spring.io/spring-data/couchbase/docs/{version-spring-data-couchbase-javadoc}/api
42+
url-spring-data-elasticsearch-javadoc=https://docs.spring.io/spring-data/elasticsearch/docs/{version-spring-data-elasticsearch-javadoc}/api
43+
url-spring-data-elasticsearch-docs=https://docs.spring.io/spring-data/elasticsearch/reference/{version-spring-data-elasticsearch-docs}
4444
url-spring-data-elasticsearch-site=https://spring.io/projects/spring-data-elasticsearch
4545
url-spring-data-envers-site=https://spring.io/projects/spring-data-envers
4646
url-spring-data-gemfire-site=https://spring.io/projects/spring-data-gemfire
4747
url-spring-data-geode-site=https://spring.io/projects/spring-data-geode
48-
url-spring-data-jdbc-docs=https://docs.spring.io/spring-data/relational/reference/{version-spring-data-jdbc}
49-
url-spring-data-jpa-javadoc=https://docs.spring.io/spring-data/jpa/docs/{version-spring-data-jpa}/api
48+
url-spring-data-jdbc-docs=https://docs.spring.io/spring-data/relational/reference/{version-spring-data-jdbc-docs}
49+
url-spring-data-jpa-javadoc=https://docs.spring.io/spring-data/jpa/docs/{version-spring-data-jpa-javadoc}/api
5050
url-spring-data-jpa-site=https://spring.io/projects/spring-jpa
51-
url-spring-data-jpa-docs=https://docs.spring.io/spring-data/jpa/reference/{version-spring-data-jpa}
51+
url-spring-data-jpa-docs=https://docs.spring.io/spring-data/jpa/reference/{version-spring-data-jpa-docs}
5252
url-spring-data-ldap-site=https://spring.io/projects/spring-data-ldap
53-
url-spring-data-mongodb-javadoc=https://docs.spring.io/spring-data/mongodb/docs/{version-spring-data-mongodb}/api
53+
url-spring-data-mongodb-javadoc=https://docs.spring.io/spring-data/mongodb/docs/{version-spring-data-mongodb-javadoc}/api
5454
url-spring-data-mongodb-site=https://spring.io/projects/spring-data-mongodb
55-
url-spring-data-mongodb-docs=https://docs.spring.io/spring-data/mongodb/reference/{version-spring-data-mongodb}
56-
url-spring-data-neo4j-javadoc=https://docs.spring.io/spring-data/neo4j/docs/{version-spring-data-neo4j}/api
57-
url-spring-data-neo4j-docs=https://docs.spring.io/spring-data/neo4j/reference/{version-spring-data-neo4j}
55+
url-spring-data-mongodb-docs=https://docs.spring.io/spring-data/mongodb/reference/{version-spring-data-mongodb-docs}
56+
url-spring-data-neo4j-javadoc=https://docs.spring.io/spring-data/neo4j/docs/{version-spring-data-neo4j-javadoc}/api
57+
url-spring-data-neo4j-docs=https://docs.spring.io/spring-data/neo4j/reference/{version-spring-data-neo4j-docs}
5858
url-spring-data-neo4j-site=https://spring.io/projects/spring-data-neo4j
59-
url-spring-data-r2dbc-javadoc=https://docs.spring.io/spring-data/r2dbc/docs/{version-spring-data-r2dbc}/api
60-
url-spring-data-r2dbc-docs=https://docs.spring.io/spring-data/relational/reference/{version-spring-data-r2dbc}
59+
url-spring-data-r2dbc-javadoc=https://docs.spring.io/spring-data/r2dbc/docs/{version-spring-data-r2dbc-javadoc}/api
60+
url-spring-data-r2dbc-docs=https://docs.spring.io/spring-data/relational/reference/{version-spring-data-r2dbc-docs}
6161
url-spring-data-redis-site=https://spring.io/projects/spring-data-redis
62-
url-spring-data-rest-javadoc=https://docs.spring.io/spring-data/rest/docs/{version-spring-data-rest}/api
62+
url-spring-data-rest-javadoc=https://docs.spring.io/spring-data/rest/docs/{version-spring-data-rest-javadoc}/api
6363
url-spring-data-site=https://spring.io/projects/spring-data
6464
url-jackson-annotations=https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-annotations/{version-jackson-annotations}
6565
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: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
* Tests for {@link AntoraAsciidocAttributes}.
3939
*
4040
* @author Phillip Webb
41+
* @author Stephane Nicoll
4142
*/
4243
class AntoraAsciidocAttributesTests {
4344

@@ -78,10 +79,19 @@ void versionReferenceFromLibrary() {
7879
}
7980

8081
@Test
81-
void versionReferenceFromSpringDataDependencyVersion() {
82+
void versionReferenceFromSpringDataDependencyReleaseVersion() {
8283
AntoraAsciidocAttributes attributes = new AntoraAsciidocAttributes("1.2.3", true, null,
83-
mockDependencyVersions(), null);
84-
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb", "1.2.3");
84+
mockDependencyVersions("3.2.5"), null);
85+
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb-docs", "3.2");
86+
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb-javadoc", "3.2.x");
87+
}
88+
89+
@Test
90+
void versionReferenceFromSpringDataDependencySnapshotVersion() {
91+
AntoraAsciidocAttributes attributes = new AntoraAsciidocAttributes("1.2.3", true, null,
92+
mockDependencyVersions("3.2.0-SNAPSHOT"), null);
93+
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb-docs", "3.2-SNAPSHOT");
94+
assertThat(attributes.get()).containsEntry("version-spring-data-mongodb-javadoc", "3.2.x");
8595
}
8696

8797
@Test
@@ -173,29 +183,33 @@ private Library mockLibrary(Map<String, Function<LibraryVersion, String>> links)
173183
}
174184

175185
private Map<String, String> mockDependencyVersions() {
186+
return mockDependencyVersions("1.2.3");
187+
}
188+
189+
private Map<String, String> mockDependencyVersions(String version) {
176190
Map<String, String> versions = new LinkedHashMap<>();
177-
addMockSpringDataVersion(versions, "spring-data-commons");
178-
addMockSpringDataVersion(versions, "spring-data-cassandra");
179-
addMockSpringDataVersion(versions, "spring-data-couchbase");
180-
addMockSpringDataVersion(versions, "spring-data-elasticsearch");
181-
addMockSpringDataVersion(versions, "spring-data-jdbc");
182-
addMockSpringDataVersion(versions, "spring-data-jpa");
183-
addMockSpringDataVersion(versions, "spring-data-mongodb");
184-
addMockSpringDataVersion(versions, "spring-data-neo4j");
185-
addMockSpringDataVersion(versions, "spring-data-r2dbc");
186-
addMockSpringDataVersion(versions, "spring-data-rest-core");
187-
addMockJacksonVersion(versions, "jackson-annotations");
188-
addMockJacksonVersion(versions, "jackson-core");
189-
addMockJacksonVersion(versions, "jackson-databind");
191+
addMockSpringDataVersion(versions, "spring-data-commons", version);
192+
addMockSpringDataVersion(versions, "spring-data-cassandra", version);
193+
addMockSpringDataVersion(versions, "spring-data-couchbase", version);
194+
addMockSpringDataVersion(versions, "spring-data-elasticsearch", version);
195+
addMockSpringDataVersion(versions, "spring-data-jdbc", version);
196+
addMockSpringDataVersion(versions, "spring-data-jpa", version);
197+
addMockSpringDataVersion(versions, "spring-data-mongodb", version);
198+
addMockSpringDataVersion(versions, "spring-data-neo4j", version);
199+
addMockSpringDataVersion(versions, "spring-data-r2dbc", version);
200+
addMockSpringDataVersion(versions, "spring-data-rest-core", version);
201+
addMockJacksonVersion(versions, "jackson-annotations", version);
202+
addMockJacksonVersion(versions, "jackson-core", version);
203+
addMockJacksonVersion(versions, "jackson-databind", version);
190204
return versions;
191205
}
192206

193-
private void addMockSpringDataVersion(Map<String, String> versions, String artifactId) {
194-
versions.put("org.springframework.data:" + artifactId, "1.2.3");
207+
private void addMockSpringDataVersion(Map<String, String> versions, String artifactId, String version) {
208+
versions.put("org.springframework.data:" + artifactId, version);
195209
}
196210

197-
private void addMockJacksonVersion(Map<String, String> versions, String artifactId) {
198-
versions.put("com.fasterxml.jackson.core:" + artifactId, "2.3.4");
211+
private void addMockJacksonVersion(Map<String, String> versions, String artifactId, String version) {
212+
versions.put("com.fasterxml.jackson.core:" + artifactId, version);
199213
}
200214

201215
}

buildSrc/src/test/java/org/springframework/boot/build/bom/LibraryTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,16 @@ void getLinkRootNameWhenSpecified() {
7272
assertThat(library.getLinkRootName()).isEqualTo("spring-data");
7373
}
7474

75+
@Test
76+
void toMajorMinorGenerationWithRelease() {
77+
LibraryVersion version = new LibraryVersion(DependencyVersion.parse("1.2.3"));
78+
assertThat(version.forMajorMinorGeneration()).isEqualTo("1.2.x");
79+
}
80+
81+
@Test
82+
void toMajorMinorGenerationWithSnapshot() {
83+
LibraryVersion version = new LibraryVersion(DependencyVersion.parse("2.0.0-SNAPSHOT"));
84+
assertThat(version.forMajorMinorGeneration()).isEqualTo("2.0.x-SNAPSHOT");
85+
}
86+
7587
}

0 commit comments

Comments
 (0)