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 f81c133219f625dc94c66123bf32bfcac6434662
Merge: 237b8ec59d 84bdc3a8e2
Author: James Daugherty <[email protected]>
AuthorDate: Fri Feb 27 21:38:38 2026 -0500

    Merge branch '7.1.x' into 8.0.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       |  27 ++
 .../query/AbstractHibernateCriteriaBuilder.java    | 102 +++-
 .../hibernate/query/AbstractHibernateQuery.java    |  99 +++-
 .../gorm/tests/BasicCollectionInQuerySpec.groovy   | 167 +++++++
 .../gorm/tests/DetachedCriteriaJoinSpec.groovy     | 124 ++++-
 .../grails/gorm/tests/WhereQueryBugFixSpec.groovy  | 106 +++++
 .../WhereQueryOldIssueVerificationSpec.groovy      | 371 +++++++++++++++
 .../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 +-
 .../groovy/grails/gorm/DetachedCriteria.groovy     |  22 +-
 .../datastore/gorm/finders/CountByFinder.java      |   1 +
 .../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 +-
 .../mapping/query/jpa/JpaQueryBuilder.java         |  53 +++
 grails-doc/build.gradle                            |  21 +-
 grails-doc/src/en/guide/commandLine.adoc           |   2 +-
 .../guide/conf/dataSource/multipleDatasources.adoc | 244 ++++++++++
 .../transactionsMultiDataSource.adoc               |   2 +
 .../src/en/guide/testing/integrationTesting.adoc   | 143 ++++++
 grails-forge/gradle/doc-config.gradle              |  45 +-
 .../analytics/postgres/AnalyticsController.java    |   8 +-
 .../forge/analytics/postgres/Application.java      |  14 +-
 .../analytics/postgres/FeatureRepository.java      |   4 +-
 .../postgres/StoreGeneratedProjectStatsSpec.groovy |  10 +-
 .../grails/forge/api/ApplicationController.java    |   2 +-
 ...estFramework.java => DevelopmentReloading.java} |  23 +-
 ...meworkDTO.java => DevelopmentReloadingDTO.java} |  64 +--
 .../org/grails/forge/api/SelectOptionsDTO.java     |  28 +-
 .../forge/api/analytics/GenerationListener.java    |   2 +-
 .../forge/api/create/AbstractCreateController.java |   6 +-
 .../api/create/github/GitHubCreateController.java  |  12 +-
 .../api/create/github/GitHubCreateOperation.java   |   6 +-
 .../api/create/github/GitHubCreateService.java     |   6 +-
 .../forge/api/create/zip/ZipCreateController.java  |  22 +-
 .../forge/api/create/zip/ZipCreateOperation.java   |   6 +-
 .../org/grails/forge/api/diff/DiffController.java  |  12 +-
 .../org/grails/forge/api/diff/DiffOperations.java  |   8 +-
 ...java => DevelopmentReloadingSelectOptions.java} |  14 +-
 .../forge/api/preview/PreviewController.java       |  10 +-
 .../forge/api/preview/PreviewOperations.java       |   6 +-
 .../src/main/resources/select_options.properties   |   2 +-
 .../org/grails/forge/api/CreateClient.groovy       |  12 +-
 .../groovy/org/grails/forge/api/DiffClient.groovy  |   8 +-
 .../grails/forge/api/FeatureControllerSpec.groovy  |  22 +-
 .../org/grails/forge/api/PreviewClient.groovy      |   4 +-
 .../forge/api/ZipCreateControllerSpec.groovy       |   4 +-
 .../java/org/grails/forge/cli/Application.java     |   4 +-
 .../java/org/grails/forge/cli/CodeGenConfig.java   |  19 +-
 .../grails/forge/cli/command/CreateCommand.java    |   8 +-
 ...es.java => DevelopmentReloadingCandidates.java} |   8 +-
 ...ter.java => DevelopmentReloadingConverter.java} |  14 +-
 .../CodeGenConfigDevelopmentReloadingSpec.groovy   | 288 ++++++++++++
 .../org/grails/forge/cli/CommandFixture.groovy     |   5 +-
 .../java/org/grails/forge/analytics/Generated.java |  10 +-
 .../grails/forge/application/ContextFactory.java   |  10 +-
 .../generator/DefaultProjectGenerator.java         |   2 +-
 .../application/generator/GeneratorContext.java    |  15 +-
 .../forge/build/gradle/GradleConfiguration.java    |   6 +-
 .../forge/build/gradle/GradleDependency.java       |  10 +-
 ...st.java => HasDefaultDevelopmentReloading.java} |   6 +-
 .../grails/forge/defaults/LanguageDefaults.java    |  14 +-
 .../java/org/grails/forge/diff/FeatureDiffer.java  |   2 +-
 .../org/grails/forge/feature/FeatureContext.java   |  32 +-
 .../java/org/grails/forge/feature/Features.java    |  12 +-
 .../build/gradle/templates/buildGradle.rocker.raw  |   1 -
 .../java/org/grails/forge/feature/cli.rocker.raw   |   6 +-
 .../forge/feature/database/TestContainers.java     |  27 +-
 .../org/grails/forge/feature/reloading/Jrebel.java |  16 +
 .../forge/feature/reloading/ReloadingFeature.java  |  11 +-
 .../feature/reloading/SpringBootDevTools.java      |  19 +-
 .../org/grails/forge/feature/test/AssertJ.java     |  68 ---
 .../forge/feature/test/AssertJValidator.java       |  44 --
 .../forge/feature/test/GebWithTestcontainers.java  |   8 +-
 .../feature/test/GebWithWebDriverBinaries.java     |   6 +-
 .../org/grails/forge/feature/test/Hamcrest.java    |  68 ---
 .../forge/feature/test/HamcrestValidator.java      |  44 --
 .../java/org/grails/forge/feature/test/Junit.java  |  70 ---
 .../org/grails/forge/feature/test/Mockito.java     |   2 +-
 .../forge/feature/test/MockitoValidator.java       |   2 +-
 .../java/org/grails/forge/feature/test/Spock.java  |  17 +-
 .../org/grails/forge/feature/test/TestFeature.java |  71 ---
 .../feature/test/template/javaJunit.rocker.raw     |  49 --
 .../options/AbstractJunitRockerModelProvider.java  |  38 --
 .../options/AbstractTestRockerModelProvider.java   |  33 --
 .../options/DefaultTestRockerModelProvider.java    |  10 +-
 .../forge/options/DevelopmentReloading.java}       |  27 +-
 .../org/grails/forge/options/FeatureFilter.java    |  12 +-
 .../forge/options/JunitRockerModelProvider.java    |  45 --
 .../java/org/grails/forge/options/Language.java    |   2 +-
 .../java/org/grails/forge/options/Options.java     |  48 +-
 .../org/grails/forge/options/TestFramework.java    |  46 +-
 .../forge/options/TestRockerModelProvider.java     |   9 +-
 .../groovy/org/grails/forge/BuildBuilder.groovy    |  14 +-
 .../dependencies/GradleConfigurationSpec.groovy    |   3 +-
 .../GradleDependencyComparatorSpec.groovy          |   3 +-
 .../grails/forge/build/gradle/GradleSpec.groovy    |  13 +-
 .../feature/asciidoctor/AsciidoctorSpec.groovy     |   5 +-
 .../feature/assetPipeline/AssetPipelineSpec.groovy |   5 +-
 .../feature/database/HibernateGormSpec.groovy      |   5 +-
 .../feature/database/TestContainersSpec.groovy     |  22 +-
 .../workflows/PlainGithubWorkflowSpec.groovy       |   5 +-
 .../forge/feature/grails/GrailsBaseSpec.groovy     |  11 +-
 .../feature/grails/GrailsDefaultPluginsSpec.groovy |   5 +-
 .../feature/grails/GrailsGradlePluginSpec.groovy   |   5 +-
 .../grailsProfiles/GrailsProfilesSpec.groovy       |   5 +-
 .../feature/grailsWrapper/GrailsWrapperSpec.groovy |   3 +-
 .../feature/lang/GrailsApplicationSpec.groovy      |   7 +-
 .../forge/feature/logging/LogbackSpec.groovy       |   4 +-
 .../migration/DatabaseMigrationPluginSpec.groovy   |   5 +-
 .../forge/feature/other/ShadePluginSpec.groovy     |   3 +-
 .../reloading/SpringBootDevToolsSpec.groovy        |  24 +-
 .../forge/feature/spring/SpringBootSpec.groovy     |   5 +-
 .../spring/SpringBootVirtualThreadsSpec.groovy     |   5 +-
 .../feature/spring/SpringResourcesSpec.groovy      |   3 +-
 .../feature/test/GebWithTestcontainersSpec.groovy  |   5 +-
 .../test/GebWithWebDriverBinariesSpec.groovy       |  11 +-
 .../org/grails/forge/feature/test/JUnitSpec.groovy |  39 --
 .../grails/forge/feature/view/GrailsGspSpec.groovy |   9 +-
 .../forge/feature/view/json/ViewJsonSpec.groovy    |   7 +-
 .../forge/feature/view/json/ViewMarkupSpec.groovy  |   4 +-
 .../grails/forge/feature/web/GrailsWebSpec.groovy  |   5 +-
 .../org/grails/forge/fixture/ContextFixture.groovy |   3 +-
 .../grails/forge/options/TestFrameworkSpec.groovy  |  13 +-
 .../options/TestRockerModelProviderSpec.groovy     |  12 +-
 .../org/grails/forge/utils/CommandSpec.groovy      |   7 +-
 grails-gradle/gradle/docs-config.gradle            |  35 +-
 .../grails/spring/GrailsApplicationContext.java    |  13 +
 .../build.gradle                                   |  47 +-
 .../grails-app/conf/application.yml}               |  29 +-
 .../database-cleanup/grails-app/conf/logback.xml   |  37 ++
 .../controllers/dbcleanup/UrlMappings.groovy}      |  21 +-
 .../grails-app/domain/dbcleanup/Author.groovy      |  16 +-
 .../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          |  21 +-
 .../controllers/datasources/UrlMappings.groovy     |  13 +-
 .../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 +-
 grails-test-examples/geb/grails-cli.yml            |   2 +-
 .../gorm/WhereQueryVariableScopeService.groovy     |  86 ++++
 ...TransactionalWhereQueryVariableScopeSpec.groovy | 109 +++++
 .../gsp-layout/grails-forge-cli.yml                |   2 +-
 .../gsp-sitemesh3/grails-forge-cli.yml             |   2 +-
 .../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 ++++
 .../context/GrailsWebApplicationContext.java       |   4 +
 .../mvc/AbstractGrailsControllerUrlMappings.groovy |  12 +-
 settings.gradle                                    |   5 +
 233 files changed, 10837 insertions(+), 1619 deletions(-)

Reply via email to