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 2026/04/07 18:01:58 UTC

(grails-core) branch spring-boot-4 updated: Fix Micronaut 5 JDK 21 build issues: groovydoc, SBOM, asset-pipeline

This is an automated email from the ASF dual-hosted git repository.

jamesfredley pushed a commit to branch spring-boot-4
in repository https://gitbox.apache.org/repos/asf/grails-core.git


The following commit(s) were added to refs/heads/spring-boot-4 by this push:
     new 6cba542dde Fix Micronaut 5 JDK 21 build issues: groovydoc, SBOM, asset-pipeline
6cba542dde is described below

commit 6cba542dde02e72af285442246a732f86e3300fb
Author: James Fredley <ja...@users.noreply.github.com>
AuthorDate: Tue Apr 7 14:01:47 2026 -0400

    Fix Micronaut 5 JDK 21 build issues: groovydoc, SBOM, asset-pipeline
    
    Disable groovydoc for Micronaut modules since the Groovydoc task does
    not support Gradle toolchains and fails when loading JDK 21 bytecode
    on a JDK 17 Gradle daemon.
    
    Add coherence-bom 25.03.2 to SbomPlugin license mapping (UPL-1.0) for
    the CycloneDX SBOM generation that comes in via Micronaut 5 transitives.
    
    Disable asset-pipeline compilation on the micronaut test example due to
    a pre-existing NPE in asset-pipeline on JDK 21.
    
    Set DuplicatesStrategy.EXCLUDE on the issue-11767 plugin jar to handle
    duplicate spring-configuration-metadata.json from Micronaut annotation
    processors running in both Java and Groovy compilation outputs.
    
    Assisted-by: Claude Code <Cl...@Claude.ai>
---
 .../main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy   |  1 +
 grails-micronaut/build.gradle                                  |  4 ++++
 grails-test-examples/issue-11767/build.gradle                  |  4 ++++
 grails-test-examples/micronaut-groovy-only/build.gradle        |  4 ++++
 grails-test-examples/micronaut/build.gradle                    | 10 ++++++++++
 grails-test-examples/plugins/issue-11767/build.gradle          |  4 ++++
 grails-test-examples/plugins/micronaut-singleton/build.gradle  |  4 ++++
 7 files changed, 31 insertions(+)

diff --git a/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy b/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy
index 1ccaf89dee..581d030188 100644
--- a/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy
+++ b/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy
@@ -93,6 +93,7 @@ class SbomPlugin implements Plugin<Project> {
             'pkg:maven/org.jline/jline@3.23.0?type=jar'                       : 'BSD-2-Clause', // maps incorrectly because of https://github.com/CycloneDX/cyclonedx-core-java/issues/205
             'pkg:maven/org.liquibase.ext/liquibase-hibernate5@4.27.0?type=jar': 'Apache-2.0', // maps incorrectly because of https://github.com/liquibase/liquibase/issues/2445 & the base pom does not define a license
             'pkg:maven/com.oracle.coherence.ce/coherence-bom@25.03.1?type=pom': 'UPL-1.0', // does not have map based on license id
+            'pkg:maven/com.oracle.coherence.ce/coherence-bom@25.03.2?type=pom': 'UPL-1.0', // does not have map based on license id
             'pkg:maven/com.oracle.coherence.ce/coherence-bom@22.06.2?type=pom': 'UPL-1.0', // does not have map based on license id
             'pkg:maven/opensymphony/sitemesh@2.6.0?type=jar'                  : 'OpenSymphony', // custom license approved by legal LEGAL-707
             'pkg:maven/org.jruby/jzlib@1.1.5?type=jar'                        : 'BSD-3-Clause'// https://web.archive.org/web/20240822213507/http://www.jcraft.com/jzlib/LICENSE.txt shows it's a 3 clause
diff --git a/grails-micronaut/build.gradle b/grails-micronaut/build.gradle
index e7c6c80eb0..580f3b5375 100644
--- a/grails-micronaut/build.gradle
+++ b/grails-micronaut/build.gradle
@@ -42,6 +42,10 @@ java {
     }
 }
 
+tasks.withType(Groovydoc).configureEach {
+    enabled = false
+}
+
 dependencies {
     compileOnlyApi platform("io.micronaut.platform:micronaut-platform:$micronautPlatformVersion")
     compileOnlyApi 'io.micronaut:micronaut-inject-groovy'
diff --git a/grails-test-examples/issue-11767/build.gradle b/grails-test-examples/issue-11767/build.gradle
index 1844269c90..af0482e01f 100644
--- a/grails-test-examples/issue-11767/build.gradle
+++ b/grails-test-examples/issue-11767/build.gradle
@@ -34,6 +34,10 @@ java {
     }
 }
 
+tasks.withType(Groovydoc).configureEach {
+    enabled = false
+}
+
 dependencies {
     implementation platform(project(':grails-bom'))
 
diff --git a/grails-test-examples/micronaut-groovy-only/build.gradle b/grails-test-examples/micronaut-groovy-only/build.gradle
index 7a23f2cc15..ba05f47580 100644
--- a/grails-test-examples/micronaut-groovy-only/build.gradle
+++ b/grails-test-examples/micronaut-groovy-only/build.gradle
@@ -34,6 +34,10 @@ java {
     }
 }
 
+tasks.withType(Groovydoc).configureEach {
+    enabled = false
+}
+
 // This module intentionally has NO annotationProcessor dependencies.
 // It validates that a Groovy-only Grails application works with
 // grails-micronaut without explicit Java annotation processor configuration.
diff --git a/grails-test-examples/micronaut/build.gradle b/grails-test-examples/micronaut/build.gradle
index 7a2adf87a6..788f124ff1 100644
--- a/grails-test-examples/micronaut/build.gradle
+++ b/grails-test-examples/micronaut/build.gradle
@@ -35,8 +35,18 @@ java {
         languageVersion = JavaLanguageVersion.of(21)
     }
 }
+
+tasks.withType(Groovydoc).configureEach {
+    enabled = false
+}
+
 apply plugin: 'cloud.wondrify.asset-pipeline'
 
+// TODO: BOOT4 - asset-pipeline throws NPE on JDK 21. Disable until asset-pipeline is fixed.
+tasks.named('assetCompile') {
+    enabled = false
+}
+
 // The grails-gsp Gradle plugin is not needed for running the functional tests.
 // It is applied as a smoke test to check that compiling gsp
 // for production does not fail during build task.
diff --git a/grails-test-examples/plugins/issue-11767/build.gradle b/grails-test-examples/plugins/issue-11767/build.gradle
index f998e82d57..b5f2005ed2 100644
--- a/grails-test-examples/plugins/issue-11767/build.gradle
+++ b/grails-test-examples/plugins/issue-11767/build.gradle
@@ -34,6 +34,10 @@ java {
     }
 }
 
+tasks.withType(Groovydoc).configureEach {
+    enabled = false
+}
+
 tasks.withType(Jar).configureEach {
     duplicatesStrategy = DuplicatesStrategy.EXCLUDE
 }
diff --git a/grails-test-examples/plugins/micronaut-singleton/build.gradle b/grails-test-examples/plugins/micronaut-singleton/build.gradle
index b46eaa4a21..87dcbe9e92 100644
--- a/grails-test-examples/plugins/micronaut-singleton/build.gradle
+++ b/grails-test-examples/plugins/micronaut-singleton/build.gradle
@@ -34,6 +34,10 @@ java {
     }
 }
 
+tasks.withType(Groovydoc).configureEach {
+    enabled = false
+}
+
 dependencies {
     implementation platform(project(':grails-bom'))