This is an automated email from the ASF dual-hosted git repository.
jamesfredley pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
The following commit(s) were added to refs/heads/7.0.x by this push:
new ecc4a6ece6 Add matomo groovydocs 15133 (#15312)
ecc4a6ece6 is described below
commit ecc4a6ece648e51bba97ac4b206b1d0005077cc0
Author: Ajay9704 <[email protected]>
AuthorDate: Fri Jan 16 22:05:40 2026 +0530
Add matomo groovydocs 15133 (#15312)
* Fix #15163: remove grails-docs-core from docs build
* Add Apache/Matomo analytics to all Groovydoc-generated HTML (fix #15133)
* Update build.gradle
* Update build.gradle
* Update doc-config.gradle
* fixed build issues
* Update doc-config.gradle
* Update gradle.properties
---
buildSrc/build.gradle | 2 +-
gradle/docs-dependencies.gradle | 17 +++++++++++++++++
grails-data-docs/stage/build.gradle | 17 +++++++++++++++++
grails-data-hibernate5/docs/build.gradle | 17 +++++++++++++++++
grails-data-mongodb/docs/build.gradle | 17 +++++++++++++++++
grails-data-neo4j/docs/build.gradle | 17 +++++++++++++++++
grails-doc/build.gradle | 19 ++++++++++++++++++-
grails-forge/gradle/doc-config.gradle | 19 ++++++++++++++++++-
grails-gradle/gradle/docs-config.gradle | 17 +++++++++++++++++
9 files changed, 139 insertions(+), 3 deletions(-)
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 78faeaf43c..1a5a0825d3 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -34,4 +34,4 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-gradle-plugin'
implementation
"org.nosphere.apache.rat:org.nosphere.apache.rat.gradle.plugin:$apacheRatVersion"
implementation
"org.cyclonedx.bom:org.cyclonedx.bom.gradle.plugin:$gradleCycloneDxPluginVersion"
-}
\ No newline at end of file
+}
diff --git a/gradle/docs-dependencies.gradle b/gradle/docs-dependencies.gradle
index 9e62c93263..df4244f39c 100644
--- a/gradle/docs-dependencies.gradle
+++ b/gradle/docs-dependencies.gradle
@@ -61,6 +61,23 @@ tasks.withType(Groovydoc).configureEach { Groovydoc gdoc ->
gdoc.processScripts = false
gdoc.noTimestamp = true
gdoc.noVersionStamp = false
+ gdoc.footer = '''<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '79']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code -->'''
doFirst {
def gebVersion = resolveProjectVersion('geb-spock')
diff --git a/grails-data-docs/stage/build.gradle
b/grails-data-docs/stage/build.gradle
index 6d3c92d1d3..b5d71cc03a 100644
--- a/grails-data-docs/stage/build.gradle
+++ b/grails-data-docs/stage/build.gradle
@@ -25,6 +25,23 @@ apply from:
rootProject.layout.projectDirectory.file('gradle/docs-dependencies.g
combinedGroovydoc.configure { Groovydoc task ->
task.windowTitle = "Grails Data Mapping API - ${projectVersion}"
task.docTitle = "Grails Data Mapping API - ${projectVersion}"
+ task.footer = '''<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '79']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code -->'''
Set<Project> docProjects = rootProject.subprojects.findAll {
it.name in [
diff --git a/grails-data-hibernate5/docs/build.gradle
b/grails-data-hibernate5/docs/build.gradle
index a28ff759f4..aed5772187 100644
--- a/grails-data-hibernate5/docs/build.gradle
+++ b/grails-data-hibernate5/docs/build.gradle
@@ -96,6 +96,23 @@ tasks.withType(Groovydoc).configureEach {
.collect { ":${it.name}:groovydoc" })
it.docTitle = "GORM for Hibernate 5 - $project.version"
+ it.footer = '''<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '79']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code -->'''
def sourceFiles = coreProjects.collect {
rootProject.layout.projectDirectory.files("$it/src/main/groovy")
diff --git a/grails-data-mongodb/docs/build.gradle
b/grails-data-mongodb/docs/build.gradle
index 04ccf12524..89cfce4530 100644
--- a/grails-data-mongodb/docs/build.gradle
+++ b/grails-data-mongodb/docs/build.gradle
@@ -105,6 +105,23 @@ tasks.withType(Groovydoc).configureEach { Groovydoc
groovydoc ->
.findAll { it.findProperty('gormApiDocs') }
.collect { ":${it.name}:groovydoc" })
groovydoc.docTitle = "GORM for MongoDB - $project.version"
+ groovydoc.footer = '''<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '79']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code -->'''
def sourceFiles = coreProjects.collect {
layout.projectDirectory.files("$it/src/main/groovy")
diff --git a/grails-data-neo4j/docs/build.gradle
b/grails-data-neo4j/docs/build.gradle
index 1d420bb7cc..783d22faa2 100644
--- a/grails-data-neo4j/docs/build.gradle
+++ b/grails-data-neo4j/docs/build.gradle
@@ -125,6 +125,23 @@ task cleanAsciidoc(type: Delete, dependsOn: copyDocs) {
tasks.withType(Groovydoc) {
dependsOn(fetchSource)
docTitle = "GORM for Neo4j - ${project.version}"
+ footer = '''<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '79']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code -->'''
destinationDir = project.file("build/docs/api")
def files
diff --git a/grails-doc/build.gradle b/grails-doc/build.gradle
index a99f19d83e..1802c28395 100644
--- a/grails-doc/build.gradle
+++ b/grails-doc/build.gradle
@@ -63,6 +63,23 @@ apply from:
rootProject.layout.projectDirectory.file('gradle/docs-dependencies.g
combinedGroovydoc.configure { Groovydoc gdoc ->
gdoc.windowTitle = "Grails $projectVersion"
gdoc.docTitle = "Grails $projectVersion"
+ gdoc.footer = '''<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '79']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code -->'''
def docProjects = rootProject.subprojects
.findAll { it.findProperty('includeInApiDocs') }
@@ -309,4 +326,4 @@ artifacts {
// the dependencies are only used for resolving versions from the bom
tasks.withType(Jar).configureEach {
enabled = false
-}
\ No newline at end of file
+}
diff --git a/grails-forge/gradle/doc-config.gradle
b/grails-forge/gradle/doc-config.gradle
index b3f5cfeb89..d7b0eaf7fb 100644
--- a/grails-forge/gradle/doc-config.gradle
+++ b/grails-forge/gradle/doc-config.gradle
@@ -36,10 +36,27 @@ tasks.withType(Groovydoc).configureEach {
classpath += project.configurations.documentation
windowTitle = "${project.findProperty('pomArtifactId') ?: project.name} -
$projectVersion"
docTitle = "${project.findProperty('pomArtifactId') ?: project.name} -
$projectVersion"
+ footer = '''<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '79']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code -->'''
access = GroovydocAccess.PROTECTED
includeAuthor = false
includeMainForScripts = false
processScripts = false
noTimestamp = true
noVersionStamp = false
-}
\ No newline at end of file
+}
diff --git a/grails-gradle/gradle/docs-config.gradle
b/grails-gradle/gradle/docs-config.gradle
index e065fa8ab7..be2aaf4f1c 100644
--- a/grails-gradle/gradle/docs-config.gradle
+++ b/grails-gradle/gradle/docs-config.gradle
@@ -52,6 +52,23 @@ groovydocTask.configure { Groovydoc it ->
it.processScripts = false
it.noTimestamp = true
it.noVersionStamp = false
+ it.footer = '''<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '79']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code -->'''
it.destinationDir = project.file('build/docs/api')
}