Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .sdkmanrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
java=17.0.18-librca
# Keep gradle version synced with gradle.properties (gradleToolingApiVersion), all gradle-wrapper.properties files,
# and grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
gradle=8.14.4
gradle=9.3.1

9 changes: 4 additions & 5 deletions build-logic/docs-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,9 @@ apply {
dependencies {
gradleConf gradleApi()

// grails-docs classes are used in Gradle builds,
// so we must compile with Groovy 3 until Gradle upgrades to Groovy 4.
compileOnly "org.codehaus.groovy:groovy:${GroovySystem.version}"
compileOnly "org.codehaus.groovy:groovy-ant:${GroovySystem.version}"
// grails-docs classes are used in Gradle builds, using Gradle's embedded Groovy version
compileOnly "org.apache.groovy:groovy:${GroovySystem.version}"
compileOnly "org.apache.groovy:groovy-ant:${GroovySystem.version}"

api "org.apache.commons:commons-text:${gradleBomDependencyVersions['commons-text.version']}"
api "org.apache.ant:ant:${gradleBomDependencyVersions['ant.version']}"
Expand All @@ -56,7 +55,7 @@ dependencies {
transitive = false
}

testImplementation "org.codehaus.groovy:groovy-test-junit5:${GroovySystem.version}"
testImplementation "org.apache.groovy:groovy-test-junit5:${GroovySystem.version}"
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.12.2'
testImplementation 'org.junit.platform:junit-platform-runner:1.12.2'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.12.2'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
*/
package grails.doc.ant

import groovy.ant.AntBuilder
import org.apache.tools.ant.BuildException
import org.apache.tools.ant.Project
import org.apache.tools.ant.Task
Expand Down
2 changes: 1 addition & 1 deletion build-logic/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# and grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,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
Expand Down
2 changes: 1 addition & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ ext {
'byte-buddy.version' : '1.17.7',
'commons-text.version' : '1.13.1',
'directory-watcher.version' : '0.19.1',
'gradle-spock.version' : '2.3-groovy-3.0',
'gradle-spock.version' : '2.3-groovy-4.0',
'grails-publish-plugin.version' : '0.0.4',
'jansi.version' : '1.18',
'javaparser-core.version' : '3.27.0',
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ expectitCoreVersion=0.9.0
gparsVersion=1.2.1
# Keep gradle version synced with .sdkmanrc, all gradle-wrapper.properties files,
# and grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
gradleToolingApiVersion=8.14.4
gradleToolingApiVersion=9.3.1
hibernate5Version=5.6.15.Final
javassistVersion=3.30.2-GA
jnrPosixVersion=3.1.20
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# and grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
6 changes: 5 additions & 1 deletion grails-data-hibernate5/docs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,12 @@ ext {

configurations {
documentation {
canBeConsumed = false
canBeResolved = true
attributes {
attribute(Bundling.BUNDLING_ATTRIBUTE, (Bundling) (objects.named(Bundling, 'external')))
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
}
}
}
Expand Down
6 changes: 5 additions & 1 deletion grails-data-mongodb/docs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,12 @@ ext {

configurations {
documentation {
canBeConsumed = false
canBeResolved = true
attributes {
attribute(Bundling.BUNDLING_ATTRIBUTE, (Bundling) (objects.named(Bundling, 'external')))
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
}
}
}
Expand Down
12 changes: 8 additions & 4 deletions grails-data-neo4j/docs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,21 @@ apply plugin: 'org.asciidoctor.jvm.convert'

configurations {
documentation {
canBeConsumed = false
canBeResolved = true
attributes {
attribute(Bundling.BUNDLING_ATTRIBUTE, (Bundling) (objects.named(Bundling, 'external')))
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling, Bundling.EXTERNAL))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
}
}
}

dependencies {
documentation "org.fusesource.jansi:jansi:$jansiVersion"
documentation "org.codehaus.groovy:groovy"
documentation "org.codehaus.groovy:groovy-templates"
documentation "org.codehaus.groovy:groovy-dateutil"
documentation "org.apache.groovy:groovy"
documentation "org.apache.groovy:groovy-templates"
documentation "org.apache.groovy:groovy-dateutil"
documentation "com.github.javaparser:javaparser-core:$javaParserCoreVersion"
for (p in coreProjects) {
documentation "org.apache.grails:grails-datastore-$p:$datastoreVersion"
Expand Down
5 changes: 3 additions & 2 deletions grails-doc/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -318,8 +318,9 @@ tasks.register('dist', Zip).configure { Zip it ->
it.from(outputDir)
}

artifacts {
archives dist
// Make dist a direct dependency of assemble instead of using deprecated archives configuration
tasks.named('assemble').configure {
dependsOn(tasks.named('dist'))
}

// the groovy plugin is applied to this project, but we do not build a jar file since
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@

import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.internal.plugins.DslObject;
import org.gradle.api.plugins.ExtensionAware;
import org.gradle.api.plugins.JavaLibraryPlugin;
import org.gradle.api.plugins.JavaPluginConvention;
import org.gradle.api.plugins.JavaPluginExtension;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.SourceSetContainer;
import org.gradle.api.tasks.TaskProvider;
Expand Down Expand Up @@ -52,20 +52,20 @@ public void apply(Project project) {
project.getLayout().getBuildDirectory().dir("classes")
);

// Create own source set extension
SourceSetContainer sourceSets = project.getConvention().getPlugin(
JavaPluginConvention.class).getSourceSets();
// Create own source set extension using the modern JavaPluginExtension API
SourceSetContainer sourceSets = project.getExtensions()
.getByType(JavaPluginExtension.class).getSourceSets();
sourceSets.all(sourceSet -> processSourceSet(project, sourceSet, rockerConfig));

}

private static void processSourceSet(Project project, SourceSet sourceSet,
RockerConfiguration rockerConfig) {
// for each source set we will:
// 1) Add a new 'rocker' property to the source set
// 1) Add a new 'rocker' extension to the source set
RockerSourceSetProperty rockerProperty
= new RockerSourceSetProperty(project);
new DslObject(sourceSet).getConvention().getPlugins().put(
((ExtensionAware) sourceSet).getExtensions().add(
"rocker", rockerProperty);

// 2) Create a rocker task for this sourceSet following the gradle
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
import org.gradle.api.Action;
import org.gradle.api.Project;
import org.gradle.api.tasks.SourceSet;
import org.gradle.util.ConfigureUtil;
import org.gradle.util.internal.ClosureBackedAction;

import java.io.File;
import java.util.Set;

/**
* The rocker property added to the {@link SourceSet}.
Expand All @@ -45,7 +48,7 @@ public TemplateDirectorySet getRocker() {
}

public RockerSourceSetProperty rocker(Closure<?> configureClosure) {
ConfigureUtil.configure(configureClosure, getRocker());
new ClosureBackedAction<>(configureClosure).execute(getRocker());
return this;
}

Expand All @@ -54,4 +57,24 @@ public RockerSourceSetProperty rocker(
configureAction.execute(getRocker());
return this;
}

// Delegate methods to TemplateDirectorySet for DSL compatibility
public RockerSourceSetProperty srcDir(Object srcDir) {
templateDirs.srcDir(srcDir);
return this;
}

public RockerSourceSetProperty srcDirs(Object... srcDirs) {
templateDirs.srcDirs(srcDirs);
return this;
}

public RockerSourceSetProperty setSrcDirs(Iterable<?> srcPaths) {
templateDirs.setSrcDirs(srcPaths);
return this;
}

public Set<File> getSrcDirs() {
return templateDirs.getSrcDirs();
}
}
15 changes: 8 additions & 7 deletions grails-forge/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,28 @@
title=Grails Application Forge
projectDesc=Generates Grails applications

# for forge build process which is a micronaut 3.x.x app with picocli
# for forge build process which is a micronaut 4.x.x app with picocli
grailsPublishGradleVersion=0.0.2
antVersion=1.10.15
antlr4Version=4.8-1!!
asciidoctorGradleJvmVersion=4.0.4
cglibVersion=3.3.0
byteBuddyVersion=1.15.11
commonsCompressVersion=1.27.1
gradleSdkvendorPluginVersion=3.0.0
groovyVersion=3.0.25
groovyVersion=4.0.30
jacksonDatabindVersion=2.18.3
jakartaInjectVersion=1.0.5
jakartaInjectVersion=2.0.1
# match the jansi version in grails-bom
jansiVersion=1.18
javaDiffUtils=4.15
jgitVersion=6.10.0.202406032230-r
logbackClassicVersion=1.5.17
micronautApplicationPluginVersion=3.7.10
micronautBuildVersion=1.1.5
micronautApplicationPluginVersion=4.5.3
micronautBuildVersion=2.2.1
micronautDocsVersion=2.0.0
micronautGradlePlugins=5.4.10
micronautVersion=3.10.4
micronautVersion=4.10.7
nexusPublishVersion=1.3.0
nohttpGradleVersion=0.0.11
objenesisVersion=3.4
Expand All @@ -55,7 +56,7 @@ rockerVersion=2.2.1
shadowVersion=8.3.6
slf4jVersion=2.0.17
snakeyamlVersion=2.4
spockVersion=2.1-groovy-3.0
spockVersion=2.3-groovy-4.0
spotlessVersion=6.25.0
testRetryVersion=1.6.2
typesafeConfigVersion=1.4.3
Expand Down
4 changes: 2 additions & 2 deletions grails-forge/gradle/doc-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ configurations.register('documentation') {
}

dependencies {
documentation "org.codehaus.groovy:groovy-templates:$groovyVersion"
documentation "org.codehaus.groovy:groovy-dateutil:$groovyVersion"
documentation "org.apache.groovy:groovy-templates:$groovyVersion"
documentation "org.apache.groovy:groovy-dateutil:$groovyVersion"
}

tasks.withType(Groovydoc).configureEach {
Expand Down
2 changes: 1 addition & 1 deletion grails-forge/gradle/micronaut-openapi-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import groovy.transform.CompileStatic
def openApiOutputFile = layout.buildDirectory.file('generated/openapi/openapi.properties')
def openApiPropertiesTask = tasks.register('openApiProperties', WriteProperties)
openApiPropertiesTask.configure { WriteProperties it ->
it.outputFile(openApiOutputFile.get().asFile)
it.destinationFile.set(openApiOutputFile)
it.properties(
'swagger-ui.enabled': true,
'redoc.enabled': true,
Expand Down
10 changes: 9 additions & 1 deletion grails-forge/gradle/test-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@
* under the License.
*/

// Add JUnit Platform launcher dependency required by Gradle 9 for running tests
// Also add ByteBuddy for Spock mocking on Java 17+ (CGLIB doesn't support Java 17 class files)
dependencies {
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
testImplementation "net.bytebuddy:byte-buddy:$byteBuddyVersion"
}

tasks.withType(Test).configureEach {
onlyIf {
![
Expand All @@ -34,7 +41,8 @@ tasks.withType(Test).configureEach {
}

environment('GRAILS_REPO_URL', uri(rootProject.layout.projectDirectory.dir('../build/local-maven')))
jvmArgs('-Duser.country=US', '-Duser.language=en')
jvmArgs('-Duser.country=US', '-Duser.language=en',
'--add-opens', 'java.base/java.lang=ALL-UNNAMED')
forkEvery = 100
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
maxHeapSize = '2G'
Expand Down
2 changes: 1 addition & 1 deletion grails-forge/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# and grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
6 changes: 4 additions & 2 deletions grails-forge/grails-cli/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,10 @@ shadowJarTask.configure { ShadowJar it ->
'about.html' // restatement of the Eclipse Distribution License - Version 1.0 for jakarta
)
}
// publish shadow jar separately from the regular library
artifacts { archives shadowJarTask }
// Make shadow jar a direct dependency of assemble instead of using deprecated archives configuration
tasks.named('assemble').configure {
dependsOn(shadowJarTask)
}

TaskProvider<CreateStartScripts> cliStartScripts = tasks.register('createCliStartScripts', CreateStartScripts)
cliStartScripts.configure { CreateStartScripts t ->
Expand Down
2 changes: 1 addition & 1 deletion grails-forge/grails-forge-analytics-postgres/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/

plugins {
id 'com.gradleup.shadow'
id 'org.apache.grails.buildsrc.properties'
id 'io.micronaut.application' version "$micronautApplicationPluginVersion"
}
Expand All @@ -39,6 +38,7 @@ dependencies {
implementation "org.postgresql:postgresql:$postgresqlVersion"

runtimeOnly "ch.qos.logback:logback-classic:$logbackClassicVersion"
runtimeOnly 'io.micronaut:micronaut-jackson-databind'

testCompileOnly "io.micronaut:micronaut-inject-groovy:$micronautVersion"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import io.micronaut.scheduling.annotation.ExecuteOn;
import org.grails.forge.analytics.Generated;

import javax.transaction.Transactional;
import jakarta.transaction.Transactional;
import java.util.List;
import java.util.stream.Collectors;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import org.grails.forge.options.JdkVersion;
import org.grails.forge.options.TestFramework;

import javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.Objects;
Expand Down
Loading
Loading