diff --git a/release-tools/src/main/java/org/springframework/data/release/model/DocumentationMetadata.java b/release-tools/src/main/java/org/springframework/data/release/model/DocumentationMetadata.java index ce4b079..6b4e3e3 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/DocumentationMetadata.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/DocumentationMetadata.java @@ -29,7 +29,7 @@ public class DocumentationMetadata { private static String DOCS_BASE = "https://docs.spring.io/spring-data/%s/docs/%s"; private static String DOCS = DOCS_BASE.concat("/reference/html/"); - private static String JAVADOC = DOCS_BASE.concat("/api"); + private static String JAVADOC = DOCS_BASE.concat("/api/"); Project project; ArtifactVersion version; @@ -41,9 +41,15 @@ public class DocumentationMetadata { */ public String getApiDocUrl(Train train) { - return version.isSnapshotVersion() || Projects.BUILD.equals(project) // - ? "" // - : String.format(JAVADOC, project.getName().toLowerCase(Locale.US), getVersion(train)); + if (version.isSnapshotVersion()) { + return ""; + } + + if (Projects.BUILD.equals(project)) { // Report Commons Docs for Spring Data Build + return String.format(JAVADOC, Projects.COMMONS.getName().toLowerCase(Locale.US), version.toString()); + } + + return String.format(JAVADOC, project.getName().toLowerCase(Locale.US), getVersion(train)); } /** @@ -53,9 +59,15 @@ public class DocumentationMetadata { */ public String getReferenceDocUrl(Train train) { - return version.isSnapshotVersion() || Projects.BUILD.equals(project) // - ? "" // - : String.format(DOCS, project.getName().toLowerCase(Locale.US), getVersion(train)); + if (version.isSnapshotVersion()) { + return ""; + } + + if (Projects.BUILD.equals(project)) { // Report Commons Docs for Spring Data Build + return String.format(DOCS, Projects.COMMONS.getName().toLowerCase(Locale.US), version.toString()); + } + + return String.format(DOCS, project.getName().toLowerCase(Locale.US), getVersion(train)); } public String getVersion(Train train) { diff --git a/release-tools/src/main/java/org/springframework/data/release/sagan/DefaultSaganClient.java b/release-tools/src/main/java/org/springframework/data/release/sagan/DefaultSaganClient.java index 848bc2d..5a9805f 100644 --- a/release-tools/src/main/java/org/springframework/data/release/sagan/DefaultSaganClient.java +++ b/release-tools/src/main/java/org/springframework/data/release/sagan/DefaultSaganClient.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.stream.Collectors; import org.springframework.data.release.model.Project; +import org.springframework.data.release.model.Projects; import org.springframework.data.release.utils.Logger; import org.springframework.web.client.RestOperations; @@ -82,6 +83,10 @@ class DefaultSaganClient implements SaganClient { @Override public void updateProjectMetadata(Project project, MaintainedVersions versions) { + if (project != Projects.BUILD) { + return; + } + URI resource = properties.getProjectReleasesResource(project); String versionsString = versions.stream()// diff --git a/release-tools/src/test/java/org/springframework/data/release/model/DocumentationMetadataUnitTests.java b/release-tools/src/test/java/org/springframework/data/release/model/DocumentationMetadataUnitTests.java new file mode 100644 index 0000000..ec0eada --- /dev/null +++ b/release-tools/src/test/java/org/springframework/data/release/model/DocumentationMetadataUnitTests.java @@ -0,0 +1,50 @@ +/* + * Copyright 2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.data.release.model; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +/** + * Unit tests for {@link DocumentationMetadata}. + * + * @author Mark Paluch + */ +class DocumentationMetadataUnitTests { + + @Test // gh-167 + void shouldReportCorrectDocumentationUrls() { + + DocumentationMetadata metadata = DocumentationMetadata.of(Projects.MONGO_DB, ArtifactVersion.of("3.1.0")); + + assertThat(metadata.getApiDocUrl(ReleaseTrains.OCKHAM)) + .isEqualTo("https://docs.spring.io/spring-data/mongodb/docs/3.1.0/api/"); + assertThat(metadata.getReferenceDocUrl(ReleaseTrains.OCKHAM)) + .isEqualTo("https://docs.spring.io/spring-data/mongodb/docs/3.1.0/reference/html/"); + } + + @Test // gh-167 + void shouldReportCorrectCommonsDocumentationUrlsForBuildProject() { + + DocumentationMetadata metadata = DocumentationMetadata.of(Projects.BUILD, ArtifactVersion.of("3.1.0")); + + assertThat(metadata.getApiDocUrl(ReleaseTrains.OCKHAM)) + .isEqualTo("https://docs.spring.io/spring-data/commons/docs/3.1.0/api/"); + assertThat(metadata.getReferenceDocUrl(ReleaseTrains.OCKHAM)) + .isEqualTo("https://docs.spring.io/spring-data/commons/docs/3.1.0/reference/html/"); + } +}