This is an automated email from the ASF dual-hosted git repository. scottheiberg pushed a commit to branch 7.1.x in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 164063b256a3e36d0bdbf513adf12549acd4c357 Merge: 15bf44dbc6 f84c343863 Author: Scott Murphy <[email protected]> AuthorDate: Thu Feb 26 12:29:52 2026 -0800 Merge pull request #15468 from apache/7.0.x Merge 7.0.x into 7.1.x AGENTS.md | 4 + build-logic/plugins/build.gradle | 8 + .../grails/buildsrc/GrailsGroovydocPlugin.groovy | 40 +- .../buildsrc/GroovydocEnhancerExtension.groovy | 108 +++++ .../grails/buildsrc/GroovydocEnhancerPlugin.groovy | 180 +++++++ gradle/docs-dependencies.gradle | 61 +-- gradle/publish-root-config.gradle | 3 + grails-data-docs/stage/build.gradle | 27 +- .../groovy/myapp/BarIntegrationSpec.groovy | 3 +- .../groovy/myapp/FooIntegrationSpec.groovy | 3 +- .../grails/orm/HibernateCriteriaBuilder.java | 26 ++ .../query/AbstractHibernateCriteriaBuilder.java | 41 +- .../hibernate/query/AbstractHibernateQuery.java | 99 +++- .../gorm/tests/DetachedCriteriaJoinSpec.groovy | 124 ++++- .../grails/gorm/tests/WhereQueryBugFixSpec.groovy | 106 +++++ .../tests/compositeid/CompositeIdCriteria.groovy | 80 ++++ .../core/GrailsDataHibernate5TckManager.groovy | 44 ++ .../DataServiceMultiDataSourceSpec.groovy | 42 +- ...ataServiceMultiTenantMultiDataSourceSpec.groovy | 42 +- .../MultipleDataSourceConnectionsSpec.groovy | 72 ++- grails-data-hibernate5/docs/build.gradle | 43 +- .../multipleDataSources/dataSourceNamespaces.adoc | 2 + .../docs/asciidoc/multipleDataSources/index.adoc | 4 + .../docs/src/docs/asciidoc/services/index.adoc | 5 + .../asciidoc/services/multipleDataSources.adoc | 262 +++++++++++ grails-data-hibernate5/grails-plugin/build.gradle | 1 + .../GrailsOpenSessionInViewInterceptor.java | 138 +++++- .../support/MultiDataSourceSessionSpec.groovy | 193 ++++++++ .../MongoDbDataStoreSpringInitializerSpec.groovy | 24 +- .../mongo/core/GrailsDataMongoTckManager.groovy | 43 ++ grails-data-mongodb/docs/build.gradle | 43 +- .../gorm/tests/DeepValidateWithSaveSpec.groovy | 46 +- .../grails/gorm/tests/WhereMethodSpec.groovy | 84 ++++ .../gorm/SaveWithFailOnErrorDefaultSpec.groovy | 50 +- .../transform/DetachedCriteriaTransformer.java | 16 +- .../gorm/GormEnhancerAllQualifiersSpec.groovy | 32 ++ .../testing/tck/base/GrailsDataTckManager.groovy | 16 + .../tck/domains/DataServiceRoutingMetric.groovy | 42 ++ .../domains/DataServiceRoutingMetricService.groovy | 39 ++ .../tck/domains/DataServiceRoutingProduct.groovy | 40 ++ .../DataServiceRoutingProductDataService.groovy | 41 ++ .../DataServiceRoutingProductService.groovy | 43 ++ .../tck/tests/CrossLayerMultiDataSourceSpec.groovy | 148 ++++++ ...CrossLayerMultiTenantMultiDataSourceSpec.groovy | 132 ++++++ .../tests/DataServiceConnectionRoutingSpec.groovy | 288 ++++++++++++ ...aServiceMultiTenantConnectionRoutingSpec.groovy | 153 ++++++ .../tck/tests/DomainMultiDataSourceSpec.groovy | 180 +++++++ .../DomainMultiTenantMultiDataSourceSpec.groovy | 168 +++++++ .../tests/WhereQueryConnectionRoutingSpec.groovy | 36 +- grails-doc/build.gradle | 21 +- .../guide/conf/dataSource/multipleDatasources.adoc | 244 ++++++++++ .../transactionsMultiDataSource.adoc | 2 + .../src/en/guide/testing/integrationTesting.adoc | 143 ++++++ grails-forge/gradle/doc-config.gradle | 45 +- grails-gradle/gradle/docs-config.gradle | 35 +- .../build.gradle | 47 +- .../grails-app/conf/application.yml | 36 ++ .../database-cleanup/grails-app/conf/logback.xml | 37 ++ .../controllers/dbcleanup/UrlMappings.groovy} | 21 +- .../grails-app/domain/dbcleanup/Author.groovy} | 13 +- .../grails-app/domain/dbcleanup}/Book.groovy | 13 +- .../grails-app/init/dbcleanup/Application.groovy} | 17 +- .../database-cleanup/grails-app/views/error.gsp | 27 ++ .../groovy/dbcleanup/ClassLevelCleanupSpec.groovy | 74 +++ .../groovy/dbcleanup/MethodLevelCleanupSpec.groovy | 87 ++++ .../datasources/OsivBookController.groovy} | 23 +- .../datasources/UrlMappings.groovy} | 18 +- .../datasources/grails-app/domain/ds2/Book.groovy | 2 + .../domain/ds2/{Book.groovy => Chapter.groovy} | 4 +- .../datasources/grails-app/views/osivBook/show.gsp | 29 ++ .../functionaltests/DatasourceSwitchingSpec.groovy | 86 ++++ .../functionaltests/OsivGspRenderingSpec.groovy | 39 +- .../functionaltests/pages/OsivBookPage.groovy} | 17 +- .../gorm/WhereQueryVariableScopeService.groovy | 86 ++++ ...TransactionalWhereQueryVariableScopeSpec.groovy | 109 +++++ .../grails-multiple-datasources/build.gradle | 6 + .../datasources/SecondaryBookController.groovy | 78 ++++ .../controllers/datasources/UrlMappings.groovy} | 20 +- .../MultiDataSourceWithSessionSpec.groovy | 86 ++++ .../micronaut/MicronautErsatzAdvancedSpec.groovy | 11 +- grails-testing-support-dbcleanup-core/README.md | 79 ++++ grails-testing-support-dbcleanup-core/build.gradle | 58 +++ .../cleanup/core/ApplicationContextResolver.groovy | 50 ++ .../testing/cleanup/core/DatabaseCleaner.groovy | 91 ++++ .../testing/cleanup/core/DatabaseCleanup.groovy | 106 +++++ .../cleanup/core/DatabaseCleanupContext.groovy | 220 +++++++++ .../cleanup/core/DatabaseCleanupExtension.groovy | 203 ++++++++ .../cleanup/core/DatabaseCleanupInterceptor.groovy | 176 +++++++ .../cleanup/core/DatabaseCleanupStats.groovy | 200 ++++++++ .../cleanup/core/DatasourceCleanupMapping.groovy | 156 +++++++ .../core/DefaultApplicationContextResolver.groovy | 67 +++ .../cleanup/core/TestContextHolderListener.groovy | 59 +++ ...ockframework.runtime.extension.IGlobalExtension | 1 + .../src/main/resources/META-INF/spring.factories | 1 + .../cleanup/core/DatabaseCleanupContextSpec.groovy | 478 +++++++++++++++++++ .../core/DatabaseCleanupExtensionSpec.groovy | 382 +++++++++++++++ .../core/DatabaseCleanupInterceptorSpec.groovy | 516 +++++++++++++++++++++ .../cleanup/core/DatabaseCleanupStatsSpec.groovy | 297 ++++++++++++ .../core/DatasourceCleanupMappingSpec.groovy | 175 +++++++ .../DefaultApplicationContextResolverSpec.groovy | 96 ++++ grails-testing-support-dbcleanup-h2/README.md | 28 ++ grails-testing-support-dbcleanup-h2/build.gradle | 59 +++ .../testing/cleanup/h2/H2DatabaseCleaner.groovy | 103 ++++ .../cleanup/h2/H2DatabaseCleanupHelper.groovy | 121 +++++ ...che.grails.testing.cleanup.core.DatabaseCleaner | 1 + .../cleanup/h2/H2DatabaseCleanerSpec.groovy | 229 +++++++++ .../cleanup/h2/H2DatabaseCleanupHelperSpec.groovy | 137 ++++++ .../README.md | 32 ++ .../build.gradle | 60 +++ .../postgresql/PostgresDatabaseCleaner.groovy | 132 ++++++ .../PostgresDatabaseCleanupHelper.groovy | 100 ++++ .../postgresql/PostgresContainerHolder.groovy | 66 +++ .../PostgresDatabaseCleanerFunctionalSpec.groovy | 318 +++++++++++++ .../postgresql/PostgresDatabaseCleanerSpec.groovy | 114 +++++ .../PostgresDatabaseCleanupHelperSpec.groovy | 83 ++++ .../mvc/AbstractGrailsControllerUrlMappings.groovy | 12 +- settings.gradle | 5 + 117 files changed, 9395 insertions(+), 517 deletions(-)
