This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch 8.0.x in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit f89fb0313bc0a98423a073de56fcafb327f67c00 Merge: 5dbe4667c4 053610bb49 Author: Test <[email protected]> AuthorDate: Fri Feb 20 09:15:58 2026 -0500 Merge branch '7.1.x' into 8.0.x .github/workflows/codeql.yml | 2 +- .github/workflows/codestyle.yml | 6 +- .github/workflows/forge-deploy-next.yml | 6 +- .github/workflows/forge-deploy-prev-snapshot.yml | 6 +- .github/workflows/forge-deploy-prev.yml | 6 +- .github/workflows/forge-deploy-release.yml | 6 +- .github/workflows/forge-deploy-snapshot.yml | 6 +- .github/workflows/gradle.yml | 41 ++- .github/workflows/groovy-joint-workflow.yml | 4 +- .github/workflows/rat.yml | 2 +- .github/workflows/release-close.yml | 2 +- .github/workflows/release-publish-docs.yml | 2 +- .github/workflows/release.yml | 14 +- gradle/functional-test-config.gradle | 1 + gradle/grails-extension-gradle-config.gradle | 7 + grails-console/build.gradle | 1 + .../GrailsApplicationContextCommandRunner.groovy | 34 +- .../ui/script/GrailsApplicationScriptRunner.groovy | 9 +- ...railsApplicationContextCommandRunnerSpec.groovy | 136 ++++++++ .../GrailsApplicationScriptRunnerSpec.groovy | 54 +++ grails-core/src/test/resources/application.yml | 4 +- .../src/test/resources/foo-plugin-environments.yml | 4 +- .../grails-app/conf/application.yml | 8 +- .../DataServiceMultiDataSourceSpec.groovy | 365 ++++++++++++++++++++ ...ataServiceMultiTenantMultiDataSourceSpec.groovy | 297 ++++++++++++++++ .../gorm/tests/MultipleDataSourceSpec.groovy | 67 ++-- .../org/grails/datastore/gorm/GormEnhancer.groovy | 18 +- .../jdbc/connections/DataSourceSettings.groovy | 2 +- ...stractDetachedCriteriaServiceImplementor.groovy | 13 +- .../implementers/AbstractSaveImplementer.groovy | 6 +- .../services/implementers/DeleteImplementer.groovy | 11 +- .../implementers/FindAndDeleteImplementer.groovy | 32 +- .../services/implementers/SaveImplementer.groovy | 19 +- .../implementers/UpdateOneImplementer.groovy | 2 +- .../transform/ServiceTransformation.groovy | 23 +- .../CompileStaticServiceInjectionSpec.groovy | 356 +++++++++++++++++++ .../ConnectionRoutingServiceTransformSpec.groovy | 380 +++++++++++++++++++++ .../gorm/GormEnhancerAllQualifiersSpec.groovy | 204 +++++++++++ grails-doc/src/en/guide/bestPractices.adoc | 20 ++ .../en/guide/bestPractices/codeAnalysisGroovy.adoc | 159 +++++++++ .../guide/conf/dataSource/multipleDatasources.adoc | 12 +- grails-doc/src/en/guide/conf/environments.adoc | 6 +- grails-doc/src/en/guide/toc.yml | 3 + .../src/en/guide/upgrading/upgrading60x.adoc | 15 +- .../build/gradle/templates/buildGradle.rocker.raw | 4 - grails-geb/README.md | 4 +- .../src/main/templates/FunctionalSpec.groovy | 19 +- .../plugin/geb/WebDriverContainerHolder.groovy | 4 +- grails-gradle/gradle/test-config.gradle | 2 + grails-gradle/plugins/build.gradle | 11 + .../gradle/plugin/core/GrailsExtension.groovy | 14 + .../gradle/plugin/core/GrailsGradlePlugin.groovy | 53 +++ .../gradle/plugin/core/GradleSpecification.groovy | 134 ++++++++ .../core/GrailsGradlePluginToolchainSpec.groovy | 136 ++++++++ .../fork-settings-custom/build.gradle | 18 + .../fork-settings-custom/gradle.properties | 1 + .../grails-app/conf/application.yml | 0 .../fork-settings-custom/settings.gradle | 1 + .../fork-settings-defaults/build.gradle | 18 + .../fork-settings-defaults/gradle.properties | 1 + .../grails-app/conf/application.yml | 0 .../fork-settings-defaults/settings.gradle | 1 + .../no-toolchain-javaexec/build.gradle | 19 ++ .../no-toolchain-javaexec/gradle.properties | 1 + .../grails-app/conf/application.yml | 0 .../no-toolchain-javaexec/settings.gradle | 1 + .../test-projects/no-toolchain-web/build.gradle | 9 + .../no-toolchain-web/gradle.properties | 1 + .../grails-app/conf/application.yml | 0 .../test-projects/no-toolchain-web/settings.gradle | 1 + .../test-projects/toolchain-command/build.gradle | 25 ++ .../toolchain-command/gradle.properties | 1 + .../grails-app/conf/application.yml | 0 .../toolchain-command/settings.gradle | 1 + .../test-projects/toolchain-javaexec/build.gradle | 26 ++ .../toolchain-javaexec/gradle.properties | 1 + .../grails-app/conf/application.yml | 0 .../toolchain-javaexec/settings.gradle | 1 + .../test-projects/toolchain-override/build.gradle | 30 ++ .../toolchain-override/gradle.properties | 1 + .../grails-app/conf/application.yml | 0 .../toolchain-override/settings.gradle | 1 + .../test-projects/toolchain-test/build.gradle | 21 ++ .../test-projects/toolchain-test/gradle.properties | 1 + .../toolchain-test/grails-app/conf/application.yml | 0 .../test-projects/toolchain-test/settings.gradle | 1 + .../org/grails/gsp/compiler/GroovyPageParser.java | 13 +- .../groovy/org/grails/web/pages/ParseSpec.groovy | 31 ++ grails-profiles/base/skeleton/build.gradle | 4 - grails-shell-cli/build.gradle | 8 +- .../cli/profile/commands/CreateAppCommand.groovy | 8 +- .../functionaltests/BookFunctionalSpec.groovy | 47 ++- .../groovy/functionaltests/HomeSpec.groovy | 37 +- .../groovy/functionaltests/LoadAfterSpec.groovy | 10 +- .../functionaltests/MiscFunctionalSpec.groovy | 28 +- .../layout/LayoutFunctionalSpec.groovy | 27 +- .../layout/LayoutWithTemplateSpec.groovy | 13 +- .../functionaltests/pages/BarListPage.groovy} | 15 +- .../groovy/functionaltests/pages/BookPages.groovy | 62 ++++ .../pages/ConventionLayoutPage.groovy} | 15 +- .../functionaltests/pages/FooLayoutPage.groovy} | 15 +- .../pages/FooLayoutSnippetPage.groovy} | 15 +- .../functionaltests/pages/FooListPage.groovy} | 15 +- .../groovy/functionaltests/pages/HomePage.groovy} | 20 +- .../functionaltests/pages/LoginAuthPage.groovy} | 15 +- .../groovy/functionaltests/pages/MiscPages.groovy} | 27 +- .../functionaltests/pages/PartialPage.groovy} | 15 +- .../scaffolding/BarFunctionalSpec.groovy | 14 +- .../scaffolding/FooFunctionalSpec.groovy | 14 +- .../groovy/app2/NotFoundHandlerSpec.groovy | 22 +- .../groovy/app2/pages/FooPages.groovy} | 23 +- .../groovy/app3/LoadAfterSpec.groovy | 9 +- .../groovy/app3/pages/LoginAuthPage.groovy} | 15 +- .../groovy/exploded/LoadAfterSpec.groovy | 9 +- .../groovy/exploded/pages/LoginAuthPage.groovy} | 14 +- .../services/gorm/AuthorDataService.groovy} | 25 +- .../services/gorm/CompileStaticBookService.groovy | 89 +++++ .../groovy/gorm/GormDataServicesSpec.groovy | 177 +++++++--- .../build.gradle | 49 +++ .../grails-app/conf/application.yml | 58 ++++ .../grails-app/conf/logback.xml | 37 ++ .../grails-app/domain/example/Product.groovy} | 25 +- .../grails-app/init/example/Application.groovy} | 19 +- .../services/example/ProductService.groovy} | 41 +-- .../DataServiceMultiDataSourceSpec.groovy | 134 ++++++++ .../functional/tests/BookControllerSpec.groovy | 24 +- .../functional/tests/pages/BookPages.groovy} | 40 ++- .../build.gradle | 49 +++ .../grails-app/conf/application.yml | 62 ++++ .../grails-app/conf/logback.xml | 37 ++ .../grails-app/domain/example/Metric.groovy} | 37 +- .../grails-app/init/example/Application.groovy} | 16 +- .../services/example/MetricService.groovy | 65 ++++ .../MultiTenantMultiDataSourceSpec.groovy | 183 ++++++++++ .../functional/tests/BookControllerSpec.groovy | 28 +- .../functional/tests/pages/BookPages.groovy} | 40 ++- .../functional/tests/AuthorControllerSpec.groovy | 28 +- .../functional/tests/BookControllerSpec.groovy | 28 +- .../functional/tests/pages/AuthorPages.groovy} | 41 ++- .../functional/tests/pages/BookPages.groovy} | 40 ++- .../groovy/context/ContextPathSpec.groovy | 23 +- .../groovy/context/pages/EnvironmentPages.groovy} | 21 +- .../groovy/namespaces/PageControllerSpec.groovy | 19 +- .../namespaces/admin/ReportControllerSpec.groovy | 18 +- .../namespaces/admin/pages/ReportPages.groovy} | 22 +- .../groovy/namespaces/pages/AdminPage.groovy} | 15 +- .../groovy/namespaces/pages/FrontendPage.groovy} | 15 +- .../scaffoldingfields/CrudFunctionalSpec.groovy | 284 +++++++-------- .../groovy/scaffoldingfields/FieldTypesSpec.groovy | 52 ++- .../scaffoldingfields/pages/DepartmentPages.groovy | 5 + .../scaffoldingfields/pages/EmployeePages.groovy | 10 + .../pages/ScaffoldEditPage.groovy | 2 +- .../pages/ScaffoldShowPage.groovy | 2 +- .../com/example/UserCommunityControllerSpec.groovy | 26 +- .../groovy/com/example/UserControllerSpec.groovy | 24 +- ...outPage.groovy => CommunityUserListPage.groovy} | 12 +- .../groovy/com/example/pages/LoginPage.groovy | 17 +- .../groovy/com/example/pages/LogoutPage.groovy | 15 +- .../{LogoutPage.groovy => UserListPage.groovy} | 12 +- settings.gradle | 8 + 160 files changed, 4484 insertions(+), 984 deletions(-)
