This is an automated email from the ASF dual-hosted git repository. matrei pushed a commit to branch groovy-5 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit ace4d30fb004e0426bd9a349073d920f1152d299 Merge: c879a1c168 1c3a49dd34 Author: Mattias Reichel <[email protected]> AuthorDate: Tue Oct 28 16:24:21 2025 +0100 Merge branch '7.0.x' into groovy-5 # Conflicts: # build.gradle # dependencies.gradle # grails-forge/build.gradle # grails-gradle/build.gradle .asf.yaml | 35 +- .github/ISSUE_TEMPLATE/config.yml | 10 +- .github/release-drafter.yml | 4 - .github/scripts/releaseDistributions.sh | 83 +++++ .github/scripts/releaseJarFiles.sh | 141 +++++++ .github/vote_templates/announce.txt | 6 +- .github/vote_templates/groovy_pmc.txt | 32 -- .github/vote_templates/staged.txt | 25 +- .github/workflows/codeql.yml | 6 +- .github/workflows/gradle.yml | 19 +- .github/workflows/groovy-joint-workflow.yml | 3 +- .github/workflows/release-abort.yml | 2 +- .github/workflows/release.yml | 205 +++++++---- CODE_OF_CONDUCT.md | 2 +- CONTRIBUTING.md | 16 +- DEVELOPMENT.md | 1 + DISCLAIMER | 1 - DOAP.rdf | 2 +- INSTALL | 2 +- README.md | 12 +- RELEASE.md | 310 +++++++++++++--- RENAME.md | 2 +- SECURITY.md | 2 +- UPGRADE7.md | 52 --- {grails-logging => build-logic}/README.md | 5 +- {grails-gradle => build-logic}/docs-core/README.md | 0 build-logic/docs-core/build.gradle | 122 ++++++ .../src/main/groovy/grails/doc/DocEngine.groovy | 0 .../src/main/groovy/grails/doc/DocPublisher.groovy | 2 +- .../groovy/grails/doc/ant/DocPublisherTask.groovy | 0 .../grails/doc/asciidoc/AsciiDocEngine.groovy | 0 .../doc/dropdown/CreateReleaseDropDownTask.groovy | 2 +- .../groovy/grails/doc/dropdown/Snapshot.groovy | 0 .../grails/doc/dropdown/SoftwareVersion.groovy | 0 .../groovy/grails/doc/filters/HeaderFilter.groovy | 0 .../grails/doc/filters/LinkTestFilter.groovy | 0 .../groovy/grails/doc/filters/ListFilter.groovy | 0 .../groovy/grails/doc/git/FetchTagsTask.groovy | 0 .../grails/doc/gradle/PublishGuideTask.groovy | 0 .../grails/doc/internal/FileResourceChecker.groovy | 0 .../grails/doc/internal/StringEscapeCategory.java | 0 .../grails/doc/internal/UserGuideNode.groovy | 0 .../grails/doc/internal/YamlTocStrategy.groovy | 0 .../grails/doc/macros/GspTagSourceMacro.groovy | 0 .../groovy/grails/doc/macros/HiddenMacro.groovy | 0 .../gradle/tasks/bom/CoordinateHolder.groovy | 0 .../tasks/bom/CoordinateVersionHolder.groovy | 0 .../tasks/bom/ExtractDependenciesTask.groovy | 0 .../tasks/bom/ExtractedDependencyConstraint.groovy | 0 .../gradle/tasks/bom/PropertyNameCalculator.groovy | 0 .../src/main/resources/grails/doc/doc.properties | 4 +- .../main/resources/radeox_messages_en.properties | 0 .../docs-core/src/main/template/css/custom-pdf.css | 0 .../docs-core/src/main/template/css/custom.css | 0 .../docs-core/src/main/template/css/main.css | 0 .../docs-core/src/main/template/css/menu.css | 0 .../docs-core/src/main/template/css/pdf.css | 0 .../docs-core/src/main/template/css/ref.css | 0 .../docs-core/src/main/template/css/skin.css | 0 .../docs-core/src/main/template/css/tools.css | 0 .../src/main/template/fonts/FontAwesome.otf | Bin .../main/template/fonts/fontawesome-webfont.eot | Bin .../main/template/fonts/fontawesome-webfont.svg | 0 .../main/template/fonts/fontawesome-webfont.ttf | Bin .../main/template/fonts/fontawesome-webfont.woff | Bin .../src/main/template/img/default/bullet.gif | Bin .../template/img/default/linear-gradient-green.png | Bin .../main/template/img/default/linear-gradient.png | Bin .../template/img/default/separator-horizontal.gif | Bin .../main/template/img/default/separator-menu.png | Bin .../template/img/default/separator-vertical.gif | Bin .../docs-core/src/main/template/img/favicon.ico | Bin .../template/img/grails-cupsonly-logo-white.svg | 0 .../src/main/template/img/grails-icon.png | Bin .../docs-core/src/main/template/img/grails.png | Bin .../docs-core/src/main/template/img/grails.svg | 0 .../docs-core/src/main/template/img/groovy.png | Bin .../docs-core/src/main/template/img/note.gif | Bin .../docs-core/src/main/template/img/warning.gif | Bin .../docs-core/src/main/template/js/docs.js | 0 .../docs-core/src/main/template/log4j.properties | 0 .../src/main/template/style/guideItem.html | 21 ++ .../docs-core/src/main/template/style/index.html | 0 .../docs-core/src/main/template/style/layout.html | 21 ++ .../docs-core/src/main/template/style/menu.html | 51 +++ .../src/main/template/style/referenceItem.html | 21 ++ .../docs-core/src/main/template/style/section.html | 0 .../grails/doc/dropdown/SoftwareVersionSpec.groovy | 0 .../doc/internal/StringEscapeCategoryTests.groovy | 0 .../grails/doc/internal/YamlTocStrategySpec.groovy | 0 .../grails/doc/macros/GspTagSourceMacroTest.groovy | 0 {grails-gradle => build-logic}/gradle.properties | 5 - build-logic/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43764 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + build-logic/gradlew | 251 +++++++++++++ build-logic/gradlew.bat | 94 +++++ build-logic/plugins/build.gradle | 54 +++ .../org/apache/grails/buildsrc/GradleUtils.groovy | 34 +- .../apache/grails/buildsrc/PublishPlugin.groovy | 254 +++++++++++++ .../org/apache/grails/buildsrc/SbomPlugin.groovy | 352 ++++++++++++++++++ {grails-gradle => build-logic}/settings.gradle | 50 ++- build.gradle | 33 -- buildSrc/build.gradle | 5 +- dependencies.gradle | 16 +- etc/bin/download-release-artifacts.sh | 84 ++--- etc/bin/rename_gradle_artifacts.sh | 2 - etc/bin/reset-verify.sh | 4 +- etc/bin/verify-cli-distribution.sh | 14 +- etc/bin/verify-jar-artifacts.sh | 2 +- etc/bin/{reset-verify.sh => verify-keys.sh} | 42 +-- etc/bin/verify-reproducible.sh | 2 + etc/bin/verify-source-distribution.sh | 12 +- etc/bin/verify-wrapper-distribution.sh | 14 +- etc/bin/verify.sh | 12 +- gradle.properties | 5 +- gradle/functional-test-config.gradle | 5 + gradle/java-config.gradle | 5 + gradle/publish-config.gradle | 140 ------- gradle/rat-root-config.gradle | 6 +- gradle/test-webjar-asset-config.gradle | 3 + grails-async/core/build.gradle | 3 +- grails-async/gpars/build.gradle | 3 +- grails-async/plugin/build.gradle | 3 +- grails-async/rxjava/build.gradle | 3 +- grails-async/rxjava2/build.gradle | 3 +- grails-async/rxjava3/build.gradle | 3 +- grails-bom/build.gradle | 7 +- grails-bootstrap/build.gradle | 3 +- grails-cache/build.gradle | 3 +- grails-codecs-core/build.gradle | 3 +- grails-codecs/build.gradle | 3 +- grails-common/build.gradle | 31 +- .../grails/util/GrailsMessageSourceUtils.groovy | 0 grails-console/build.gradle | 3 +- grails-controllers/build.gradle | 3 +- .../compiler/web/ControllerActionTransformer.java | 3 +- grails-converters/build.gradle | 3 +- .../ConvertersConfigurationInitializer.java | 6 + ...DateMarshaller.java => CalendarMarshaller.java} | 21 +- .../converters/marshaller/json/DateMarshaller.java | 2 +- ...{DateMarshaller.java => InstantMarshaller.java} | 38 +- ...ateMarshaller.java => LocalDateMarshaller.java} | 38 +- ...arshaller.java => LocalDateTimeMarshaller.java} | 38 +- ...rshaller.java => OffsetDateTimeMarshaller.java} | 38 +- ...arshaller.java => ZonedDateTimeMarshaller.java} | 38 +- grails-core/build.gradle | 3 +- .../src/main/groovy/grails/boot/GrailsApp.groovy | 7 +- .../test/groovy/grails/util/GrailsUtilTests.java | 2 +- .../tools/ClassRelativeClassLoaderSpec.groovy | 2 +- .../src/main/docs/gettingStarted/CRUD.adoc | 2 +- .../docs/gettingStarted/creatingDomainClasses.adoc | 2 +- .../guide-rx/src/main/docs/introduction.adoc | 2 +- .../src/main/docs/querying/dynamicFinders.adoc | 2 +- .../guide-rx/src/main/docs/querying/index.adoc | 8 +- .../src/main/docs/querying/whereQueries.adoc | 2 +- .../guide-whats-new/src/main/docs/index.adoc | 2 +- grails-data-graphql/build.gradle | 1 - .../docs/src/main/docs/guide/gettingStarted.adoc | 6 +- .../docs/src/main/docs/guide/types.adoc | 2 +- grails-data-hibernate5/README.md | 10 +- grails-data-hibernate5/boot-plugin/build.gradle | 3 +- grails-data-hibernate5/core/build.gradle | 3 +- grails-data-hibernate5/dbmigration/README.md | 8 +- grails-data-hibernate5/dbmigration/build.gradle | 3 +- .../DatabaseMigrationGrailsPlugin.groovy | 2 +- .../command/DatabaseMigrationCommand.groovy | 10 +- .../asciidoc/databaseMigration/gettingStarted.adoc | 14 - .../asciidoc/databaseMigration/introduction.adoc | 2 +- .../gormAssociation/manyToOneAndOneToOne.adoc | 2 +- .../docs/src/docs/asciidoc/introduction.adoc | 2 +- .../docs/src/docs/asciidoc/learningMore.adoc | 2 +- grails-data-hibernate5/grails-plugin/build.gradle | 3 +- .../plugin/hibernate/HibernateGrailsPlugin.groovy | 2 +- grails-data-mongodb/README.md | 10 +- grails-data-mongodb/boot-plugin/build.gradle | 3 +- grails-data-mongodb/bson/build.gradle | 3 +- .../codecs/temporal/InstantBsonConverter.groovy | 6 +- .../temporal/InstantBsonConverterSpec.groovy | 6 +- grails-data-mongodb/core/build.gradle | 20 +- .../datastore/mapping/mongo/MongoDatastore.java | 35 +- .../mongo/engine/MongoCodecEntityPersister.groovy | 19 + .../engine/codecs/PersistentEntityCodec.groovy | 7 - .../BeforeUpdatePropertyPersistenceSpec.groovy | 201 ++++++++++ .../docs/asciidoc/introduction/compatibility.adoc | 2 +- .../src/docs/asciidoc/querying/queryingBasics.adoc | 2 +- grails-data-mongodb/ext/build.gradle | 3 +- grails-data-mongodb/grails-plugin/build.gradle | 3 +- .../plugins/mongodb/MongodbGrailsPlugin.groovy | 2 +- grails-data-mongodb/gson-templates/build.gradle | 3 +- grails-data-neo4j/README.md | 2 +- .../src/docs/asciidoc/mapping/associations.adoc | 2 +- .../docs/src/docs/asciidoc/querying.adoc | 6 +- grails-data-simple/build.gradle | 3 +- grails-databinding-core/build.gradle | 3 +- grails-databinding/build.gradle | 3 +- .../converters/DefaultConvertersConfiguration.java | 5 + .../Jsr310ConvertersConfiguration.groovy | 15 + grails-datamapping-async/build.gradle | 3 +- .../groovy/grails/gorm/async/AsyncEntity.groovy | 2 + grails-datamapping-core-test/build.gradle | 3 +- .../schemaless/ImplementsDynamicAttributes.groovy | 37 +- grails-datamapping-core/build.gradle | 3 +- .../src/main/groovy/grails/gorm/MultiTenant.groovy | 4 + .../grails/gorm/time/InstantConverter.groovy | 3 + .../grails/gorm/time/LocalDateConverter.groovy | 3 + .../grails/gorm/time/LocalDateTimeConverter.groovy | 3 + .../grails/gorm/time/LocalTimeConverter.groovy | 3 + .../gorm/time/OffsetDateTimeConverter.groovy | 3 + .../grails/gorm/time/OffsetTimeConverter.groovy | 3 + .../groovy/grails/gorm/time/PeriodConverter.groovy | 3 + .../grails/gorm/time/TemporalConverter.groovy | 3 + .../grails/gorm/time/ZonedDateTimeConverter.groovy | 3 + .../compiler/gorm/DirtyCheckingTransformer.groovy | 9 +- .../compiler/gorm/GormEntityTransformation.groovy | 21 +- .../org/grails/datastore/gorm/GormEntity.groovy | 116 ++++++ .../grails/datastore/gorm/GormValidateable.groovy | 19 +- .../gorm/schemaless/DynamicAttributes.groovy | 6 + ...AbstractArrayOrIterableResultImplementer.groovy | 3 + .../AbstractReadOperationImplementer.groovy | 3 + .../AbstractWriteOperationImplementer.groovy | 3 + .../implementers/InterfaceProjectionBuilder.groovy | 6 + .../IterableInterfaceProjectionBuilder.groovy | 3 + .../SingleResultInterfaceProjectionBuilder.groovy | 2 + .../transform/ServiceTransformation.groovy | 32 +- .../transform/TransactionalTransform.groovy | 11 +- ...tDatastoreMethodDecoratingTransformation.groovy | 10 +- .../AbstractMethodDecoratingTransformation.groovy | 2 + .../jakarta/services/ValidatedService.groovy | 19 +- .../MethodValidationImplementer.groovy | 2 + .../services/MethodValidationTransformSpec.groovy | 111 +++--- .../grails/gorm/time/InstantConverterSpec.groovy | 18 +- .../grails/gorm/time/LocalDateConverterSpec.groovy | 23 +- .../gorm/time/LocalDateTimeConverterSpec.groovy | 36 +- .../grails/gorm/time/LocalTimeConverterSpec.groovy | 25 +- .../gorm/time/OffsetDateTimeConverterSpec.groovy | 44 ++- .../gorm/time/OffsetTimeConverterSpec.groovy | 35 +- .../grails/gorm/time/PeriodConverterSpec.groovy | 18 +- .../gorm/time/ZonedDateTimeConverterSpec.groovy | 43 ++- .../gorm/EntityWithGenericSignaturesSpec.groovy | 82 ++--- .../compiler/gorm/GormEntityTransformSpec.groovy | 286 ++++++++------ .../compiler/gorm/JpaEntityTransformSpec.groovy | 65 ++-- grails-datamapping-rx/build.gradle | 3 +- .../main/groovy/grails/gorm/rx/MultiTenant.groovy | 11 +- .../src/main/groovy/grails/gorm/rx/RxEntity.groovy | 68 +++- .../datastore/rx/collection/RxCollection.groovy | 10 +- grails-datamapping-support/build.gradle | 3 +- .../core/grailsversion/GrailsVersionSpec.groovy | 2 +- grails-datamapping-tck/build.gradle | 3 +- grails-datamapping-validation/build.gradle | 3 +- grails-datasource/build.gradle | 3 +- grails-datastore-async/build.gradle | 3 +- .../transform/DelegateAsyncTransformation.java | 2 + .../gorm/async/transform/DelegateAsyncSpec.groovy | 41 ++- grails-datastore-core/build.gradle | 3 +- .../mapping/dirty/checking/DirtyCheckable.groovy | 12 + .../datastore/mapping/services/Service.groovy | 14 +- .../dirty/checking/DirtyCheckableSpec.groovy | 29 +- .../services/DefaultServiceRegistrySpec.groovy | 31 +- grails-datastore-web/build.gradle | 3 +- grails-dependencies/assets/build.gradle | 4 +- grails-dependencies/starter-web/build.gradle | 4 +- grails-dependencies/test/build.gradle | 4 +- grails-doc/README.md | 2 +- grails-doc/build.gradle | 4 +- .../src/en/guide/async/events/asyncConsuming.adoc | 4 +- .../src/en/guide/async/events/asyncNotifying.adoc | 4 +- grails-doc/src/en/guide/commandLine.adoc | 2 +- .../plugins/addingDynamicMethodsAtRuntime.adoc | 2 +- .../guide/plugins/addingMethodsAtCompileTime.adoc | 2 +- .../plugins/creatingAndInstallingPlugins.adoc | 251 ++----------- .../plugins/hookingIntoRuntimeConfiguration.adoc | 4 +- .../en/guide/plugins/providingBasicArtefacts.adoc | 4 +- .../services/dependencyInjectionServices.adoc | 2 +- .../en/guide/testing/unitTesting/annotations.adoc | 4 +- .../src/en/guide/upgrading/upgrading60x.adoc | 273 +++++++++++++- grails-doc/src/en/ref/Controllers/render.adoc | 6 +- grails-doc/src/en/ref/Tags - GSP/javascript.adoc | 2 +- grails-domain-class/build.gradle | 7 +- grails-encoder/build.gradle | 3 +- grails-events/compat/build.gradle | 3 +- grails-events/core/build.gradle | 3 +- grails-events/gpars/build.gradle | 3 +- grails-events/plugin/build.gradle | 3 +- grails-events/rxjava/build.gradle | 3 +- grails-events/rxjava2/build.gradle | 3 +- grails-events/rxjava3/build.gradle | 3 +- grails-events/spring/build.gradle | 3 +- grails-events/transforms/build.gradle | 3 +- grails-fields/README.md | 8 +- grails-fields/build.gradle | 3 +- .../plugin/formfields/FormFieldsTagLib.groovy | 23 +- .../plugin/formfields/DisplayWidgetSpec.groovy | 15 +- .../grails/plugin/formfields/mock/Person.groovy | 5 + .../taglib/AbstractFormFieldsTagLibSpec.groovy | 5 +- .../plugin/formfields/taglib/DisplayTagSpec.groovy | 2 +- grails-forge/README.md | 2 +- grails-forge/build.gradle | 38 -- grails-forge/buildSrc/build.gradle | 8 +- grails-forge/gradle.properties | 2 +- grails-forge/gradle/dependency-licenses.gradle | 30 -- grails-forge/gradle/java-config.gradle | 5 + grails-forge/gradle/publish-config.gradle | 140 ------- grails-forge/grails-cli-shadow/build.gradle | 1 - grails-forge/grails-cli/build.gradle | 16 +- grails-forge/grails-forge-cli/build.gradle | 4 +- .../forge/cli/command/CreateAppCommandSpec.groovy | 13 - grails-forge/grails-forge-core/build.gradle | 5 +- .../grails/forge/feature/cache/GrailsCache.java | 2 +- .../grails/forge/feature/database/MongoGorm.java | 2 +- .../grails/forge/feature/database/Neo4jGorm.java | 71 ---- .../feature/lang/groovy/application.rocker.raw | 11 +- .../forge/feature/logging/LogbackGroovy.java | 83 ----- .../feature/logging/template/logback.rocker.raw | 2 +- .../logging/template/logbackGroovy.rocker.raw | 119 ------ .../forge/feature/micronaut/GrailsMicronaut.java | 19 +- .../feature/micronaut/MicronautHttpClient.java | 32 +- .../feature/migration/DatabaseMigrationPlugin.java | 2 +- .../feature/other/template/maindocs.rocker.raw | 8 +- .../forge/feature/test/template/spock.rocker.raw | 2 +- .../org/grails/forge/feature/view/GrailsViews.java | 2 +- .../org/grails/forge/feature/view/Scaffolding.java | 2 +- .../java/org/grails/forge/options/GormImpl.java | 3 +- .../src/main/resources/gsp/main.gsp | 4 +- .../grails-forge-core/src/main/resources/pom.xml | 18 +- .../forge/feature/database/MongoGormSpec.groovy | 9 - .../forge/feature/database/Neo4JGormSpec.groovy | 67 ---- .../feature/logging/LogbackGroovyConfigSpec.groovy | 56 --- grails-forge/settings.gradle | 80 +++- .../org/grails/forge/create/CreateAppSpec.groovy | 6 +- grails-geb/README.md | 40 +- grails-geb/build.gradle | 7 +- .../grails/plugin/geb/ContainerFileDetector.groovy | 3 +- .../plugin/geb/ContainerGebConfiguration.groovy | 7 +- .../grails/plugin/geb/ContainerGebSpec.groovy | 13 +- .../plugin/geb/ContainerGebTestDescription.groovy | 5 +- .../grails/plugin/geb/GebOnFailureReporter.groovy | 10 +- .../plugin/geb/GebRecordingTestListener.groovy | 19 +- .../plugin/geb/GrailsContainerGebExtension.groovy | 38 +- .../grails/plugin/geb/GrailsGebSettings.groovy | 84 +++-- .../plugin/geb/WebDriverContainerHolder.groovy | 410 ++++++++++++++------- grails-gradle/.gitignore | 14 - grails-gradle/bom/build.gradle | 6 +- grails-gradle/build.gradle | 30 -- grails-gradle/common/build.gradle | 3 +- grails-gradle/docs-core/build.gradle | 94 ----- .../docs-core/src/main/template/style/menu.html | 30 -- grails-gradle/gradle.properties | 5 - grails-gradle/gradle/java-config.gradle | 28 +- grails-gradle/gradle/publish-config.gradle | 118 ------ grails-gradle/gradle/publish-root-config.gradle | 1 - grails-gradle/model/build.gradle | 4 +- .../main/groovy/grails/util/BuildSettings.groovy | 2 +- .../src/main/groovy/grails/util/Environment.groovy | 24 -- grails-gradle/plugins/README.md | 2 +- grails-gradle/plugins/build.gradle | 9 +- .../gradle/plugin/agent/AgentTasksEnhancer.groovy | 88 ----- .../gradle/plugin/core/GrailsExtension.groovy | 67 ++-- .../gradle/plugin/core/GrailsGradlePlugin.groovy | 210 +++++------ .../plugin/core/GrailsPluginGradlePlugin.groovy | 100 ++--- .../grails/gradle/plugin/core/PluginDefiner.groovy | 68 ++-- .../exploded/ExplodedCompatibilityRule.groovy | 30 +- .../exploded/ExplodedDisambiguationRule.groovy | 28 +- .../plugin/exploded/GrailsExplodedPlugin.groovy | 106 ++++++ grails-gradle/settings.gradle | 79 +++- grails-gradle/tasks/build.gradle | 4 +- grails-gsp/README.md | 8 +- grails-gsp/core/build.gradle | 3 +- .../src/main/groovy/org/grails/gsp/GroovyPage.java | 47 ++- .../groovy/org/grails/gsp/GroovyPageMetaInfo.java | 67 +++- .../groovy/org/grails/gsp/GroovyPageWritable.java | 36 +- .../org/grails/gsp/GroovyPagesTemplateEngine.java | 21 ++ .../grails/gsp/compiler/GroovyPageCompiler.groovy | 36 +- .../org/grails/gsp/compiler/GroovyPageParser.java | 7 +- grails-gsp/grails-layout/build.gradle | 3 +- grails-gsp/grails-sitemesh3/build.gradle | 3 +- .../plugins/sitemesh3/Sitemesh3GrailsPlugin.groovy | 2 +- grails-gsp/grails-taglib/build.gradle | 3 +- grails-gsp/grails-web-gsp-taglib/build.gradle | 3 +- grails-gsp/grails-web-gsp/build.gradle | 3 +- .../web/gsp/GroovyPagesTemplateRenderer.java | 27 +- grails-gsp/grails-web-jsp/build.gradle | 3 +- grails-gsp/grails-web-taglib/build.gradle | 3 +- grails-gsp/plugin/build.gradle | 3 +- .../plugins/web/DefaultGrailsTagDateHelper.groovy | 4 + .../gsp/compiler/tags/GroovyEachParseTests.groovy | 14 +- .../groovy/org/grails/web/pages/ParseSpec.groovy | 16 +- grails-i18n/build.gradle | 3 +- grails-interceptors/build.gradle | 3 +- grails-logging/README.md | 2 +- grails-logging/build.gradle | 3 +- grails-micronaut/build.gradle | 3 +- grails-mimetypes/build.gradle | 3 +- grails-profiles/base/build.gradle | 8 +- grails-profiles/base/commands/run-app.groovy | 2 - grails-profiles/base/commands/test-app.groovy | 2 - .../skeleton/grails-app/conf/logback-spring.xml | 2 +- grails-profiles/plugin/build.gradle | 6 +- grails-profiles/profile/build.gradle | 6 +- grails-profiles/rest-api-plugin/build.gradle | 6 +- grails-profiles/rest-api/build.gradle | 6 +- grails-profiles/web-plugin/build.gradle | 5 +- grails-profiles/web/build.gradle | 5 +- .../web/skeleton/grails-app/views/layouts/main.gsp | 4 +- grails-rest-transforms/build.gradle | 7 +- grails-scaffolding/build.gradle | 3 +- .../plugin/scaffolding/DomainServiceLocator.java | 103 ++++++ .../grails/plugin/scaffolding/GormService.groovy | 10 +- .../scaffolding/RestfulServiceController.groovy | 21 +- .../scaffolding/ScaffoldingGrailsPlugin.groovy | 2 +- grails-services/build.gradle | 3 +- grails-shell-cli/build.gradle | 7 +- .../profile/repository/MavenRepositorySpec.groovy | 8 +- grails-spring/build.gradle | 3 +- grails-test-core/build.gradle | 3 +- .../functionaltests/DataBindingController.groovy | 25 +- .../groovy/functionaltests/DataBindingSpec.groovy} | 18 +- .../cache/grails-app/views/layouts/main.gsp | 6 +- grails-test-examples/exploded/build.gradle | 65 ++++ .../exploded/grails-app/conf/application.yml | 124 +++++++ .../grails-app/conf/logback.xml} | 28 +- .../grails-app/conf/spring/resources.groovy | 14 +- .../controllers/exploded/UrlMappings.groovy | 25 +- .../grails-app/init/exploded/Application.groovy | 21 +- .../grails-app/init/exploded/BootStrap.groovy | 21 +- .../exploded/grails-app/views/error.gsp | 50 +++ .../exploded/grails-app/views/index.gsp | 147 ++++++++ .../grails-app/views/layouts/main.gsp} | 29 +- .../grails-app/views/notFound.gsp} | 16 +- .../groovy/exploded/LoadAfterSpec.groovy} | 12 +- .../grails-app/conf/logback-spring.xml | 2 +- grails-test-examples/geb-gebconfig/build.gradle | 1 + .../grails-app/conf/logback-spring.xml | 2 +- .../grails-app/views/layouts/main.gsp | 6 +- .../groovy/org/demo/spock/GebConfigSpec.groovy | 4 +- .../integration-test/resources/GebConfig.groovy | 39 +- .../geb/grails-app/conf/logback-spring.xml | 2 +- .../geb/grails-app/views/layouts/main.gsp | 6 +- .../geb/grails-app/views/serverName/index.gsp | 9 +- .../spock/ContainerFileDetectorDefaultSpec.groovy | 7 +- .../spock/ContainerFileDetectorSpockSpec.groovy | 2 +- .../org/demo/spock/DownloadSupportSpec.groovy | 4 +- .../org/demo/spock/InheritedConfigSpec.groovy | 16 +- .../groovy/org/demo/spock/PageDelegateSpec.groovy | 2 +- .../org/demo/spock/PerTestRecordingSpec.groovy | 6 +- .../groovy/org/demo/spock/RootPageSpec.groovy | 6 +- .../org/demo/spock/ServerNameControllerSpec.groovy | 6 +- .../groovy/org/demo/spock/UploadSpec.groovy | 12 +- .../org/demo/spock/pages/ServerNamePage.groovy | 19 +- .../org/demo/spock/pages/UploadSuccessPage.groovy | 18 +- .../gsp-layout/grails-app/views/layouts/main.gsp | 6 +- .../grails-app/views/layouts/main.gsp | 6 +- .../issue450/grails-app/views/layouts/main.gsp | 6 +- .../micronaut/grails-app/views/layouts/main.gsp | 6 +- .../plugins/exploded}/build.gradle | 41 +-- .../exploded/grails-app/conf/application.yml | 98 +++++ .../exploded/grails-app/conf/logback.xml} | 28 +- .../controllers/exploded/LoginController.groovy | 19 +- .../controllers/exploded/UrlMappings.groovy | 27 +- .../grails-app/init/exploded/Application.groovy | 21 +- .../grails-app/init/exploded/BootStrap.groovy | 21 +- .../exploded/grails-app/views/layouts/main.gsp | 70 ++++ .../exploded/grails-app/views/login/auth.gsp} | 18 +- .../groovy/exploded/ExplodedGrailsPlugin.groovy | 23 +- grails-test-examples/scaffolding/build.gradle | 72 ++++ .../grails-app/assets/images/advancedgrails.svg | 27 ++ .../assets/images/apple-touch-icon-retina.png | Bin 0 -> 7038 bytes .../grails-app/assets/images/apple-touch-icon.png | Bin 0 -> 3077 bytes .../grails-app/assets/images/documentation.svg | 19 + .../grails-app/assets/images}/favicon.ico | Bin .../assets/images}/grails-cupsonly-logo-white.svg | 0 .../grails-app/assets/images}/grails.svg | 0 .../scaffolding/grails-app/assets/images/slack.svg | 18 + .../grails-app/assets/javascripts/application.js | 42 +-- .../grails-app/assets/stylesheets/application.css | 25 +- .../grails-app/assets/stylesheets/errors.css | 109 ++++++ .../grails-app/assets/stylesheets/grails.css | 96 +++++ .../scaffolding/grails-app/conf/application.yml | 157 ++++++++ .../grails-app/conf/logback-spring.xml | 4 +- .../controllers/com/example/UrlMappings.groovy | 23 +- .../controllers/com/example/UserController.groovy | 18 +- .../com/example/community/UserController.groovy | 20 +- .../grails-app/domain/com/example/User.groovy | 64 ++++ .../domain/com/example/community/User.groovy | 40 +- .../grails-app/i18n/messages.properties | 71 ++++ .../grails-app/init/com/example/Application.groovy | 22 +- .../grails-app/init/com/example/BootStrap.groovy | 23 +- .../services/com/example/UserService.groovy | 39 +- .../example/community/CommunityUserService.groovy | 20 +- .../scaffolding/grails-app/views/error.gsp | 51 +++ .../scaffolding/grails-app/views/index.gsp | 102 +++++ .../scaffolding/grails-app/views/layouts}/main.gsp | 22 +- .../grails-app/views/notFound.gsp} | 35 +- .../example/UserCommunityControllerSpec.groovy} | 40 +- .../groovy/com/example/UserControllerSpec.groovy} | 40 +- .../groovy/com/example/pages/LoginPage.groovy | 25 +- .../groovy/com/example/pages/LogoutPage.groovy | 26 +- .../converters/JSONDateTimeMarshallingSpec.groovy | 149 ++++++++ grails-testing-support-core/build.gradle | 3 +- grails-testing-support-datamapping/build.gradle | 3 +- grails-testing-support-mongodb/build.gradle | 3 +- grails-testing-support-views-gson/build.gradle | 3 +- grails-testing-support-web/build.gradle | 3 +- .../grails/testing/web/GrailsWebUnitTest.groovy | 5 +- grails-url-mappings/build.gradle | 3 +- grails-validation/build.gradle | 3 +- grails-views-core/build.gradle | 6 +- grails-views-gson/build.gradle | 6 +- .../grails/plugin/json/builder/JsonGenerator.java | 2 +- .../json/converters/InstantJsonConverter.groovy | 3 +- .../converters/ZonedDateTimeJsonConverter.groovy | 2 +- .../view/JsonViewGeneratorConfiguration.groovy | 2 +- .../plugin/json/view/JsonViewGrailsPlugin.groovy | 2 +- .../plugin/json/view/DateTimeRenderingSpec.groovy | 230 ++++++++++++ grails-views-markup/build.gradle | 3 +- .../markup/view/MarkupViewGrailsPlugin.groovy | 2 +- grails-web-boot/build.gradle | 3 +- grails-web-common/build.gradle | 3 +- grails-web-core/build.gradle | 3 +- grails-web-databinding/build.gradle | 7 +- grails-web-mvc/build.gradle | 3 +- grails-web-url-mappings/build.gradle | 3 +- grails-wrapper/build.gradle | 6 +- grails-wrapper/distribution-artifacts/DISCLAIMER | 1 - settings.gradle | 86 ++++- 524 files changed, 7735 insertions(+), 3977 deletions(-) diff --cc dependencies.gradle index ab960a087e,b69ae8e2ec..624f2bbb7d --- a/dependencies.gradle +++ b/dependencies.gradle @@@ -76,8 -72,8 +72,8 @@@ ext 'bootstrap-icons.version' : '1.13.1', 'bootstrap.version' : '5.3.7', 'commons-codec.version' : '1.18.0', - 'geb-spock.version' : '7.0', + 'geb-spock.version' : '8.0.0', - 'groovy.version' : '4.0.29', + 'groovy.version' : '5.0.1', 'h2.version' : '2.3.232', 'jackson.version' : '2.19.1', 'jquery.version' : '3.7.1',
