This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 7.1.x-hibernate6 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 27f6d132eef1bf936ed11b6ca76410e6921065e6 Merge: dbf46748ac 7f5908d8b9 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Nov 22 14:36:23 2025 -0600 Merge branch '7.1.x' into 7.1.x-hibernate6 # Conflicts: # grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/CustomAutoTimestampSpec.groovy .github/scripts/releaseDistributions.sh | 15 +- .github/scripts/releaseJarFiles.sh | 9 +- .github/vote_templates/announce.txt | 14 +- .github/vote_templates/staged.txt | 20 +- .github/vote_templates/vote_succeeded.txt | 12 + .github/workflows/release.yml | 665 ++++++++++----------- .sdkmanrc | 2 +- RELEASE.md | 34 +- dependencies.gradle | 12 +- etc/bin/Dockerfile | 4 +- etc/bin/verify.sh | 27 +- .../groovy/org/grails/config/NavigableMap.groovy | 83 +-- .../src/main/resources/grails-banner.txt | 3 +- .../grails/config/SpringProfileExcludeSpec.groovy | 173 ++++++ grails-cache/build.gradle | 5 +- .../ConvertersConfigurationInitializer.java | 26 +- .../converters/marshaller/json/EnumMarshaller.java | 4 + .../marshaller/json/GenericJavaBeanMarshaller.java | 1 + .../marshaller/json/GroovyBeanMarshaller.java | 1 + ...umMarshaller.java => SimpleEnumMarshaller.java} | 20 +- .../converters/marshaller/xml/EnumMarshaller.java | 4 + .../marshaller/xml/GenericJavaBeanMarshaller.java | 1 + .../marshaller/xml/GroovyBeanMarshaller.java | 1 + ...umMarshaller.java => SimpleEnumMarshaller.java} | 12 +- .../marshaller/json/StaticPropertySpec.groovy | 68 +++ .../src/main/groovy/grails/boot/GrailsApp.groovy | 5 +- .../main/groovy/grails/boot/GrailsBanner.groovy | 380 ++++++++++++ .../additional-spring-configuration-metadata.json | 37 ++ grails-data-hibernate5/dbmigration/build.gradle | 1 - .../advancedGORMFeatures/ormdsl/caching.adoc | 16 +- grails-data-hibernate5/grails-plugin/build.gradle | 1 - grails-data-mongodb/grails-plugin/build.gradle | 5 +- .../examples/grails3-neo4j-hibernate/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../examples/grails3-neo4j/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../datastore/gorm/CustomAutoTimestampSpec.groovy | 77 ++- .../grails/gorm/annotation/AutoTimestamp.java | 2 + .../{AutoTimestamp.java => CreatedBy.java} | 41 +- .../{AutoTimestamp.java => CreatedDate.java} | 19 +- .../{AutoTimestamp.java => LastModifiedBy.java} | 41 +- .../{AutoTimestamp.java => LastModifiedDate.java} | 19 +- .../gorm/events/AutoTimestampEventListener.java | 124 +++- .../datastore/gorm/timestamp/AuditorAware.java | 58 ++ .../AbstractMethodDecoratingTransformation.groovy | 2 - .../eval/DefaultConstraintEvaluator.java | 26 +- .../registry/DefaultValidatorRegistry.groovy | 5 +- .../mapping/config/AuditMetadataType.java | 58 ++ .../datastore/mapping/config/Property.groovy | 6 + .../grails/datastore/mapping/config/Settings.java | 2 + .../connections/ConnectionSourceSettings.groovy | 5 + .../mapping/model/AuditMetadataUtils.java | 186 ++++++ grails-dependencies/assets/build.gradle | 1 + .../guide/cache/cacheUsage/cacheConfiguration.adoc | 2 +- .../en/guide/cache/cacheUsage/cacheUnitTests.adoc | 4 +- .../gradleBuild/gradleDependencies.adoc | 1 + .../guide/conf/applicationClass/customizing.adoc | 125 ++++ grails-doc/src/en/guide/introduction/whatsNew.adoc | 9 +- .../introduction/whatsNew/dependencyUpgrades.adoc | 2 +- .../en/guide/testing/unitTesting/annotations.adoc | 6 +- .../unitTesting/unitTestingDomainClasses.adoc | 10 +- .../unitTesting/unitTestingUrlMappings.adoc | 2 +- .../guide/theWebLayer/gson/jsonInstallation.adoc | 19 +- grails-doc/src/en/guide/theWebLayer/gsp.adoc | 2 +- .../src/en/guide/upgrading/upgrading60x.adoc | 563 ++++++++++++++++- .../plugins/domain/DomainClassGrailsPlugin.groovy | 14 + grails-fields/build.gradle | 2 - .../plugin/formfields/FormFieldsTagLib.groovy | 3 +- .../scaffolding/model/DomainModelService.groovy | 1 + .../model/DomainModelServiceImpl.groovy | 82 ++- .../forge/feature/assetPipeline/AssetPipeline.java | 5 + .../build/gradle/templates/buildGradle.rocker.raw | 7 - .../templates/gradleWrapperProperties.rocker.raw | 5 - .../feature/test/GebWithWebDriverBinaries.java | 9 +- .../grails/forge/io/FileSystemOutputHandler.java | 67 ++- .../main/java/org/grails/forge/io/OutputUtils.java | 61 ++ .../java/org/grails/forge/io/ZipOutputHandler.java | 52 +- .../resources/assets/javascripts/application.js | 4 +- .../resources/assets/stylesheets/application.css | 6 +- .../grails-forge-core/src/main/resources/pom.xml | 14 +- .../test/GebWithWebDriverBinariesSpec.groovy | 4 +- .../org/grails/forge/create/CreateAppSpec.groovy | 2 +- grails-geb/build.gradle | 1 - .../model/src/main/groovy/grails/io/IOUtils.groovy | 5 +- .../main/groovy/grails/util/BuildSettings.groovy | 2 +- .../src/test/groovy/grails/io/IOUtilsSpec.groovy | 11 +- .../gradle/plugin/core/GrailsExtension.groovy | 16 + .../gradle/plugin/core/GrailsGradlePlugin.groovy | 74 ++- .../plugin/core/GrailsPluginGradlePlugin.groovy | 7 +- grails-gsp/grails-sitemesh3/build.gradle | 2 - grails-gsp/plugin/build.gradle | 2 - grails-gsp/spring-boot/build.gradle | 4 +- grails-profiles/web/profile.yml | 2 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 6 +- .../grails/rest/render/ContainerRenderer.groovy | 2 +- .../main/groovy/grails/rest/render/Renderer.groovy | 2 +- .../rest/render/errors/VndErrorJsonRenderer.groovy | 3 +- .../rest/render/errors/VndErrorXmlRenderer.groovy | 3 +- .../grails/rest/render/hal/HalJsonRenderer.groovy | 2 +- .../render/util/AbstractLinkingRenderer.groovy | 4 +- .../rest/render/json/DefaultJsonRenderer.groovy | 2 +- grails-scaffolding/build.gradle | 8 +- .../plugin/scaffolding/DomainServiceLocator.java | 29 +- .../grails/plugin/scaffolding/GormService.groovy | 13 +- .../scaffolding/ScaffoldingGrailsPlugin.groovy | 1 + .../scaffolding/ScaffoldingViewResolver.groovy | 165 +++-- .../scaffolding/ScaffoldingViewResolverSpec.groovy | 273 +++++++++ grails-test-examples/app1/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- grails-test-examples/app2/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../BasicCachingServiceNoCacheManagerSpec.groovy | 2 + .../groovy/com/demo/BasicCachingServiceSpec.groovy | 2 + grails-test-examples/demo33/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 8 +- .../grails-app/controllers/demo/UrlMappings.groovy | 2 + .../demo33/grails-app/domain/demo/Person.groovy | 3 +- .../groovy/demo/DependencyInjectionSpec.groovy | 2 + .../src/test/groovy/demo/DataTestTraitSpec.groovy | 2 + .../demo/GetDomainClassesToMockMethodSpec.groovy | 2 + .../test/groovy/demo/PersonControllerSpec.groovy | 2 + .../demo33/src/test/groovy/demo/PersonSpec.groovy | 2 + grails-test-examples/geb-gebconfig/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 8 +- grails-test-examples/geb/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 8 +- .../org/demo/spock/PerTestRecordingSpec.groovy | 12 +- grails-test-examples/gsp-layout/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 8 +- grails-test-examples/gsp-sitemesh3/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 8 +- .../grails-database-per-tenant/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../hibernate5/grails-hibernate/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../grails-partitioned-multi-tenancy/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../grails-schema-per-tenant/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../hibernate5/issue450/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 8 +- grails-test-examples/hyphenated/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- grails-test-examples/issue-11102/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 8 +- .../build.gradle | 25 +- .../issue-15228/grails-app/conf/application.yml | 58 ++ .../issue-15228/grails-app/conf/logback.xml | 39 ++ .../issue15228/app/AppController.groovy} | 26 +- .../controllers/issue15228/app/UrlMappings.groovy} | 13 +- .../init/issue15228/app}/Application.groovy | 6 +- .../grails-app/views/app/normalView.gson} | 12 +- .../grails-app/views/errors/_errors.gson} | 30 +- .../_otherValidateableObject.gson} | 12 +- .../issue11767/app/GsonViewRespondSpec.groovy | 104 ++++ .../issue15228/app/OtherValidateableObject.groovy} | 14 +- .../issue15228/app/ValidateableObject.groovy} | 14 +- .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 8 +- grails-test-examples/mongodb/base/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../mongodb/database-per-tenant/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../mongodb/gson-templates/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../mongodb/hibernate5/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- grails-test-examples/namespaces/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- grails-test-examples/plugins/exploded/build.gradle | 1 - .../plugins/issue11005/build.gradle | 1 - .../plugins/loadafter/build.gradle | 1 - .../plugins/loadfirst/build.gradle | 1 - .../plugins/loadsecond/build.gradle | 1 - grails-test-examples/scaffolding/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 4 +- .../grails-app/assets/stylesheets/application.css | 6 +- .../grails-app/domain/com/example/User.groovy | 15 +- .../domain/com/example/community/User.groovy | 15 +- .../grails-app/init/com/example/Application.groovy | 7 + .../com/example/SpringSecurityAuditorAware.groovy | 50 ++ .../views-functional-tests-plugin/build.gradle | 2 - .../views-functional-tests/build.gradle | 1 + .../grails-app/assets/javascripts/application.js | 2 +- .../grails-app/assets/stylesheets/application.css | 4 +- .../groovy/functional/tests/BookSpec.groovy | 27 +- .../rest/render/xml/DefaultXmlRendererSpec.groovy | 3 - .../web/converters/JSONConverterTests.groovy | 24 + .../grails/testing/spock/OnceBeforeSpec.groovy | 2 + .../groovy/grails/testing/spock/RunOnceSpec.groovy | 2 + grails-testing-support-web/build.gradle | 1 + .../views/mvc/renderer/DefaultViewRenderer.groovy | 2 +- grails-views-gson/build.gradle | 2 - .../AbstractJsonViewContainerRenderer.groovy | 11 +- grails-views-markup/build.gradle | 2 - .../grails/web/mapping/ResponseRedirector.groovy | 8 +- .../groovy/grails/web/mapping/UrlMappingData.java | 5 + .../grails/web/mapping/DefaultUrlMappingData.java | 24 +- .../org/grails/web/mapping/RegexUrlMapping.java | 9 + .../web/mapping/ResponseCodeMappingData.java | 5 + .../web/mapping/RedirectNonAbsoluteURISpec.groovy | 22 + .../UrlMappingsWithGreedyExtensionSpec.groovy | 230 +++++++ settings.gradle | 2 + 225 files changed, 4138 insertions(+), 999 deletions(-)
