diff --git a/.github/actions/post-release/Dockerfile b/.github/actions/post-release/Dockerfile index 10885b9875c..5ac2c0c4ea8 100644 --- a/.github/actions/post-release/Dockerfile +++ b/.github/actions/post-release/Dockerfile @@ -1,5 +1,5 @@ # Container image that runs your code -FROM alpine:20220715 +FROM alpine:20230208 RUN apk add --no-cache curl jq git bash diff --git a/.github/actions/pre-release/Dockerfile b/.github/actions/pre-release/Dockerfile index 97ac8753a22..97bbe3e4358 100644 --- a/.github/actions/pre-release/Dockerfile +++ b/.github/actions/pre-release/Dockerfile @@ -1,5 +1,5 @@ # Container image that runs your code -FROM alpine:20220715 +FROM alpine:20230208 RUN apk add --no-cache curl jq git bash diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 4fc59bca146..dbf29f2555d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -10,7 +10,7 @@ updates: - "type: dependency upgrade" ignore: - dependency-name: "*" - update-types: ["version-update:semver-major"] + update-types: ["version-update:semver-minor", "version-update:semver-major"] - package-ecosystem: gradle directory: "/" schedule: diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index 231bb6dcc22..aecf139e016 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -26,7 +26,7 @@ jobs: id: extract_branch run: echo ::set-output name=value::${GITHUB_REF:11} # If it has release drafter: - - uses: release-drafter/release-drafter@6df64e4ba4842c203c604c1f45246c5863410adb # tag=v5.21.1 + - uses: release-drafter/release-drafter@569eb7ee3a85817ab916c8f8ff03a5bd96c9c83e # v5.23.0 if: steps.check_release_drafter.outputs.has_release_drafter == 'true' env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/README.md b/README.md index 3b9fc5dbaa3..a52fffb6d8f 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Grails [Grails](https://grails.org/) is a framework used to build web applications with the [Groovy](https://groovy-lang.org/) programming language. The core framework is very extensible and there are numerous [plugins](https://plugins.grails.org/) available that provide easy integration of add-on features. -Grails development is lead by the [Grails Foundation](https://grails.org/foundation/) and is sponsored by [Object Computing Inc.](https://objectcomputing.com/) in St. Louis Missouri. Please contact <2gm@objectcomputing.com> for support inquiries. +Grails development is led by the [Grails Foundation](https://grails.org/foundation/) and is sponsored by [Object Computing Inc.](https://objectcomputing.com/) in St. Louis Missouri. Please contact <2gm@objectcomputing.com> for support inquiries. Getting Started --- diff --git a/build.gradle b/build.gradle index 454b03832a3..37ff955b0c6 100644 --- a/build.gradle +++ b/build.gradle @@ -5,14 +5,13 @@ buildscript { } dependencies { classpath "commons-io:commons-io:2.11.0" - classpath "io.github.gradle-nexus:publish-plugin:1.1.0" - classpath "com.netflix.nebula:gradle-extra-configurations-plugin:7.0.0" + classpath "io.github.gradle-nexus:publish-plugin:1.2.0" + classpath "com.netflix.nebula:gradle-extra-configurations-plugin:9.0.0" classpath "com.bmuschko:gradle-nexus-plugin:$gradleNexusPluginVersion" classpath "gradle.plugin.io.sdkman:gradle-sdkvendor-plugin:$gradleSdkVendorVersion" classpath "javax.xml.bind:jaxb-api:$jaxbVersion" classpath "com.sun.xml.bind:jaxb-impl:$jaxbVersion" classpath "org.codehaus.groovy.modules.http-builder:http-builder:0.7.2" - classpath "org.gradle:test-retry-gradle-plugin:1.5.0" } } @@ -349,8 +348,7 @@ subprojects { project -> apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'project-report' - apply plugin: 'nebula.optional-base' - apply plugin: "org.gradle.test-retry" + apply plugin: 'com.netflix.nebula.optional-base' if (!isTestSuite) { @@ -487,9 +485,9 @@ subprojects { project -> api groovyDependency testImplementation "org.codehaus.groovy:groovy-test-junit5:${groovyVersion}" - testImplementation "org.junit.jupiter:junit-jupiter-api:5.9.1" - testImplementation "org.junit.platform:junit-platform-runner:1.9.1" - testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.9.1" + testImplementation "org.junit.jupiter:junit-jupiter-api:5.9.2" + testImplementation "org.junit.platform:junit-platform-runner:1.9.2" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.9.2" if (project.name != "grails-docs") { // Logging diff --git a/gradle.properties b/gradle.properties index dc1eb1fe6b5..3f0b67f0758 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,18 +1,18 @@ projectVersion=6.0.0-SNAPSHOT -antVersion=1.10.12 -aspectjVersion=1.9.9.1 +antVersion=1.10.13 +aspectjVersion=1.9.19 asyncVersion=4.0.0 caffeineVersion=2.9.3 cglibVersion=2.2.2 commonsLangVersion=2.6 -datastoreVersion=7.3.2 +datastoreVersion=7.3.3 directoryWatcherVersion=0.9.9 gdocEngineVersion=1.0.1 gradleNexusPluginVersion=2.3.1 gradleNexusStagingPluginVersion=0.12.0 gradleSdkVendorVersion=1.2.1 groovyVersion=3.0.11 -gspVersion=5.2.1 +gspVersion=5.2.2 h2.version=1.4.199 h2Version=1.4.200 hibernateDatastoreVersion=7.2.2 @@ -22,28 +22,28 @@ javaParserCoreVersion=3.15.14 javaxAnnotationApiVersion=1.3.2 jaxbVersion=2.3.1 jlineVersion=2.14.6 -jnaVersion=5.12.1 +jnaVersion=5.13.0 junitVersion=4.13.2 logbackVersion=1.2.7 legacyConvertersVersion=4.0.0 -methvinDirectoryWatcherVersion=0.17.1 +methvinDirectoryWatcherVersion=0.18.0 micronautCacheVersion=3.5.0 micronautRuntimeGroovyVersion=3.0.0 -micronautSpringVersion=4.3.1 -micronautVersion=3.7.4 +micronautSpringVersion=4.5.0 +micronautVersion=3.8.5 mongodbJavaDriverVersion=4.5.0 objenesisVersion=3.3 scaffoldingCoreVersion=2.1.0 servletApiVersion=4.0.1 slf4jVersion=1.7.36 spockVersion=2.1-groovy-3.0 -springBootVersion=2.7.6 +springBootVersion=2.7.9 springLoadedVersion=1.2.8.RELEASE -springVersion=5.3.24 +springVersion=5.3.25 testingSupportVersion=2.4.1 testingSupportVersionForTests=2.6.1 tomcatLog4jVersion=8.5.2 -tomcatVersion=9.0.70 +tomcatVersion=9.0.72 viewsVersion=2.3.2 org.gradle.caching=true org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d355f4c4f30..53b9e3802be 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/grails-bom/plugins.properties b/grails-bom/plugins.properties index cc36bc2b62e..89ef57a127d 100644 --- a/grails-bom/plugins.properties +++ b/grails-bom/plugins.properties @@ -1,7 +1,7 @@ gorm.hibernate5=7.3.0 gorm.mongodb=7.3.0 gorm.neo4j=7.3.0 -grails-gradle-plugin=5.2.4 +grails-gradle-plugin=5.3.0 cache=5.0.1 rxjava=1.1.1 rxjava2=2.0.0 diff --git a/grails-bom/profiles.properties b/grails-bom/profiles.properties index 9a7161c47ae..ccf86d4712a 100644 --- a/grails-bom/profiles.properties +++ b/grails-bom/profiles.properties @@ -2,9 +2,9 @@ rest-api=5.0.1 base=5.1.1 web=5.0.5 react=5.0.1 -vue=5.0.2 +vue=5.0.3 plugin=5.0.1 profile=5.0.2 rest-api-plugin=5.0.1 web-plugin=4.0.1 -angular=8.0.1 +angular=8.0.2 diff --git a/grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy b/grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy index 2e51f8fb1be..6eb21bc4e37 100644 --- a/grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy +++ b/grails-bootstrap/src/main/groovy/org/grails/config/CodeGenConfig.groovy @@ -46,14 +46,15 @@ class CodeGenConfig implements Cloneable, ConfigMap { } CodeGenConfig(CodeGenConfig copyOf) { - this((Map )copyOf.configMap) + this(copyOf.getConfigMap()) } CodeGenConfig(Map copyOf) { this() mergeMap(copyOf) } - + + @Override CodeGenConfig clone() { new CodeGenConfig(this) } diff --git a/grails-bootstrap/src/main/groovy/org/grails/config/NavigableMap.groovy b/grails-bootstrap/src/main/groovy/org/grails/config/NavigableMap.groovy index ddc52073463..64d82e5a9d2 100644 --- a/grails-bootstrap/src/main/groovy/org/grails/config/NavigableMap.groovy +++ b/grails-bootstrap/src/main/groovy/org/grails/config/NavigableMap.groovy @@ -57,9 +57,9 @@ class NavigableMap implements Map, Cloneable { delegateMap.toString() } - @CompileDynamic - public NavigableMap clone() { - return new NavigableMap(rootConfig, path, delegateMap.clone()) + @Override + NavigableMap clone() { + new NavigableMap(getRootConfig(), getPath(), new LinkedHashMap<>(getDelegateMap())) } @Override @@ -241,7 +241,7 @@ class NavigableMap implements Map, Cloneable { subMap = (NavigableMap)currentValue } else { - subMap = new NavigableMap( (NavigableMap)targetMap.rootConfig, newPathList.asImmutable()) + subMap = new NavigableMap(targetMap.getRootConfig(), newPathList.asImmutable()) if(currentValue instanceof Map) { subMap.putAll((Map)currentValue) } @@ -354,7 +354,7 @@ class NavigableMap implements Map, Cloneable { newPathList.addAll( currentMap.getPath() ) newPathList.add(pathElement) - Map newMap = new NavigableMap( (NavigableMap)currentMap.rootConfig, newPathList.asImmutable()) + Map newMap = new NavigableMap(currentMap.getRootConfig(), newPathList.asImmutable()) currentMap.put(pathElement, newMap) def fullPath = accumulatedPath.toString() diff --git a/grails-core/src/main/groovy/org/grails/compiler/injection/GlobalGrailsClassInjectorTransformation.groovy b/grails-core/src/main/groovy/org/grails/compiler/injection/GlobalGrailsClassInjectorTransformation.groovy index bf679994285..7b5f6a50c78 100644 --- a/grails-core/src/main/groovy/org/grails/compiler/injection/GlobalGrailsClassInjectorTransformation.groovy +++ b/grails-core/src/main/groovy/org/grails/compiler/injection/GlobalGrailsClassInjectorTransformation.groovy @@ -219,7 +219,7 @@ class GlobalGrailsClassInjectorTransformation implements ASTTransformation, Comp protected static void generatePluginXml(ClassNode pluginClassNode, String pluginVersion, Set transformedClasses, File pluginXmlFile) { def pluginXmlExists = pluginXmlFile.exists() - Set pluginClasses = [] + Set pluginClasses = [] pluginClasses.addAll(transformedClasses) pluginClasses.addAll(pendingPluginClasses) diff --git a/grails-docs/build.gradle b/grails-docs/build.gradle index aab6819079a..1eaaf4aab89 100644 --- a/grails-docs/build.gradle +++ b/grails-docs/build.gradle @@ -21,7 +21,7 @@ dependencies { runtimeOnly('com.lowagie:itext:2.0.8') - api 'org.jsoup:jsoup:1.15.3' + api 'org.jsoup:jsoup:1.15.4' testImplementation("org.spockframework:spock-core:${spockVersion}") { transitive = false } } diff --git a/grails-plugin-datasource/build.gradle b/grails-plugin-datasource/build.gradle index 3ce4005d6b0..49ca323f9c5 100644 --- a/grails-plugin-datasource/build.gradle +++ b/grails-plugin-datasource/build.gradle @@ -13,7 +13,6 @@ dependencies { api "org.grails:grails-datastore-core:$datastoreVersion" compileOnly "org.apache.tomcat:tomcat-jdbc:$tomcatVersion" - runtimeOnly "org.apache.tomcat.embed:tomcat-embed-logging-log4j:$tomcatLog4jVersion" api project(":grails-core") } diff --git a/grails-shell/build.gradle b/grails-shell/build.gradle index a244a368220..1f8cf8707a4 100644 --- a/grails-shell/build.gradle +++ b/grails-shell/build.gradle @@ -28,10 +28,10 @@ dependencies { exclude group: "com.google.guava", module: "guava" } - implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.2") - implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.2") - implementation("org.apache.maven.resolver:maven-resolver-transport-file:1.9.2") - implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.2") { + implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.5") + implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.5") + implementation("org.apache.maven.resolver:maven-resolver-transport-file:1.9.5") + implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.5") { exclude group: "org.slf4j", module:"jcl-over-slf4j" exclude group: "commons-codec", module:"commons-codec" } diff --git a/grails-test-suite-persistence/build.gradle b/grails-test-suite-persistence/build.gradle index 310859319c4..bb969400937 100644 --- a/grails-test-suite-persistence/build.gradle +++ b/grails-test-suite-persistence/build.gradle @@ -16,7 +16,7 @@ dependencies { project(':grails-spring') testImplementation "org.grails:grails-datastore-gorm-validation:$datastoreVersion" - testImplementation "org.grails:grails-datastore-gorm-hibernate5:7.3.0", { + testImplementation "org.grails:grails-datastore-gorm-hibernate5:7.3.1", { exclude group: 'org.grails', module:'grails-datastore-gorm' exclude group: 'org.grails', module:'grails-datastore-core' exclude group: 'org.springframework', module:'spring-core' diff --git a/grails-test-suite-uber/build.gradle b/grails-test-suite-uber/build.gradle index 1390eaad2a6..6ee1a95d9da 100644 --- a/grails-test-suite-uber/build.gradle +++ b/grails-test-suite-uber/build.gradle @@ -28,7 +28,7 @@ dependencies { project(":grails-plugin-databinding"), project(':grails-spring') - testImplementation "org.grails:grails-datastore-gorm-hibernate5:7.3.0", { + testImplementation "org.grails:grails-datastore-gorm-hibernate5:7.3.1", { exclude group: 'org.grails', module:'grails-datastore-gorm' exclude group: 'org.grails', module:'grails-datastore-core' exclude group: 'org.springframework', module:'spring-core' diff --git a/grails-test-suite-web/build.gradle b/grails-test-suite-web/build.gradle index 382cfd45fdc..a7747e0ac3c 100644 --- a/grails-test-suite-web/build.gradle +++ b/grails-test-suite-web/build.gradle @@ -29,7 +29,7 @@ dependencies { project(':grails-spring') testImplementation "org.grails.plugins:converters:$legacyConvertersVersion" - testImplementation "org.grails:grails-datastore-gorm-hibernate5:7.3.0", { + testImplementation "org.grails:grails-datastore-gorm-hibernate5:7.3.1", { exclude group: 'org.grails', module:'grails-datastore-gorm' exclude group: 'org.grails', module:'grails-datastore-core' exclude group: 'org.springframework', module:'spring-core' diff --git a/grails-test/build.gradle b/grails-test/build.gradle index 0d45ac5d03e..0aee6217ed0 100644 --- a/grails-test/build.gradle +++ b/grails-test/build.gradle @@ -7,7 +7,7 @@ dependencies { api "org.codehaus.groovy:groovy-test-junit5:$groovyVersion" api("org.codehaus.groovy:groovy-test:$groovyVersion") api("org.spockframework:spock-core:$spockVersion") { transitive = false } - api "org.junit.platform:junit-platform-runner:1.9.1" + api "org.junit.platform:junit-platform-runner:1.9.2" api project(":grails-plugin-mimetypes") diff --git a/grails-web-fileupload/build.gradle b/grails-web-fileupload/build.gradle index aee423beba0..252e8a967cb 100644 --- a/grails-web-fileupload/build.gradle +++ b/grails-web-fileupload/build.gradle @@ -1,4 +1,4 @@ dependencies { api project(":grails-web-common") - api('commons-fileupload:commons-fileupload:1.4') + api('commons-fileupload:commons-fileupload:1.5') } diff --git a/settings.gradle b/settings.gradle index ea6bbd6f29b..91ad23dda9d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,5 @@ plugins { - id "com.gradle.enterprise" version "3.11.4" + id "com.gradle.enterprise" version "3.12.3" id 'com.gradle.common-custom-user-data-gradle-plugin' version '1.8.2' }