You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2026/02/20 14:16:13 UTC
(grails-core) branch 8.0.x updated (5dbe4667c4 -> f89fb0313b)
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a change to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
from 5dbe4667c4 Merge branch '7.1.x' into 8.0.x
add c9544f62b1 feat(grails-gradle): move indy configuration from generated apps to Gradle plugin
add 6e696327f1 docs: update upgrade guide for indy configuration move to Gradle plugin
add 5880404fac fix: add setIndy setter and defer indy configuration to afterEvaluate
add 4f08683f85 Fix typo in upgrading documentation for Groovy 4
add d1db8ab004 Merge pull request #15375 from apache/feat/move-indy-config-to-gradle-plugin
add 4415845554 test(ci): add indy matrix to functional test CI jobs
add a7d262bc0e Merge pull request #15415 from jamesfredley/test/indy-ci-coverage
add f106a6e6e8 fix GRAILS_REPO_URL in profile app generation to not output a regular string for path based repositories
add 010ab77e13 Merge pull request #15383 from jdaugherty/7.0.x
add 6f9ae2ba52 Incorrect password mapping in DataSourceSettings
add 1166c26602 Merge pull request #15381 from rahulshishodia/ds-mapping
add b531f5d1c7 docs: Update Maven Central badge in Geb README.md
add d44784efff Merge pull request #15390 from apache/matrei-patch-1
add 890e2fd220 Remove MVCC=true from H2 urls
add b697f35f36 Merge pull request #15389 from jdaugherty/7.0.x
add 50ceb6f46d Document CodeNarc configuration for Grails projects
add 5c1baa1caa Align CodeNarc docs with canonical ruleset and grails-server-timing feedback
add 19ce40acdc Move code analysis out of testing into new section per review
add a1257482f7 Bump actions/checkout from 4 to 6
add ddf4afd358 Merge pull request #15380 from apache/dependabot/github_actions/actions/checkout-6
add c59fe669f4 test: stabilize flaky scaffolding Geb tests for slow CI environments
add dd973f5032 fix: remove waitFor from cleanup to prevent WaitTimeoutException in Geb lifecycle
add 1d02a35cef test: cleanup tests with Page objects
add af04a73cb4 Merge pull request #15394 from apache/fix/flaky-scaffolding-geb-tests
add b5b7f46d16 Include jakarta.servlet-api in CLI runtime classpath
add 4ada477550 Merge pull request #15392 from jamesfredley/fix/grails-cli-servlet-classpath
add 534a3e58a2 fix: filter command options from Spring Boot args in GrailsApplicationContextCommandRunner and GrailsApplicationScriptRunner
add f1c335af60 Simplify filterCommandOptions to idiomatic Groovy findAll per review feedback
add 2c855f7f02 fix: add defensive null guard to filterCommandOptions
add 9fea2dea0c Merge pull request #15397 from jamesfredley/fix/command-runner-spring-boot-arg-conflict
add 4ff82d73e9 docs: add comment explaining why jakarta.servlet-api is implementation scope
add 3d1d619478 Merge pull request #15412 from apache/docs/cli-servlet-dependency-comment
add 4e04e96f81 fix: preserve explicit datasource qualifiers for MultiTenant entities in allQualifiers()
add fe2682be81 test: add DataServiceMultiTenantMultiDataSourceSpec for DISCRIMINATOR + secondary datasource
add 58b5fe2c9d test: add functional test app and address review feedback for MultiTenant + multi-datasource
add d507d56731 test: register functional test app in settings.gradle and add logback.xml
add 465218f747 test: clean up some tests
add db9083dc8f Merge pull request #15393 from jamesfredley/fix/multitenant-datasource-qualifier-routing
add ceb3e52195 Merge branch '7.0.x' into docs/codenarc-gorm-compatibility
add dd033e5b98 Merge pull request #15404 from jamesfredley/docs/codenarc-gorm-compatibility
add 749ac0edd0 Propagate Java toolchain to JavaExec tasks
add fec38f4908 Rewrite toolchain tests to Spock with file-based fixtures
add 5d7c861a40 fix: move test system properties to shared test-config.gradle
add 63beaf36fb Merge pull request #15403 from jamesfredley/fix/javaexec-toolchain-inheritance
add c441af1fa8 fix: reject unsupported JSP/Groovy declaration blocks in GSP parser
add 8472bb3b69 Merge pull request #15398 from jamesfredley/fix/gsp-declaration-block-error
add 55b443443b fix: route auto-implemented save/delete/get through connection-aware API
add 07fb4937af fix: route FindAndDeleteImplementer through connection-aware API + add tests
add 6524784893 test: add DataServiceMultiDataSourceSpec and functional test app for connection routing
add 1b5c7c1589 test: add logback.xml to functional test app
add cad5796a38 refactor: harmonize newMethodNode usage and add interface Data Service TCK tests
add 3e742f6aab Merge branch '7.0.x' into fix/data-service-connection-routing
add 647ffd41bb test: clean up some tests and improve readability
add 7cfae2f071 fix: use abstractMethodNode for findConnectionId to resolve class-level @Transactional annotations
add 66fcfb85e5 test: clean up and improve readability
add 0202ae682b Merge pull request #15395 from jamesfredley/fix/data-service-connection-routing
add 3a7c0f99a5 fix: remove @CompileStatic-incompatible lazy getters from @Service abstract classes
add 70a04fdeb0 test: add functional test for @CompileStatic service with injected @Service property
add aa9fb52c9c fix: address Copilot review - correct comment and test name accuracy
add e71a310230 fix: remove unused imports left over from lazy getter removal
add b4c9e6ce21 style: whitespace for readability
add 0cb1654740 style(test): formatting
add bc9aa89836 Merge pull request #15396 from jamesfredley/fix/compile-static-service-injection
add f09f5f90c4 fix: use Page Object pattern for flaky Geb tests across all subprojects
add 4be5f97fe8 fix: address review feedback - add leading slashes to URLs, rename AdminPagePage/FrontendPagePage
add 138c52665e test: some more cleanup of geb specs
add 2e3bf9d477 ci: trigger CI re-run
add 8519169c4f docs: correct timeout settings in Geb README.md
add 4e643d216f chore: double the Geb timeout setting for CI to 10 seconds
add 7a40ae107d fix(geb): overriding default timeouts with settings
add aad9bf13b2 Merge branch '7.0.x' into fix/flaky-geb-tests
add 93e150c0df Merge pull request #15410 from jamesfredley/fix/flaky-geb-tests
add 053610bb49 Merge branch '7.0.x' into 7.1.x
new f89fb0313b Merge branch '7.1.x' into 8.0.x
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.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 +++++++++++
.../src/en/guide/bestPractices.adoc | 4 +-
.../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} | 12 +-
.../groovy/functionaltests/pages/BookPages.groovy | 55 +--
.../pages/ConventionLayoutPage.groovy} | 12 +-
.../functionaltests/pages/FooLayoutPage.groovy} | 12 +-
.../pages/FooLayoutSnippetPage.groovy} | 12 +-
.../functionaltests/pages/FooListPage.groovy} | 12 +-
.../groovy/functionaltests}/pages/HomePage.groovy | 13 +-
.../functionaltests/pages/LoginAuthPage.groovy} | 12 +-
.../groovy/functionaltests/pages/MiscPages.groovy} | 27 +-
.../functionaltests/pages/PartialPage.groovy} | 12 +-
.../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} | 12 +-
.../groovy/exploded/LoadAfterSpec.groovy | 9 +-
.../groovy/exploded/pages/LoginAuthPage.groovy} | 11 +-
.../services/gorm/AuthorDataService.groovy} | 26 +-
.../services/gorm/CompileStaticBookService.groovy | 89 +++++
.../groovy/gorm/GormDataServicesSpec.groovy | 177 +++++++---
.../build.gradle | 7 +-
.../grails-app/conf/application.yml | 47 ++-
.../grails-app/conf/logback.xml | 2 +-
.../grails-app/domain/example/Product.groovy} | 19 +-
.../grails-app/init/example}/Application.groovy | 2 +-
.../services/example/ProductService.groovy} | 34 +-
.../DataServiceMultiDataSourceSpec.groovy | 134 ++++++++
.../functional/tests/BookControllerSpec.groovy | 24 +-
.../groovy/functional/tests/pages/BookPages.groovy | 53 +--
.../build.gradle | 7 +-
.../grails-app/conf/application.yml | 51 ++-
.../grails-app/conf/logback.xml | 2 +-
.../grails-app/domain/example/Metric.groovy} | 18 +-
.../grails-app/init/example}/Application.groovy | 3 +-
.../services/example/MetricService.groovy | 65 ++++
.../MultiTenantMultiDataSourceSpec.groovy | 183 ++++++++++
.../functional/tests/BookControllerSpec.groovy | 28 +-
.../groovy/functional/tests/pages/BookPages.groovy | 53 +--
.../functional/tests/AuthorControllerSpec.groovy | 28 +-
.../functional/tests/BookControllerSpec.groovy | 28 +-
.../functional/tests/pages/AuthorPages.groovy | 56 +--
.../groovy/functional/tests/pages/BookPages.groovy | 53 +--
.../groovy/context/ContextPathSpec.groovy | 23 +-
.../groovy/context/pages/EnvironmentPages.groovy} | 23 +-
.../groovy/namespaces/PageControllerSpec.groovy | 19 +-
.../namespaces/admin/ReportControllerSpec.groovy | 18 +-
.../namespaces/admin/pages/ReportPages.groovy} | 24 +-
.../groovy/namespaces/pages/AdminPage.groovy} | 12 +-
.../groovy/namespaces/pages/FrontendPage.groovy} | 12 +-
.../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, 4173 insertions(+), 1053 deletions(-)
create mode 100644 grails-console/src/test/groovy/grails/ui/command/GrailsApplicationContextCommandRunnerSpec.groovy
create mode 100644 grails-console/src/test/groovy/grails/ui/script/GrailsApplicationScriptRunnerSpec.groovy
create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/connections/DataServiceMultiDataSourceSpec.groovy
create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/connections/DataServiceMultiTenantMultiDataSourceSpec.groovy
create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/CompileStaticServiceInjectionSpec.groovy
create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/ConnectionRoutingServiceTransformSpec.groovy
create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormEnhancerAllQualifiersSpec.groovy
copy grails-async/README.adoc => grails-doc/src/en/guide/bestPractices.adoc (72%)
create mode 100644 grails-doc/src/en/guide/bestPractices/codeAnalysisGroovy.adoc
create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GradleSpecification.groovy
create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsGradlePluginToolchainSpec.groovy
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/fork-settings-custom/build.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/fork-settings-custom/gradle.properties
copy grails-forge/grails-forge-core/src/main/resources/.gitkeep => grails-gradle/plugins/src/test/resources/test-projects/fork-settings-custom/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/fork-settings-custom/settings.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/fork-settings-defaults/build.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/fork-settings-defaults/gradle.properties
copy grails-forge/grails-forge-core/src/main/resources/.gitkeep => grails-gradle/plugins/src/test/resources/test-projects/fork-settings-defaults/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/fork-settings-defaults/settings.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/no-toolchain-javaexec/build.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/no-toolchain-javaexec/gradle.properties
copy grails-forge/grails-forge-core/src/main/resources/.gitkeep => grails-gradle/plugins/src/test/resources/test-projects/no-toolchain-javaexec/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/no-toolchain-javaexec/settings.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/no-toolchain-web/build.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/no-toolchain-web/gradle.properties
copy grails-forge/grails-forge-core/src/main/resources/.gitkeep => grails-gradle/plugins/src/test/resources/test-projects/no-toolchain-web/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/no-toolchain-web/settings.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-command/build.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-command/gradle.properties
copy grails-forge/grails-forge-core/src/main/resources/.gitkeep => grails-gradle/plugins/src/test/resources/test-projects/toolchain-command/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-command/settings.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-javaexec/build.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-javaexec/gradle.properties
copy grails-forge/grails-forge-core/src/main/resources/.gitkeep => grails-gradle/plugins/src/test/resources/test-projects/toolchain-javaexec/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-javaexec/settings.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-override/build.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-override/gradle.properties
copy grails-forge/grails-forge-core/src/main/resources/.gitkeep => grails-gradle/plugins/src/test/resources/test-projects/toolchain-override/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-override/settings.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-test/build.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-test/gradle.properties
copy grails-forge/grails-forge-core/src/main/resources/.gitkeep => grails-gradle/plugins/src/test/resources/test-projects/toolchain-test/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/toolchain-test/settings.gradle
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => app1/src/integration-test/groovy/functionaltests/pages/BarListPage.groovy} (82%)
copy grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/services/implementers/CountByImplementer.groovy => grails-test-examples/app1/src/integration-test/groovy/functionaltests/pages/BookPages.groovy (50%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => app1/src/integration-test/groovy/functionaltests/pages/ConventionLayoutPage.groovy} (80%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => app1/src/integration-test/groovy/functionaltests/pages/FooLayoutPage.groovy} (81%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => app1/src/integration-test/groovy/functionaltests/pages/FooLayoutSnippetPage.groovy} (79%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => app1/src/integration-test/groovy/functionaltests/pages/FooListPage.groovy} (82%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock => app1/src/integration-test/groovy/functionaltests}/pages/HomePage.groovy (76%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => app1/src/integration-test/groovy/functionaltests/pages/LoginAuthPage.groovy} (81%)
copy grails-test-examples/{scaffolding/src/integrationTest/groovy/com/example/pages/LoginPage.groovy => app1/src/integration-test/groovy/functionaltests/pages/MiscPages.groovy} (62%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => app1/src/integration-test/groovy/functionaltests/pages/PartialPage.groovy} (80%)
copy grails-test-examples/{scaffolding/src/integrationTest/groovy/com/example/pages/LogoutPage.groovy => app2/src/integration-test/groovy/app2/pages/FooPages.groovy} (72%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => app3/src/integration-test/groovy/app3/pages/LoginAuthPage.groovy} (82%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => exploded/src/integration-test/groovy/exploded/pages/LoginAuthPage.groovy} (82%)
copy grails-test-examples/{hibernate5/grails-schema-per-tenant/grails-app/services/schemapertenant/BookService.groovy => gorm/grails-app/services/gorm/AuthorDataService.groovy} (69%)
create mode 100644 grails-test-examples/gorm/grails-app/services/gorm/CompileStaticBookService.groovy
copy grails-test-examples/hibernate5/{grails-data-service => grails-data-service-multi-datasource}/build.gradle (88%)
copy grails-test-examples/{async-events-pubsub-demo => hibernate5/grails-data-service-multi-datasource}/grails-app/conf/application.yml (69%)
copy {grails-data-graphql/examples/grails-tenant-app => grails-test-examples/hibernate5/grails-data-service-multi-datasource}/grails-app/conf/logback.xml (98%)
copy grails-test-examples/hibernate5/{grails-multiple-datasources/grails-app/domain/ds2/Book.groovy => grails-data-service-multi-datasource/grails-app/domain/example/Product.groovy} (74%)
copy grails-test-examples/hibernate5/{grails-hibernate-groovy-proxy/grails-app/init/datasources => grails-data-service-multi-datasource/grails-app/init/example}/Application.groovy (98%)
copy grails-test-examples/hibernate5/{grails-data-service/grails-app/services/example/StudentService.groovy => grails-data-service-multi-datasource/grails-app/services/example/ProductService.groovy} (58%)
create mode 100644 grails-test-examples/hibernate5/grails-data-service-multi-datasource/src/integration-test/groovy/functionaltests/DataServiceMultiDataSourceSpec.groovy
copy grails-shell-cli/src/main/groovy/org/grails/cli/profile/commands/ClosureExecutingCommand.groovy => grails-test-examples/hibernate5/grails-hibernate/src/integration-test/groovy/functional/tests/pages/BookPages.groovy (52%)
copy grails-test-examples/hibernate5/{grails-data-service => grails-multitenant-multi-datasource}/build.gradle (88%)
copy grails-test-examples/{async-events-pubsub-demo => hibernate5/grails-multitenant-multi-datasource}/grails-app/conf/application.yml (66%)
copy {grails-data-graphql/examples/grails-tenant-app => grails-test-examples/hibernate5/grails-multitenant-multi-datasource}/grails-app/conf/logback.xml (98%)
copy grails-test-examples/hibernate5/{grails-partitioned-multi-tenancy/grails-app/domain/example/Book.groovy => grails-multitenant-multi-datasource/grails-app/domain/example/Metric.groovy} (65%)
copy grails-test-examples/{app2/grails-app/init/app2 => hibernate5/grails-multitenant-multi-datasource/grails-app/init/example}/Application.groovy (98%)
create mode 100644 grails-test-examples/hibernate5/grails-multitenant-multi-datasource/grails-app/services/example/MetricService.groovy
create mode 100644 grails-test-examples/hibernate5/grails-multitenant-multi-datasource/src/integration-test/groovy/functionaltests/MultiTenantMultiDataSourceSpec.groovy
copy grails-shell-cli/src/main/groovy/org/grails/cli/profile/commands/ClosureExecutingCommand.groovy => grails-test-examples/mongodb/base/src/integration-test/groovy/functional/tests/pages/BookPages.groovy (52%)
copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/MapPropertySpec.groovy => grails-test-examples/mongodb/hibernate5/src/integration-test/groovy/functional/tests/pages/AuthorPages.groovy (52%)
copy grails-shell-cli/src/main/groovy/org/grails/cli/profile/commands/ClosureExecutingCommand.groovy => grails-test-examples/mongodb/hibernate5/src/integration-test/groovy/functional/tests/pages/BookPages.groovy (52%)
copy grails-test-examples/{scaffolding/src/integrationTest/groovy/com/example/pages/LoginPage.groovy => namespaces/src/integration-test/groovy/context/pages/EnvironmentPages.groovy} (69%)
copy grails-test-examples/{scaffolding/src/integrationTest/groovy/com/example/pages/LoginPage.groovy => namespaces/src/integration-test/groovy/namespaces/admin/pages/ReportPages.groovy} (69%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => namespaces/src/integration-test/groovy/namespaces/pages/AdminPage.groovy} (81%)
copy grails-test-examples/{geb-gebconfig/src/integration-test/groovy/org/demo/spock/pages/HomePage.groovy => namespaces/src/integration-test/groovy/namespaces/pages/FrontendPage.groovy} (81%)
copy grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/{LogoutPage.groovy => CommunityUserListPage.groovy} (79%)
copy grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/{LogoutPage.groovy => UserListPage.groovy} (82%)
(grails-core) 01/01: Merge branch '7.1.x' into 8.0.x
Posted by jd...@apache.org.
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 <te...@example.com>
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(-)