You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by ja...@apache.org on 2025/07/23 22:46:08 UTC
(grails-core) 01/01: Enhance CreateReleaseDropDownTask so it can be used by grails-spring-security
This is an automated email from the ASF dual-hosted git repository.
jamesfredley pushed a commit to branch enhance-create-release-drop-down
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 5ac1db4f69e591a4a89601ef81954c83d9db09e3
Author: James Fredley <ja...@users.noreply.github.com>
AuthorDate: Wed Jul 23 18:45:52 2025 -0400
Enhance CreateReleaseDropDownTask so it can be used by grails-spring-security
---
.../doc/dropdown/CreateReleaseDropDownTask.groovy | 22 ++++++++++++++++------
.../groovy/grails/doc/dropdown/Snapshot.groovy | 3 ++-
2 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/grails-gradle/docs-core/src/main/groovy/grails/doc/dropdown/CreateReleaseDropDownTask.groovy b/grails-gradle/docs-core/src/main/groovy/grails/doc/dropdown/CreateReleaseDropDownTask.groovy
index d3c1b2d49b..235d139f88 100644
--- a/grails-gradle/docs-core/src/main/groovy/grails/doc/dropdown/CreateReleaseDropDownTask.groovy
+++ b/grails-gradle/docs-core/src/main/groovy/grails/doc/dropdown/CreateReleaseDropDownTask.groovy
@@ -42,7 +42,8 @@ import java.nio.file.attribute.BasicFileAttributes
@CacheableTask
abstract class CreateReleaseDropDownTask extends DefaultTask {
- private static final String GRAILS_DOC_BASE_URL = "https://docs.grails.org"
+ @Input
+ final Property<String> docBaseUrl
@Input
final Property<String> githubSlug
@@ -68,6 +69,12 @@ abstract class CreateReleaseDropDownTask extends DefaultTask {
@OutputDirectory
final DirectoryProperty modifiedPagesDirectory
+ @Input
+ final Property<String> versionHtml
+
+ @Input
+ final Property<String> additionalPath
+
@Inject
CreateReleaseDropDownTask(ObjectFactory objects, Project project) {
group = 'documentation'
@@ -80,6 +87,9 @@ abstract class CreateReleaseDropDownTask extends DefaultTask {
modifiedPagesDirectory = objects.directoryProperty().convention(project.layout.buildDirectory.dir("modified-pages"))
gitTags = objects.fileProperty().convention(project.layout.buildDirectory.file('git-tags.txt'))
minimumVersion = objects.property(SoftwareVersion).convention(new SoftwareVersion(major: 5))
+ docBaseUrl = objects.property(String).convention("https://docs.grails.org")
+ versionHtml = objects.property(String).convention("<p><strong>Version:</strong> " + projectVersion.get() + "</p>")
+ additionalPath = objects.property(String).convention("")
}
/**
@@ -98,7 +108,6 @@ abstract class CreateReleaseDropDownTask extends DefaultTask {
List<SoftwareVersion> softwareVersions = parseSoftwareVersions(projectVersion, result)
logger.lifecycle("Detected Project Version: ${projectVersion} and Software Versions: ${softwareVersions*.versionText.join(',')}")
- final String versionHtml = "<p><strong>Version:</strong> ${projectVersion}</p>"
Path guideDirectory = sourceDocsDirectory.get().asFile.toPath()
Map<String, Path> filesToAddDropdown = filesToAddDropdowns.collectEntries { [it.absolutePath, it.toPath()] }
@@ -121,8 +130,8 @@ abstract class CreateReleaseDropDownTask extends DefaultTask {
String pageRelativePath = guideDirectory.toFile().relativePath(file.toFile())
String selectHtml = select(options(projectVersion, pageRelativePath, softwareVersions))
- final String versionWithSelectHtml = "<p><strong>Version:</strong> <span style='width:100px;display:inline-block;'>${selectHtml}</span></p>"
- targetFile.toFile().text = file.text.replace(versionHtml, versionWithSelectHtml)
+ final String versionWithSelectHtml = "<p><strong>Version:</strong> <span style='display:inline-block;'>${selectHtml}</span></p>"
+ targetFile.toFile().text = file.text.replace(versionHtml.get(), versionWithSelectHtml)
filesToAddDropdown.remove(absolutePath)
} else {
@@ -148,13 +157,14 @@ abstract class CreateReleaseDropDownTask extends DefaultTask {
*/
private List<String> options(String version, String pageRelativePath, List<SoftwareVersion> softwareVersions) {
List<String> options = []
- final String snapshotHref = GRAILS_DOC_BASE_URL + "/snapshot/" + pageRelativePath
+
+ final String snapshotHref = docBaseUrl.get() + "/snapshot/" + additionalPath.get() + pageRelativePath
options << option(snapshotHref, "SNAPSHOT", version.endsWith("-SNAPSHOT"))
softwareVersions
.forEach { softwareVersion ->
final String versionName = softwareVersion?.versionText
- final String href = GRAILS_DOC_BASE_URL + "/" + (versionName?.endsWith("-SNAPSHOT") ? 'snapshot' : versionName) + "/" + pageRelativePath
+ final String href = docBaseUrl.get() + "/" + (versionName?.endsWith("-SNAPSHOT") ? "snapshot" : versionName) + "/" + additionalPath.get() + pageRelativePath
options << option(href, versionName, version == versionName)
}
diff --git a/grails-gradle/docs-core/src/main/groovy/grails/doc/dropdown/Snapshot.groovy b/grails-gradle/docs-core/src/main/groovy/grails/doc/dropdown/Snapshot.groovy
index 9e4a199bff..9c1434736c 100644
--- a/grails-gradle/docs-core/src/main/groovy/grails/doc/dropdown/Snapshot.groovy
+++ b/grails-gradle/docs-core/src/main/groovy/grails/doc/dropdown/Snapshot.groovy
@@ -20,7 +20,8 @@
package grails.doc.dropdown
-class Snapshot implements Comparable<Snapshot> {
+class Snapshot implements Comparable<Snapshot>, Serializable {
+ private static final long serialVersionUID = 1L;
private String text