This is an automated email from the ASF dual-hosted git repository.
jamesfredley pushed a change to branch docs/configuration-hybrid
in repository https://gitbox.apache.org/repos/asf/grails-core.git
from 35970c349a chore: add missing Apache license headers for RAT audit
add 32ac3863a5 prevent duplicate loading of micronaut beans & fix bootJar
task
add 37f5114dbf Merge remote-tracking branch 'origin/7.0.x' into
micronaut-fixes
add 6fd254b99d fix: configure Micronaut annotation processor and CLASSIC
loader in GrailsGradlePlugin
add 19fa41e0fe fix: add bootWar CLASSIC loader to Forge-generated
build.gradle
add beff44a522 chore: add Apache license header to GrailsMicronautValidator
add 888fa45a59 test: add integration tests for Micronaut bean type
registration
add 6d4dfc9e2f docs: document Micronaut annotation processor and CLASSIC
loader in upgrade guide
add fbf50a26b8 fix: exclude Spring Boot DevTools for Micronaut apps in
Forge
add b3062c6478 test: add bean duplication and cross-context identity tests
for Micronaut
add b04d6d51ef fix: address review feedback on test correctness and
documentation
add 4e9d6b9259 refactor: extract JavaMessageProvider to its own file
add ae7747aee5 fix: remove annotation processor auto-config and add
declarative @Client test
add e6e202ab13 Merge branch '7.0.x' into micronaut-fixes-2
add 782b950a65 test: invoke declarative @Client through load balancing
path with ersatz mock
add 03d1a51674 fix: restore Micronaut annotation processor auto-config in
GrailsGradlePlugin
add 79cdfc189e fix: move Micronaut annotation processor config to test
apps with Java sources
add af9191215c style: formatting and readability
add f4fe7bdc1e refactor: groovify
add 6c812442a4 Use BootArchive instead of BootWar/BootJar
add 749364dd9a Remove unused imports
add 251e6fd857 Merge branch '7.0.x' into micronaut-fixes-2
add 6b59b6f1a3 Address PR review feedback: comprehensive ersatz tests,
plugin @Singleton beans, and docs updates
add db7f62f9bb Exhaustive ersatz integration tests for all Micronaut
client patterns
add 7c25aa5cf3 Auto-exclude Spring Boot LiquibaseAutoConfiguration when
Database Migration Plugin is present
add 8fd3c59a46 Switch to AST-based LiquibaseAutoConfiguration exclusion
with opt-out
add a2e6cd15d4 refactor: groovify and readability
add 656158070e test: clean up and simplify
add f608051cdc Merge branch '7.0.x' into fix/liquibase-autoconfig-exclusion
add ca84fb2513 Rename system property to
grails.autoconfigure.exclude.liquibase
add 26a8ee47ad Merge pull request #15405 from
jamesfredley/fix/liquibase-autoconfig-exclusion
add 3bc530e990 fix: copy missing fields in AbstractDetachedCriteria.clone()
add 8395e3d8a3 Merge pull request #15424 from
apache/fix/detached-criteria-clone
add 13d86abc46 fix: add jboss-threads 3.9.2 to Undertow feature for Java
25 compatibility
add f4f9120872 Merge pull request #15427 from
apache/fix/undertow-jboss-threads-java25
add f8fd27a682 Upgrade to Spring Boot 3.5.11
add c8b1b28d89 test(deps): bump `grails-spring-security`
add 1b4a0ba679 Merge pull request #15428 from apache/upgrade-boot
add c0d58dfda8 fix: add Java 23+/24+ compatibility JVM args and upgrade
commons-lang3 to 3.20.0
add 7ed3ffde65 fix: make Java compat tests JDK-version-aware for CI on
Java 25
add 8f22d071a5 Merge branch '7.0.x' into fix/java-compat-jvm-args
add abbde8cf43 fix: replace afterEvaluate with plugins.withId and add
logger.info per review
add b3c414b875 fix: replace afterEvaluate with lazy plugin syntax in
configureToolchainForForkTasks
add 418cde8b33 Merge pull request #15417 from
apache/fix/java-compat-jvm-args
add 7ae3260c47 Fix @Where and DetachedCriteria query methods ignoring
@Transactional(connection)
add dbb0e9851e Merge branch '7.0.x' into fix/where-connection-routing
add 98e9b512fd Add @Where connection routing TCK test for multi-datasource
support
add 5a50372074 refactor: use public GORM multi-datasource API in test
helpers
add 118f897eab Merge pull request #15418 from
apache/fix/where-connection-routing
add 47e4cbd8a2 Merge branch '7.0.x' into micronaut-fixes-2
add 13447162ac test: add Groovy-only Micronaut test module
add c80069261c Merge pull request #15411 from apache/micronaut-fixes-2
add fe158099bc test: add @Query Data Service connection routing tests
add a514a047c9 fix: restore removed documentation comments
add 95bb3023f1 Merge pull request #15423 from
apache/test/query-connection-routing
add 1c3e18ec24 docs: add quality rules to AGENTS.md critical rules
add 6a79a64983 Merge pull request #15440 from
apache/docs/agents-md-conventions
add 2e3f6a8e7a fix: where query composition fails when variable is
re-assigned in if/else blocks
add 4db4ed8126 test: add functional tests for where query composition with
re-assigned variables
add dee7d110ac fix: update variable type for constructor case in
visitBinaryExpression
add da6bf78e32 Merge pull request #15447 from
apache/fix/where-query-reassignment-composition
add 4299a24bca fix: set implicitThis=false on delegate
MethodCallExpressions in DetachedCriteriaTransformer
add 8d50b750a3 fix: correct misleading Javadoc on findBooksByTitleReadOnly
method
add 88252a0436 Merge pull request #15448 from
jamesfredley/fix/where-query-transactional-variable-scope
add 3316694856 test: add multi-datasource static API routing tests across
unit, TCK, and functional test suites
add a6ddb5b706 Merge branch '7.0.x' into test/static-api-datasource-routing
add 480086cee7 fix: address review comments on static API datasource
routing tests
add 5ba6188f84 Merge pull request #15435 from
apache/test/static-api-datasource-routing
add 044201f3fc test(tck): add Data Service connection routing specs to TCK
add 35006ab0a5 test(tck): add domain-level and cross-layer
multi-datasource specs
add 6dbeaa47ba refactor(tests): replace GormEnhancer with public GORM
domain API in Domain*Spec TCK tests
add 4cba7f600d test: isolate MongoDbDataStoreSpringInitializerSpec from
TCK data service classpath pollution
add f904ca8a41 revert: remove production code filter from
AbstractDatastoreInitializer
add f7f3696314 refactor(tests): replace GormEnhancer with public GORM
domain API in all new TCK specs
add 8aeb47e9cc style: fix consecutive blank lines in TCK specs
add a1cd973eac fix: add missing GrailsDataTckSpec import to
non-multi-tenant TCK specs
add 68023894c1 Merge pull request #15429 from
apache/test/tck-data-service-connection-routing
add d9451d971e docs: add Data Services and GormEnhancer documentation for
multi-datasource routing
add 955f1435e8 docs: add Data Services multi-datasource section to GORM
Hibernate5 docs
add 1b9b785cf7 docs: update multi-datasource docs for @CompileStatic
injection, MultiTenant routing, and CRUD connection fixes
add 06b04da429 docs: include @Where, @Query, and DetachedCriteria in
routed methods list
add 9246901cbe docs: replace GormEnhancer.findStaticApi() with domain
static methods
add 14bde8954f docs: remove remaining GormEnhancer references and fix
autowiring description
add b630a89710 Merge pull request #15406 from
jamesfredley/docs/multi-datasource-data-services
add f59f9371af fix: flaky ersatz listener test due to async race condition
add bcca4dd2ba Merge pull request #15455 from
apache/fix/flaky-ersatz-listener-test
add 8fad2d4803 Add a new feature that assists in database truncation in
tests
add 4b10c1dde7 Add postgresql clean up support
add 9d44bc0031 Ensure cleanup runs even if the clean methods fail on the
spec
add 47dfa5f836 Add detailed timing to debug stats
add ccb37bb363 fix ordering & resolution of applicaiton context without
depending on grails-core
add c1e8230e06 windows & mac os agents can't run this test in CI since
they don't have docker
add 6e7494dc5d Clean up
add b5b8ecc691 Expand test coverage for cleaner validations
add c5570fcb97 Dependency cleanup
add bdca07627b Postgresql cleaner cleanup
add 28056b25a6 Clean up postgresql cleaner
add 1b7d204ba6 feedback: spelling typo
add 9794c9aad9 feedback: add postgresql cleanup library
add f2c07512bb feedback: dedupe
add aa84dd3716 cleanup readme since documentation in grails doc
add ba3a4ab8f3 add missing publish to the postgresql project
add 588eab185a style: groovy cleanup
add 3dfc3d6544 refactor: rename to `grails-testing-support-dbcleanup-*`
add 711f3ce910 fix: remove string escape from error message
add 8560aeed69 feedback: use for instead of each
add ca37457782 chore: style compliance
add 8dd5dc3fa5 Merge pull request #15453 from
apache/database-cleanup-feature-feedback
add a0e1b37bff Merge pull request #15436 from
apache/database-cleanup-feature
add afffd57064 fix: extend OSIV to manage sessions for all datasources
add 90f9ff78ca fix: harden afterCompletion to guarantee default session
cleanup
add f22dc661a4 fix: add connection name to OSIV logs and Geb integration
test
add c58749595f fix: use findByTitle for test isolation in OSIV Geb test
add 518ac1ad9c fix: accumulate flush exceptions across additional
datasource sessions
add b329022970 Merge branch '7.0.x' into fix/multi-datasource-osiv
add d97e5a17b8 fix: add debug logging for suppressed flush exceptions in
OSIV interceptor
add 314539fa93 Merge pull request #15425 from
apache/fix/multi-datasource-osiv
add 03747c5f3e Fix DetachedCriteria join handling for get() in Hibernate
add ddae6ee795 Auto-create aliases for joined association projections
add 85b8658c52 adding one more test spec
add d15b5c0175 Add test coverage for DetachedCriteria join fix
add e16bf85370 Merge pull request #15456 from
apache/fix-detachedcriteria-join-get
add c862f72038 Merge branch '7.0.x' into docs/configuration-hybrid
No new revisions were added by this update.
Summary of changes:
AGENTS.md | 4 +
dependencies.gradle | 4 +-
gradle.properties | 3 +-
gradle/publish-root-config.gradle | 3 +
.../injection/ApplicationClassInjector.groovy | 46 +-
.../injection/ApplicationClassInjectorSpec.groovy | 100 +++
.../hibernate/query/AbstractHibernateQuery.java | 99 ++-
.../gorm/tests/DetachedCriteriaJoinSpec.groovy | 124 ++-
.../core/GrailsDataHibernate5TckManager.groovy | 91 ++-
.../DataServiceMultiDataSourceSpec.groovy | 107 +++
.../MultipleDataSourceConnectionsSpec.groovy | 72 +-
.../WhereQueryMultiDataSourceSpec.groovy | 179 +++++
grails-data-hibernate5/dbmigration/README.md | 22 +
.../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 | 81 ++
.../grails/gorm/tests/WhereMethodSpec.groovy | 151 ++++
.../query/criteria/AbstractDetachedCriteria.groovy | 4 +
.../transform/DetachedCriteriaTransformer.java | 99 ++-
.../implementers/AbstractWhereImplementer.groovy | 8 +-
.../services/WhereConnectionRoutingSpec.groovy | 211 +++++
.../gorm/GormEnhancerAllQualifiersSpec.groovy | 32 +
.../criteria/DetachedCriteriaCloneSpec.groovy | 123 +++
.../testing/tck/base/GrailsDataTckManager.groovy | 32 +
.../tck/domains/DataServiceRoutingMetric.groovy | 42 +
.../domains/DataServiceRoutingMetricService.groovy | 39 +
.../tck/domains/DataServiceRoutingProduct.groovy | 40 +
.../DataServiceRoutingProductDataService.groovy | 41 +
.../DataServiceRoutingProductService.groovy | 43 +
.../testing/tck/domains/WhereRoutingItem.groovy | 43 +
.../tck/domains/WhereRoutingItemService.groovy | 37 +
.../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 | 140 ++++
.../dataSource/automaticDatabaseMigration.adoc | 15 +-
.../guide/conf/dataSource/multipleDatasources.adoc | 244 ++++++
.../transactionsMultiDataSource.adoc | 2 +
.../src/en/guide/testing/integrationTesting.adoc | 143 ++++
.../src/en/guide/upgrading/upgrading60x.adoc | 18 +
.../build/gradle/templates/buildGradle.rocker.raw | 2 +-
.../micronaut/GrailsMicronautValidator.java | 48 ++
.../feature/reloading/SpringBootDevTools.java | 12 +-
.../feature/spring/SpringBootUndertowFeature.java | 4 +
.../grails-forge-core/src/main/resources/pom.xml | 6 +
.../reloading/SpringBootDevToolsSpec.groovy | 32 +-
.../forge/feature/spring/SpringBootSpec.groovy | 14 +
.../gradle/plugin/core/GrailsGradlePlugin.groovy | 91 ++-
.../core/GrailsGradlePluginJavaCompatSpec.groovy | 109 +++
.../java-compat-no-toolchain/build.gradle | 21 +
.../gradle.properties | 0
.../grails-app/conf/application.yml | 0
.../settings.gradle | 0
.../java-compat-toolchain-23/build.gradle | 29 +
.../gradle.properties | 0
.../grails-app/conf/application.yml | 0
.../settings.gradle | 0
.../java-compat-toolchain-24/build.gradle | 29 +
.../gradle.properties | 0
.../grails-app/conf/application.yml | 0
.../settings.gradle | 0
.../java-compat-toolchain-current/build.gradle | 27 +
.../gradle.properties | 0
.../grails-app/conf/application.yml | 0
.../settings.gradle | 0
grails-micronaut/build.gradle | 3 +-
.../micronaut/GrailsMicronautGrailsPlugin.groovy | 36 +-
.../{micronaut => database-cleanup}/build.gradle | 35 +-
.../grails-app/conf/application.yml | 36 +
.../grails-app/conf/logback.xml | 0
.../controllers/dbcleanup}/UrlMappings.groovy | 2 +-
.../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} | 24 +-
.../controllers/datasources}/UrlMappings.groovy | 9 +-
.../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} | 24 +-
.../functionaltests/pages/OsivBookPage.groovy} | 17 +-
.../gorm/WhereQueryVariableScopeService.groovy | 86 ++
.../groovy/gorm/GormWhereQueryAdvancedSpec.groovy | 47 ++
...TransactionalWhereQueryVariableScopeSpec.groovy | 109 +++
.../services/example/ProductService.groovy | 10 +
.../DataServiceMultiDataSourceSpec.groovy | 46 ++
.../grails-multiple-datasources/build.gradle | 6 +
.../datasources/SecondaryBookController.groovy | 78 ++
.../controllers/datasources}/UrlMappings.groovy | 11 +-
.../MultiDataSourceWithSessionSpec.groovy | 86 ++
.../build.gradle | 18 +-
.../grails-app/conf/application.yml | 35 +-
.../micronautgroovyonly}/UrlMappings.groovy | 3 +-
.../init/micronautgroovyonly/Application.groovy} | 22 +-
.../BeanInjectionService.groovy} | 31 +-
.../micronautgroovyonly/TestService.groovy} | 16 +-
.../BeanInjectionServiceSpec.groovy | 57 ++
.../MicronautContextSpec.groovy | 83 ++
.../MicronautQualifierSpec.groovy | 97 +++
.../main/groovy/bean/injection/AppConfig.groovy} | 18 +-
.../bean/injection/FactoryCreatedService.groovy} | 17 +-
.../groovy/bean/injection/NamedService.groovy} | 16 +-
.../bean/injection/PrimaryNamedService.groovy} | 16 +-
.../main/groovy/bean/injection/Qualified.groovy | 0
.../bean/injection/QualifiedNamedService.groovy} | 17 +-
.../bean/injection/RegularNamedService.groovy} | 18 +-
.../groovy/bean/injection/ServiceFactory.groovy} | 21 +-
.../bean/injection/SpecialNamedService.groovy | 0
grails-test-examples/micronaut/build.gradle | 14 +-
.../micronaut/grails-app/conf/application.yml | 7 +
.../micronaut/ExternalApiController.groovy | 113 +++
...pings.groovy => MicronautTestController.groovy} | 42 +-
.../controllers/micronaut/UrlMappings.groovy | 15 +
.../services/micronaut/ExternalApiService.groovy | 110 +++
.../micronaut/MicronautBeanDuplicationSpec.groovy | 105 +++
.../groovy/micronaut/MicronautBeanTypesSpec.groovy | 99 +++
.../MicronautDeclarativeClientSpec.groovy | 299 +++++++
.../micronaut/MicronautErsatzAdvancedSpec.groovy | 870 +++++++++++++++++++++
.../micronaut/MicronautErsatzPatternSpec.groovy | 481 ++++++++++++
.../micronaut/MicronautErsatzRoundtripSpec.groovy | 531 +++++++++++++
.../micronaut/MicronautPluginBeanSpec.groovy | 85 ++
.../main/groovy/bean/injection/AppConfig.groovy} | 18 +-
.../bean/injection/FactoryCreatedService.groovy} | 17 +-
.../groovy/bean/injection/ServiceFactory.groovy} | 21 +-
.../client/MicronautAdvancedClient.groovy | 59 ++
.../client/MicronautFilteredClient.groovy} | 22 +-
.../micronaut/client/MicronautHeaderClient.groovy} | 24 +-
.../micronaut/client/MicronautPathClient.groovy} | 24 +-
.../client/MicronautReactiveClient.groovy} | 41 +-
.../micronaut/client/MicronautTestClient.groovy} | 43 +-
.../java/bean/injection/JavaMessageProvider.java | 23 +
.../java/bean/injection/JavaSingletonService.java | 28 +
.../client/MicronautRetryableClient.java} | 22 +-
.../micronaut/filter/AuthTokenClientFilter.java} | 21 +-
.../plugins/issue-11767/build.gradle | 6 +-
.../build.gradle | 15 +-
.../MicronautSingletonGrailsPlugin.groovy} | 19 +-
.../plugins/micronaut/PluginMessageProvider.java | 22 +
.../plugins/micronaut/PluginSingletonService.java | 28 +
grails-testing-support-dbcleanup-core/README.md | 79 ++
.../build.gradle | 31 +-
.../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 +
.../build.gradle | 30 +-
.../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 | 33 +-
.../postgresql/PostgresDatabaseCleaner.groovy | 132 ++++
.../PostgresDatabaseCleanupHelper.groovy | 100 +++
.../postgresql/PostgresContainerHolder.groovy | 66 ++
.../PostgresDatabaseCleanerFunctionalSpec.groovy | 318 ++++++++
.../postgresql/PostgresDatabaseCleanerSpec.groovy | 114 +++
.../PostgresDatabaseCleanupHelperSpec.groovy | 83 ++
settings.gradle | 9 +
188 files changed, 13693 insertions(+), 517 deletions(-)
create mode 100644
grails-core/src/test/groovy/org/grails/compiler/injection/ApplicationClassInjectorSpec.groovy
create mode 100644
grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/connections/WhereQueryMultiDataSourceSpec.groovy
create mode 100644
grails-data-hibernate5/docs/src/docs/asciidoc/services/multipleDataSources.adoc
create mode 100644
grails-data-hibernate5/grails-plugin/src/test/groovy/org/grails/plugin/hibernate/support/MultiDataSourceSessionSpec.groovy
create mode 100644
grails-datamapping-core/src/test/groovy/grails/gorm/services/WhereConnectionRoutingSpec.groovy
create mode 100644
grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/criteria/DetachedCriteriaCloneSpec.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/DataServiceRoutingMetric.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/DataServiceRoutingMetricService.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/DataServiceRoutingProduct.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/DataServiceRoutingProductDataService.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/DataServiceRoutingProductService.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WhereRoutingItem.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WhereRoutingItemService.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CrossLayerMultiDataSourceSpec.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CrossLayerMultiTenantMultiDataSourceSpec.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/DataServiceConnectionRoutingSpec.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/DataServiceMultiTenantConnectionRoutingSpec.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/DomainMultiDataSourceSpec.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/DomainMultiTenantMultiDataSourceSpec.groovy
create mode 100644
grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/WhereQueryConnectionRoutingSpec.groovy
create mode 100644
grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/micronaut/GrailsMicronautValidator.java
create mode 100644
grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsGradlePluginJavaCompatSpec.groovy
create mode 100644
grails-gradle/plugins/src/test/resources/test-projects/java-compat-no-toolchain/build.gradle
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-no-toolchain}/gradle.properties (100%)
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-no-toolchain}/grails-app/conf/application.yml (100%)
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-no-toolchain}/settings.gradle (100%)
create mode 100644
grails-gradle/plugins/src/test/resources/test-projects/java-compat-toolchain-23/build.gradle
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-23}/gradle.properties (100%)
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-23}/grails-app/conf/application.yml (100%)
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-23}/settings.gradle (100%)
create mode 100644
grails-gradle/plugins/src/test/resources/test-projects/java-compat-toolchain-24/build.gradle
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-24}/gradle.properties (100%)
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-24}/grails-app/conf/application.yml (100%)
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-24}/settings.gradle (100%)
create mode 100644
grails-gradle/plugins/src/test/resources/test-projects/java-compat-toolchain-current/build.gradle
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-current}/gradle.properties (100%)
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-current}/grails-app/conf/application.yml (100%)
copy
grails-gradle/plugins/src/test/resources/test-projects/{fork-settings-custom =>
java-compat-toolchain-current}/settings.gradle (100%)
copy grails-test-examples/{micronaut => database-cleanup}/build.gradle (61%)
create mode 100644
grails-test-examples/database-cleanup/grails-app/conf/application.yml
copy grails-test-examples/{hibernate5/grails-data-service-multi-datasource =>
database-cleanup}/grails-app/conf/logback.xml (100%)
copy grails-test-examples/{micronaut/grails-app/controllers/micronaut =>
database-cleanup/grails-app/controllers/dbcleanup}/UrlMappings.groovy (98%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
database-cleanup/grails-app/domain/dbcleanup/Author.groovy} (84%)
copy grails-test-examples/{datasources/grails-app/domain/ds2 =>
database-cleanup/grails-app/domain/dbcleanup}/Book.groovy (84%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
database-cleanup/grails-app/init/dbcleanup/Application.groovy} (78%)
create mode 100644
grails-test-examples/database-cleanup/grails-app/views/error.gsp
create mode 100644
grails-test-examples/database-cleanup/src/integration-test/groovy/dbcleanup/ClassLevelCleanupSpec.groovy
create mode 100644
grails-test-examples/database-cleanup/src/integration-test/groovy/dbcleanup/MethodLevelCleanupSpec.groovy
copy
grails-test-examples/{micronaut/grails-app/controllers/micronaut/UrlMappings.groovy
=> datasources/grails-app/controllers/datasources/OsivBookController.groovy}
(65%)
copy grails-test-examples/{micronaut/grails-app/controllers/micronaut =>
datasources/grails-app/controllers/datasources}/UrlMappings.groovy (82%)
copy grails-test-examples/datasources/grails-app/domain/ds2/{Book.groovy =>
Chapter.groovy} (95%)
create mode 100644
grails-test-examples/datasources/grails-app/views/osivBook/show.gsp
copy grails-test-examples/datasources/{grails-app/domain/ds2/Book.groovy =>
src/integration-test/groovy/functionaltests/OsivGspRenderingSpec.groovy} (51%)
copy grails-test-examples/datasources/{grails-app/domain/ds2/Book.groovy =>
src/integration-test/groovy/functionaltests/pages/OsivBookPage.groovy} (74%)
create mode 100644
grails-test-examples/gorm/grails-app/services/gorm/WhereQueryVariableScopeService.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/TransactionalWhereQueryVariableScopeSpec.groovy
create mode 100644
grails-test-examples/hibernate5/grails-multiple-datasources/grails-app/controllers/datasources/SecondaryBookController.groovy
copy grails-test-examples/{micronaut/grails-app/controllers/micronaut =>
hibernate5/grails-multiple-datasources/grails-app/controllers/datasources}/UrlMappings.groovy
(82%)
create mode 100644
grails-test-examples/hibernate5/grails-multiple-datasources/src/integration-test/groovy/functionaltests/MultiDataSourceWithSessionSpec.groovy
copy grails-test-examples/{micronaut => micronaut-groovy-only}/build.gradle
(71%)
copy grails-test-examples/{micronaut =>
micronaut-groovy-only}/grails-app/conf/application.yml (74%)
copy grails-test-examples/{micronaut/grails-app/controllers/micronaut =>
micronaut-groovy-only/grails-app/controllers/micronautgroovyonly}/UrlMappings.groovy
(94%)
copy
grails-test-examples/{micronaut/grails-app/controllers/micronaut/UrlMappings.groovy
=>
micronaut-groovy-only/grails-app/init/micronautgroovyonly/Application.groovy}
(69%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/grails-app/services/micronautgroovyonly/BeanInjectionService.groovy}
(61%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/grails-app/services/micronautgroovyonly/TestService.groovy}
(80%)
create mode 100644
grails-test-examples/micronaut-groovy-only/src/integration-test/groovy/micronautgroovyonly/BeanInjectionServiceSpec.groovy
create mode 100644
grails-test-examples/micronaut-groovy-only/src/integration-test/groovy/micronautgroovyonly/MicronautContextSpec.groovy
create mode 100644
grails-test-examples/micronaut-groovy-only/src/integration-test/groovy/micronautgroovyonly/MicronautQualifierSpec.groovy
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/src/main/groovy/bean/injection/AppConfig.groovy} (80%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/src/main/groovy/bean/injection/FactoryCreatedService.groovy}
(80%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/src/main/groovy/bean/injection/NamedService.groovy} (80%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/src/main/groovy/bean/injection/PrimaryNamedService.groovy}
(79%)
copy grails-test-examples/{micronaut =>
micronaut-groovy-only}/src/main/groovy/bean/injection/Qualified.groovy (100%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/src/main/groovy/bean/injection/QualifiedNamedService.groovy}
(79%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/src/main/groovy/bean/injection/RegularNamedService.groovy}
(76%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut-groovy-only/src/main/groovy/bean/injection/ServiceFactory.groovy}
(69%)
copy grails-test-examples/{micronaut =>
micronaut-groovy-only}/src/main/groovy/bean/injection/SpecialNamedService.groovy
(100%)
create mode 100644
grails-test-examples/micronaut/grails-app/controllers/micronaut/ExternalApiController.groovy
copy
grails-test-examples/micronaut/grails-app/controllers/micronaut/{UrlMappings.groovy
=> MicronautTestController.groovy} (51%)
create mode 100644
grails-test-examples/micronaut/grails-app/services/micronaut/ExternalApiService.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautBeanDuplicationSpec.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautBeanTypesSpec.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautDeclarativeClientSpec.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautErsatzAdvancedSpec.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautErsatzPatternSpec.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautErsatzRoundtripSpec.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautPluginBeanSpec.groovy
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut/src/main/groovy/bean/injection/AppConfig.groovy} (80%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut/src/main/groovy/bean/injection/FactoryCreatedService.groovy} (80%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut/src/main/groovy/bean/injection/ServiceFactory.groovy} (69%)
create mode 100644
grails-test-examples/micronaut/src/main/groovy/micronaut/client/MicronautAdvancedClient.groovy
copy
grails-test-examples/micronaut/{grails-app/controllers/micronaut/UrlMappings.groovy
=> src/main/groovy/micronaut/client/MicronautFilteredClient.groovy} (67%)
copy
grails-test-examples/micronaut/{grails-app/controllers/micronaut/UrlMappings.groovy
=> src/main/groovy/micronaut/client/MicronautHeaderClient.groovy} (65%)
copy grails-test-examples/{datasources/grails-app/domain/ds2/Book.groovy =>
micronaut/src/main/groovy/micronaut/client/MicronautPathClient.groovy} (62%)
copy
grails-test-examples/{hibernate5/grails-data-service-multi-datasource/grails-app/services/example/ProductService.groovy
=> micronaut/src/main/groovy/micronaut/client/MicronautReactiveClient.groovy}
(50%)
copy
grails-test-examples/{hibernate5/grails-data-service-multi-datasource/grails-app/services/example/ProductService.groovy
=> micronaut/src/main/groovy/micronaut/client/MicronautTestClient.groovy} (51%)
create mode 100644
grails-test-examples/micronaut/src/main/java/bean/injection/JavaMessageProvider.java
create mode 100644
grails-test-examples/micronaut/src/main/java/bean/injection/JavaSingletonService.java
copy
grails-test-examples/micronaut/{grails-app/controllers/micronaut/UrlMappings.groovy
=> src/main/java/micronaut/client/MicronautRetryableClient.java} (70%)
copy
grails-test-examples/micronaut/{grails-app/controllers/micronaut/UrlMappings.groovy
=> src/main/java/micronaut/filter/AuthTokenClientFilter.java} (67%)
copy grails-test-examples/plugins/{issue-11767 =>
micronaut-singleton}/build.gradle (70%)
copy
grails-test-examples/{micronaut/grails-app/controllers/micronaut/UrlMappings.groovy
=>
plugins/micronaut-singleton/src/main/groovy/micronaut/singleton/MicronautSingletonGrailsPlugin.groovy}
(73%)
create mode 100644
grails-test-examples/plugins/micronaut-singleton/src/main/java/com/example/grails/plugins/micronaut/PluginMessageProvider.java
create mode 100644
grails-test-examples/plugins/micronaut-singleton/src/main/java/com/example/grails/plugins/micronaut/PluginSingletonService.java
create mode 100644 grails-testing-support-dbcleanup-core/README.md
copy {grails-micronaut => grails-testing-support-dbcleanup-core}/build.gradle
(57%)
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/ApplicationContextResolver.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleaner.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanup.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanupContext.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanupExtension.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanupInterceptor.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanupStats.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DatasourceCleanupMapping.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DefaultApplicationContextResolver.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/TestContextHolderListener.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/main/resources/META-INF/services/org.spockframework.runtime.extension.IGlobalExtension
create mode 100644
grails-testing-support-dbcleanup-core/src/main/resources/META-INF/spring.factories
create mode 100644
grails-testing-support-dbcleanup-core/src/test/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanupContextSpec.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/test/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanupExtensionSpec.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/test/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanupInterceptorSpec.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/test/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanupStatsSpec.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/test/groovy/org/apache/grails/testing/cleanup/core/DatasourceCleanupMappingSpec.groovy
create mode 100644
grails-testing-support-dbcleanup-core/src/test/groovy/org/apache/grails/testing/cleanup/core/DefaultApplicationContextResolverSpec.groovy
create mode 100644 grails-testing-support-dbcleanup-h2/README.md
copy {grails-micronaut => grails-testing-support-dbcleanup-h2}/build.gradle
(60%)
create mode 100644
grails-testing-support-dbcleanup-h2/src/main/groovy/org/apache/grails/testing/cleanup/h2/H2DatabaseCleaner.groovy
create mode 100644
grails-testing-support-dbcleanup-h2/src/main/groovy/org/apache/grails/testing/cleanup/h2/H2DatabaseCleanupHelper.groovy
create mode 100644
grails-testing-support-dbcleanup-h2/src/main/resources/META-INF/services/org.apache.grails.testing.cleanup.core.DatabaseCleaner
create mode 100644
grails-testing-support-dbcleanup-h2/src/test/groovy/org/apache/grails/testing/cleanup/h2/H2DatabaseCleanerSpec.groovy
create mode 100644
grails-testing-support-dbcleanup-h2/src/test/groovy/org/apache/grails/testing/cleanup/h2/H2DatabaseCleanupHelperSpec.groovy
create mode 100644 grails-testing-support-dbcleanup-postgresql/README.md
copy {grails-micronaut =>
grails-testing-support-dbcleanup-postgresql}/build.gradle (56%)
create mode 100644
grails-testing-support-dbcleanup-postgresql/src/main/groovy/org/apache/grails/testing/cleanup/postgresql/PostgresDatabaseCleaner.groovy
create mode 100644
grails-testing-support-dbcleanup-postgresql/src/main/groovy/org/apache/grails/testing/cleanup/postgresql/PostgresDatabaseCleanupHelper.groovy
create mode 100644
grails-testing-support-dbcleanup-postgresql/src/test/groovy/org/apache/grails/testing/cleanup/postgresql/PostgresContainerHolder.groovy
create mode 100644
grails-testing-support-dbcleanup-postgresql/src/test/groovy/org/apache/grails/testing/cleanup/postgresql/PostgresDatabaseCleanerFunctionalSpec.groovy
create mode 100644
grails-testing-support-dbcleanup-postgresql/src/test/groovy/org/apache/grails/testing/cleanup/postgresql/PostgresDatabaseCleanerSpec.groovy
create mode 100644
grails-testing-support-dbcleanup-postgresql/src/test/groovy/org/apache/grails/testing/cleanup/postgresql/PostgresDatabaseCleanupHelperSpec.groovy