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/09/24 14:14:39 UTC

(grails-core) branch fix/optimistic-locking-spec-join-assert updated (169193b014 -> 43fca1cf80)

This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a change to branch fix/optimistic-locking-spec-join-assert
in repository https://gitbox.apache.org/repos/asf/grails-core.git


    omit 169193b014 fix(neo4j): fix cross-session commit races and de-flake OptimisticLockingSpec
    omit cd0502f3bc fix(neo4j): assert background thread completion in OptimisticLockingSpec
    omit 184020c5c1 test(neo4j): give OptimisticLockingSpec's cross-thread heisenbug more headroom
    omit e049502377 test(grails-data-mongodb-core): add MongoStaticApiSpec closing PR #15780 coverage gap
    omit 83ea657576 test(grails-datamapping-core): extend TransactionalTransformSpec closing PR #15780 coverage gap
    omit 3e13f3a8bf test(grails-datamapping-core): add DefaultTransactionTemplateFactorySpec closing PR #15780 coverage gap
    omit 560086aac6 test(grails-datamapping-core): add DefaultTransactionServiceSpec closing PR #15780 coverage gap
    omit 13b03398d2 test(grails-datamapping-core): extend MappingContextTraversableResolverSpec closing PR #15780 coverage gap
    omit c5f3841388 test(grails-data-hibernate5-core): add GrailsDataTckManagerSpec closing PR #15780 coverage gap
    omit 0c2816bfdc test(grails-datamapping-core): add AbstractServiceImplementerCoverageSpec closing PR #15780 coverage gap
    omit 1ce31b5e94 test(grails-data-simple): add SimpleMapDatastoreSpec closing PR #15780 coverage gap
    omit e71f238e24 test(grails-datamapping-core): add AbstractDatastoreApiSpec closing PR #15780 coverage gap
    omit 163a9a5dd2 test(grails-datamapping-core): add FindOrSaveByFinderSpec closing PR #15780 coverage gap
    omit 2d05bf1e49 test(grails-datamapping-core): add FindAllByImplementerCoverageSpec closing PR #15780 coverage gap
    omit 9180ddec8a test(grails-datamapping-core): add AbstractFinderSpec closing PR #15780 coverage gap
    omit feeb017850 test(grails-datamapping-core): add GormValidationApiRegistrySpec and GormInstanceApiRegistrySpec closing PR #15780 coverage gap
    omit 14ec1762f2 test(grails-datamapping-core): add ConnectionSourceNameResolverSpec closing PR #15780 coverage gap
    omit 372604de53 test(grails-datamapping-core): add GormStaticApiRegistrySpec closing PR #15780 coverage gap
    omit 7d5809f0ca fix(grails-datamapping-core): guard CriteriaBuilder's cache/join/select against a null query
    omit 938bea4dc0 test(grails-datamapping-core): add GrailsTransactionTemplateSpec closing PR #15780 coverage gap
    omit d7efddc398 test(grails-datamapping-core): add TenantDelegatingGormOperationsSpec closing PR #15780 coverage gap
    omit e8e15d7005 test(grails-datamapping-core): add CurrentTenantHolderSpec closing PR #15780 coverage gap
    omit 045740a725 test(grails-datamapping-core): add DefaultTenantServiceSpec closing PR #15780 coverage gap
    omit e0e9c1fd93 test(grails-datamapping-core): add AbstractStringQueryImplementerCoverageSpec closing PR #15780 coverage gap
    omit cbe8e1b9b4 test(grails-datamapping-core): add MultiTenantEventListenerSpec closing PR #15780 coverage gap
    omit 4e224360b2 test(grails-datamapping-core): add ServiceTransformationCoverageSpec closing PR #15780 coverage gap
    omit e5aec81dc0 test(grails-datamapping-core): add DynamicFinderCoverageSpec closing PR #15780 coverage gap
    omit a0667f9316 test(grails-datamapping-core): add TenantsSpec closing PR #15780 coverage gap
    omit 0e1cb948d5 test(grails-datamapping-core): add AbstractGormApiSpec closing PR #15780 coverage gap
    omit 75ceaa4444 test(grails-datamapping-core): add GormInstanceApiSpec closing PR #15780 coverage gap
    omit dbf1708317 test(grails-datamapping-core): add GormValidationApiCoverageSpec closing PR #15780 coverage gap
    omit b878c85a85 test(grails-datamapping-core): add GormEnhancerCoverageSpec closing PR #15780 coverage gap
    omit 621efb88dc test(grails-datamapping-core): add GormRegistryCoverageSpec closing PR #15780 coverage gap
    omit 24c8518819 fix(grails-datamapping-core): restore saveAll's persisted-id return value; add GormStaticApiSpec
    omit 713b29290b test(grails-datamapping-core): add GormApiResolverSpec closing PR #15780 coverage gap
    omit a8585dbfba fix: restore copyAnnotations dedup guard needed by ServiceTransformation
    omit 41d533c51b test: verify @Service+@CurrentTenant routing in DATABASE multi-tenancy mode
    omit a330c41ee7 fix: address Copilot review findings on PR #15780
    omit ca5d6e77db chore: strip scope-creep config noise from the GormRegistry PR
    omit 9b2ab9c06e fix: resolve GORM regressions surfaced by the registry refactor
    omit ca3e87e7ba test: @PendingFeature the pre-existing Mongo count-over-OR disjunction bug
    omit 325f167212 fix: @CurrentTenant data services resolve the primary datastore for tenant management
    omit efbf76cde3 test: isolate Mongo multi-tenancy specs from singleton GormRegistry pollution
    omit 0f78b71b1e fix: MultiTenant.eachTenant must not force current-tenant resolution
    omit 76da056195 fix: H7 disjunction/conjunction/negation operate on detachedCriteria
    omit 09b0a539cb test: align H7 core tests with the GormRegistry rewrite
    omit 7acb40fae7 fix: H7 first/last(Map) inherit core's order-aware implementation
    omit 3628b0d118 fix: implement find/findAll-by-example via findWhere/findAllWhere delegation
    omit 5d1df27928 fix: apply pagination args before Query.list() in findAll-by-example
    omit 1da63f2e69 fix: register MongoGormApiFactory so Mongo entities resolve a MongoStaticApi
    omit 1937163907 fix: honor getAll id order, null slots, and id conversion in Hibernate retrieveAll (H5 core 3→0)
    omit 0afca8b287 fix: resolve multi-tenant dynamic finder dispatch and tenant session passing (H5 core 6→3)
    omit a6b1691bd4 fix: clear GormRegistry core-impl regressions (H5 core 42→6)
    omit 606ef97cae fix: restore null-tolerant service/datastore contracts in GormRegistry core
    omit 18133aa76f Fix MongoDB functional tests: fall back to enhancer API factory when no GormApiFactory registered
    omit 76f800dcc4 fix: remove redundant this.datastore assignment in HibernateGormStaticApi
    omit 54e1b4d408 fix: resolve null datastore in H5/H7 validation and dynamic finder dispatch
    omit 6c7fab8f4c fix: restore deprecated setDatastore and persistentEntity for H7 adapter compat
    omit 7db88ca741 fix: restore deprecated backward-compat API surface for adapter modules
    omit 96d8e6f986 fix: restore deprecated GormEnhancer extension points for backward compatibility
    omit 93ffb0dee3 style: remove unused ConnectionSource import and fix consecutive blank lines in HibernateGormEnhancer
    omit 6ac608bfe2 fix: register HibernateGormApiFactory in registerConstraints; update affected tests
    omit 974eb55700 fix: mode-aware tenant lookup and bound DatastoreResolvers in GormRegistry
    omit 30e08c99e3 fix: distinguish datasource connection qualifier from tenant ID in AbstractGormApi.execute()
    omit ab58259ece fix: restore registerConstraints hook and fix MongoStaticApi fields dropped by scaling refactor
    omit ea2918717c fix: restore registerConstraints to GormEnhancer dropped in scaling refactor
    omit a5d5d311e7 feat: GORM O(M+N) scaling — GormRegistry, GormEnhancer, and core API refactor
    omit 7e50a21785 test(grails-datastore-core): close Codecov patch-coverage gap on getTenantId()'s lazy fallback
    omit 36179ebc7d fix: address jdaugherty's follow-up review on SessionResolver/AbstractDatastore
    omit 8374bc80e9 fix: guard getTenantId() DISCRIMINATOR mode and close review-flagged coverage gaps
    omit 20966b0380 fix: address review feedback on SessionResolver/AbstractDatastore architecture
    omit c382eed135 fix: address Copilot review findings on PR #15779
    omit 9d11da0814 fix: widen MongoMappingContext.initialize visibility to public
    omit eea98724a3 fix: restore concrete Service trait methods to fix @CompileStatic compilation
    omit ab50c393a5 feat: add SessionResolver infrastructure and extend core datastore APIs
     add abdd44767d fix grails-core-cli artifact checksums
     add 6b60b72e13 Rewrite the sbom plugin to handle both the cli + main artifacts lazily
     add a98e197add Add tests
     add dfebb9a261 Add sbom verification to verify
     add a162ebb524 build: change logger level from lifecycle to info for sourcesJar task creation
     add 0e16a24661 Merge pull request #16022 from apache/cleanup-build-log
     add fa30af085b Fix sbom exemptions for cli split
     add bfd17896e9 Fix task resolution in grails wrapper cli
     add e53459c0b5 build: update checkstyle and codenarc versions
     add 5cea1fbc95 style: codenarc issues after update
     add 4d3107d841 Merge pull request #16013 from apache/update-codestyle-libs
     add 6d1acaddb6 Fix help resolution & speed up dependency resolution
     add 15938592c7 Document Spring HTTP interface clients
     add e7bad9c74a Merge pull request #15996 from apache/docs/http-exchange-clients
     add 136f16d7d1 Document Spring Boot structured logging
     add 0430ed2d37 Potential fix for pull request finding
     add e2ee9746ee Potential fix for pull request finding
     add f3da7a2312 Merge pull request #15997 from apache/docs/structured-logging
     add c10e485773 Document continuous test mode
     add 0cd61e1cdd Potential fix for pull request finding
     add 2d08123daf Merge pull request #15999 from apache/docs/continuous-testing
     add 75f02aaff8 Enable CodeNarc empty catch checks
     add a082291aa9 Rename intentional empty-catch parameters in grails-gradle-model
     add 33efc93093 Merge remote-tracking branch 'origin/8.0.x' into build/empty-catch-codenarc
     add 4e7cd8762f Address review feedback on EmptyCatchBlock PR
     add 1817a7d7b4 Merge pull request #15991 from apache/build/empty-catch-codenarc
     add 44d5cfafe0 Characterize plugin registry load order and lookup contract
     add 0b53a85ae4 Use find/count for null-safe plugin lookup in registry contract spec
     add c6ce3fe8bd Merge pull request #16004 from apache/test/plugin-registry-contract
     add cb35496301 [skip ci] Release v8.0.0-M4
     add b11fa75cb2 [skip ci] Bump version to 8.0.0-SNAPSHOT
     add 743730dc3b Merge pull request #16049 from apache/merge-back-8.0.0-M4
     add 7388284e4f [skip ci] Release v7.2.1
     add f9e4572136 [skip ci] Bump version to 7.2.2-SNAPSHOT
     add e72c56bccf Merge pull request #15982 from apache/merge-back-7.2.1
     add bc80c60f7f [skip ci] Release v7.1.4
     add ca1def5974 [skip ci] Bump version to 7.1.5-SNAPSHOT
     add 0496370184 Merge pull request #15981 from apache/merge-back-7.1.4
     add c9c3be92a8 [skip ci] Release v7.0.14
     add c63d23e428 [skip ci] Bump version to 7.0.15-SNAPSHOT
     add dba8810e50 Merge pull request #15980 from apache/merge-back-7.0.14
     add 876db2e1a5 Prevent multiple publishing from running at the same time
     add 7eb9a5e98d Merge pull request #15988 from apache/ci/document-publishing-limit
     add ee4d85d65f Bump org.testcontainers:postgresql in /grails-forge
     add 8f2f6cf1e6 Merge pull request #15639 from apache/dependabot/gradle/grails-forge/7.0.x/org.testcontainers-postgresql-1.21.4
     add 23c2c586af Update Log4j to 2.25.5 and document unfixed Jansi CVE
     add ac08770cff Merge pull request #16043 from apache/deps/cve-log4j-jansi-7.0.x
     add b8df2131e9 Remove push trigger due to api limits
     add 6e463ae14b Merge branch '7.0.x' into 7.1.x
     add 95c0db6d4a Merge branch '7.1.x' into 7.2.x
     add 63048d463e Merge branch '7.2.x' into 8.0.x
     add 87ce649d52 build: try to fix dependency resolution after merge-up
     add 17d78a74e4 Merge pull request #16056 from apache/try-fix-dependencies
     add b2b92f34cd localeSelect: add type="dropdown" and a menu-cased name, and titlecase autonyms
     add 7e0316c71c localeSelect: keep the current query string when switching language
     add 3c5b1b9045 Merge pull request #16053 from codeconsole/locale-autonym-titlecase
     add 4aa9a0b51d Add compile-time check for GORM query strings flattened from GString
     add 46c4ba2486 Track GString origin through variable aliasing, not just literal coercion
     add cceff551fb Extend query safety check with branch-sensitivity fix and two new warnings
     add d3e1ea8485 Add protectSqlInjectionAttacks opt-out for the global query safety check
     add 6e0a8bafe0 Adopt @RestoreSystemProperties in GlobalGormQuerySafetyASTTransformationSpec
     add cb3a5753c7 Detect inline .toString()/cast flattening at the GORM query call site
     add f1fbe86956 Merge pull request #15971 from apache/feat/gorm-query-safety-ast-check
     add e0e7dd3f2a Added ternary operator formatting in the groovy-developer skill
     add 2bf0cf01f8 Merge pull request #16055 from gsartori/groovy-developer-ternary-operator
     add 09c42aebe4 Bump testlens-app/setup-testlens from 1.9.2 to 1.9.3
     add 2781979e92 Merge pull request #16062 from apache/dependabot/github_actions/testlens-app/setup-testlens-1.9.3
     add 52b27dfdc3 GrailsUtil: honor stackTraceFiltererClass and logFullStackTraceOnFilter
     add 55a45f5871 fix checkstyle ImportOrder: separate spring.beans import group
     add 5577618630 GrailsUtil: bootstrap-hook init via GrailsExceptionResolver
     add a23e03d961 Address review feedback from matrei
     add c6610c1567 Move stack filterer init to bootstrap phase, address jdaugherty review
     add c2db0eddb0 Trigger GitHub mergeability recompute (no content change)
     add 0702d7bb88 Merge branch '8.0.x' into 7.1.x-grailsutil-honor-filterer-config
     add cbfe2fc8e9 Address review: Class-valued filterer config, ClassLoader, defensiveness
     add 4000654c8e Address borinquenkid review: log the wrong-type filterer fallback
     add 87d9eb40e6 Merge pull request #15666 from codeconsole/7.1.x-grailsutil-honor-filterer-config
     add 5db496701c refactor: clean up GlobalGrailsClassInjectorTransformation
     add 5e9ce015d9 Add tests closing codecov gaps in GlobalGrailsClassInjectorTransformation
     add 4db83b3436 test: remove redundant javadoc
     add 31875ec0a1 another iteration after review feedback
     add 7860ec1d19 test: add more coverage for `GlobalGrailsClassInjectorTransformation`
     add b32e9d1907 Merge branch '8.0.x' into refactor-global-injector-trans
     add 4267e77b2f test: reset static collections in cleanup()
     add 8ec2dad08d Merge branch '8.0.x' into refactor-global-injector-trans
     add eb90eb5c77 test: verify log warning on existing malformed plugin xml file
     add 7b35c0f4b0 fix: do not use `getClass()` in static method
     add 722040412b refactor: minor
     add 300b01f885 test: align on using log appender in tests and some cleanup
     add 43366f1f73 test: existing resource when testing `grails-plugin.xml` update
     add c4bbf11593 build: whitespace
     add 8fe145514c refactor: enhance plugin XML generation and improve error handling
     add cdad075730 refactor: make pending lists an internal instance concern
     add 4fe23d49c0 refactor: another iteration after feedback
     add 48e38bb1a0 refactor: extract test log capturing to reusable class
     add c3b60c8c01 test: add more coverage
     add 7bcab161f3 fix: logic to handle plugin excludes over source units
     add bad541ba13 fix: correct error generation in ast transform
     add d86a6957e9 fix: defer resources when malformed plugin descriptor lacks metadata
     add fbc9c6ee81 fix: omit unavailable Grails version from plugin metadata
     add a55d2ad186 refactor: move LogCapture to textFixtures source set
     add aba16ce46a fix: LogCapture improvements
     add d1c8d0e439 test: add deterministic test logging configuration
     add fd87c31e28 fix: clarify nullable contracts
     add 7587013983 refactor: clarify plugin XML update helper names
     add b341dc5b75 fix: make Grails version fallback coverage deterministic
     add 945b185a17 chore: clarify logback-classic dependency in test fixtures
     add a72fa18d3e style: re-order methods more logically
     add f924d0c9d7 docs: clarify plugin XML update failure handling
     add b5a15be028 test: improve test isolation and clarity by resetting trait injectors in setup and cleanup
     add ec9a530c7d fix: skip plugin XML generation after validation failure
     add c083ad1844 fix: refresh plugin metadata without new artefacts
     add f55731a748 Merge pull request #16042 from apache/refactor-global-injector-trans
     add 94067b6c1f Remove logback-spring.xml from the app skeleton
     add 81e26bed44 Stop generating logback-spring.xml in Grails Forge
     add 0eea153db8 feat: add opt-in Logback Configuration feature to Grails Forge
     add ed420b14a8 docs: document logback-spring.xml generation change and Logback Configuration feature
     add 2fac042396 Merge remote-tracking branch 'apache/8.0.x' into remove-skeleton-logback-spring-xml
     add 3f3732e681 docs: document zero-XML per-environment logging via the environments block
     add 45968fd538 Merge branch '8.0.x' into remove-skeleton-logback-spring-xml
     add 298cd594ad Keep generating logback-spring.xml by default; make zero-config the opt-in Forge feature
     add d2422cdab8 Simplify generated logback-spring.xml: compose Spring Boot defaults, INFO root level
     add 2b1902fbc2 Docs: fix logback-spring.xml example and scope zero-config vs generated-file behavior
     add 8395a4775d Merge branch '8.0.x' into remove-skeleton-logback-spring-xml
     add 537614e383 Stop generating logback-spring.xml by default; add opt-in Logback Configuration feature
     add a62acb7a9d Docs: expand config-driven logging coverage in the logging reference
     add 3f378fae04 Merge remote-tracking branch 'upstream/8.0.x' into remove-skeleton-logback-spring-xml
     add 07242bf9bf Merge remote-tracking branch 'upstream/8.0.x' into remove-skeleton-logback-spring-xml
     add 66a25164f3 Merge pull request #15757 from codeconsole/remove-skeleton-logback-spring-xml
     add 9a8a9a11dd Restore backwards compatibility for Grails 7 command plugins on Grails 8
     add 7831d7dfa2 Merge remote-tracking branch 'origin/8.0.x' into feat/8.0.x-legacy-command-compat
     add 71f73fc7a7 Address review feedback and expand backwards-compatibility test coverage
     add be98c6228a Deduplicate legacy command classes across classloaders and fix docs
     add 5069bef718 Use @Slf4j annotation for ApplicationContextCommandRegistry logger
     add d1fe4956a6 Isolate Grails 7 command compat into execution-only grails-core-cli-legacy
     add 7b53bcc56b Harden legacy command provider: single name resolution and loud linkage failures
     add d64cef31ad Merge origin/8.0.x into feat/8.0.x-legacy-command-compat
     add c798c93778 Add default-on legacyCommandSupport flag beside cliAutoProvision
     add cd6cbb81bb Stop inventing named Gradle tasks for legacy application commands
     add 3587ed6478 Prove Grails 7 Groovy 4 precompiled application-command compatibility
     add 1d8edac99e Fix CodeNarc style in legacy command compatibility layer
     add 116b0efab3 Default legacyCommandSupport to false (opt-in Grails 7 bridge)
     add 75ed39351b Harden legacy command compatibility diagnostics
     add 1ed1a30a04 Move legacy command compatibility tests into an end-to-end build
     add e1b93a6927 Merge pull request #16059 from jdaugherty/test/8.0.x-legacy-command-e2e
     add b5d87ae5ea Merge branch '8.0.x' into feat/8.0.x-legacy-command-compat
     add 08121444e3 chore: add license header to end-to-end properties
     add ed1961adfc test: capture application command diagnostics from logger
     add bdb98a6636 test: capture StackTrace filterer emissions via LogCapture
     add 301b40c20a Merge pull request #16011 from apache/feat/8.0.x-legacy-command-compat
     add 57883c41e4 build: allow excluding the Spring DM example on an unpublished branch version
     add 8885e6f7a8 fix: preserve full transaction attribute state in GrailsTransactionAttribute copy constructors
     add 87e23d42b1 fix: preserve full transaction attribute state in GrailsTransactionAttribute copy constructors
     add 27d86820be fix: capture STACK_LOG output via a Logback appender instead of System.err
     add a8227fdbbb fix: convert GrailsExceptionResolverSpec to LogCapture, remove last System.err capture
     add 9e30fb08e5 Improve unresolved plugin dependency diagnostics
     add 9e73262146 Address review feedback on plugin dependency diagnostics
     add a1594a541e fix: preserve full transaction attribute state in CustomizableRollbackTransactionAttribute copy constructors
     add aba633bdf2 Remove the hardcoded servlet API dependency from gspCompile
     add df12ea261e Merge branch '8.0.x' into fix/gspcompile-bom-managed-servlet-api
     add 7242de2e8d Declare the servlet API on grails-web-gsp and document gspCompile
     add 4fdb88b163 fix: defer compile-classpath probes out of GroovyCompile task configuration
     add 457f2fb86d Merge pull request #16076 from codeconsole/fix/eager-classpath-resolve-8.0.x
     add 5d024d71b9 Issues #16060 Docs: Mixed-up version numbers
     add ebe66140cf Fix: Add urlencoding to link to Grails BOM in docs
     add 2e2ce06e9f Merge pull request #16074 from apache/issues-16060-Upgrade-docs-mixed-up-version-numbers
     add 67b98cd894 fix: import log4j-bom before Spring Boot in published BOMs
     add e8f9cf8b49 Bump com.gradle.develocity from 4.2.2 to 4.5.0 in /grails-forge
     add 8ef28e0a43 Merge pull request #15802 from apache/dependabot/gradle/grails-forge/7.0.x/com.gradle.develocity-4.5.0
     add d700945343 Fix bootWar NPE from stray CLI WebApplicationInitializer (#15377)
     add 4a7af94651 Add positive-path coverage and tidy manifest test data (#15377)
     add 22866b7dfb Merge pull request #16041 from apache/fix/7.0.x-dbmigration-bootwar-npe-15377
     add 811faed161 Align Log4j across published BOMs
     add 3307fb44e9 Merge pull request #16045 from apache/deps/align-log4j-boms-7.0.x
     add 4b15e03e6a fix(deps): Bump Groovy to 4.0.33
     add d9c79260b5 docs: Point Groovy 4 doc links at the version selector
     add a35474f878 Merge pull request #16081 from apache/deps/groovy-4.0.33-7.0.x
     add fa45c9c309 Merge branch '7.0.x' into 7.1.x
     add 8c56112191 Merge branch '7.1.x' into 7.2.x
     add 4dc7e3030d Merge branch '7.2.x' into 8.0.x
     add 9eec0587fd fix(deps): Bump Groovy to 5.0.8
     add 3f182609cf fix(deps): Bump Gradle/Forge Groovy toolchain to 4.0.33
     add 34f6a1942b docs: Point Groovy 5 doc links at the version selector
     add 5e524570dc Merge pull request #16080 from apache/deps/groovy-5.0.8-8.0.x
     add 03999f46d9 Merge remote-tracking branch 'origin/8.0.x' into deps/cve-log4j-jansi-8.0.x
     add 4fd62d9133 Merge pull request #16044 from apache/deps/cve-log4j-jansi-8.0.x
     add cefc061d34 Isolate mavenBom import requirements into a separate project so the code being built is the code being tested
     add 884a7e9b59 Do not cache end to end tests since Gradle caching may skip them as already ran
     add a24136bab2 Skip project platform dependencies when detecting declared BOMs
     add 54f68ca62e Merge pull request #16077 from apache/fix/spring-dm-example
     add cc471e4f48 build: improve project dependency substitution logic in functional test configuration
     add d4945dba74 chore: add comment and clearer variable names
     add 0dcca32984 build: cache the funtional test dependency substitutions
     add 485ca0f58a Merge pull request #16069 from apache/improve-gradle-conf-time
     add be8a83bb08 Replace fusesource jansi with org.jline's fork
     add a5da57bacf Split tests for cli into their own classpath, enforce cli dependencies as separate from the production classpath, and remove the need for the legacy jansi library
     add 0055d02ae9 Fix defects in the jansi removal and CLI classpath split
     add e184cb5a63 Remove jlineVersion property and use version from dependencies.gradle
     add 36f1ea2402 Address review feedback on the CLI test tier and classpath validator
     add b9c162fefa Move dependency version validation into a task class
     add 34232aad4a Merge branch '8.0.x' into fix/legacy-jansi
     add f0425e8f59 Merge pull request #16078 from jdaugherty/fix/legacy-jansi
     add 55db8cc7e2 fix: route plugin src/main/scripts into companion -cli jars
     add 7a3049d707 fix: use unique Sync outputs for plugin command packaging
     add 2bd0199970 fix: type copyTemplates as Sync in spring-security-ui
     add f77f0cadef fix: unique Copy outputs for plugin commands (no Sync/filter)
     add 82ebbd775e fix: keep plugin templates out of the processResources filters
     add 492b3c5aef Merge branch '8.0.x' into fix/move-plugin-scripts-to-cli-companion
     add 3d129b7140 Merge pull request #16082 from apache/fix/move-plugin-scripts-to-cli-companion
     add ea59fc5192 Merge branch '8.0.x' into fix/gspcompile-bom-managed-servlet-api
     add 063ca5266c Merge pull request #16068 from codeconsole/fix/gspcompile-bom-managed-servlet-api
     add 308857cd77 fix: replace Gradle APIs deprecated for removal in Gradle 10
     add 15d7cfaa2e Merge pull request #16075 from codeconsole/fix/gradle10-plugin-deprecations-8.0.x
     add 80bf683305 Remove the vestigial gspCompile configuration
     add 3603e6919b Merge pull request #16088 from codeconsole/refactor/remove-gspcompile-configuration
     add de314a0557 Fix reproducible build artifact verification
     add b86d50422c Merge pull request #16091 from apache/post-8.0.0-M5-release
     add a8a12d5d5a Add @GrailsBeans: compile a bean-wiring DSL into real @AutoConfiguration classes
     add e361649056 Allow @GrailsBeans directly on a *GrailsPlugin.groovy Plugin subclass
     add 0ed1645459 Verify and document @GrailsBeans compatibility with @CompileStatic
     add 79b2f3f158 Address review findings: publishing, static compilation, arg validation, silent failures
     add 48ed0fa86c Statically compile generated GrailsBeans plugin siblings
     add 360bc4306e Document @GrailsBeans DSL limitations
     add ff2241926c Add primary(), lazy(), and scope(...) qualifiers to the beans DSL
     add d5c7d2d017 Correct inaccurate claim about per-bean Spring conditionals in docs
     add 4cf0a7ab11 Add a generic annotate(...) qualifier to the beans DSL
     add 4dea95c048 Add field(...) and method(...) to the beans DSL
     add 6385b338be Convert the real grails-i18n autoconfiguration to @GrailsBeans
     add e4f92b1eab Use the real Settings constants for @Value keys in the i18n conversion
     add dc07794825 Remove unnecessary method() indirection from the i18n conversion
     add 8c35ae1e56 Split a merged comment back into its two original topics
     add c038c985c3 Address review: propagate Conditional*/Import* annotations to the generated sibling, fix acronym decapitalization, reject duplicate bean/field/method names
     add 12fa9dfd06 Document field()/method()/.primary()/.lazy()/.scope()/.annotate() and sibling-annotation-move on @GrailsBeans
     add ec5f8e52ac Address a second review: recurse through composed condition/import annotations, add @GrailsBeans(autoConfigurationName = ...)
     add 959fa3df34 Reject autoConfigurationName on a standalone class, where it silently had no effect
     add b36edf3fa8 Document the full sibling-annotation move, composed annotations, autoConfigurationName, and the bean-name-is-a-Java-identifier limitation
     add 6806043b23 Fix the bean-name-limitation workaround: it doesn't apply to the Plugin-subclass form
     add 32b0e06e5c Use autoConfigurationName to preserve I18nAutoConfiguration's identity through the @GrailsBeans conversion
     add 48d4af2cb9 Complete the I18nAutoConfiguration identity restoration (previous commit only carried the file rename)
     add 471008b6d2 Add bean(...).named(...) so a bean name that isn't a valid Java identifier can still be expressed
     add 98089e5552 Make .named(...) optional: fall back to a synthesized <type>$N method name instead of a compile error
     add bdb6b63a2b Drop the redundant explicit bean names that just repeated the convention-derived one
     add faf14de109 Reject blank/reserved-keyword names, add ImportResource to the sibling-move list, and rename .named(...) to .methodNamed(...)
     add dde9f33b67 Keep localeChangeInterceptor's explicit bean name; verify beforeName ordering and availableLocaleResolver's derived name
     add b9063a78ed Rename .methodNamed to .methodName; auto-move @ComponentScan/@PropertySources; add moveAnnotations escape hatch
     add a019de05f3 Remove .methodName(...) from the DSL: generated method names are an implementation detail
     add 31feae1ed2 Make bean/member name-collision handling independent of declaration order
     add c41c33b2b1 Reserve existing host and hierarchy member names before choosing generated names
     add 21f69f9210 Traverse the full interface graph when reserving existing member names
     add 2ff9ebcda5 Reserve the accessor names Groovy will synthesize for properties
     add e0f8d13f16 Consolidate comments that restated each other or nearby documentation
     add 07e89bbde0 Groovy-fy the beans DSL: suffix-derived sibling names, richer conditionalOnMissingBean, field .value(...)
     add b936793fde Apply the new DSL conveniences to the real i18n conversion
     add 6148123389 Add .conditionalOnMissingBeanName(...): name-based self-back-off stated once
     add 2306135aa2 Reject types given both positionally and via value: on conditionalOnMissingBean; fix stale method(...) chaining docs
     add b821683c51 Fold .value(...) placeholders at transform time; compile I18nGrailsPlugin with @CompileStatic
     add 98b046b946 Merge branch '8.0.x' into spike/grails-beans-dsl
     add 19a502c420 Flip the DSL argument order to name-first: bean('name', Type), field('name', Type), method('name', Type)
     add 48d352fadf Allow one bean name across several bean(...) statements when each carries a discriminating condition
     add 855a28347d Document @GrailsBeans for applications, including the Application class
     add 32ead2bbc4 Auto-wrap a bare config key given to single-argument .value(...)
     add 5e9e162e99 Convert UrlMappingsAutoConfiguration to a @GrailsBeans block on UrlMappingsGrailsPlugin
     add 776985dd80 Reject a blank config key in .value(...)
     add 03209d1209 Cover the migrated grailsLinkGenerator behavior in UrlMappingsAutoConfigurationSpec
     add 5450dffcfe Add bean(...).staticMethod(): a static @Bean factory method
     add 53dcb874db Convert Sitemesh3AutoConfiguration to a @GrailsBeans block on Sitemesh3GrailsPlugin
     add 6e4a52013d Convert MailAutoConfiguration to a @GrailsBeans block on MailGrailsPlugin
     add 8ce848237d Cover the enabled JNDI path and qualified session injection in MailAutoConfigurationSpec
     add 483d9a543c Simplify the mail sender's nested host/encoding defaults
     add 203a8ae9d9 Use tap for the mail sender's conditional configuration
     add 7d17c3ac4e Polish the converted bean bodies with Groovy idioms
     add 5c71d9e88c Merge branch '8.0.x' into spike/grails-beans-dsl
     add 6986f0cc12 Convert CoreAutoConfiguration to a @GrailsBeans block on CoreGrailsPlugin
     add 100b9dbf77 Apply the configured Spring placeholder prefix
     add 311fb9a959 Convert GrailsCacheAutoConfiguration to a @GrailsBeans block on CacheGrailsPlugin
     add 700cf9c329 Convert GrailsDomainClassAutoConfiguration to a @GrailsBeans block on DomainClassGrailsPlugin
     add 623ce9748d Convert DataBindingConfiguration to a @GrailsBeans block on DataBindingGrailsPlugin
     add 4dab384019 Allow bean(Type) with no factory closure
     add 6fe91a2519 Collapse the databinding source creators onto bodyless bean(Type)
     add bab7b058f3 Drop redundant explicit bean names from the converted plugins
     add cd1639f850 Use idiomatic array concatenation in the data binder bean
     add 350bb9891a Collapse the remaining bare-construction beans onto bodyless bean(Type)
     add f4410fd5c0 Use tap for the source registry and wrap the long url-mapping chains
     add 285168ddf8 Show the bodyless bean form in the application-class documentation
     add 80e526a087 Treat an empty beans block as a no-op
     add 6a71fa5ef6 Merge branch '8.0.x' into spike/grails-beans-dsl
     add 5a4e2b8c21 Compile a beans property without requiring @GrailsBeans
     add 1af34ee7f0 Drop @GrailsBeans from the plugin descriptors that no longer need it
     add 1346b27b2b Move the cache plugin fully onto auto-configuration
     add da28b4f1e9 Move the SiteMesh 3 mutator into the DSL and fix its environment post-processor
     add 1544bd7d19 Contribute the auto-timestamp cache default to the environment
     add 29305023f4 Drop the dead GrailsConfigurationAware contract from GrailsPlaceholderConfigurer
     add 0161f9dcbe Fix component scanning outside the project directory
     add 48b2bfb1e5 Contribute the bean-packages scan through beanRegistrar
     add 637b7affc6 Move CoreGrailsPlugin's bean definitions out of doWithSpring
     add a70ff87f1f Register the abstract resource locator without doWithSpring
     add 5525000e0f Merge branch '8.0.x' into spike/grails-beans-dsl
     add 9743d3a54e Fix eight defects in the beans DSL transform
     add 62b74b9a3f Fix the imports generator and give it a real consumer
     add 138d014236 Declare the beans DSL once, and give it its own group
     add 0224df0ecd Move the beans DSL examples under grails-test-examples
     add 94e25dee20 Only claim a beans property that looks like the DSL
     add af64be699c Use the Settings constants, and name the sibling correctly
     add 0067d15e23 Correct the beans DSL documentation
     add 1fe013a1c6 Declare the constraint evaluator's parameters in constructor order
     add d8f2a7b78b Let an empty bean closure body mean "construct from these parameters"
     add 9796eb104a Prove the parameter @Qualifier through real Spring injection
     add e09d4ef4e8 Wrap overlong source lines
     add 9f0b4d5f7b Use the concise bean forms in the DSL example module
     add 8009c21a64 Correct two stale limitations in the DSL documentation
     add 1410710809 Read @AutoConfiguration from class files instead of loading them
     add cc6bdf429c Source ASM's version from the build-tooling version map
     add a4deb3d2cd Locate two errors that were reported against nothing, or against the wrong thing
     add f31d57061f Stop claiming a Groovy class constant does not fold
     add 33c9ee771d Key the cache plugin's startup hook on what actually registered
     add 4e51a2556a Document the component-scan behaviour change, and drop @GrailsBeans to CLASS retention
     add 297767a923 Merge branch '8.0.x' into spike/grails-beans-dsl
     add 7d90d67932 Merge remote-tracking branch 'origin/spike/grails-beans-dsl' into spike/grails-beans-dsl
     add 9f18a77067 Cover the relaxed-boolean path that motivated the cache fix
     add ccee98a603 Merge branch '8.0.x' into spike/grails-beans-dsl
     add 022465ee3c Merge branch '8.0.x' into spike/grails-beans-dsl
     add 783b1ec36c Give every Grails 8 upgrade section a distinct number
     add c3c9b4986d Address review: correct the Application beans docs and drop a redundant comment
     add 6378d2daed Merge pull request #16019 from codeconsole/spike/grails-beans-dsl
     add 4cb7c85650 build: do not cache project references
     add 4bc5bd8233 Merge pull request #16087 from apache/impr-gradle-conf-time-2
     add 5aa26db4c4 Fall back to the WatchService watcher instead of polling
     add 40272535a4 Treat a linkage failure as the native watcher being unavailable
     add 48d528d95f Merge branch '8.0.x' into fix/directory-watcher-fallback-8.0.x
     add 641849abb6 Assert watcher behaviour rather than the implementation selected
     add 7cd616519b Require macOS for the native watcher test
     add ab2b2afb3e Warn when native macOS file watching is unavailable
     add 948775bcb4 Merge pull request #16089 from codeconsole/fix/directory-watcher-fallback-8.0.x
     add 35b1f70801 docs: add Gradle 9 developer skill for monorepo builds
     add 0ea98a1a07 docs: register gradle-developer skill in AGENTS.md
     add e4d26c5d6d docs: polish gradle-developer skill with cacheability and monorepo lessons
     add 3de06ee544 Merge pull request #16083 from apache/docs/gradle-developer-skill
     add 37db67f0cb Move i18n onto Spring Boot's MessageSource
     add cd601c7755 Add i18n descriptor tests, docs and configuration metadata
     add f9ec1aa2cd Fix checkstyle and codenarc violations in the new i18n sources
     add d4403dec66 Update the locale-selector docs for the unified include-plugin-bundles key
     add 37357a8057 Document the language-selector and AvailableLocaleResolver changes in the upgrade guide
     add 0f05805416 Restore automatic i18n reload and cover the Gradle integration functionally
     add 067edabbde Cover plugin message bundles end to end for a multi-word plugin name
     add 6ef6f85f16 Honour grails.i18n.cache.seconds as a deprecated upgrade aid
     add 1c8d8c1da3 Point i18n build failures at the upgrade guide and document Grails 7 compatibility
     add 3a1c22281d Correct the removed-settings table in the i18n upgrade section
     add d8c90360f3 change cooldown for dependabot to 7 days
     add 8c5b1cfdd8 Merge pull request #16099 from paulk-asert/dependabotCooldown
     add 5784450e7e [skip ci] Release v8.0.0-M5
     add c989200e71 [skip ci] Bump version to 8.0.0-SNAPSHOT
     add e88612c33c Merge pull request #16106 from apache/merge-back-8.0.0-M5
     add a330f176fa port validate-actions GitHub action from Groovy to Grails
     add 674a3a375d Merge pull request #16100 from paulk-asert/validateAction
     add 4ac99ab547 Bump release-drafter/release-drafter
     add 95d2232e9e Merge pull request #15711 from apache/dependabot/github_actions/release-drafter/release-drafter-693d20e7c1ce1a81d3a41962f85914253b518449
     add 4242d6b39c Bump codecov/codecov-action from 6.0.0 to 7.0.0
     add 93fd522fb6 Merge pull request #16038 from apache/dependabot/github_actions/codecov/codecov-action-7.0.0
     add f252b430cb Harden synchronizer token consumption
     add 880e6b36ab Trim oversized synchronizer token state
     add 5130d3c4ac Document synchronizer token consumption and bounds
     add 1ffe64ea47 Merge remote-tracking branch 'origin/8.0.x' into fix/synchronizer-token-hardening
     add e929338408 Merge pull request #15803 from apache/fix/synchronizer-token-hardening
     add bfa1f8e676 Remove unused Forge GitHub create and OAuth integration
     add a1e526fd02 Merge branch '8.0.x' into fix/forge-oauth-state-validation
     add ac94b25e81 Merge pull request #15812 from apache/fix/forge-oauth-state-validation
     add 994311865b Keep BeanBuilder DSL independent of XML setup
     add 833d3e4d8e Avoid XML reader init for missing namespaces
     add 5b3d004648 Merge remote-tracking branch 'origin/8.0.x' into fix/14915-beanbuilder-spring7
     add 0f1cf52699 Merge 8.0.x into fix/14915-beanbuilder-spring7
     add a3b910951c Merge remote-tracking branch 'origin/8.0.x' into fix/14915-beanbuilder-spring7
     add a1b7309d20 Merge origin/8.0.x into fix/14915-beanbuilder-spring7
     add c47fb1ebdb Merge branch '8.0.x' into fix/14915-beanbuilder-spring7
     add afabbc5c2a Merge remote-tracking branch 'origin/8.0.x' into apache/fix/14915-beanbuilder-spring7
     add 71efa807c7 Merge pull request #15824 from apache/fix/14915-beanbuilder-spring7
     add f18fc9af04 Revert "Keep BeanBuilder DSL independent of XML setup"
     add 3e4fa5c897 Merge pull request #16112 from apache/revert-15824-fix/14915-beanbuilder-spring7
     add 8a3a79ffb6 Add deterministic test task sharding
     add 57a387c032 Parallelize critical CI test workloads
     add cd4490aea5 Parallelize remaining critical CI workloads
     add 7ebf2fb3e1 Shard critical selector test legs
     add 7bb015970e Separate rerun build work from its test shards
     add 8804f208a9 Shard remaining critical CI test legs
     add fcc8f257b9 Merge pull request #16116 from apache/perf/8.0.x-ci-wall-clock-regression
     add 6e914ccac0 Avoid duplicate cached codec metaclass registration
     add 5311c4cd97 Add codec metaclass registration benchmark
     add 4805301d26 Run codec benchmark as opt-in Spock spec
     add a81a84baaf Track codec registrations by weak factory keys
     add 413a4f345b Merge remote-tracking branch 'origin/8.0.x' into fix/15374-codec-metaclass-registration-overhead
     add c421fbabcc Merge remote-tracking branch 'origin/8.0.x' into fix/15374-codec-metaclass-registration-overhead
     add ac31469817 Address codec metaclass registration review feedback
     add e655aaae65 Merge branch '8.0.x' into fix/15374-codec-metaclass-registration-overhead
     add b37a11c061 Avoid double codec registration at startup and in mockCodec
     add 7e08fa926a Key codec metaclass registration by Class and lock per factory
     add bd7ef514fc Merge branch '8.0.x' into fix/15374-codec-metaclass-registration-overhead
     add 59f9b22e7b Preserve codec metaclass registration contracts
     add 09b037af96 Remove the ad hoc codec benchmark
     add ab63e4e5c0 Cover codec lookup lifecycle initialization
     add cf62c7f8d4 Cover mockCodec without lookup reinitialization
     add b9f5c1f17e Merge branch '8.0.x' into fix/15374-codec-metaclass-registration-overhead
     add 19bcf52e8c Merge branch '8.0.x' into fix/15374-codec-metaclass-registration-overhead
     add fbdf186fe1 Merge pull request #15800 from apache/fix/15374-codec-metaclass-registration-overhead
     add 43c6d17dcf fix(grails-data-hibernate7): stop conflating decimal and bit precision for numeric columns
     add b711dd5bcc test: address review feedback on numeric precision fix
     add 72d0873c0b Merge pull request #16026 from apache/fix/gorm-numeric-column-dialect-precision
     add 15c93f2d7c build(refactor): replace deprecated Gradle test listener creation
     add 4e2b0463c4 Merge pull request #16103 from apache/refactor-depr-gradle-test-listeners
     add ae1a390db5 build: cleanup SLF4J warnings in the build output
     add 388e5af89e build: change sbom logging to info
     add 1c77528134 Merge pull request #16104 from apache/remove-missing-slf4j-warnings
     add ae3c52c65f chore: remove decommissioned code and its dependencies
     add 8ac14e97a5 chore: remove test dependencies as there are no tests
     add 8f1fa16053 Merge pull request #16096 from apache/remove-decommissioned-test-code
     add 81a151cbcd Generate Spring Security wiring through the beans DSL
     add f64b04c71c Lock down the generated Spring Security defaults
     add 7fbe45e180 Seed a non-admin account in generated secured apps
     add 5e1acba929 Merge pull request #16119 from codeconsole/forge-security-beans-dsl
     add f813b48af6 Compile GSP pages with the Java the project asked for
     add 321c9de6f5 Merge pull request #16118 from codeconsole/fix/gsp-compile-java-toolchain-8.0.x
     add 3e9ca7a4c0 Merge remote-tracking branch 'upstream/8.0.x' into feature/i18n-boot-message-source-8.0.x
     add 0221bb01d8 Reject plugin descriptor names that collide once normalised
     add 322233651c Merge branch '8.0.x' into feature/i18n-boot-message-source-8.0.x
     add e997f98606 Merge branch '8.0.x' into feature/i18n-boot-message-source-8.0.x
     add 992084a8b8 Merge remote-tracking branch 'origin/feature/i18n-boot-message-source-8.0.x' into feature/i18n-boot-message-source-8.0.x
     add 362ffd4571 test: add example domain class with `@ManagedEntity`
     add 2c10d5dfb0 fix: update HibernateEntityTransformation to use a specific applied marker
     add 9b508ab3fa test: add example domain class with `@ManagedEntity` in hibernate7 example
     add 91ee8a8283 chore: add license headers
     add 535e8141b8 Merge pull request #16121 from apache/fix/managed-entity
     add fff5f3e91c Start an embedded MongoDB so generated apps run without one installed
     add cfaa324d76 Address review: keep production external, only reuse our own server, document
     add 724a270dc4 Offer only the backends whose library is present
     add 7297db5fdc Do not start an embedded MongoDB while generating bean definitions
     add 4e93ca18b9 Let an application with an embedded MongoDB take a CRaC checkpoint
     add 37f771067b Remove an import left unused by the previous commit
     add 8b8bea09af Cover the checkpoint and restore path the embedded MongoDB depends on
     add 905964362b Ask for an embedded MongoDB by url, the way an in-memory SQL database is asked for
     add 9e9c4600be Merge branch '8.0.x' into feature/mongodb-embedded-8.0.x
     add 05648caf1a Name the generated MongoDB database the way a SQL one is named
     add fa1e14756d Merge pull request #16095 from codeconsole/feature/mongodb-embedded-8.0.x
     add daaa4048b0 Support escaping a GSP expression with a backslash
     add 4431eced56 Merge pull request #16144 from codeconsole/feature/gsp-escaped-dollar-8.0.x
     add 641b7d24f2 Bump testlens-app/setup-testlens from 1.9.2 to 1.9.3
     add eae66f7903 Merge pull request #16137 from apache/dependabot/github_actions/testlens-app/setup-testlens-1.9.3
     add 3570c760ed Bump softprops/action-gh-release from 3.0.0 to 3.0.2
     add a83f87480e Merge pull request #16138 from apache/dependabot/github_actions/softprops/action-gh-release-3.0.2
     add 2c8b338f1c Document Grails 7 plugin compatibility on Grails 8
     add 9ef02258c9 Address plugin compatibility review feedback
     add 1628a9c31f Merge pull request #16141 from jamesfredley/docs/grails-7-plugin-compatibility
     add e2926e0316 Harden bindData against mass assignment
     add 6c85e2be2b Make mass-assignment deny-by-default opt-in for 8.0
     add c63d39a8c5 Merge remote-tracking branch 'origin/8.0.x' into fix/binddata-mass-assignment
     add 6ea7998aa1 Resolve inherited bindData allowlist for proxy subclasses
     add a000d32858 Make data binding deny-by-default to prevent mass assignment
     add 56a9b27e90 Bind typed arrays through the allowlist and resolve domain elements
     add 8e042314f3 Merge origin/8.0.x into fix/binddata-mass-assignment
     add 419695afb7 Restore permissive binding default and honor bindable false in all modes
     add f1bdc751b3 test: add bindable constraints for model properties in HalJsonRenderer and JsonRenderer specs
     add 4c9062e77b Resolve legacyBindableDefault from the raw configuration value
     add 08bf7818e2 Drop the bindable constraints added to the renderer spec models
     add d5335f4a9e Merge branch '8.0.x' into fix/binddata-mass-assignment
     add cd4202bfa7 Merge branch '8.0.x' into fix/binddata-mass-assignment
     add cdedbb2ff3 Merge branch '8.0.x' into fix/binddata-mass-assignment
     add 73a0555772 Address jdaugherty review feedback for opt-in secure binding
     add 23625ea24c Merge branch '8.0.x' into fix/binddata-mass-assignment
     add 21e715ce3d Address data binding review feedback
     add b89e6a02dd Merge branch '8.0.x' into fix/binddata-mass-assignment
     add dad867634c Merge branch '8.0.x' into fix/binddata-mass-assignment
     add 11ebb5a8cd Merge pull request #15947 from apache/fix/binddata-mass-assignment
     add e801ffb403 Add JMH performance regression reporting for pull requests
     add ed2db8a1af Close JMH metadata stream and run comparison tests in CI
     add e04c9022ba Replace Python JMH comparison tooling with Groovy
     add e510a627a1 Merge branch '8.0.x' into perf/8.0.x-jmh-pr-benchmarks
     add 202d206a6a Address JMH PR review feedback on workflow, guards, and tooling
     add b8d3233184 Isolate JMH report tests from benchmark fixtures
     add 90eded54b2 Preserve JMH mode in benchmark reports
     add 8624c28d99 Harden JMH benchmark comment updates
     add 5429ab7669 Guard GSP parser benchmark fixtures
     add 22c45df65a Align JMH workflow with pull request execution
     add f579cf3135 Merge pull request #16071 from apache/perf/8.0.x-jmh-pr-benchmarks
     add 6309f18a1f Add opt-in nullMissing support to bindData for stale-data clearing
     add 018220fb3e Merge deny-by-default binding into nullMissing branch
     add 73839891f2 Merge origin/8.0.x into fix/binddata-null-missing-stale-data
     add 990a79d48f Merge fix/binddata-mass-assignment into fix/binddata-null-missing-stale-data
     add 62d4aadc22 Merge branch 'fix/binddata-mass-assignment' into fix/binddata-null-missing-stale-data
     add 59ec123ecd Merge branch 'fix/binddata-mass-assignment' into fix/binddata-null-missing-stale-data
     add 1f566947cc Merge branch 'fix/binddata-mass-assignment' into fix/binddata-null-missing-stale-data
     add cbfd385d3b Consolidate framework-managed data binding properties
     add dc719ce099 Extract nullMissing property clearing
     add 2b53efd370 Fix domain binding spec cleanup lifecycle
     add 50714be10c Keep Grails-managed domain properties bindable when opted in
     add 9cd1bde916 Merge branch 'fix/binddata-mass-assignment' into fix/binddata-null-missing-stale-data
     add 69ed46edca Merge binding security updates into nullMissing work
     add bcb05afdee Merge branch 'fix/binddata-mass-assignment' into fix/binddata-null-missing-stale-data
     add 8cc9ceed92 Rename `nullMissing` to `clearMissing`
     add c4e58c24ec docs: clarify behavior of clearMissing in FrameworkPropertyNames
     add 3352c00b7f test: improve clarity of test names for clearMissing behavior
     add e133a02446 docs: enhance bindData documentation with wildcard usage and clearMissing behavior
     add 0c876331b0 test: improve clarity of bindData test names and enhance clearMissing behavior
     add 13091653f5 feat: implement wildcard expansion for included properties in clearMissing
     add 4633c6777b docs: clarify behavior of clearMissing for Grails-managed properties
     add ecff934dbc chore: cleanup `DefaultASTDatabindingHelperDomainClassSpecialPropertiesSpec`
     add a6f4846fec Merge branch '8.0.x' into fix/binddata-null-missing-stale-data
     add b964e603d0 Merge pull request #15950 from apache/fix/binddata-null-missing-stale-data
     add 3f8ce887d4 Merge remote-tracking branch 'upstream/8.0.x' into feature/i18n-boot-message-source-8.0.x
     add 592a3fb56c test: reproduce issue 16133
     add 274ea82b5d fix: issue 16133
     add 5a10ebfac3 test: adapt other tests to fixing issue 16133
     add 6948b393a3 chore: whitespace
     add f07ddd11b7 test: reset fixtures and UserIntegrationSpec assertions
     add 2263394899 fix: initialize `defaultNullable` to `true` in `AbstractGormMappingFactory`
     add 07a30bb3eb fix: preserve bidirectional binding with nullable associations
     add 9cf91149ac test: cover nullable-by-default mapping cases
     add baa3a4c0a3 fix: nullable-by-default mapping cases
     add cb0db006e0 test: update EnumTypeBinderSpec to handle changed nullable default
     add d76700ae30 docs: update documentation to clarify changes in default nullability for persistence mapping
     add 47cb138493 test: more default nullable test coverage
     add e71d9fad23 Fix flaky RunningApplicationProcessSpec stop timeout
     add 2d617df10c Fix the actual reaper-thread flake in RunningApplicationProcessSpec
     add 3811fcefc7 Poll ProcessHandle.isAlive(), not Process.isAlive(), in the reaper-lag fix
     add 5d9855e146 Merge pull request #16032 from apache/fix/flaky-running-application-process-timeout
     add 528a41b9ba Bump github/codeql-action init and analyze together to v4.37.3
     add f3413b4f6e Merge pull request #16050 from apache/deps/codeql-action-4.37.3
     add 54ea20836a fix(grails-data-hibernate7): make type: 'text' produce an unbounded column (#16020)
     add cbb9a0de0c Merge branch '8.0.x' into fix/issue-16133
     add f8e4485cbe chore: add back import after bad merge
     add 3650fdf15a refactor: rename isIdentityOrVersion to notIdentityOrVersion
     add eaa0af6867 Merge pull request #16136 from apache/fix/issue-16133
     add 98a1acf30b Fix DDL failure for hasMany collections of enums
     add 5e05828651 Fix hasMany-of-enum cascade regression and self-encapsulate to-many cascade rules
     add 607ae4e64c Strengthen EnumHasManyDdlSpec assertions and coverage
     add c7f4f4e5c8 Replace indirect GrailsPropertyBinder guard with self-encapsulation
     add 70f875107e Close a real branch-coverage gap for HibernateCustomProperty
     add a598d287a4 Address round-2 review: scope getTable override, restore log, harden specs
     add deac428c1e Merge pull request #16052 from apache/fix/enum-hasmany-ddl-16051
     add 143c982ee9 Merge remote-tracking branch 'upstream/8.0.x' into feature/i18n-boot-message-source-8.0.x
     add d593bd2bbf Register the GSP codecs settings and servlet without live instances
     add ff515d199a Do not add a ConfigurationClassPostProcessor to an AOT context
     add 38e941fecd Keep abstract bean definitions out of AOT processing
     add b3811adb75 Let the container supply the SiteMesh view resolver's servlet context
     add bc537807e3 Document ahead-of-time processing and cover it with tests
     add 227d74695e Register the GORM event publisher as a bean definition
     add 3206f60554 Read the Spring Security version without nested reflection
     add 075c648872 Add the license header to the AOT example configuration
     add df347f19fa Expand scaffolded views at build time
     add 55b7dcc425 Register the request path's reflective API for ahead-of-time images
     add 3b3537d154 Register the framework's closures for ahead-of-time images
     add 842ce6f07b Record an application's own classes and pages for ahead-of-time images
     add fa8e4e4fc1 Register the rendering, scaffolding and persistence runtimes
     add 81ce34460a Register the classes a tag library declares inside itself
     add f92e2e0cf8 Use the pages compiled at build time in an ahead-of-time image
     add d366841707 Ask one question about which scanned types may be registered
     add e1e3aae3a3 Cover what an application records for an ahead-of-time image
     add 29053d5f2d Follow the configured import order and indentation
     add 22c100bdb2 Expand scaffolded views only where a controller is scaffolded
     add b1611e36ab Carry a bean's injection into the code generated for it
     add 3e0a6fe23e Contribute tag library definitions without replacing what is registered
     add 2885d88f72 Gather a variable-argument constructor argument into the array it feeds
     add 36d20d1127 Leave a datastore's configuration to be read where the application runs
     add b70873614e Keep the bean definitions that were generated ahead of time
     add d2ad00cc77 Do not add a second processor for configuration classes
     add ee481ed207 Cover the two ahead-of-time processors contributing to one bean
     add c250a955da Let a plugin declare its beans from inside an image
     add 07273ed9e1 Answer where the application runs, not where it was built, for GSP
     add 32e3467b64 Leave the Hibernate datastore's configuration to be read where it runs too
     add a650c42087 Inherit no search location while code is being generated
     add d218534d47 Let an image call the classes that extend types Groovy did not declare
     add 33c54d8c45 Read the flag directly rather than looking it up
     add 0d0dc239d1 Do not read the application's own bean declarations a second time
     add 2b0824fef5 Write down the artefacts an application is made of
     add 26f464bef9 Leave the plugins' own artefacts to the plugins
     add f304120624 Define the url mappings holder as reloadable only where it can reload
     add 9ba4d149a1 Carry what a page compiled at build time is read from
     add feb740f097 Ship what an image needs with the framework rather than asking for it
     add 7d2bad0f02 Colour the output of an image that is being run at a shell
     add 79f1dccc59 Show the banner art in the framework's colour
     add af29982470 Let an application choose the colour the banner art is shown in
     add 181ac758a9 Address review: metadata only for a native build, and four smaller things
     add 7687f84639 Leave a datastore's proxy handler alone
     add 813e1918da Let an image call the framework's own interfaces
     add 7a063e3a98 Skip a closure whose surroundings cannot be loaded
     add 5846c43855 Let an image call the Spring interfaces a plugin is handed
     add ac091ad8a9 Use plain map-entry spacing in the native metadata task
     add da9dcd733c Train a JDK AOT cache from a run of the application
     add b2c7f4395d Document the AOT cache
     add 59e644ba47 Package compiled assets where an executable jar can read them
     add 3fec0cd0a8 Correct the AOT cache figures
     add aeb9004179 Address review of the AOT cache task
     add b2009c4382 Assert what the registrar now says these beans produce
     add ac9075ac5d Follow every type a class file names, not some of them
     add 790b5c1f33 Train on the toolchain's JDK, and leave the cache beside the application
     add 03b9909ba4 Say under the banner how the application was started
     add 2187890a6a Keep the banner's option enums usable in an image
     add 8ba500ddc0 Read an optional version without setting the library going
     add 8a28c10784 Show Spring Security by default, and leave out what cannot be determined
     add 199eb8e23e Show the container being served on, and stop at the first one found
     add 223ac95f26 Build on JDK 21.0.12
     add bd86459603 Give an application building ahead of time what it needs
     add f18532d7f8 Space a mark as it was written rather than shouting it
     add 61d90312d6 Register an image's resources as hints rather than as build arguments
     add fe4c9cfc2e Stop caching what a forked compiler produced
     add baf640289e Say how the extracted application is compared, so the task validates
     add 184821249d Say why the training run ended, not only that it did
     add c465952f53 Do not hand the training run a variable the daemon kept but emptied
     add eef515dfae Ask about the return that rewinds a line, not the one that ends it
     add fa710fd59f Merge branch '8.0.x' into fix/aot-live-instance-beans-8.0.x
     add 2876503929 Fold the task's two javadoc blocks into one
     add 1240ce7857 Keep the setters a domain class's constraints are applied through
     add 49ec1f06a4 Record the reflection a running application does, from a declared list of paths
     add 2649ca482b Let a traced form be told what to put in it
     add 33af958b12 Sort the AOT imports the cherry-pick left out of order
     add 4b9352d453 Ask for nullability with the annotation Spring did not deprecate
     add 49a59448d6 Give two version lookups back the documentation left above a third
     add cbc1ffa172 Let every datastore name its event publisher rather than hold one
     add 4016bae65d Keep the image to the properties files something actually reads
     add 48d9d2b37a Tell Gradle what decides whether the views are staged
     add 9bbd56625c Say which JDK a cache needs, rather than let the run fail for it
     add e517a9d7b4 Say which banner version option was not recognised
     add 6fa81e7777 Write down what the banner now says without being asked
     add 1d95c8eff2 Leave collectMappedClasses saying what it has always said
     add 082b6b4829 Ask the post-processor about colour through the hook that decides it
     add 0a8b8f5022 Make the ahead-of-time application serve a page, not only start
     add 4788cebfc2 Say what makes standing down over the configuration processor safe
     add 35657c9b02 Leave Neo4j holding the configuration it can still reach
     add 5a924d11b8 Put back the cookie handler the build was using
     add cb374b1c3a Trace what was asked for, or say that it was not
     add fb6518ead9 Check where a form page was answered from, as a path already is
     add abd0453525 Bind the qualified domain name when expanding scaffolded views
     add 2eb6d04f46 Read the Spring Security version off the package, not through reflection
     add e93d383ea8 Leave scaffolded views to be produced where they always were
     add 79bd5b9488 Put the new ahead-of-time code under org.apache.grails
     add 1714f2b055 Leave one thing deciding what the definitions are generated for
     add d81902f70b Ask in one place whether the code is being written out
     add 437e627074 Say unknown where a version was asked for, and nothing where it was not
     add 67abf890b7 Reach the archive and the assets without resolving them early
     add b22be60569 Say what the artefacts are read from, and check it holds
     add 6d4bb566bf Give the training run the archive by its full path
     add 874c053068 Merge remote-tracking branch 'upstream/8.0.x' into fix/aot-live-instance-beans-8.0.x
     add 0021e820a5 Keep the project out of what the AOT tasks carry
     add 03638e7424 Wait for the application to start, not for the word "Started"
     add cb76065a1e Close the client the trace ran with
     add 709989ae37 Record the pages after they are compiled, not before
     add e68da7d3db Ask for the asset task by name instead of holding the container
     add 3890b3466e Refuse a port something else is already answering on
     add a3d5a48b39 Fingerprint the extraction by the JDK, not by where it lives
     add 416096af49 Say what is wrong instead of publishing through a null
     add 1ece28fbbb Refuse to generate Neo4j definitions that carry the machine's configuration
     add db49c9488f Quote the port message the way CodeNarc asks
     add e28672d89e Move the Gradle plugin's AOT classes to org.apache.grails
     add 63a462a776 Move the tag library bean registration to org.apache.grails
     add 6d468648a8 Take asset pipeline 5.2.0-M3
     add 5c836c436f Name the controller types this module declares as types
     add 49e51adbdc Merge branch '8.0.x' into fix/aot-live-instance-beans-8.0.x
     add ac919290f3 Take SiteMesh 3.3.0-RC1
     add 4ef8cba33f build(test): make isolatedTestsTwo actually run serially
     add 13c964143f build(test): stop test forks oversubscribing the machine
     add 0f5f5b653a build(test): assert ActiveProcessorCount reaches forks
     add ccca92fd4b build(test): qualify configuredTestParallel via rootProject.ext
     add 89e993c3ba Merge pull request #16158 from apache/fix/test-fork-oversubscription
     add 2926a0f644 feat: GORM O(M+N) scaling — GormRegistry, SessionResolver infrastructure, and core-class tests (consolidates #15779, #15780, #15790) (#16066)
     add 620f651fed Fix flaky WhereQueryClosureCaptureSpec: key AstPropertyResolveUtils cache by ClassNode identity
     add 078ac9da53 Address review: cache per-ClassNode instead of a static map, close test gaps
     add c3a4d9235b Close a real synchronization gap found by adversarial self-review
     add 0d195f1493 Address review: skip caching interned nodes, compute outside lock, fix isDomainClass javadoc claim
     add 6ee0ba756a Merge pull request #16034 from apache/fix/flaky-where-query-closure-capture-cache
     add 8444cc5466 Merge remote-tracking branch 'upstream/8.0.x' into fix/aot-live-instance-beans-8.0.x
     add 983e502f1c Merge pull request #16094 from codeconsole/fix/aot-live-instance-beans-8.0.x
     add 7aaa5bcaa7 Merge branch '8.0.x' into feature/i18n-boot-message-source-8.0.x
     add f1a857373f Merge pull request #16102 from codeconsole/feature/i18n-boot-message-source-8.0.x
     add e45c8ce549 fix(deps): update Groovy to 5.1.0
     add 4a289e331a refactor: remove Groovy 5 workaround for GROOVY-12134
     add 86518ca064 fix(deps): update another `groovy.version` in dependencies.gradle
     add c954bb5117 ci: update version extraction logic in groovy-joint-workflow.yml to include minor version
     add ca05235642 build: update jline/jansi to align with Groovy
     add 80ee12adc4 fix(deps): update jackson2 and jackson2-annotations versions to address CVE-2026-54515
     add d0c68dc38f Merge pull request #16163 from apache/groovy-5.1.0
     add 413d19fe85 Neo4j GormRegistry migration (consolidated: replaces #15816, #15951, #15817, #15832, #15833) (#15972)
     add 9a472722b0 Declare what the url-mapping factory beans produce, so nothing is created to find out
     add 57e3aa759e Merge pull request #16179 from codeconsole/fix/urlmappings-factory-bean-object-type-8.0.x
     add 8a4a6eba39 Fix flaky grails-views-gson tests caused by shared static test state
     add a42b48780f Address review: drop breaking trait fixtures, isolate remaining shared test entities
     add d7ee26c4b2 Rework entity decoupling as per-spec sub-packages instead of prefixed names
     add b0df13fd0d Merge pull request #16033 from apache/fix/flaky-json-view-gson-shared-state
     add 155a845537 fix(cas): repair proxy receptor and single sign-out, add integration tests
     add 46e1f1ccae fix(cas): package names aligned, log.warn removed in favor of println
     add efa8e7e16a fix(cas): address review feedback on README, CI duplication and plugin metadata
     add 95a9eb6f15 fix(cas): address review feedback on metadata, docs, timeouts and style
     add f9dc11dd5a Merge pull request #16174 from apache/fix/cas-single-signout-and-proxy-receptor
     add b914f8c29c fix(deps): Update Spring Boot to 4.1.1
     add ecf1615df0 fix(deps): Remove redundant bom overrides after boot update
     add 7851d40d68 build: conditionally transfer versions in end-to-end for sdp
     add d8d9f4f80c fix(deps): Bump transitive nimbus-jose-jwt version
     add 15f743fd70 fix(deps): Bump spring-retry to 2.0.13
     add 9b988958bc fix(deps): Bump asciidoctorj to 3.0.1
     add 55e4c07793 fix(deps): stop managing the selenium version
     add 36b76a37e6 fix(deps): Bumb objenesis to 3.6
     add 0a2b2d54cf fix(deps): Bumb commons-codec to 1.22.1
     add a77d5238c6 fix(deps): Bumb guava to 33.7.1
     add 9a0ed70a0d fix(deps): stop managing the log4j version
     add c0d04789bc fix(deps): remove unreachable duplicate branch in dependencies.gradle
     add dfa190cd01 fix(deps): remove redundant duplicate plexus declarations
     add 943ae6549e fix(deps): adjust jackson 2 version management
     add b00d69b486 fix(deps): remove redundant junit-bom version management
     add b18355711d Make precompiled GSP classes byte-reproducible
     add 41bb9354a4 Record a source checksum in precompiled GSPs instead of a modification time
     add 81f8cdafb5 Cover checksum precedence over a recorded modification time
     add e55dd6e5f7 Keep the -1 timestamp sentinel able to self-heal
     add 0126081f56 Take the checksum over bytes rather than a stream
     add b782f2eb9c Target the 7.1 line and document the change in its upgrade guide
     add c0cdbbde39 Skip re-hashing a page whose source stamp has not moved
     add 7dbea7d626 Record a checksum for pages compiled at runtime too
     add e6b65f13a8 Correct two statements the runtime-path checksum invalidated
     add b4064c9628 Document the development-mode reload change
     add a3d0871f79 Parse from the decoded source rather than wrapping the bytes in a stream
     add 894266cb5b Move to the 8.0 line
     add f39a7f6e1e Remove the recorded modification time entirely
     add 437b489e05 Say plainly that the granularity setting is gone
     add bf7e0a03d1 test: cleanup
     add 370a6e644b Merge branch '8.0.x' of https://github.com/apache/grails-core into fix/16131-gsp-source-checksum-7.0.x
     add 32f1eaf935 Correct a spec comment that outlived the timestamp
     add 1c005d7fae Merge pull request #16142 from codeconsole/fix/16131-gsp-source-checksum-7.0.x
     add 87a359ff50 fix(deps): Manage bnd.annotation 7.1.0 for Log4j 2.25.5
     add cebe9c687b Merge pull request #16084 from apache/fix/bnd-annotation-7.1.x
     add 299d7f2008 Merge branch '7.1.x' into 7.2.x
     add b4b29e10f2 [skip ci] Release v7.2.2
     add 05cfc88fb2 [skip ci] Bump version to 7.2.3-SNAPSHOT
     add 42c903f451 Merge pull request #16108 from apache/merge-back-7.2.2
     add 8009781474 [skip ci] Release v7.1.5
     add ed463e9fe3 [skip ci] Bump version to 7.1.6-SNAPSHOT
     add 959af4200f Merge pull request #16109 from apache/merge-back-7.1.5
     add 0e0f815e23 backport: reproducability fix
     add fe1827cf67 Merge pull request #16090 from apache/backport-15978
     add 8c6476c17e [skip ci] Release v7.0.15
     add 8e3df14775 [skip ci] Bump version to 7.0.16-SNAPSHOT
     add fe87c67c28 Merge pull request #16105 from apache/merge-back-7.0.15
     add ea9d6a63ce Add opt-in Forge feature for MongoDB testing support.
     add 0c78c458fc Merge pull request #15339 from sanjana2505006/feature/15007-mongodb-testing-forge
     add 63479045c8 Run the vulnerability scan on pull requests labeled "vulnerability scan"
     add a4c54d42b4 Merge branch '7.0.x' into 7.1.x
     add ed2e1c378e Merge branch '7.1.x' into 7.2.x
     add 446a12ba31 Merge branch '7.2.x' into 8.0.x
     add 2a30340391 Read java version from .sdkmanrc
     add 1681a71582 Merge branch '8.0.x' into spring-boot-4.1.1
     add e6e5b37697 Fix for feature rename
     add 1a22d0bef2 Update dependencies
     add 5e2050dbdb Remove old hibernate library that no longer exists in Grails 8
     add c4f60ce5f2 Merge pull request #16187 from apache/spring-boot-4.1.1
     add dd8e310644 Define tag handlers as methods in PlainTextMailTagLib
     add 7c5b93fb14 Generate a tag library index at compile time
     add 8afe580f86 Resolve GSP tag calls against the compile-time index
     add c992f603e0 Precompute tag method argument binding
     add 90075c3c8b Cover tag library index merging across jars
     add f621337ae6 Make the tag index agree with runtime in three more cases
     add d98ea0d684 Leave a tag declared twice to runtime resolution
     add ba48005ad8 State the tag discovery rules once
     add 3c847aa8b5 Generate the tag library index before compilation
     add 26da0a12c5 Register tag libraries from the compiled index
     add b525a4a340 Dispatch tags without writing to a metaclass
     add 7e10994139 Report an unrecognised tag as a compilation error
     add 02a8e79925 Add an explicit entry point for invoking a resolved tag
     add b34de798bb Stop installing tags onto tag library metaclasses
     add 9412856f12 Compile a call to a known tag into a direct invocation
     add d6a204f673 Correct three compatibility faults in tag resolution
     add 9d2304f53f Compile tag calls in controllers too
     add 164f297c58 Document compiled tag resolution
     add 2ab866640a Let more than one directory hold tag libraries
     add 37e5752e8f Resolve tags without writing to a metaclass anywhere it matters
     add 106aaae036 Record how each tag is implemented
     add 04540b6b6d Remove an import left over from dropping the bootstrap metaclass enhancement
     add 1bf67a36b7 Only treat a name as a namespace when nothing else claims it
     add 9729ec1ff1 Let a project resolve the tags it declares as it compiles
     add 32a9393074 Recognise a boolean getter as claiming a namespace name
     add 544710fd1d Add the Apache license header to the compiled tags guide page
     add 515c4b5f80 Read the tag library index once per compilation
     add 1235c4cf1a Register the tags a tag library actually has
     add b1ab9a42a6 Invoke a resolved tag with the arguments it was called with
     add b204c78c35 Resolve a tag call wherever it is written
     add 960c9cc97e Resolve a tag expression in a statically compiled page
     add 54773e74a6 Describe each tag library once
     add b9e2b510b6 Report an unknown tag only where the source says it is a tag
     add 07a909cdea Let the build state what it knows about its tag libraries
     add fcd70e89bf Document compiled tag resolution
     add 33e2e90b9f Know a tag library declaring no tags has been described
     add fdeb5e86fe Say which page tag forms strict checking covers
     add 2a72625dfc Do not fork the index generator for a project with no tag libraries
     add c417954b9a Measure what compiling a tag call is worth on its own
     add 73d6bd3fdf Describe a tag library that refers to what this project declares
     add 2834ffbf98 Package the index written after this project is compiled
     add 86ed5d8401 Prove a deleted tag library cannot survive in what is published
     add 1ec4b8a0f4 Keep this project's compile settings out of what it publishes
     add d1c446ac6d Read a skipped tag library's namespace rather than match it
     add 25a292dd00 Measure the rewriting rather than static compilation with it
     add 0e7d2022ba Claim a skipped tag library's namespace only when the source is plain
     add 58bc54102c Add the descriptors to the library artifact alone
     add 2bff14123a Drop an import left over from rewiring the index outputs
     add 2780990aaa Take the compiled classes, not the whole source set output
     add 91f8d3d43b Merge branch '8.0.x' into feat/taglib-compile-time-index-8.0.x
     add bfb87bf002 Merge branch '8.0.x' into feat/taglib-compile-time-index-8.0.x
     add eb5b692360 Leave a name Groovy already answers to out of unqualified rewriting
     add 156977b997 State what a page with no tag library lookup does with an unresolved name
     add 79193b6a75 Declare where tag call rewriting runs instead of relying on a default
     add 298d585422 Say what the self-describing fallback covers, and deprecate what installs onto metaclasses
     add c89bbaf534 Number the index format from one and drop the doubled javadoc
     add 781eb505f1 Drop the two index methods nothing calls
     add 8ce567cf0d Wire the index into test runtimes and stop restating what nothing reads
     add 68901e2858 Finish the review: index reads, discovery pins, and the notes that were missing
     add 6480f53211 Stop concurrent index writes losing entries, and cover the rest of the review
     add 6b67de9dc6 Leave an unqualified call inside a closure to the closure's delegate
     add 7286f5c4cb Clear the style violations left by the review changes
     add 30cac71a8f Drop the controller convention case from the rewriting spec
     add c1ce109b06 Enumerate a tag library's tags once, for both views of it
     add 72b3fffb20 Describe only what was asked for, and dispatch a shape a tag cannot take
     add 5852104a30 Compile a tag call the source proves is one, and make the rest opt-in
     add 95955df6bf Pin the unqualified setting on both sides of the module boundary
     add 045868cd81 Check a real build compiles a convention controller's tag call
     add 12985ef89a Record a tag name, not how it was written
     add e1af1b99ef Check tags only in the namespaces this project describes
     add cb57d22e32 Do not describe a class an application could never register
     add 8ea3a9aa3e Say why the deprecated URL constructor stays
     add 645241d930 Say that a namespace is not checked against a closure's delegate
     add 86642abeb0 Merge branch '8.0.x' of https://github.com/apache/grails-core into feat/taglib-compile-time-index-8.0.x
     add 6f9760b1af Merge branch '8.0.x' into feat/taglib-compile-time-index-8.0.x
     add cb99cc8fc1 Read a class for tag calls once its traits have been applied
     add 0f59eafd57 Cover the controller the rewrite decides by its directory
     add 1d82b09941 Report an unregistered tag as the dynamic path reported it
     add c2c45fb7de Decline an argument list no tag call takes
     add 79a69b3381 Put three javadoc blocks back on the members they describe
     add 99b5e00336 Merge branch '8.0.x' of https://github.com/apache/grails-core into feat/taglib-compile-time-index-8.0.x
     add 547516d694 Merge branch '8.0.x' into feat/taglib-compile-time-index-8.0.x
     add df895a74a4 Merge feat/taglib-compile-time-index-8.0.x, restoring what its merge dropped
     add 5752ba0f58 Merge pull request #16134 from codeconsole/feat/taglib-compile-time-index-8.0.x
     add 3364307ee4 Created folder remotely
     add 8cad5a1038 Initial import
     add dfeb6007ca Install/upgrade scripts and licence file added
     add ea50c4e453 added empty lib/ and classes/ directories to prevent 'not-existing' errors
     add 95b562b5ab version changed to 0.2-SNAPSHOT and QuartzGrailsPlugin.groovy updated to follow Plugin Distribution Convention
     add 368c34810f - GRAILSPLUGINS-34: added a trigger listener which prevents jobs execution until application will be fully started up - added an ability to set startDelay for cron jobs
     add a52ec4bdcb - GRAILSPLUGINS-32: downgraded to quartz-1.5.2 due to incompatibility between Spring 2.0 and Quartz 1.6.0 - GRAILSPLUGINS-33: added global job listener which logs all exceptions occured during job's execution with ERROR log level
     add 3cf5fde44a - GRAILSPLUGINS-55: added check for negative 'timeout' and 'startDelay' parameters during application startup - updated to Grails 0.5.5-RC1
     add 7b265dfe53 updated SNAPSHOT version
     add 6dd417bd31 updated SNAPSHOT version
     add 567262d56b - removed unused 'jobs' directory
     add 8a724252ca - fixed convention 'execute' method on GrailsTaskClass - added several unit tests
     add 26e4cb9a41 - migrating to Grails 0.6
     add 2103af0310 - migrating to Grails 0.6
     add d2540d0488 - unused directories deleted
     add ef4905c145 - new version of packaged plugin's zip added
     add 28e503f607 Sorry just testing svn access
     add e28917c55e - changed version to 0.3-SNAPSHOT - fix for GRAILSPLUGINS-190 (Wolfgang Schell's patch applied)
     add b103d3d26b - fix for GRAILSPLUGINS-213 (Wolfgang Schell's patch applied with slight modifications)
     add 3588a29ee4 - fix for GRAILSPLUGINS-58 (upgraded Quartz to 1.6 since it's now compatible with the Spring's version included in Grails 1.0)
     add 31ce1572da - several cleanups related to GRAILSPLUGINS-58
     add 94dace80fc - 0.3-SNAPSHOT zip distribution
     add 05c37c79d2 - removed unuser ExecutionControlTriggerListener since now all jobs are scheduled in doWithApplicationContext and there is no need for the trigger - upgraded to Grails 1.0.2 - fixed some code formatting issues
     add af8427be56 Added repeatCount parameter for Job classes (GRAILSPLUGINS-358)
     add bc1c98c4e4 Initial fix for GRAILSPLUGINS-364, GRAILSPLUGINS-359, GRAILSPLUGINS-47, GRAILSPLUGINS-307 and maybe others. Added clustering and JDBC storage suppot and plugin configuration with QuartzConfig.groovy (applied Burt's patch with slight modifications). Also moved scheduler startup into BootStrap file.
     add ba1077192d Added per-environment configuration. Fixed autoStartup configuration parameter. Added StatusFinal event with appropriate message to InstallQuartzConfig script.
     add 5d241144c4 Forgotten import.
     add dcf4d52190 new snapshot version
     add 60fd11a063 added a validity check for the cron expression
     add 13c74008ee moved default property value constants to the interface
     add d96b2c3e8e fixed some JavaDoc issues as well as unused imports
     add e72a3bf384 First cut of multiple triggers configuration. Also improved test coverage.
     add fbabfc347a 0.3 release prepared
     add 5ea697cd96 deleted 0.3-SNAPSHOT release
     add a183f95f5d updated release info to 0.4-SNAPSHOT
     add 6d5a75b6f9 changed version to 0.3.1-SNAPSHOT since of a blocker bug in 0.3 release
     add 3bf79e7dc1 reverted to MethodInvokingJodDetailFactoryBean since of GRAILSPLUGINS-374
     add b48dc81444 0.3.1 bugfix release
     add 6c59f09fc2 Corrected job template to use spaces instead of tabs.
     add e2495fa8cd Changed version to 0.3.2-SNAPSHOT and fixed an issue with "stateful" jobs, now new job instance is created for each execution.
     add 18deb9efa0 Added 0.3.2-SNAPSHOT zip distribution
     add d048efdd40 Added support for execute(context) method, so users could access JobExecutionContext from their execute methods
     add 41c58aac48 Removed unused imports.
     add 5e0fbab887 Rewrote trigger support to provide native Quartz's triggers instead of Spring wrappers for better serialization.
     add 87ddcd9fd8 Renamed factory beans for triggers to not include 'Grails' prefix
     add 9d49a516d4 Renamed factory beans for triggers to not include 'Grails' prefix. Updated license info and javadocs.
     add 8ce9bd8315 Added SQL scripts for creating Quartz DB schema in different databases. Updated version to 0.3.2.
     add 42302501cf Removed test reports from zip distribution.
     add e72abb5a5d Updated version to 0.4-SNAPSHOT.
     add fcf3e02d26 First attempt to make JobDetails non-volatile
     add 7fbe9bb4d5 Fixed 'repeatCount = 0' parameter (GRAILSPLUGINS-415). Changed version number to 0.3.3-SNAPSHOT.
     add 9d50629959 Added 'volatility' and 'durability' parameters for JobDetails and 'volatility' parameter for Triggers (work in progress on GRAILSPLUGINS-409)
     add 0882a66370 Preparing 0.3.3 release
     add 8e040be91f Implemented first cut of dynamic jobs scheduling.
     add 345a26014c Added schedule(Date) method.
     add 11cc3e9da7 Fix for GRAILSPLUGINS-451. Also updated project files for IntelliJ IDEA 8.
     add 02ee80139e Updated Gant script to use 'target' instead of 'task' since 'task' is deprecated in current version of Gant (fix for GRAILSPLUGINS-452)
     add ec2187923a Forgot to update snapshot with the latest fix
     add 4cd226e2a1 minor update to add support for specifying jobs within packages to the create-job command
     add a0975e7163 Created first version of Quartz Management Tool
     add 60561f615d version of the Quartz plugin that works with 1.1-beta1
     add 67649ee89e Updated to Grails 1.1
     add 7024512525 Updated Quartz to the latest 1.6.5 release
     add 4e0ea0c2ee Fixed an error where def execute(JobExecutionContext context) method definition was not being detected (fix GRAILSPLUGINS-622)
     add 3752a8697d Removed JobManager Controller since it is in pre-pre-alpha stage and is not very useful currently
     add 2f135de275 Updated snapshot archive
     add 27625822e6 Updated to Grails 1.1
     add fd5ca3d736 Added generated documentation to the repository
     add 3b9d159131 Fixed an error with install-quartz-config script in Grails 1.1 (fix GRAILSPLUGINS-742)
     add dc84b07da0 Updated the snapshot zip
     add e2215ae30c Fixed another error with 'def execute(JobExecutionContext context)' method
     add 2c82fc893e Removed another file from JobManagerController stuff
     add fa8bf6e524 Added timezone parameter for the cron trigger
     add 1f568d4345 Reimplemented support for scheduling with custom triggers (fix GRAILSPLUGINS-1118)
     add 13c8a1141f Switching to CustumTriggerFactoryBean for registering all types of triggers
     add c95c718a5f Updated documentation
     add 35cefe9cc4 Reverted bean names to old-style since it doesn't look like a good idea to inject job beans into controllers or services
     add be46a2f833 Upgraded to Grails 1.1.1
     add b2fbebfc1f Turned off auto startup of the Quartz scheduler in test environment (fix GRAILSPLUGINS-1159)
     add 37d08d93df Updated 0.4.1-SNAPSHOT
     add 06488b4069 Removed another file from JobManagerController stuff
     add 0a7544d627 Added timezone parameter for the cron trigger
     add b59a29ec85 Reimplemented support for scheduling with custom triggers (fix GRAILSPLUGINS-1118)
     add 9e944af3b5 Fixed an error where def execute(JobExecutionContext context) method definition was not being detected (fix GRAILSPLUGINS-622)
     add 9f17a3b571 Updated Quartz to the latest 1.6.5 release
     add 7841e3ca4d Updated to Grails 1.1
     add 3e440cc9b0 Merge branch 'master' of git@github.com:nebolsin/grails-quartz
     add 0ed670c423 Merge branch 'master' of git@github.com:nebolsin/grails-quartz
     add 2c64ce73f1 Merge branch 'master' of git@github.com:nebolsin/grails-quartz
     add b6eee2bcdd Merge branch 'master' of git@github.com:nebolsin/grails-quartz
     add 0b48bab83f Added generated documentation to the repository
     add 4c1eff715b Fixed an error with install-quartz-config script in Grails 1.1 (fix GRAILSPLUGINS-742)
     add b8624192ba Updated the snapshot zip
     add 32785e8131 Merge branch 'master' of git@github.com:nebolsin/grails-quartz
     add 01d2db1836 Fixed another error with 'def execute(JobExecutionContext context)' method
     add d018a0ec05 Merge branch 'master' of git@github.com:nebolsin/grails-quartz
     add 9d684a84c3 Merge branch 'master' of git@github.com:nebolsin/grails-quartz
     add 3370446197 Switching to CustumTriggerFactoryBean for registering all types of triggers
     add c819a27b87 Updated documentation
     add be9de0c0eb Merge
     add 373da2ee96 Fixing merge conflicts
     add db5b1d55ee Preparing 0.4.1 release
     add 191cedad84 Fixed an error with GString -> String convertion (fix GRAILSPLUGINS-1281)
     add 14b68cdc10 Placed JobManagerService into a package (fix GRAILSPLUGINS-1410)
     add 2fa904f991 Fixed a typo (fix GRAILSPLUGINS-1460)
     add b0689cff4b quartz.properties file is now loaded properly (fix GRAILSPLUGINS-1207)
     add 2dd59687fe Added reschedule(Trigger) and unschedule(name, group) dynamic methods (fix GRAILSPLUGINS-1647)
     add 19668f2875 Fixed an error with durable jobs (fix GRAILSPLUGINS-1420)
     add 3319a759cb Updated the plugin to work with Grails 1.2 (fix GRAILSPLUGINS-1808, GRAILSPLUGINS-1807)
     add 1c2affd3a9 Updated project files to Grails 1.2
     add 3f8439a503 Added 'requestsRecovery' configuration property for Jobs (fix #GRAILSPLUGINS-1701)
     add 80fc00ef22 Fix CRLF
     add ccd1c18429 Updated to the latest Quartz 1.7.3
     add c26a9df0f4 Removed debug throw
     add 1266b2a3f5 Changed QuartzBootStrap to not depend on the ApplicationContext directly and use autowiring instead (refs #GRAILSPLUGINS-1159)
     add 033871ae89 Fixed compilation warnings (fix #GRAILSPLUGINS-1845)
     add 09a4afa4d1 Fixed an error with scheduler shutdown in Tomcat (fix #GRAILSPLUGINS-1431)
     add 739e4fab26 Reverted bad change
     add 42cd4a8130 Added empty quartz.properties file
     add 5a12df0ef6 Removed web-app, since it's not used by the plugin
     add 57bd14c1f8 First draft of README
     add 20c48139fa Readme markup fixes
     add 8c51627328 Updated required Grails version to '1.1 > *'
     add f1fe0ce599 Updated version number to 1.0-SNAPSHOT
     add ce7dcd8455 Removed unused file
     add 45728fcd79 Removed unused files
     add d05fe8db08 Removed quartz.properties, allowed properties to be supplied in QuartzConfig.groovy
     add 5136fe9e30 Changes to allow more groovylike quartz configuration. Users can omit quartz.properties and supply them in QuartzConfig.groovy (or any of the merged config locations) as a quartz.props section. Falls back to quartz.properties if no grails quartz properties supplied.
     add 344bac3801 Minor change to plugin to not set configLocation on the quartzScheduler if properties supplied via grails.config.quartz.props.
     add 9d265d328c * update project files for IDEA 9
     add a787308b51 * updates Quartz scheduler to the latest and greatest 1.8.3
     add 90abe70c3a * updates some version numbers
     add bda69d6136 * fixes some paths to the library sources
     add 43d28c90f4 Job#execute() method invocation was completely rewritten to be more accurate with throwed exception (fix #2)
     add 8c77a8b2b7 adds support for jobs interruption with Scheduler.interrupt() method (fixes GRAILSPLUGINS-2042)
     add dbbbb455b0 reduces Hibernate dependency to compile time only (fixes GRAILSPLUGINS-917)
     add c037bed1a6 refines plugin configuration abilities and removes default quartz.properties
     add eb1fc29dba ignore 'target' folder
     add ab73b1203e disables Quartz updates check by default (fixes GRAILSPLUGINS-2221)
     add 41ce1dee3d force UTF-8 as file encoding in the IntelliJ IDEA
     add 8e5396ad7a improves JobManagerService and fixes an issue with #getAllJobs() method, which was returning only one trigger per job despite of real triggers count (fixes GRAILSPLUGINS-2057)
     add 069b3408e2 removes unused and unsupported Spring facet from IntelliJ IDEA configuration files
     add bad9ff5a1d changes plugin.xml to include new BuildConfig resource
     add 86effd7b71 Large refactoring: renames all *Task* entities to *Job* ones. Ex. DefaultGrailsTaskClass becomes DefaultGrailJobClass and so on.
     add 20bb71e069 Updates job template for create-job script to follow new triggers configuration convention
     add 2ef1b150ba Slight fix to the IDE configuration file
     add 4936d4f89d Updates my email address
     add eef6aed201 Fixes some conflicts which arised during massive refactoring
     add 68f4f5fdac Removes debug println statement
     add db1a112eed updated Quartz to 1.8.4
     add ee1e868bed added exposeSchedulerInRepository configuration parameter (fixes GRAILSPLUGINS-2662)
     add 469c6c7101 updated Grails version
     add 80c486b6c0 Fixed a few of the failing unit tests and also fixed the names of some of the test case files (which didn't match the class names in those files).
     add db5b0760cc Migrated to the new IDEA project structure
     add 62382a5a1b Plugin now depends on Grails 1.2+, which means it no longer needs to package the Quartz JAR.
     add 3af604b330 Merge remote-tracking branch 'pledbrook/grails-1.2'.
     add f9f08e245b Merge branch 'master' into pledbrook-fix-tests
     add 96f09e4411 Move all code to the grails.plugins.quartz package; update license; reformat code & optimize imports
     add 1f05c84b55 Add new plugin descriptors for grails-maven-publisher-plugin
     add 50207797fe Remove 'developers' descriptor to prevent duplicate entries in POM
     add d64045211f Revert "Remove 'developers' descriptor to prevent duplicate entries in POM"
     add 3583e79ce4 Remove 'developers' descriptor to prevent duplicate entries in POM
     add 5dd05822d8 Add StillMaintained.com button to the README
     add 937f0d02c2 Edited README.rdoc via GitHub
     add 6a11f9a95e [fixes #16] Get rid of plain constant interfaces
     add 3ba7974d2e exluding slf4j-api because the version it pulls doesn't play nicely w/grails 1.3.7
     add d91feebc39 Merge pull request #20 from Ticketfly/exclude-slf4j-api
     add 2b52cd3692 update versions, fix broken reloading
     add da65cf9073 docs ported to gdoc
     add 570ef3194a update version to 1.0 rc2
     add 1d19cfb2b2 SessionBinderJobListener refactored to use persistenceInterceptor to wrap Quartz jobs in a persistence context.
     add 5fa0c25b08 load after datasources plugin, if it's installed.
     add 2a78759c36 Merge remote-tracking branch 'ticketfly/persistence-interceptor'
     add 182e760915 Reworked config to merge in correct order, app Config (and external configs) can now override DefaultQuartzConfig values
     add 32734a4fd2 Merge pull request #1 from marcpalmer/182e760915365cebfb57b4a137775d53cb417799
     add 783651b9f1 fix custom trigger formatting in docs
     add 369a417201 updated plugin.xml
     add 5f65618829 update plugin to use quartz 2.1.x. This allows use of latest version of Terracotta and Tomcat 7.
     add 07f67f24ba Merge pull request #5 from rvanderwerf/master
     add ce930197e2 upgrade to grails 2.2 and release plugin 2.2.0
     add e9f92c32b7 variable name fix in JobManagerService#getJobs
     add 61146f3ecf Merge pull request #2 from isinev/master
     add 0073816ce0 Merge remote-tracking branch 'origin/master'
     add c2f90ac813 upgrade to grails 2.2 and release plugin 2.2.0
     add a1a4ca0f1b upgrade to grails 2.2 and release plugin 2.2.0
     add 54d0ef7939 fix bug with cron triggers
     add 1238fbc550 RC4
     add 658ec35377 RC4
     add 9bf1f0ae93 org.quartz.Scheduler.deleteJob(String jobName, String groupName) was removed in the most recent API. It has been replaced with org.quartz.Scheduler.deleteJob(JobKey jobKey). Made the necessary changes to make it compatible with the new API.
     add 2260eced07 Merge pull request #6 from cruzer45/master
     add 292f135c5e Merge remote-tracking branch 'origin/master'
     add a9d42be1d2 Remove all JetBrains IntelliJIDEA project files.
     add 61b8bae8a2 .gitignore
     add 26d6232a69 GPQUARTZ-112:  Methods 'triggerNow', 'removeJob', 'reschedule', 'unschedule' don't work. resolved
     add f2fc261b20 Remove JetBrains IntelliJ IDEA project files.
     add 4170eae6fd GPQUARTZ-111: Integration tests fails with Quartz plugin resolved
     add 0acf99c2cc Merge pull request #7 from kefirfromperm/master
     add 6345cc1c53 update version
     add 4535feab5d Add grails wrapper.
     add 5b6290cf4f Add Travis.yml for build
     add a9952fc8a1 Added missing wrapper files.
     add f449797f0b Merge pull request #8 from beckje01/travis
     add d673324db6 Close session without exceptions escaping into Quartz where they interfere with the execution of other listeners.
     add 4f56983ba6 Merge pull request #9 from Overruler/request
     add cef4e08ea0 update version
     add 2c1a5642dc Allow cronExpression to be an instance of CronExpression
     add c7e73a9df5 Merge pull request #10 from ctidigital/feature/allow-cronexpression-class
     add ac160c2016 grails upgrade
     add b9a3c091ec ingnore eclipse metadata
     add eaf536523d fixed reload http://jira.grails.org/browse/GPQUARTZ-102?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel
     add e78b7a2059 random def
     add 83e66e93ec gitignore
     add 916492a6ed grails update
     add f3deda9e61 merge with RC6
     add 33a82ac8c1 Merge pull request #11 from ftaiolivista/master
     add 4c979c6f5e update version for release
     add 3c007fd06c .gitignore
     add 38dbe537bf TODOs
     add 5682887839 TODOs
     add 3af8d419ff The test class for JobManagerService.
     add b8e144c695 The test for JobManagerService#getAllJobs.
     add da242d5809 The test for JobManagerService#getJobs.
     add a0006beb09 The test for JobManagerService#getRunningJobs.
     add dcb20bda4d GPQUARTZ-116 JobManagerService, pause and resume jobs and triggers
     add 7dcd965a4a GPQUARTZ-116 JobManagerService#removeJob
     add fd696af6bb GPQUARTZ-116 JobManagerService#unscheduleJob
     add c8d920c89c GPQUARTZ-116 JobManagerService#interruptJob
     add 2ab09a1345 GPQUARTZ-105 JobManagerService, added methods pauseAll and resumeAll
     add b6e4053f75 TriggersConfigBuilder, changed the parameter type from HashMap to Map
     add 47ac875029 Tests for JobDescriptor and TriggerDescriptor
     add 9728e31b83 Simple refactoring of TriggersConfigBuilder
     add 63afc698de Comment on SessionBinderJobListener
     add be364aef44 CustomTriggerFactoryBean refactoring
     add 054e891d6a GrailsJobClass
     add 2a85370636 Validations and tests
     add ead8e03790 Merge pull request #12 from kefirfromperm/master
     add 891bcf8910 Set the name of the scheduler to the Quartz instanceName property
     add 50e8495a6d Merge pull request #14 from robbugh/master
     add a5c7137024 Improved create-job command a bit
     add d98c5850be Merge pull request #13 from yamkazu/improve-createjob
     add 8af60d68c4 Expose underlying job in GrailsJob
     add 18458c91b1 Merge pull request #15 from lbredeso/master
     add c55a10d426 Allow dataSource to be overridden with the name of the bean in config.jdbcStoreDataSource.
     add 86844c217c Merge pull request #16 from Ticketfly/configurable-connection-pool
     add 04a62f0122 Ability to specify a Quartz Job's JobDetail description within Job configuration. This is useful for applications which list current Quartz jobs' details for user display.
     add 426bd36e44 Merge pull request #18 from derekslife/master
     add 4859b809d6 update version for latest pull request merges
     add 135b2d23f8 pull request #18
     add 8501458227 adding addl author
     add ebdf3ce571 Tests for the JobManagerService for methods for pause and resume  jobs.
     add e43cc628a7 Remove wrapper
     add 48bffa4f98 removed deprecated api
     add b54ea36d9a removed unused dependencies
     add 0c54be6c87 Merge remote-tracking branch 'upstream/master'
     add b05f52fdce refactored TriggerConfigBuilder
     add a3ca0415a8 A comment to GrailsJobFactory
     add f4a7cc697c Quartz dependency.
     add 72da0ccbf3 Merge remote-tracking branch 'upstream/master'
     add c04e3e0b71 Quartz dependency.
     add 3fd0038870 Removed configuration handler.
     add 152d98be7f Removed configuration handler.
     add f2dc5d1db3 Simplified schedule methods.
     add 393907e2aa Make JobManagerService tests as integration.
     add b7c6c6fc8f Changed JobManagerService tests package.
     add 51f1866584 Comment on JobManagerService tests.
     add 1955b7d531 Tests for the dynamic methods of job artifacts.
     add 309dfce3ce QuartzGrailsPlugin types
     add 2d198831d4 Merge remote-tracking branch 'upstream/master'
     add ab68e1d432 Fix tests bug.
     add c7d0bd33e3 Removed GrailsStatefulJob
     add e44ae8e65e Removed listeners
     add 4510ed852d Removed JobDetails and Trigger beans from the Spring context.
     add 4d378c1d67 SessionBinderJobListener only if required
     add c05447dade onChange
     add 43098fc1ad Small refactorings
     add fd111b1ae2 Refactored JobDetailFactoryBean
     add e858ab0044 Fix possible problem in GrailsJobDetail.
     add e6642fd370 Used specified job class for non concurrent jobs. Fixed problem with session listener.
     add aeda96823e Migrate to the Quartz 2.2.0
     add cd47f2bff7 Add StatefulGrailsJob comment.
     add c50fa22259 http://jira.grails.org/browse/GPQUARTZ-120
     add c35f29a360 Merge remote-tracking branch 'upstream/master'
     add eaa43f722e Merge pull request #17 from kefirfromperm/master
     add f25c567ada Merge remote-tracking branch 'upstream/kefirfromperm'
     add e6d352fcd8 GPQUARTZ-10 Add destroy method. Needs more tests.
     add 63fdaa1946 GPQUARTZ-10 Removed shutdown method in BootStrap. Uses standard destroy method from SchedulerFactoryBean. The issue is done now.
     add 9966a533bd Upgrade grails version to 2.2.4
     add 887150e0cf Merge remote-tracking branch 'upstream/master'
     add d9f06e540b Job description
     add 34d9efc685 plugin.xml
     add 218ba7177c Compatibility with Grails 2.0.0
     add 3c07f77c7a Logger for the plugin class.
     add 54928c016f Version 1.0-RC11
     add 9b3941b155 Merge pull request #19 from kefirfromperm/master
     add 4d33b7386d Merge branch 'master' of https://github.com/grails-plugins/grails-quartz
     add c0aecde95e GPQUARTZ-131 remove depenency on grails 2.3.0 release plugin
     add d155204289 Fix minor typo in README.
     add 952590500e Merge pull request #22 from chriskuehl/master
     add 8a581d8e52 plugin.xml shouldn't be in source control
     add 4587845434 fixed release plugin issue
     add 10ffe734b5 cleanup
     add 92e91c56ec import org.quartz.SimpleTrigger
     add 00a0ffc3bc Merge pull request #1 from kefirfromperm/cleanup
     add 85f02f469a Merge latest changes to the master.
     add 7b3ca3cd35 Updates the plugin version to 1.0
     add c27f60dbd8 update version #
     add 6dbd179094 Merge pull request #1 from kefirfromperm/cleanup
     add 947d8c5b50 update version # add Vitalii back to authors
     add 4738830e77 Merge remote-tracking branch 'remotes/rvanderwerf/master'
     add bb25546938 Resolve merge conflict.
     add fa6e876add Merge pull request #23 from kefirfromperm/master
     add bef6d09456 upgrade quartz to 2.2.1
     add 210e8aea1b upgrade quartz to 2.2.1
     add dd5e325461 fixed doc url
     add 655159b3ee schema 2.0 to 2.2 upgrade
     add ed2292222f fixed indentation in some of the .sql files
     add a7287be45a Merge pull request #24 from ozren1983/master
     add b87b49b260 fixed missing import
     add 953cd33dfd Merge pull request #28 from weseek/master
     add 7c73829533 Rename README.rdoc to README.md
     add 6c500f227d Update README.md
     add f63b290194 Update README.md
     add 4b99c379f8 Merge pull request #26 from stokito/master
     add 637681d199 update Travis CI, update version to snapshot version
     add bedf177c71 remove jars from ignore list to include wrapper
     add af092423e9 Added Travis Build status
     add e2399c0049 Merge branch 'master' of github.com:grails-plugins/grails-quartz
     add 3dd7c625d8 Make tests Grails 2.3.x compatible
     add 474b5416db add travis CI credentials config
     add 58b3279063 update secure tokens
     add ab38213731 disable openjdk7 build for the moment
     add 1bd366bcec add github id
     add 530f66f728 only run on oracle jdk7
     add c89b67bf10 GPQUARTZ-140: Properly detect hibernate4 plugin
     add 4bb6c30e70 Merge pull request #29 from longwa/master
     add 003555aba4 Release 1.0.2
     add cedf7626ce Change version to 1.0.3-SNAPSHOT
     add 96c3e92ae0 cleanup
     add a47735208b not used
     add 2e7e720fe7 generated docs shouldn't have been committed
     add 9dd01df78a copy in Grails 3 plugin code
     add 8faa943e30 update Travis config
     add cc5b89ab77 Update travis config
     add df080912b2 generate gradle wrapper
     add c0c2884a07 trivial change
     add 9a5e8e29c3 update version properties
     add d3df53278e update travis config
     add 799ecbd431 add bintray plugin
     add a53cc8b49b apply bintrayPublishing.gradle
     add 0f93af447a update gradle wrapper
     add ce89ac7901 introduce QuartzJob trait
     add 414fa97983 testing static method in job trait
     add 3ed5d2ccd4 make trait @CompileStatic friendly
     add a5921e44f7 add schedule(...) method
     add 9c5f08c8ec add some overloaded schedule(...) methods
     add a757845eea add remaining schedule management methods
     add 3fc496c40f remove reference to Holders
     add 204fe4a1a2 simplify static method invocations
     add 24352aa0f4 respect config.quartz.autoStartup
     add 6a3fe1764b remove some commented code
     add 9e269fee7d add some missing copyright headers
     add dbf2bc02d3 remove version property
     add 4039da6a9e version 2.0.0.M1
     add 4bc65b3d46 2.0.0.BUILD-SNAPSHOT
     add 8515347944 add Job suffix to Job class name
     add 6f1ca7fbb7 Update travis environment variables
     add bf23dd61bf rearrange build file to deal with publishing problems
     add c00c7ccea5 Use Grails 3.0.0.M2
     add 8d0ba6edd0 Version 2.0.0.M2
     add 02a1f89277 fix typo
     add 08165a9516 update TraitInjector
     add 4c345dca2c use Grails 3.0.0.BUILD-SNAPSHOT
     add cf1b5fb17d use Gradle 2.3
     add cf20c147d8 See https://github.com/grails/grails-profile-repository/commit/e7b0eb720d860c6426b17e4528ca304a8569994e
     add b3f66fefa7 back to build-snapshot
     add bb8a30e63c rearrange plugin ordering
     add 574e22bbc8 use Grails 3.0.0.RC2
     add 2bb439ba03 reorganize application.yml
     add 9036612065 Use Grails 3.0.0
     add 8f0b8583e6 Version 2.0.0.M4
     add 1ca0e14186 https://github.com/grails3-plugins/quartz/issues/2
     add b83ab74943 Must add the 'org.quartz' prefix to the autoStartup property
     add d0ca242b39 Merge pull request #5 from robbugh/master
     add 721dcd19d8 version back to snapshot
     add 04d8ed9f09 JDBC Support PR
     add 34d8594fd4 Boolean fix for PR#6
     add 6207b67332 Merge pull request #6 from dtamm/master
     add 28feb83fe1 Added issue Management for plugin-info
     add cbaf5acf89 Merge pull request #10 from anshbansal/patch-1
     add 5fdabfab24 Added docs back. Updated bintray plugin as that was causing exceptions with gradle 2.4
     add 018da93742 Added doc plugin. Updated spring dependency as per 3.0.2
     add 76e6d1f2ec Removed JVM args added when facing issues
     add 5f71301373 Merge pull request #11 from anshbansal/master
     add 6ccfe0acab Removed gsp as they are not needed
     add 877c581f74 Merge pull request #13 from anshbansal/patch-2
     add 12625ac518 ignore .idea folder
     add b1fbcbace1 Implement artefact handler in Groovy
     add baa65217db Improve compile time job checking
     add 05714ed6a6 auto publish docs
     add 53ca936c0c update note about config
     add fa34a31321 2.0.0.M5
     add 1dc0bf6245 back to snapshot
     add b61e29e490 Update README.md
     add a5392ead26 Merge pull request #15 from anshbansal/patch-3
     add d2a342c9ba Use Grails 3.0.3
     add 26d0648e25 Use Grails 3.0.2
     add a83f0b548f 2.0.0.RC1
     add 7e5164c04d Version 2.0.0
     add ebcb444205 quartz.autoStartup configuration will now be evaluated before executing any scheduler.
     add c8c3115f7f println removed
     add 81ac796a74 Merge pull request #18 from xardas008/master
     add d53e99f5f9 Quick start
     add dc716d834b Merge pull request #22 from magx2/master
     add 684e6a0aaa Updated readme about branches
     add 40e3b3d777 Removed WebAttributes from QuartzJob trait as it is not used, and not needed.
     add c37993e41e Merge pull request #35 from sbglasius/master
     add e22e23fedd remove unused import
     add cdcb0385b3 update travis environment variables
     add 89fb286632 2.0.1.BUILD-SNAPSHOT
     add 06879d2e3b update email address
     add 3f54345af4 update io.spring.dependency-management
     add fc21884f45 added settings.gradle to change the project name to "quartz" instead of inferring it from the directory name
     add 61028649b5 Updated .gitignore to ignore IDEA files
     add 8126451d87 Add GrailsApplicationAware for easy access to grailsApplication in QuartzJob
     add e3a33a4384 Merge pull request #38 from sbglasius/master
     add d3d8edca2e Update to Grails 3.0.9
     add 46c5c42778 Add urls for Bintray
     add be29851c3d Release version 2.0.1
     add 427120a2e1 Update README
     add cf763e9cfc Start 2.0.2.BUILD-SNAPSHOT
     add e17ccdc6b1 remove asset dependency
     add b589e92c75 version 2.0.2
     add 0840bc693b #40, #32, #37 also add disable plugin config ability too
     add 992df37c47 #37 fix for pluginEnabled not reading config value properly
     add 260b27ea89 #42
     add 95ac9c20de #42 fix broken build and release 2.0.3
     add cdceaad15d #42 debugging  broken publish feature
     add 86058d4cd5 #42 debugging  broken publish feature
     add 75b5c7e7ed #42 publish the new release
     add 415fd7fb51 fix version number
     add 55190d2964 Merge remote-tracking branch 'origin/master'
     add 9dac39eff6 #44 allow table flush on startup when in jdbc mode
     add c9e6fe1505 #46 missing config values cause failure defaulting plugin to disabled, extra check on SessionBinderListener that jdbcStore is turned on.
     add f75756359f 2.0.6.BUILD-SNAPSHOT
     add cbcb757e80 change authorEmail
     add 8f6f39c568 Use @Slf4j
     add 9ad495f656 Use @Slf4j
     add e7177b00e9 Fix for work with RamStore
     add 8561209394 Merge pull request #51 from AlexKovynev/patch-1
     add 0ba9627c17 Update quartz to 2.2.2
     add e443fc6444 Merge pull request #52 from AlexKovynev/patch-2
     add 3ee8c5b6d4 fix navigatablemap issues for grails3 users
     add f7589923a4 #50 fix jdbcStore issue in RamStore, fix NavigatableMap issues in Grails 3
     add 8eba9f9b06 #42 debugging  broken publish feature
     add 518eea4f8e #42 debugging  broken publish feature
     add afa28ad713 fix snapshot ver for build snapshots
     add 7bcede8d09 Correcting initialization of Jobs when autoStart == false. Fix for #59
     add 2352c1afd2 Merge pull request #61 from anwbhv/master
     add 0e2a909936 Load plugin after hibernate and services
     add 2fb768e42e Start 2.0.8.BUILD-SNAPSHOT
     add 605d68dfd4 Create plugin.yml
     add 2c0ff83029 Merge pull request #63 from Schlogen/patch-1
     add cc628f0ba5 #63 publish new version with default value change
     add d77f6b310f #63 change default value for jdbcStore so RAMStore is used
     add 6bf3595e2f #63 build deploy issues
     add 6d83c7d2c2 Start 2.0.9.BUILD-SNAPSHOT
     add e734777ef3 Reverse wrong connection to jdbcStore
     add 9a6fad6fcd Merge pull request #69 from AlexKovynev/patch-3
     add 4b4b0fbe68 #67 problem with RamStore and jdbc sessions with re-cycled worker threads
     add bb47f1e443 2.0.10.BUILD-SNAPSHOT
     add 984c99c58b email fix
     add d52b3be546 hibernate3 and hibernate5 support
     add 8acf276a91 Merge pull request #72 from kefirfromperm/master
     add bee335dfba Resolves issue #71 , probably #75 and #34. Quartz was starting up too… (#86)
     add b907c2c4f7 updating build to test against grails 3.2.4 , should probably go farther to 3.2.8 but something is up with bintray
     add a69551a878 [CreateJob script] Ensured that if 'Job' already exists in the end of JobName, then remove it from jobName. (#45)
     add 18fbdcb4f0 Merge branch 'master' of github.com:grails-plugins/grails-quartz
     add 272a2103db gradle wrapper bumped to 3.3
     add c6127dd449 bumping version for release
     add 3c15d00240 version bump back to snapshot
     add 74654bf10d bumping memory utilization limits
     add 06f28410f0 more cleanup on bumping gradle and grails version dependencies to recent versions
     add cc116220cd bumping memory limit some more
     add 8b9d439a00 bumping openjdk test version
     add 5d0890034c switching jdk test version
     add 8d99ff5d6d build snapshot
     add 39cdc2e3aa shutdown flag tweak in the event auto shutdown is not configured in config file
     add 2e8ec9769b version bump for dev
     add ae17ab59e9 adding onCHange events to monitor for job class changes and trigger changes in development mode, added jobEnabled toggle as well to JobClass, now removes jobs and triggers for job classes that no longer exist as well
     add db22a8db45 snapshot bump
     add 6d8ce4e867 use static property to handle update for grails 3.3.0
     add 8aaa1c068f Merge pull request #93 from mamunsardar/master
     add 5eb190ef6a Update README
     add 38b96eed25 Merge pull request #94 from mamunsardar/patch-1
     add a548d94239 Updating credentials
     add cb0853d905 Bumping plugin verion for release, 2.0.13.BUILD-SNAPSHOT -> 2.0.13
     add 68b8079830 Bumped to 2.0.14.BUILD-SNAPSHOT
     add e0026f74ce Critical CVE for c3p0 and Seems Exclude pattern incorrect
     add 7e6849f019 Bugfix
     add 568acb9ed5 Revert "Bugfix"
     add a726a84fea Fix change default value waitForJobsToCompleteOnShutdown
     add 3b297a94e6 Only shutdown the quartz scheduler if the plugin is enabled
     add 31b31321c7 Update .travis.yml to openjdk8
     add d770c20527 fix(build)!: Upgrade to Grails 6
     add 348397b868 chore(): Remove travis files
     add f858ba4c68 fix(readme): Update readme
     add 846c72cbbf chore(): Update links
     add bbe2b3b7e7 fix(config): Remove autoStartup from plugin.yml
     add 07c2d2e8d5 fix(build): Add Gradle settings
     add f1d1b1c9b5 fix(ci): Set correct sonatype publish properties
     add 730bb5c4b0 Merge pull request #125 from matrei/matrei/grails-6
     add 1f784567e3 Refactoring of tests to be compatible with the spock framework (#126)
     add 9c840c64a5 chore(readme): Use correct notation for note (#128)
     add 5d46f8b8ce chore(deps): Remove unused test deps (#127)
     add c8cd95bcf3 [skip ci] Release v3.0.0
     add f34bc3904d chore: Bump version to 3.0.1-SNAPSHOT
     add 8c7a021d8c Update to 4.0.0-SNAPSHOT for Grails 7
     add 416eec0f9c upgrade to Java 17
     add f3a79219fb upgrading spockframework to 2.4 for groovy 4
     add 926b58262f Merge pull request #132 from arjangch/4.0.x
     add 65798962db upgrade to java 17
     add 61be103210 Merge pull request #133 from arjangch/4.0.x
     add 2980080287 Update purgeTablesBean to dynamically resolve dataSource
     add d94f638b87 Merge pull request #1 from jpdev01/purgetable-datasource
     add 3ef2b9827e Merge pull request #134 from jpdev01/2.0.x
     add e3e1157b88 Merge pull request #137 from grails/2.0.x
     add df2c39abbb Merge pull request #138 from grails/3.0.x
     add e2044ba090 Upgrade to Grails 7.0.0-snapshot (#136)
     add 43914cd712 Fix NEXUS_PUBLISH_URL
     add 9901ceb36b Switch to grails/github-actions
     add 61d420bc96 Switch to grails/github-actions
     add c703cb81cf Switch to grails/github-actions
     add 487b9ebde3 [skip ci] pre-release 4.0.0-M1
     add 3734f6848d [skip ci] Release v4.0.0-M1
     add ae0ed77f43 chore: Bump version to 4.0.0-SNAPSHOT
     add 2b38341a07 #139: loadQuartzProperties getProperty replaced with get (#140)
     add 0a2f80455a [skip ci] Release v4.0.0-M2
     add 9e5ab9f46e chore: Bump version to 4.0.0-SNAPSHOT
     add a7894363ef Switch to grails/grails-github-actions/deploy-github-pages@main
     add 978971c533 Merge pull request #142 from grails/switchGhPagesDeploy
     add 9f4bbaabf7 fix: remove redundant files
     add 18ef983f97 fix: switch to Slf4j logging
     add 8c6a21432a fix: remove star import
     add 9c0e9d2582 fix: update Gradle Wrapper to 8.13
     add 9b96ee21e4 fix: update `.sdkmanrc` Java to `17.0.14-librca`
     add 0ad2521e08 fix: rename project to `grails-quartz`
     add 90fb3f23fb ci: update Develocity settings
     add 3ae3924795 ci: remove renovate monorepos
     add a522b4ac50 build: Apache artifact rename
     add 9420361077 ci: set correct env var `GRAILS_PUBLISH_RELEASE`
     add bf6e0798ca Merge pull request #143 from matrei/apache-coords-change
     add 6f625fe78c build: switch develocity instance (#145)
     add daa98e49e7 build: update develocity auth (#147)
     add a93bc25be0 build: update build scan and cache settings
     add 2e68e7b74a chore: add `HEADER` and `NOTICE` files
     add 31b99949b3 build: update `buildSrc` repositories
     add ae09caf1ad build: update `buildSrc` dependencies
     add af354d34dc docs: convert docs from `gdoc` to `asciidoc`
     add c9b58e4e32 chore: clean up `test-config.gradle`
     add a07316f3f2 chore: add license headers
     add d0d7bba73e chore: add Apache Release Audit Tool (rat)
     add e0bf5f7fdd build: add configuration for reproducible builds
     add 159a1da410 chore: cleanup `docs-config.gradle`
     add 7dc1c8d480 chore: add verification scripts
     add 399f8c5e95 chore: update Gradle wrapper to `8.14.2`
     add 1cafc18e22 build: generate redirect file to guide
     add 33cc1203e9 ci: update GitHub action workflows
     add bca0920d9c build(feedback): add repository filters
     add 36a47ec946 build(feedback): remove unnecessary rat exclude
     add 779f54566c chore: update `.sdkmanrc`
     add 311e0c3455 build(feedback): add `gradle-bootstrap`
     add b662e3d72e ci: add `.asf.yaml`
     add 50657fa766 chore: add `CODE_OF_CONDUCT.md` and `DISCLAIMER`
     add df339d4c54 build: add a `skipTests` condition
     add 9b568c5dde docs: add `Building from Source` section to `README`
     add 3769b82c5a fix(deps): force Groovy to `4.0.27`
     add f88238541a fix(deps): bump Grails to `7.0.0-M4`
     add d3143c68e8 ci(feedback): add rat workflow
     add e0840cb163 Merge pull request #148 from matrei/apache-release-prep
     add da26b26cbe Issue-105 Fix broken link in README.md
     add 7813b4c9b4 Merge pull request #150 from dauer/issue-105-fix-broken-link
     add a0c537a93a feature: update to Grails 7.0.0-M5
     add f1d0765dbe Merge pull request #152 from apache/grails7m5
     add d7d7447409 ci: update release workflow to match upstream grails-core release process
     add 544d55017a [skip ci] ci: add missing tasks since quartz is not structured like other plugins
     add c8a58193ac [skip ci] chore: Make scripts executable
     add da57bcc1e1 [skip ci] fix: key file location
     add f99396cef9 [skip ci] chore: make Groovy script executable (#153)
     add d5bcb8cef1 [skip ci] ci: add matrei as GitHub env reviewer (#154)
     add 7014e91da8 [skip ci] fix: add workaround in `verify.sh` (#155)
     add 3c60afe79c fix: `gradle-bootstrap` error (#156)
     add 46dcbca492 [skip ci] Release v4.0.0-M3
     add eade905780 [skip ci] Bump version to 4.0.0-SNAPSHOT
     add 3dbea9f2c4 Merge pull request #157 from apache/merge-back-4.0.0-M3
     add c1e70915a7 chore: update for grails publish move
     add 0b479ee7f2 ci: add upload to release workflow
     add a52989b173 feature: update to Grails 7.0.0-RC2
     add d759570e3f chore: update release drafter for disclaimer
     add bfc93dfbbc chore: update rat config
     add 3c1a11a1ed ci: do not require approval to run the source step
     add 88f8828acd ci: add commit hash to publish job
     add 2eeea07f6c ci: add release abort workflow & update verification script to check svn artifacts
     add 2d125842fe chore: adjust verification script to not error when no differences remain
     add fc31b561a7 Update groovy_pmc.txt
     add 0cd68b502a chore: add post release scripts
     add b047aa2d4e [skip ci] Release v4.0.0-RC2
     add 3c8f93ae7b [skip ci] Bump version to 4.0.0-SNAPSHOT
     add de0db4a316 Merge pull request #159 from apache/merge-back-4.0.0-RC2
     add 7879490e3b chore: correct name
     add 8b6cfc96ff chore: grant access to actions in case there are pending changes
     add 0de784ff2c chore: update announce.txt to have correct documentation link
     add 1e343b2be0 chore: ensure the grails name is present
     add a46768cdd0 chore: fix release notes & remove full change log
     add 4647fe80ef Update simple.adoc
     add 8925d290ff Merge pull request #160 from jeffscottbrown/patch-1
     add ddbe0d72d9 chore: Removed traces of incubation, DISCLAIMER and PPMC
     add 1b2d871cad Missed checking for now non-existent DISCLAIMER
     add 661dcad7e7 Merge pull request #163 from apache/chore/issue_161
     add ac6fabccd6 Change dependencies to compileOnly so they are not in POM or Gradle Module
     add 07a9dd7239 Update Gradle wrapper to 8.14.3
     add 8ad85f882f Update Gradle version to 8.14.3 in .sdkmanrc
     add 6b0431c3ec Refactor dependencies in build.gradle
     add 52126c455e Refactor quartz dependencies to use Grails BOM platform
     add 237ab98c1f Merge pull request #162 from apache/adjust-published-dependencies
     add b594a92524 [skip ci] Add new users to .asf.yaml configuration
     add b175c097c9 [skip ci] update release workflow
     add e78e949199 fix: release prep
     add c793de4a40 [skip ci] fix realease.yaml
     add ab6c5e5c88 ci: fix release.yaml
     add 6397c21888 [skip ci] fix release.yaml
     add 7e7a8f5ad8 [skip ci] Release v4.0.0
     add bd5de93765 [skip ci] Bump version to 4.0.1-SNAPSHOT
     add 5eb4ad6699 Merge pull request #165 from apache/merge-back-4.0.0
     add dbc6f6d00f [skip ci] post 4.0.0 release adjustments
     add cbe1bb0e63 [skip ci] more post 4.0.0 release adjustments
     add 00c388b0f6 [skip ci] more post 4.0.0 release adjustments
     add 21c9d07e3f Update develocity server URL to Apache
     add 292fd32200 Merge pull request #168 from apache/develocity-apache-org
     add bbbac7fcb7 Update project jdk to 17.0.17, update to Grails 7.0.7, & Gradle 8.14.4
     add 0a0fd9166b Merge pull request #169 from apache/grails7-refresh
     add ad8513895a [skip ci] Release v4.0.1
     add 1337c608d1 [skip ci] Bump version to 4.0.2-SNAPSHOT
     add dc99a06dfe Merge pull request #170 from apache/merge-back-4.0.1
     add 69e88a20cf Pin GitHub Actions to Apache-approved commit hashes
     add b6f4f7b38a Merge pull request #171 from apache/pin-workflow-actions-to-approved-hashes
     add b6698fa203 ci: audit and update GitHub Actions to ASF-approved versions
     add 0b5c992a42 ci: tolerate release-drafter create-release failure on pull_request runs
     add 8b138afcad Merge pull request #173 from apache/ci/setup-gradle-v6-basic-cache
     add 5265137acd Initial import of Grails Quartz Repository
     add f4e088d879 Quartz Merge - Initial Moves
     add 79704bb1cd Quartz Merge - Integrate Build
     add 8d00a7cb91 Quartz Merge - Integrate Docs
     add afd9950316 Quartz Merge - Reformat code that mismatches our code style
     add 1560376969 Quartz Merge - Ignore reformat code commit
     add 670bd78779 Quartz Merge - Declare the spring-context-support runtime dependency
     add 59a0151f86 Quartz Merge - Add a Background Jobs guide chapter
     add 5e142ae30d Quartz Merge - Nest Quartz under Background Jobs as Clustered Scheduling
     add 2f71204fc4 Quartz Merge - Rename Clustered Scheduling to Advanced Scheduling
     add cc6ac94626 Ensure plugins are scanned for vulnerabilities
     add 8750284f57 Vulnerability updates
     add b83b7262dd feedback - clean up plugins to match previous votes & fix various issues with Quartz
     add 2eeb59624f fix - load after hibernate
     add 2406b48d89 test - add timezone spec per previous issue
     add 133425cd4e docs - clarify session state
     add d72d636b32 document how to run code on every job
     add 5758fc035b document trigger name pitfalls
     add 612cc0db58 Merge pull request #16185 from jdaugherty/importQuartz
     add b7289b624b Merge branch '7.0.x' into 7.1.x
     add e5626547ad Update dependencies
     add a2609b50ee Merge branch '7.0.x' into 7.1.x
     add c8d4217c7b Merge branch '7.1.x' into 7.2.x
     add 1876ee2682 Merge branch '7.2.x' into 8.0.x
     add fa68e5eb7f Prevent null intervals
     add 5591c70e9f Do not error if a quartz trigger is being scheduled in the past
     add 8d373c178c Document / add work around for long running jobs
     add 2893699c9f quartz - Jobs now carry the name of the application that registered them, and the cleanup sweep only considers those.
     add 2ff37a87ad add missing rat excludes
     add b2691d485d Add grails.mongodb.buildIndexes to skip MongoDB index creation on startup
     add 2c25dfd0b3 Apply the configured settings when GORM is given an existing MongoClient
     add 568013535e Add grails.mongodb.buildIndexesAsync to build indexes off the startup thread
     add d0d68476fd Report what the index build applied and how long it took
     add bf1917416f Report which indexes the build created and which were already there
     add 14ac0c0fb1 Document the MongoDB settings in application.yml, not only application.groovy
     add 3cb9462e0f Stop the embedded MongoDB once
     add 8535e13eba Serve the transaction specifications from an embedded replica set
     add 63982e5565 Share the embedded replica set with the spring-data specifications
     add 663a2ac1da Cache the mongod the embedded MongoDB runs
     add 9aed751d37 Give the tests the MongoDB version the build asks for
     add bcb40ed347 Run the embedded specifications against the server the suite asks for
     add 700f66086e Wait for the login to land before reading the page
     add a279ba5e89 Wait on the url the login left rather than the title it had
     add 643e8e80ec Unbind the web request even when its request is gone
     add 7e03a872d8 Let a request that is finishing finish
     add 18250f3d3e Record why the refusal is caught rather than anticipated
     add 7fdb57600c Close the mongod whose replica set never formed
     add f673d17c43 Give a reloaded application a server it can use
     add 2a70426566 Document the replica set an embedded server can be
     add 59d78b298e Drop the author tag from the replica set initiator
     add 8c63e301fa Ask for the MongoDB version where MongoDB tests are configured
     add e6fa4eb973 Drop the author tag from the rest of the embedded MongoDB module
     add c2e1fe5f02 Refuse a replica set the in-memory backend cannot be
     add c0810cbb1b Publish a url for a server that is listening
     add 4ec3de684f Let go of the server only once it is down
     add 3cf4596cf0 Clean up after a restart the way a start does
     add 712d0126ea Read a setting written as empty as the setting it is
     add e8117a7add Stop every embedded server from one shutdown hook
     add 33d45408b2 Stop the server the specifications share
     add 68f46e94f4 Leave the root build as it was found
     add 1ba713a286 Say what a version change does to a kept database
     add 36517b1a63 Leave the request as it was found when the container refuses
     add aae115773c Replace a running server rather than return from a restart, and retry a lost port
     add d20c006b50 Tear down through the paths that were fixed under it
     add bf177eae1d Say something in the two catch blocks that said nothing
     add 8dca5f2fd9 Stop the servers the specification starts
     add ab953715a9 Merge branch '8.0.x' into fix/embedded-mongo-replica-set
     add e457e60bdc Document and test the GSP compileStatic configuration
     add 8da070f87f Type the names a statically compiled page never declares
     add 7afd382a6c Let an artefact type be held back from the compileStatic all shortcut
     add 197408ae16 Add a build option for compiling pages statically
     add 0b090a557b Type a page's parameters as TypeConvertingMap rather than Map
     add 9843b9ef39 Let a page read a name it introduced with a tag
     add bc8b9c847f Read a page the way it asks to be read
     add b0ca3f3ce7 Let a build ask that every page declare what it reads
     add 1df3458207 Report an operator on a value of no known type
     add 8596515dd9 Hold back only the receivers of operators written into the class
     add 0609f8fc64 Make the welcome page of a new application compile statically
     add 61618252e5 Declare the framework supplied names on the page rather than its base class
     add f719515a07 Document the names a page is given, now that all but two carry their types
     add 43dcdc488b Cast a primitive g:def through its wrapper
     add a794e2ac51 Let the set tag be given a type
     add e823ab9568 Use the tag that fits: def for a page-local value, set for a scoped one
     add a54943de1e Show an undeclared name rather than a misspelled one in the model example
     add 7ec07a2bf7 Merge branch '8.0.x' of https://github.com/apache/grails-core into feature/gsp-compile-static-8.0.x
     add 244b48f249 Read the Spring Security version from the class the page already resolved
     add 7b3d21a772 Merge branch '8.0.x' of https://github.com/apache/grails-core into feature/gsp-compile-static-8.0.x
     add a8e9fb6124 Merge branch '8.0.x' into feature/gsp-compile-static-8.0.x
     add 86c4f060ef Merge branch 'feature/gsp-compile-static-8.0.x' of https://github.com/codeconsole/grails-core into feature/gsp-compile-static-8.0.x
     add 1f63d1a784 Fix three things sbglasius found in the page compiler
     add 76ddc20e75 Merge branch '8.0.x' of https://github.com/apache/grails-core into feature/gsp-compile-static-8.0.x
     add de86958b81 Merge branch '8.0.x' into feature/gsp-compile-static-8.0.x
     add 58cdf3efe2 Merge branch 'feature/gsp-compile-static-8.0.x' of https://github.com/codeconsole/grails-core into feature/gsp-compile-static-8.0.x
     add 32d19da2a2 Add an application whose pages are compiled statically
     add 7a5df8ab1f Give a typed g:set a scope rather than a page-wide name
     add 5a4fab66a2 Put a licence header on the files the new application added
     add 16c7624c3a Convert a typed value rather than require it to already be the type
     add 9572cf6590 Document the type attribute and correct two statements about the default
     add 5c45f23a8b Read the classes the forked page compiler wrote
     add 84b7ee5088 Merge branch '8.0.x' of https://github.com/apache/grails-core into feature/gsp-compile-static-8.0.x
     add 914126c550 Merge branch '8.0.x' into feature/gsp-compile-static-8.0.x
     add e84b48d3a8 Merge feature/gsp-compile-static-8.0.x, restoring what its merge dropped
     add 05e11cc352 Report every operator the class writer emits, and stop re-escaping a value
     add c74ae38ce0 List the page compilation settings in the configuration reference
     add c204890b74 Cover the two names this branch newly binds
     add 68c3ac0633 Merge 8.0.x, which now carries #16134
     add e2fb44a121 Merge 8.0.x
     add 7878b7276c Expand scaffolded views at build time again
     add a0813f495f Read the domain a controller scaffolds from the domain attribute
     add 9aea473ce6 Leave a shared view directory to be expanded per request
     add a8c241a7e8 Give the scaffolding example a controller whose views can be precompiled
     add 837d3f72ab Merge branch '8.0.x' into feature/gsp-compile-static-8.0.x
     add 6684431d8c Merge pull request #16139 from codeconsole/feature/gsp-compile-static-8.0.x
     add 2c00340ac3 Merge branch '8.0.x' into fix/embedded-mongo-replica-set
     add e40cb27b0c Merge pull request #16192 from codeconsole/fix/embedded-mongo-replica-set
     add 6fbb305004 Merge branch '8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add b873801b55 Cover the index build's failure and degradation paths
     add ae38d9bc7e Leave a raw collection's elements alone rather than binding them into Object
     add 17d24ee73d Cover the neighbouring raw collection shapes
     add 1829d42ffa Ask the collection branch the question its siblings already ask
     add a4c7442d4e Keep only tests that change state across the fix
     add cf5c82d031 Merge branch '8.0.x' into fix/databinding-raw-collection-8.0.x
     add f4088648f0 Declare the type of the list being bound
     add 27b6097489 Merge pull request #16209 from codeconsole/fix/databinding-raw-collection-8.0.x
     add 1b1b07e1bb Let a GORM domain class take its identity type from its datastore
     add 1931e75dfc Bind a Serializable action parameter from the request
     add 1aaceb2d3a Generate scaffolded controllers with a Serializable id
     add c4b5d45fda Cover the defaultIdType wiring with a consumer build
     add 6e2655d367 Pin the defaultIdType property name on both sides of the build boundary
     add 129c92fdb4 Address review feedback for native GORM id support
     add dd5e0b511b Modernize native GORM id implementation
     add c2fc93b252 Document native id boundary for compiled plugins
     add c9e5956653 Support native IDs for compiled plugin domains
     add 8296612ced Use one canonical GORM ID type setting
     add 608b8ea0a8 Do not open a transaction for scaffold service reads
     add df305a1131 Merge pull request #16212 from codeconsole/fix/gorm-service-readonly-8.0.x
     add e8f568d8f4 Revert the async changes from #16192
     add 49cbe1d312 Cache the mongod apart from the dependency jars
     add 592b38f676 Run the joint workflow against one MongoDB
     add 1d843ecba7 Run the isolated tests in the uber suite
     add d9d9d64e0a Run the isolated tests in the web suite
     add 49b0bc97a8 Unbind the thread even when the request cannot be reached
     add 2be110a4ed Reuse the active web request during async dispatch
     add bc41fa9274 Require a cycle the decorator started to still be running
     add 318b1b6dc4 test: some test cleanup for readability
     add cd1988f233 Merge pull request #16228 from apache/revert/16192-async-changes-test-cleanup
     add c985acb1ab Merge pull request #16223 from apache/revert/16192-async-changes
     add 319b5cb818 build: Move JSON view test helpers to test fixtures
     add 6a020c390b build: Move GraphQL test helpers to test fixtures
     add b9ab07fd20 build: Move `grails-core` test helpers to test fixtures
     add 954e60cec9 build: Preserve test-fixtures variants during functional test substitution
     add bc7c51edce build: remove redundant dependencies on spring-test
     add 011e9da567 build: Move `grails-web-common` test helper to test fixtures
     add 64cb2d5235 docs: Update upgrading guide to reflect changes in test helpers and their migration to test fixtures
     add 14f546cc9c docs: Update gsonTesting.adoc to correct description of the JsonViewTest trait
     add d15fe2053b Merge branch '8.0.x' into feat/move-to-testFixtures
     add 6bfd2471cf build: add `grails-web-common` test fixtures dependency where missing
     add 4f55b785d6 Merge pull request #16227 from apache/feat/move-to-testFixtures
     add 40bbd562cf ci: rename the Groovy Snapshot Canary Build workflow
     add 91e0a3c345 ci: add proper name to `build_groovy` job
     add 3de2f487e1 ci: simplify groovy snapshot canary workflow display name
     add 274bd83f67 Merge branch '8.0.x' into ci/rename-joint-workflow
     add 351652b1b0 Merge pull request #16181 from apache/ci/rename-joint-workflow
     add 057ffcd812 Fix join-table foreign keys to use resolved entity table names (#15736) (#16028)
     add d6dadf1572 Merge branch '8.0.x' into feat/gorm-native-id-type-8.0.x
     add 0f8cee341d [skip ci] Release v7.2.3
     add 3934cb4f47 [skip ci] Bump version to 7.2.4-SNAPSHOT
     add 1f6c1a50ee Merge pull request #16233 from apache/merge-back-7.2.3
     add cbc8a9e8c7 [skip ci] Release v7.1.6
     add eb152796a8 [skip ci] Bump version to 7.1.7-SNAPSHOT
     add 3ad26eae27 Merge pull request #16234 from apache/merge-back-7.1.6
     add 1622105a23 [skip ci] Release v7.0.16
     add 043bec8fdd [skip ci] Bump version to 7.0.17-SNAPSHOT
     add 69a48fd34d Merge pull request #16232 from apache/merge-back-7.0.16
     add 7e1e1893c9 feat: migrate Forge deployments to AWS Elastic Beanstalk
     add 338c15cb91 Merge branch '7.0.x' into 7.1.x
     add 29b9f22c8a Merge pull request #16238 from apache/merge/7.0.x-into-7.1.x
     add 0f0c54b19a Merge branch '7.1.x' into 7.2.x
     add c29a028071 Merge pull request #16239 from apache/merge/7.1.x-into-7.2.x
     add 5fe7bf95a9 Merge branch '7.2.x' into 8.0.x
     add fd8de78c0a Merge pull request #16240 from apache/merge/7.2.x-into-8.0.x
     add 698ff28cbd Pin Forge AWS credentials action to an ASF-approved SHA
     add e4f489258d Merge pull request #16242 from apache/fix/forge-aws-oidc-cli
     add 42219d0581 Allow Forge AWS deploys to use the Elastic Beanstalk S3 bucket
     add 9e9172aa02 Merge pull request #16243 from apache/fix/forge-aws-eb-storage
     add 521517e5dc Simplify Forge AWS GitHub Actions deploy
     add 5ff4af702f Merge pull request #16248 from apache/fix/forge-aws-workflow-simple
     add 6d1f200d09 Apply Shadow so Forge AWS packaging works on Micronaut 4
     add fc95f78906 Merge pull request #16253 from apache/fix/forge-aws-shadow
     add 9ed0e22081 Pin Forge AWS credentials action to an ASF-approved SHA
     add 4b2f1eca25 Merge pull request #16246 from apache/fix/forge-aws-allowlist-7.2
     add 37ef3018c6 Simplify Forge AWS GitHub Actions deploy
     add 9d92ce129b Merge pull request #16251 from apache/fix/forge-aws-workflow-simple-7.2
     add 769204caa0 Pin Forge AWS credentials action to an ASF-approved SHA
     add 7acf630b42 Merge pull request #16245 from apache/fix/forge-aws-allowlist-7.1
     add 0b8cb54c68 Simplify Forge AWS GitHub Actions deploy
     add d0aa6edbae Merge pull request #16250 from apache/fix/forge-aws-workflow-simple-7.1
     add e7b2b6875b Merge branch '7.1.x' into 7.2.x
     add cf61c7d36a Pin Forge AWS credentials action to an ASF-approved SHA
     add 5d9bbcc281 Merge pull request #16244 from apache/fix/forge-aws-allowlist-7.0
     add b3683f6d5e Simplify Forge AWS GitHub Actions deploy
     add 9ba323f983 Merge pull request #16249 from apache/fix/forge-aws-workflow-simple-7.0
     add 00f6a0b32b Retire GCP Forge deploys and document AWS Elastic Beanstalk
     add 20fccc13d6 Clarify Forge AWS tag packaging and live DNS in docs
     add fa8cec933f Merge pull request #16254 from apache/docs/forge-aws-retire-gcp
     add 1c9bd8fd50 Merge branch '7.0.x' into 7.1.x
     add 8c1561988a Merge pull request #16255 from apache/merge/7.0.x-into-7.1.x
     add ae4ed3c200 Merge branch '7.1.x' into 7.2.x
     add e0c5cf17e7 Merge pull request #16256 from apache/merge/7.1.x-into-7.2.x
     add 52da349414 Merge branch '7.2.x' into 8.0.x
     add 5469a7fcaa Allow Forge AWS deploys DescribeStackResource and S3 object ACL
     add 24fdfcec22 Merge pull request #16257 from apache/merge/7.2.x-into-8.0.x
     add bb815fa39b Use SLF4J for runtime diagnostics (#15993)
     add 4bfe59dad2 Allow Forge AWS deploys S3 ACL and delete on the EB bucket
     add d18f8de20d Merge pull request #16260 from apache/fix/forge-aws-eb-s3-acl
     add 0be4f672c5 Allow Forge AWS deploys to describe Auto Scaling groups
     add 74b567eacf Merge pull request #16261 from apache/fix/forge-aws-asg-describe
     add d434859a16 Use Elastic Beanstalk managed policies for GitHub deploys
     add 59046ddcc3 Merge pull request #16262 from apache/fix/forge-aws-describe-star
     add 80a2962457 [skip ci] Release v8.0.0-M6
     add 314698d39f [skip ci] Bump version to 8.0.0-SNAPSHOT
     add 9b58a8a8f0 Merge pull request #16270 from apache/merge-back-8.0.0-M6
     add ebee4507f7 Merge branch '8.0.x' into feat/gorm-native-id-type-8.0.x
     add 2fd29c6f41 Merge pull request #16222 from codeconsole/feat/gorm-native-id-type-8.0.x
     add 811f25e828 Document the PATCH mapping generated by resources and single
     add 2e88f24297 Merge pull request #16271 from codeconsole/docs/rest-resources-patch
     add 9918f531e3 Compile CodecMetaClassSupport statically
     add 6703374a16 Bump Forge Shadow plugin to 8.3.11 for Gradle 9
     add 4309d5b876 Merge pull request #16274 from codeconsole/fix/codec-metaclass-compile-static-8.0.x
     add d088957e7e fix(deps): Bump hibernate7 versions
     add 6408c369d9 fix(deps): Bump Hibernate 7 to 7.4.7.Final
     add f3a91d3664 Merge pull request #16211 from apache/fix/bump-hibernate7-versions
     add 1e74b1afc1 Reuse a server only when it is running the backend being asked for
     add cf50292b2d Document the backend as a setting a restart is not handed a stale server for
     add 03ef4979fc Merge pull request #16216 from codeconsole/fix/embedded-mongo-backend-reuse-8.0.x
     add ae65d133c9 Let autoConfigurationName name a package as well as a class
     add 5ca8537f36 Correct the two remaining "same package" claims about the sibling
     add 10d7c84632 Merge branch '8.0.x' into feat/beans-dsl-qualified-autoconfiguration-name-8.0.x
     add b3fa838ed3 Merge remote-tracking branch 'origin/feat/beans-dsl-qualified-autoconfiguration-name-8.0.x' into feat/beans-dsl-qualified-autoconfiguration-name-8.0.x
     add c2e29e3e94 State that a qualified autoConfigurationName is absolute
     add cfb1b1e10e Cover the qualified sibling end to end, not just at the AST level
     add d71c218259 Merge pull request #16221 from codeconsole/feat/beans-dsl-qualified-autoconfiguration-name-8.0.x
     add e469c27e11 Remove dead xml-apis dependency exclusions
     add 30c1e776d7 Merge pull request #16279 from codeconsole/chore/remove-dead-xml-apis-exclusions-8.0.x
     add 19f49f34c6 fix(release.yml): correct typo in grails-core docs generation step
     add c8688ff761 Merge pull request #16283 from apache/post-8.0.0-M6-release
     add 8bf277b059 Fix async group & add associated feature
     add b0c351b922 Merge pull request #16288 from apache/feat/async-group-8.0.x
     add 3d3f4bbcff Register a generated auto-configuration where it is generated (#16224)
     add c1b532aef9 M6 FIX: Require a username and password on the spring-boot-starter-security User (#16291)
     add 51c977e13f Merge branch '8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add dc214d94e1 Address map entries shadowed by bean accessors on Groovy 5
     add 6f254ca1dd Merge pull request #16293 from apache/fix/16280-map-accessor-collisions
     add 79504824fd Generate the Groovy compiler config script in its own task
     add 56a8dc4da4 Build with Gradle 9.7.0
     add 17f81fe981 Generate applications with the Gradle 9.7.0 wrapper
     add 8b8d063316 Keep the compiler config wiring live and correctly ordered
     add 0eebb1e154 Use the lazy configurationScriptFile property, and pin the classpath scope
     add ca6b10ebe0 Build the compiler config script from configuration state, not the classpath
     add 636a0e7315 Wait for a task that produces the build's own compiler config script
     add dfbb54db70 Give the compiler config script a task type of its own
     add 3e7aab6b06 Merge branch '8.0.x' into fix/gradle-97-groovy-config-script
     add b288d28ee4 Merge remote-tracking branch 'origin/fix/gradle-97-groovy-config-script' into fix/gradle-97-groovy-config-script
     add 1d42801229 Drop importJavaTime, which Groovy 5 makes redundant
     add 61df8413aa Document the import changes in the Grails 8 upgrade guide
     add 0bc0f16bb3 Merge branch '8.0.x' into fix/gradle-97-groovy-config-script
     add 88538f535a Declare the compiler config script task's caching behaviour
     add 38ebef690f Merge remote-tracking branch 'upstream/8.0.x' into fix/gradle-97-groovy-config-script
     add e718a7ba79 Take Gradle 9.7.1
     add b889b8e6c8 Merge branch '8.0.x' into fix/gradle-97-groovy-config-script
     add 3530f846b0 Merge remote-tracking branch 'upstream/8.0.x' into fix/gradle-97-groovy-config-script
     add 03811759ea Merge remote-tracking branch 'upstream/8.0.x' into fix/gradle-97-groovy-config-script
     add 392edeba2f Merge remote-tracking branch 'upstream/8.0.x' into fix/gradle-97-groovy-config-script
     add 818d22b56f Wire every GroovyCompile task, and fail on a missing configurationScript
     add 7714cded41 Merge branch '8.0.x' into fix/gradle-97-groovy-config-script
     add 5684ed158d Merge remote-tracking branch 'origin/fix/gradle-97-groovy-config-script' into fix/gradle-97-groovy-config-script
     add 2550800ff5 Merge pull request #16114 from codeconsole/fix/gradle-97-groovy-config-script
     add e597f9740a Support mapping every controller as a REST resource
     add 06a27a837b Cover the namespace form of a wildcard resources mapping
     add 6af0bf5d57 Merge branch '8.0.x' into feat/wildcard-resources-mapping
     add d1a3e5c4e5 Merge remote-tracking branch 'origin/feat/wildcard-resources-mapping' into feat/wildcard-resources-mapping
     add c427432137 Merge branch '8.0.x' into feat/wildcard-resources-mapping
     add 19157d878a Merge pull request #16273 from codeconsole/feat/wildcard-resources-mapping
     add 5a1e15c4fd Sync Forge AWS GitHub deploy with working 8.0.x
     add c08ff11d7d Merge pull request #16265 from apache/sync/forge-aws-gha-7.2
     add b3f3c253c5 Sync Forge AWS GitHub deploy with working 8.0.x
     add 94e04a373c Merge pull request #16264 from apache/sync/forge-aws-gha-7.1
     add 5899f028cb Sync Forge AWS GitHub deploy with working 8.0.x
     add 381bc41296 Merge pull request #16263 from apache/sync/forge-aws-gha-7.0
     add 15c7420731 docs: fix broken external and internal links in Groovydocs and add audit mode
     add c0bc0ef20c refactor: rename groovydoc link check to audit task and remove property control
     add 06caab3551 Decouple auditGroovydocLinks from the default docs build and add test coverage
     add 4912fc3623 Address jdaugherty and Copilot review feedback on groovydoc link audit
     add 4646adfa06 docs: fix Groovydoc external-type links and audit unresolvable links by cause
     add 2ef59e1958 Merge pull request #16005 from apache/fix/groovydoc-links
     add 2f7a097e24 Fix JsonScanner number parsing for bare exponents and -Infinity (#16284)
     add b96887f14a Merge remote-tracking branch 'upstream/7.0.x' into 7.1.x
     add 0e5a368372 Merge remote-tracking branch 'upstream/7.1.x' into 7.2.x
     add d92eadc066 Allow concurrent documentation publishing
     add 8d1fc7d249 Merge pull request #16110 from apache/ci/remove-docs-publish-serialization
     add e1850655d2 Add Forge AWS next-snapshot and older slots.
     add 946faaa9b0 docs(forge): stop hardcoding the shared ALB DNS name.
     add 54cd047fa7 Merge pull request #16301 from jamesfredley/feat/forge-aws-slots-next-snapshot-older
     add cf57bce561 Merge branch '7.0.x' into 7.1.x
     add 9f8deded04 Merge pull request #16303 from jamesfredley/merge/7.0.x-into-7.1.x
     add a071dca786 Merge branch '7.1.x' into 7.2.x
     add 377a0ee8f8 Merge pull request #16304 from jamesfredley/merge/7.1.x-into-7.2.x
     add bb9780cab2 Merge branch '7.2.x' into 8.0.x
     add c6cdd02d6c Merge pull request #16305 from jamesfredley/merge/7.2.x-into-8.0.x
     add 8d92089b38 test(grails-data-hibernate7): re-enable Oracle in the RLikeHibernate7Spec dialect matrix
     add 55d5076aa5 Merge pull request #16027 from apache/feat/reenable-oracle-testcontainers
     add c431a33afb Merge branch '8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add 13bf4405f8 Fix fields template lookup leak from accessor-keyed memoization
     add 05cefde0af Give TemplateLookupCachingSpec its own command fixture
     add 1113d60e1d Merge pull request #16302 from apache/fix/16162-fields-memoize-leak
     add 9bf5f6623f Add test coverage and fix real bugs in grails-datamapping-core's services package (#16156)
     add ecb4a4d31e ci: pin every action to an ASF-approved SHA
     add 3b668223da Merge pull request #16308 from apache/ci/asf-approved-action-pins
     add 049fee3917 Merge remote-tracking branch 'origin/7.0.x' into merge/7.0.x-into-7.1.x
     add 53d9c1eddb Merge pull request #16313 from apache/merge/7.0.x-into-7.1.x
     add 473230b732 Merge remote-tracking branch 'origin/7.1.x' into merge/7.1.x-into-7.2.x
     add 5075ff30b5 Merge pull request #16314 from apache/merge/7.1.x-into-7.2.x
     add def2c9b9bc Merge remote-tracking branch 'origin/7.2.x' into merge/7.2.x-into-8.0.x
     add e9cf8b1864 ci: pin the remaining actions to ASF-approved SHAs on 8.0.x
     add 5670a65bc8 Merge pull request #16315 from apache/ci/asf-approved-pins-8.0.x
     add 2cf25ea829 Merge branch '8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add 8dfa3636da build: disable Groovy invokedynamic for the Grails 8 compile
     add 085c0d2886 fix: stop count() log.debug hitting GORM methodMissing
     add c4e794fc6d fix: invoke Map constructors without Class.newInstance under indy-off
     add 505542f121 build: keep Grails 8 indy-off only in CompilePlugin
     add 25b7937cff Merge branch '8.0.x' into fix/disable-groovy-indy-build
     add b34c0eeafc Merge branch '8.0.x' into fix/disable-groovy-indy-build
     add cc7e0c3353 build(ci): bound concurrent JVMs on the macOS runner
     add 728f00f1a0 Merge branch '8.0.x' into build/ci-daemon-heap-vs-runner-ram
     add 4062b15fcf Merge branch 8.0.x into build/ci-daemon-heap-vs-runner-ram
     add e2d55173de Merge branch '8.0.x' into build/ci-daemon-heap-vs-runner-ram
     add 854938f029 fix: include runtime jars on groovydoc classpath
     add 17b9ded93b Merge pull request #16167 from apache/build/ci-daemon-heap-vs-runner-ram
     add 6fce5e1b46 Merge branch '8.0.x' into fix/disable-groovy-indy-build
     add 41259bf005 Merge pull request #16178 from apache/fix/disable-groovy-indy-build
     add fcac2072e0 Merge branch '8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add f4172be4bd fix(deps): update Groovy to 5.1.2
     add 7801ced1d8 Merge pull request #16321 from apache/groovy-5.1.2
     add d5c9cc149d Include groovydoc in the Groovy Snapshot Canary Build
     add e8d33a9318 Merge pull request #16309 from apache/matrei-patch-1
     add 2324ebc7af Merge branch '8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add e88cb0beb9 Keep collection properties dirty-checked after reassignment; track iterator-based removals
     add a2e62929cb Cover the remaining patch lines flagged by Codecov
     add 32b0d9f5a4 Discover the multipart request instead of substituting it
     add 0709bf4f38 Cut unused helper and repeated javadoc from the multipart cleanup
     add 959448b51b Resolve the request-scoped application attributes once per servlet context
     add 5511f09507 Delegate handler chain assembly to Spring and stop reallocating interceptors
     add ab68e688e9 Stop copying the servlet parameter map on every request
     add ba29b546d4 Document the request processing behaviour changes in the 8.0 upgrade guide
     add cc1cbac7bc Record the request-path benchmark baseline
     add 6be65ebcbf Skip URL mapping candidates that cannot match before running their regex
     add 4e8883474b Stop allocating a JDK proxy per interceptor phase per request
     add f1267f616a Stop generating allowed-methods bookkeeping into every controller action
     add 8ef9bbd7a9 Cache the data binding collaborators and the databinding whitelist lookup
     add abc0316b0e Cache the per-request lookups in the redirect, render and domain binding paths
     add 6b304783f9 Deprecate getCurrentRequest and call getRequest directly
     add 78ff86793c Add benchmarks for the always-on request paths
     add ae94719e30 Document the test impact of deprecating getCurrentRequest
     add 1b758d9d54 Restore the locale context on include and forward dispatches too
     add e972b2ca5f Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add aaefad82fc Isolate the domain binding spec from discovery strategies left by other tests
     add 8d315b7369 Fold the request-path benchmarks into grails-benchmarks
     add 785d4e5f41 Take the cached collaborators out of the controller traits
     add 180a6cbf6c Benchmark the redirect and render paths
     add c4052b889e Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add f42924db13 Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add 104066fc7c Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add 7e89323aa4 Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add 62de237adb fix: let a data binding bean registered after a failed lookup be picked up
     add 4c9d8d8a6b Resolve captured URL mapping names from the match, not the request
     add 4b2ab93972 Document that captured URL mapping names come from the URI
     add c8f89ab26d Use the guide's table syntax for the URL mapping upgrade note
     add 8803bd697d Renumber the upgrade note to avoid colliding with the request-path branch
     add 3af0db1d36 Merge remote-tracking branch 'upstream/8.0.x' into perf/urlmapping-name-resolution-8.0.x
     add 4691e25b89 Merge remote-tracking branch 'upstream/8.0.x' into perf/urlmapping-name-resolution-8.0.x
     add 5f8cc13bc9 Merge remote-tracking branch 'origin/perf/urlmapping-name-resolution-8.0.x' into perf/request-path-8.0.x
     add 1beae2175d Let oversized uploads reach the application's error handling
     add bb2a8b0492 Cover oversized uploads and multipart method overrides end to end
     add 9b580c9ac9 Read every framework request parameter through one tolerant helper
     add f145eb2f43 Stop an error handler that fails from being forwarded to forever
     add fcb65f9879 Cover the oversized upload path on Tomcat, Jetty and Undertow
     add 0b8473f6e4 Document what an oversized upload reaches, and where it does not
     add df63cefae7 Merge remote-tracking branch 'origin/fix/multipart-lean-8.0.x' into perf/request-path-8.0.x
     add af62583ac5 feat: move the hidden HTTP method override into the dispatcher when the filter is off
     add 35780cdd18 feat: disable the hidden HTTP method filter by default
     add a1ac13297c build(test): make the isolated test tasks actually run their tests
     add 8579fd6107 Merge remote-tracking branch 'upstream/8.0.x' into feat/hiddenmethod-handler-mapping
     add f9c7970759 Merge remote-tracking branch 'upstream/8.0.x' into feat/hiddenmethod-handler-mapping
     add b7b744f9e4 fix: derive hidden method filter mode from both properties, and fill Boot's gap
     add 7437632475 Merge remote-tracking branch 'upstream/8.0.x' into feat/hiddenmethod-handler-mapping
     add 8152382a8b Merge remote-tracking branch 'upstream/8.0.x' into feat/hiddenmethod-handler-mapping
     add 2ce995bb1f Merge remote-tracking branch 'origin/feat/hiddenmethod-handler-mapping' into feat/hiddenmethod-handler-mapping
     add b1cb822960 Merge remote-tracking branch 'origin/feat/hiddenmethod-handler-mapping' into perf/request-path-8.0.x
     add 3a4797dda4 Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add 59eeda19cc docs: renumber this branch's upgrade sections after the 8.0.x merge
     add d2e1eef261 build(benchmarks): consume GrailsWebMockUtil from the test fixtures
     add a00cb81e6e fix: let an application see a dispatcher-resolved method override
     add 4d227fb409 Revert "fix: let an application see a dispatcher-resolved method override"
     add 423f2bd3ef test: prove the method override by what it routes, not by what request.method says
     add 15db8fc90d refactor: resolve a mapping token through doCall rather than a call override
     add 7689098176 fix: keep g:form emitting _method in both modes
     add a2ee534496 fix: address review findings on multipart params, internal dispatch and docs
     add d3bfaa7621 test: pin the callback order of a repeated postHandle
     add e7b5218fe5 docs: cut the commentary in the request path back to what it earns
     add 0e0d5993be fix: give every Grails-level reader the method the request routed as
     add 2234fe9cf0 fix: finish the effective-method rule, and let it survive a forward
     add 9763091e42 test: assert the whole request path in one round trip
     add 250034dc9b refactor: put back the property access in the redirect trait
     add b4027b9d9a Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add a57a164102 Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add 065741bfa7 Merge branch '8.0.x' into perf/request-path-8.0.x
     add 444da64aa5 Merge remote-tracking branch 'origin/perf/request-path-8.0.x' into perf/request-path-8.0.x
     add 93c8ffd209 build: classify grails-benchmarks with the projects that exercise the framework
     add 14ae491d59 build: move the benchmark harness under grails-test-examples
     add 53ab3a8aff build: declare the benchmark harness at the directory it moved to
     add a39a350296 fix: authorize the method the request will be routed as
     add e3c2ff2036 Merge remote-tracking branch 'upstream/8.0.x' into perf/request-path-8.0.x
     add 3edb3f349f test: count the POST member route in the wildcard resources spec
     add 533f7e2cfb Merge branch '8.0.x' into perf/request-path-8.0.x
     add 9a5bc99620 Merge branch '8.0.x' into perf/request-path-8.0.x
     add c8bbcb89b0 test: cover the forward cases the request path spec left unexercised
     add 89b3890662 chore: clear the residue review found in the request path branch
     add 5fa7a5e120 revert: keep GrailsWebRequest.getCurrentRequest() undeprecated
     add cda191c312 Merge branch '8.0.x' into perf/request-path-8.0.x
     add 9cde802ef7 test: pin that the compiler config generator stays off the runtime classpath
     add 60515a5ec8 Merge pull request #16325 from apache/test/compiler-config-runtime-classpath-producer
     add 82b8648a6d Merge branch '8.0.x' into perf/request-path-8.0.x
     add 43510784cf Merge pull request #16149 from codeconsole/perf/request-path-8.0.x
     add c6e55d9a4b Keep GORM entities on the DevTools restart classloader
     add 44ab8dbd31 Narrow DevTools restart docs to when restart is active
     add c8945fd6c3 Wire Hibernate 5 DevTools bootstrap through the dataSource bean
     add 03e6eef178 Merge branch '8.0.x' into fix/16287-devtools-gorm-entities
     add a137709366 Merge remote-tracking branch 'upstream/8.0.x' into fix/16287-devtools-gorm-entities
     add 29abfeedd6 Resolve the DevTools restart loader through the parent chain
     add 1917fefdd2 Merge pull request #16324 from jdaugherty/fix/16287-devtools-review
     add 0ff4b76646 Merge pull request #16299 from apache/fix/16287-devtools-gorm-entities
     add 46a089a8fd test(grails-datamapping-core): restore the transaction service specs lost in the 7.2.x merge
     add 6884e173a1 Merge pull request #16316 from apache/test/restore-transaction-service-specs-8.0.x
     add 11ff749b5f Fix marshalling of non-public classes and Serializable beans
     add e6920c663d Cover dynamically compiled Groovy beans in the marshaller tests
     add 2e08c1fc15 Widen a private method copy instead of the cached descriptor
     add e9932f371f Share the non-public bean access, and report it once
     add 60598510cf Resolve read methods through any public type, and fix two vacuous tests
     add 0980623481 Merge pull request #16296 from apache/fix/16294-16295-non-public-bean-marshalling
     add 06cb68299f Merge remote-tracking branch 'upstream/8.0.x' into fix/dirty-checking-collection-tracking-8.0.x
     add 8581d5604f Address review: exact-class rewrap gate, Map wrapper coverage, SortedSet, docs
     add 708aa2ea02 Merge branch '8.0.x' into fix/dirty-checking-collection-tracking-8.0.x
     add da7dad3462 Merge branch '8.0.x' into fix/dirty-checking-collection-tracking-8.0.x
     add d164af8fb8 Merge remote-tracking branch 'origin/fix/dirty-checking-collection-tracking-8.0.x' into fix/dirty-checking-collection-tracking-8.0.x
     add 3ba7fb58d2 Delegate wrapper equals/hashCode to the target collection
     add a2ac5178cf Track the SequencedCollection methods and the live collection views
     add f11e85549b Re-bind a collection borrowed from another entity to the entity it is assigned to
     add 0ae70cef89 Re-wrap a to-many association replaced by a plain collection
     add f799282454 Keep wrapper equals reflexive when the target has identity equality
     add a7f7edb0d6 Stop nesting a new DirtyCheckingMap on every save
     add 2dade74084 Drop the redundant iterator() overrides on the wrapper subclasses
     add 534956d3f5 Drop the DirtyCheckingMap import left behind by the wrap(Map) change
     add bc0b7950e6 Pin the exact-class rule for the datastore to-many collections
     add 40fe646ca6 Regroup the spec imports and assert the subclass case is flagged
     add 38f371c0dd Return Long from count() instead of narrowing to Integer
     add 47f070721e Return Long from the GraphQL count field too
     add 4b2ab655cf Correct the rationale for the count width in the upgrade note
     add 04f871cb3d Address review feedback on the count() change
     add af45fc2fb3 Fix the duplicate section number in the 8.0 upgrade notes
     add 8f497f5ad3 Carry Long through the JSON API pagination and pin it in the specs
     add f0108c28ed Canonicalize interceptor and security matcher request paths
     add 79970c5169 Canonicalize interceptor and security matcher paths once
     add 6bbb71ecbe Resolve security matcher paths exactly as dispatch does
     add 5c1f79d16c Narrow the context-path interceptor note to the affected matcher shape
     add e0bba892e7 Merge branch '8.0.x' into fix/interceptor-canonical-path
     add e9cd00567b Merge pull request #16332 from apache/fix/interceptor-canonical-path
     add e59ca12fbd Merge branch '8.0.x' of https://github.com/apache/grails-core into feat/gorm-count-returns-long-8.0.x
     add 23f7c46a4e Characterize data-binding allowlist through public binding API
     add 1c34ff0791 Address review feedback on databinding whitelist characterization spec
     add 49d7200daa Pin extra typed and def-typed properties in the databinding whitelist spec.
     add a92638515e Merge branch '8.0.x' into test/databinding-codegen-contract
     add c76d3b87ea Fix SAX parser feature URIs and reject DOCTYPE declarations
     add 6fdc50880a Guard XInclude disable and reject internal DOCTYPE subsets
     add 840aea9b91 Share SAX feature identifiers and make DOCTYPE rejection configurable
     add d88d15ea15 Merge branch '8.0.x' into fix/xml-parser-hardening
     add 6247e8d5a6 Merge remote-tracking branch 'upstream/8.0.x' into fix/xml-parser-hardening
     add e10b69c4be feedback: Parse XML by trust level: strict for request bodies, DOCTYPE-tolerant for classpath descriptors
     add 890833e9c4 strictly parse plugin config always
     add 0d5b31673b Validate dynamic finder and HQL list sort property names
     add 035f9197fa Address review feedback on sort argument validation
     add 91885f07ed fix: trim and validate DynamicFinder order direction
     add 42e951fc1c Merge branch '8.0.x' into fix/dynamic-finder-sort-validation
     add 9cd088f435 feedback: Validate sort arguments on every query entry point
     add a7647b2731 Merge branch '8.0.x' into fix/dynamic-finder-sort-validation
     add c35e0bb5ea Merge pull request #16333 from apache/fix/dynamic-finder-sort-validation
     add dafdf8acdc Merge remote-tracking branch 'upstream/8.0.x' into fix/xml-parser-hardening
     add 99a4604dbc test XML.parse refuses a declared DOCTYPE through every overload
     add f155a75ca8 Merge pull request #16331 from apache/fix/xml-parser-hardening
     add 86600e67f9 refactor: move Grails Micronaut to apache/grails-micronaut
     add 90ef7ea96c Merge remote-tracking branch 'origin/8.0.x' into refactor/remove-grails-micronaut
     add a1bd43ddfc ci: give Validate Actions 10 minutes for a cold Gradle run
     add b762fe3eaf Merge pull request #16320 from jamesfredley/refactor/remove-grails-micronaut
     add 29514bb3bb Merge branch '8.0.x' into test/databinding-codegen-contract
     add a5758d657f Merge pull request #16003 from apache/test/databinding-codegen-contract
     add 120a907dc9 Merge upstream/8.0.x into feat/gorm-count-returns-long-8.0.x
     add c8f5c8f9d4 Fix the count documentation left behind by the Long change
     add 3973ca341a Test and document generated compiler script producer wiring
     add 2d7fdf019a Preserve plain-file compiler script producer dependencies
     add 9795e8df77 Merge upstream 8.0.x and preserve both upgrade guide additions
     add ea9c585bf4 Retain compiler script regression fixture and test build cache restoration
     add 377d709034 Merge upstream/8.0.x into test/compiler-script-producer-wiring
     add 98844a007c Merge remote-tracking branch 'upstream/8.0.x' into pr-16327
     add 6cfdb523d9 Cover an ad-hoc outputs.file producer and point the guide at the validation error
     add 463767abd0 Merge origin/test/compiler-script-producer-wiring into test/compiler-script-producer-wiring
     add a46b6f31c4 Cover ad-hoc compiler script provider wiring
     add 18f5b07f62 Merge pull request #16327 from codeconsole/test/compiler-script-producer-wiring
     add df000a42e1 Merge branch '8.0.x' of https://github.com/apache/grails-core into feat/gorm-count-returns-long-8.0.x
     add 8c32742172 Merge pull request #16323 from codeconsole/feat/gorm-count-returns-long-8.0.x
     add c011bdf53c Merge branch '8.0.x' into fix/dirty-checking-collection-tracking-8.0.x
     add 3067d0a855 Merge pull request #16282 from codeconsole/fix/dirty-checking-collection-tracking-8.0.x
     add ee362fa1f8 Merge branch '8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add 1726f84d3a Fix MongoDB index build lifecycle and review findings
     add 211ef8de17 Fix MongoDB CI logging assertions and activate failOnError test
     add bfdbbe88fa PR for: https://github.com/apache/grails-core/issues/15644
     add d1ca11fc66 Merge fixes & cleanups
     add ce6c4e5f7f Merge branch 'apache:8.0.x' into 8.0.x
     add d47aedc00a Merge branch 'apache:8.0.x' into 8.0.x
     add 8f9c9f8b71 Merge branch 'apache:8.0.x' into 8.0.x
     add 925ffc845e Implemented @matrei feedback
     add c14c0d9707 Upgrade guide
     add ab0c2befcb Cleanups: Update legacy maxFileSize
     add 1de6ba4739 Reintroduced camelCase for multipart properties to keep consistency with Grails config
     add 8b634512ac Implemented @matrei feedback
     add 984e7c8abf Upgrade guide
     add 5e90de8495 Cleanups: Update legacy maxFileSize
     add 43c1b91cdd Reintroduced camelCase for multipart properties to keep consistency with Grails config
     add 3a07ad21f3 Implemented @matrei feedback
     add b255caadbc Upgrade guide
     add 2f9e4e5349 Cleanups: Update legacy maxFileSize
     add a360262fa7 Reintroduced camelCase for multipart properties to keep consistency with Grails config
     add 0ff942e6b0 Merge remote-tracking branch 'origin/use-spring-upload-config' into use-spring-upload-config
     add ba07ad5591 Merge remote-tracking branch 'origin/use-spring-upload-config' into use-spring-upload-config
     add 5ecdafc2b3 Merge branch '8.0.x' into use-spring-upload-config
     add cf2e542e50 Fix full stack trace output when System.err changes
     add fc002544f4 Merge branch 'apache:8.0.x' into 8.0.x
     add 9c8cd61e70 Merge branch 'apache:8.0.x' into 8.0.x
     add c96bcb331a Merge branch '8.0.x' into use-spring-upload-config
     add 3941a0cec9 Revert "Fix full stack trace output when System.err changes"
     add d62fd9c837 test: add multipart configuration tests for dispatcher servlet registration
     add 7488c877a5 test: simplify `ControllersAutoConfigurationSpec`
     add da7c42d523 test: add multipart file size limit tests to FileUploadSpec
     add ca1ea870b7 feat: implement environment post processor to validate legacy multipart configuration
     add 82d3011d3f docs: update multipart configuration documentation
     add 09fee3d3b9 Merge branch '8.0.x' into fork/gsartori/use-spring-upload-config
     add 90dacd3edb test: configure multipart file upload limits in example-app1 application.yml
     add 76c0cc3c24 Report a partly DSL-shaped beans block instead of dropping it
     add 942cce572f Reject a sibling bean call that cannot return the singleton
     add dedfe26ce3 Document parameter annotations, and cover the optional-dependency case
     add 4ec20d1b7c Add .typeArguments(...) so a declared type can carry type arguments
     add 2aabf4b28e Pin annotate's array-valued attributes, which only the docs disclaimed
     add a0c90c96c1 Stop the sibling-bean check at a nested closure
     add 6509f29929 Fail a stray beans statement on a plugin descriptor too
     add 683432b279 Fix checkstyle import order and codenarc UnnecessaryGString violations
     add c2768dd63b Check static sibling bean calls on a proxied host too
     add 6fbfd28cef Only record an annotation type in visited when descending into it
     add 97ae226e58 Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add 5a08d840dd Merge remote-tracking branch 'origin/feat/beans-dsl-diagnostics-8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add e49a39e932 Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add e27cb9bf5b beans DSL: declare a bean as its interface and still construct it
     add b1c0c425d6 beans DSL: infer type arguments from what the bean constructs
     add bf31c48118 beans DSL: reach @Bean's own attributes instead of colliding with it
     add 9d685b98e0 beans DSL: reject a post-processor bean that is not staticMethod()
     add 8f30584175 beans DSL: condition a bean on the Grails environment
     add 910dc72b1e Dump the generated members to a directory on request
     add 2867e4d3fb Resolve sibling bean calls against hand-written @Bean methods too
     add 4a572c7d3f Document the one-expression form for a property-configured bean
     add 5ea9efe481 Add .conditionalOnBean(...), the positive counterpart
     add 1690234814 Derive the set of all qualifier names instead of restating it
     add 8f8e86a544 Let every condition qualifier tell same-named beans apart
     add 507dd2c896 Add .conditionalOnProperty(...), the condition applications actually use
     add b8a8d00af4 Rename .grailsEnv(...) to .conditionalOnGrailsEnv(...)
     add 69c5de62d3 Add .conditionalOnExpression(...), for what the others cannot say
     add fb076690bd Give the DSL reference structure, and say a block can be split
     add 85b1417780 Order the java.io imports, which checkstyleMain rejects
     add 0a91ed938c Merge into any qualifier-attached annotation, not only @Bean
     add e0f99fc54c Add .aliases(...), so a bean can keep an old name
     add 4959bf493b Let .scope(...) take the annotation's other attributes
     add 7df2280ede Re-home anonymous inner classes in a lifted body
     add 6e32b25e0b Set originType when re-homing an anonymous inner class
     add a2603b0e4e Add .conditionalOnClass(...), the condition optional integrations are gated on
     add 3c498ebbc1 Take a compile-time String constant as a member name
     add 41d366539e Add group(...), the nested conditionally-guarded configuration class
     add 1085bed7f3 Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add e45b3a2161 Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add c4cadbba59 Stop asserting an ordering @ConditionalOnBean does not guarantee
     add f7d22cebd0 Fall back rather than throw when Grails cannot answer
     add cf6880565a Document the new DSL surface in the user guide
     add a488d6a1eb Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add 902f0820cd Fix three defects the new forms introduced, and pin what was missing
     add 666308814e Reject an anonymous class reaching a member that moved to the sibling
     add 9b266f47df Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add 4c015010be Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add 67d20dc774 Give a lifted anonymous class an enclosing method
     add 191830ee33 Run the anonymous-class reach check for a group too
     add 635f284d55 Count a property-style read as a use of the moved accessor
     add 55fa4619dd Set the enclosing method on nested-closure anonymous classes too
     add 4fe4570976 Catch every spelling of a reference the anonymous class cannot reach
     add b952b270fa Reach: one rule for both host kinds, and the runtime's own resolution
     add 561532823a Repair an anonymous class in a closure parameter default too
     add c4546d243d Make the reach check follow the lift exactly
     add 0c25aefef2 Stop the reach check at closures, and let both field spellings agree
     add d5c7bdf097 Widen the reachable set to what the runtime actually answers
     add 74f7951df6 Read the receiver, and read what @CompileStatic was given
     add c8756534f2 Decide the static-compilation mode per body, not per class
     add fbfe7a176a Treat the body a nested anonymous class sits in as a ceiling
     add b1aa8ca653 Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add 43d46cb4eb Match nested anonymous-class reach to Groovy method annotations
     add dcfa7bed0e Stop an in-memory embedded MongoDB only once
     add be9fd0e31c Stop the servers the replica set specification starts
     add 2c7455a551 Leave the MongoDB suites out of the Neo4j jobs
     add 9051523827 Time out the test jobs well before GitHub's six-hour default
     add b378d75445 Leave the Hibernate and Redis suites out of the Neo4j jobs
     add 42521c0b24 Correct why EmbeddedMongoInitializerSpec stops its own servers
     add 7dbf7e1bdf Run grails-redis's own tests in the Redis jobs
     add 38f32adee7 Merge branch '8.0.x' into fix/embedded-mongo-shutdown-hang-8.0.x
     add b4aa3c6622 Address embedded MongoDB shutdown review findings
     add a81e0d5ca0 Default String id storage to ObjectId and fix association id coercion
     add 2ca0e4c7fc Fix checkstyle OperatorWrap violation in MongoQuery
     add 87219f1530 Add unit tests for id coercion and association storage
     add 0f1bc9be87 Correct idGeneration docs that still described String storage as the default
     add 5bf4e5c62e Delete documents whose assigned String id is empty
     add 19a146a5b3 Encode to-one association ids consistently in updateAll
     add 9a8506d50c Apply id coercion inside negations and other junctions
     add ded9ea7900 Coerce association ids in IN criteria
     add 0fa6561bf1 Store and query _id consistently in the non-codec engine
     add 08d1902331 Merge branch '8.0.x' into feat/mongo-objectid-default-8.0.x
     add 41b92309a4 Apply the ObjectId default to the codec engine only
     add 4563be76b6 Normalise updateAll association values into a copy of the caller's map
     add 3a99093037 Store and query _id through the id mapping in the non-codec engine
     add 60c3671c95 Write association references through the id mapping in the non-codec engine
     add ce89107fb1 Encode to-one associations in the non-codec engine's updateAll, and drop the engine scoping
     add 425cdc0cbd Deprecate the non-codec persistence engine
     add b1d19ef28c Merge branch '8.0.x' into feat/mongo-objectid-default-8.0.x
     add a9a1f1eebc Merge branch '8.0.x' into feat/mongo-objectid-default-8.0.x
     add eaeff04ce4 Merge branch '8.0.x' into feat/mongo-objectid-default-8.0.x
     add 1630a25cce Extract association ids from proxies in updateAll
     add ded71167c4 Exclude embedded associations from updateAll id normalization
     add 564b61ba99 Coerce unidirectional collection and many-to-many references in the non-codec engine
     add 463e1e78ae Encode collection associations in updateAll
     add 1756eaedc5 Correct contradictory wording about the engine setting
     add 2a98407463 Merge branch '8.0.x' into feat/mongo-objectid-default-8.0.x
     add d9a215b549 Merge branch '8.0.x' into feat/mongo-objectid-default-8.0.x
     add dc6a9cf5c9 Merge remote-tracking branch 'upstream/8.0.x' into feat/mongo-objectid-default-8.0.x
     add 7deb7dccbb Restrict updateAll collection normalization to real reference collections
     add 0dfbe067a8 Reject bidirectional one-to-many in updateAll
     add 9528ba1ab7 Write many-to-many updateAll values under the key the non-codec engine reads
     add b1c52c27f4 Reject hasOne associations in updateAll
     add 8707742a8c Match the encoders' null and many-to-many representation in updateAll
     add 44750eb96b Drop a dead type check in the updateAll bidirectional one-to-many guard
     add 55ee2e3356 Accept an identifier in place of an association instance in updateAll
     add a173953336 Document updateAll and the association kinds it supports
     add 7d302c578b Name the plain to-many null case accurately, and cover the DBRef null drop
     add 983fd08c9d Cover many-to-many updateAll on the codec engine
     add 87d38b3753 Cover hasOne updateAll rejection on the non-codec engine
     add f3cb91ebbe Merge branch '8.0.x' into feat/mongo-objectid-default-8.0.x
     add b449d532af Merge pull request #16297 from codeconsole/feat/mongo-objectid-default-8.0.x
     add 35220cb31f Merge branch '8.0.x' into fix/embedded-mongo-shutdown-hang-8.0.x
     add 37f8ca6377 Merge pull request #16338 from codeconsole/fix/embedded-mongo-shutdown-hang-8.0.x
     add 736ba9d456 Merge branch '8.0.x' into feat/beans-dsl-diagnostics-8.0.x
     add fc0d3057af Merge pull request #16292 from codeconsole/feat/beans-dsl-diagnostics-8.0.x
     add 5722a426e5 Add VirtualThreadPromiseFactory seed
     add 3cd34975cd Fix VirtualThreadPromiseFactory type-safety bug; drop GPars deprecation language
     add 69fbd65156 Merge branch '8.0.x' into feat/virtual-thread-promise-factory-seed
     add 3bd188642f fix: virtual-thread executor usage for multi-closure promises
     add 5d911ba439 docs: update asyncPromises documentation for virtual-thread promise factory
     add 67780aa992 fix: ensure correct promise type casting in PromiseList
     add 7f28c4b15c chore: simplify `VirtualThreadPromiseFactory`
     add bb0ee3c611 Merge pull request #15960 from apache/feat/virtual-thread-promise-factory-seed
     add 97fc996460 Fix scaffolded index.gsp declaring the count model field as Integer
     add 8fa9782a70 Fix welcome page failing to compile under GSP static compilation
     add 12fe286b65 Merge branch '8.0.x' into fix/scaffold-count-type-8.0.x
     add b4f9b0dc48 Import MimeType in the welcome page instead of qualifying the cast
     add 140f173f80 Simplify the welcome page sort closures
     add 8855b88340 Declare the scaffolded count model field as Number
     add 0a93f8dab3 Convert typed model values the way a Groovy assignment does
     add 07afd38db0 Test the welcome page and the scaffolded count declaration
     add 054112214a Correct the model names in the scaffolding guide
     add 22163f7f11 Merge branch '8.0.x' into fix/scaffold-count-type-8.0.x
     add fc1941a96e Preserve exact floating-point values when binding GSP models
     add 7a31802892 Merge branch '8.0.x' into fix/scaffold-count-type-8.0.x
     add 762cffe848 Accept a model value whose conversion converts back to it
     add ee8c4c2db8 Drop the redundant groovy.lang import from GspCompileStaticSpec
     add fac89c965e Merge pull request #16322 from codeconsole/fix/scaffold-count-type-8.0.x
     add 44d3fe19b2 Make the Grails auto-proxy creators known to Spring where they are registered
     add d46653fab0 Start and decorate GSP views in a standalone Spring Boot application
     add f9aed8b568 Ship the GSP sources in the packaged gsp-spring-boot example
     add dde9a2372e Put the compiled GSP pages on the runtime and test class paths
     add b4abdb17ff Render precompiled GSP views in a standalone Spring Boot application
     add b2a42af3c7 Package the gsp-spring-boot example as its compiled views
     add ca1d139544 Write the GSP view registry whole rather than merging it
     add c30426ee01 Start a standalone GSP application that has no JSP support
     add 8f58534ac9 Offer the JSP rendering only where the example can serve one
     add 6fb9853984 Configure the GSP codec lookup after the codecs module contributes one
     add 56d1db946a Register GSP tag libraries as beans instead of inside the lookup
     add 08c38aaef1 Contribute the core beans that read the application only where there is one
     add 4f6975c009 Run the Grails plugin lifecycle for a Grails application only
     add ec69c9c5f6 Apply the SiteMesh defaults without asking to be enhanced
     add b93224d8c4 Count an application GrailsApp launched as a Grails application
     add 3159fc709c Order the GSP auto-configuration imports as the style requires
     add e8cb6d9ee4 Leave the gsp-spring-boot example configured with what it teaches
     add 4450c195bc Merge remote-tracking branch 'upstream/8.0.x' into fix/gsp-spring-boot-standalone-8.0.x
     add 478d1e455a Leave the JSP compiler out of the executable jar
     add 608a5f57a9 Bring in the part of the Grails web tier this example renders with
     add cc32e054c8 Keep the compiled pages off the main runtime class path
     add 8bf66fb543 Find the tag libraries a Grails plugin carries
     add 95c343ddb2 Style the example with Bootstrap through the asset pipeline
     add 40c8215d1c Generate links in an application that maps no URLs
     add f12488d728 Give the example a page worth looking at
     add d2e973a3f0 Merge branch '8.0.x' of https://github.com/apache/grails-core into fix/gsp-spring-boot-standalone-8.0.x
     add d52f80f919 Say where the example's asset pipeline wiring is going
     add 4e2d14ccec Merge remote-tracking branch 'upstream/8.0.x' into fix/gsp-spring-boot-standalone-8.0.x
     add 23191ec3a1 Merge remote-tracking branch 'upstream/8.0.x' into fix/gsp-spring-boot-standalone-8.0.x
     add 4028b9f8a5 Merge remote-tracking branch 'upstream/8.0.x' into fix/gsp-spring-boot-standalone-8.0.x
     add da4ede1850 Merge remote-tracking branch 'upstream/8.0.x' into fix/gsp-spring-boot-standalone-8.0.x
     add 3c8fe2eac2 Look tag library artefacts up by TagLibArtefactHandler.TYPE
     add d9c95450a5 Give an application that maps no URLs an empty mappings holder
     add 1ca0145550 Keep a Grails build's test task off compileGroovyPages
     add 3af263cb69 Gate the core auto-configuration, not two of its beans
     add 99cf46fb57 Document the @SpringBootTest case in a Grails application
     add 688436e00c Note the sitemesh.decorator.default fallback in the upgrade guide
     add a2dc9c6c84 Merge upstream 8.0.x into fix/gsp-spring-boot-standalone-8.0.x
     add 48175cf3fd Serve the example's assets through the asset pipeline's Spring Boot module
     add e6420b9359 Leave URL mappings and constraint validation off the example's class path
     add a3d4d86000 Compile from the webjars without packaging them
     add 15542cbcf4 Say what covers the empty URL mappings holder
     add 00b11de5ff Merge upstream/8.0.x into fix/gsp-spring-boot-standalone-8.0.x
     add 3ac93a3aa9 Encode the attributes of a captured tag in a standalone application
     add 7dc87ac976 Make three specifications fail when what they cover is reverted
     add 3ceb572b79 Cover the precompiled view path where it is contributed
     add 3d23083278 Alias jspViewResolver only where nothing is registered under it
     add 6ca3141d55 Hold the example's selected rendering in the session
     add 16eb980bb8 Document running GSP in a Spring Boot application
     add 0327078ca1 Leave Spring's auto-proxy creator list as the specification found it
     add ec9a9c4928 Stop specifying unencoded output for an unwired layout tag library
     add 76bfb3bd08 Show a tag library the guide page's example can compile
     add 5f11919ad4 Let Spring Boot's error page render in a standalone application
     add 2033f0eaf7 Merge remote-tracking branch 'upstream/8.0.x' into fix/gsp-spring-boot-standalone-8.0.x
     add bf09ab4b6c Clarify standalone GSP lifecycle guidance and simplify view resolver
     add 59d9023543 Merge branch '8.0.x' into fix/gsp-spring-boot-standalone-8.0.x
     add e07a60eee3 Take asset pipeline 5.2.0-RC1
     add 490f5e1e3f Link the example's assets through the asset pipeline's tags
     add b40c318616 Document the asset pipeline's tags in a Spring Boot application
     add e749cc79a9 Merge pull request #16184 from codeconsole/fix/gsp-spring-boot-standalone-8.0.x
     add 1b82764ed6 Merge branch '8.0.x' into use-spring-upload-config
     add ab48162355 Modernize default promises with CompletableFuture
     add 67f93528de Use the Boot application task executor for promises
     add e959963e51 Delegate async action results to Spring MVC
     add 3b931d1b89 Document Spring-managed async execution
     add 77eeee3cb1 Replace legacy web promise decoration with Spring async support
     add 0343abc5af Deprecate legacy async compatibility APIs
     add b3febc2d20 Preserve executor affinity across completion stages
     add 48a7b21da1 Restore promise error recovery semantics
     add 479f5e0e2e Restore URL mapping state on async dispatch
     add fb318eef8c Provide a managed fallback promise executor
     add c982feb634 Reuse matched URL mappings on async dispatch
     add 8dd2b0a1dd Merge upstream/8.0.x into feature/modernize-grails-async-8.0.x
     add f269620071 Preserve promise failures and consistent Future exception semantics
     add c8c9a0b1b2 Share the promise executor with the default event bus
     add b8796c25fd Resolve the named application executor and enable fallback concurrency
     add f7da7dee19 Preserve standalone web context and unify async request lifecycle
     add a29efe7561 Document async executor migration and deprecated Servlet APIs
     add b65a64ed69 Merge upstream/8.0.x into feature/modernize-grails-async-8.0.x
     add b09d755655 Merge upstream/8.0.x and retain both sets of upgrade notes
     add 69b234e3a5 Unify virtual-thread promises and preserve checked task failures
     add 683342d225 Propagate web context across owned executors and chained promises
     add b698b3f540 Resolve asynchronous request timeouts as HTTP 503
     add f3624cb8c3 Document unified virtual-thread execution and promise failure contracts
     add 9fdcb77bf4 Merge pull request #16230 from codeconsole/feature/modernize-grails-async-8.0.x
     add 784c7691bd Merge branch '8.0.x' into use-spring-upload-config
     add 71737d457c Deprecate the legacy multipart configuration guard for removal in 9.0
     add fc10302f80 Merge pull request #16040 from gsartori/use-spring-upload-config
     add 0ac295582d Call the asset classpath configuration statically
     add bb248db25f Document the Gradle 9.7 requirement of Grails 8
     add 3dc36325dc Merge pull request #16352 from apache/fix/web-plugin-daemon-reuse-16347
     add 63776a4f42 Merge remote-tracking branch 'upstream/8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add 5e3403efe5 Close the connection source children over a snapshot
     add 4710351bbe Point the documented logger category at the MongoDatastore logger
     add 4ebb343fce Document everything an externally-supplied client now picks up
     add 423ac93345 Pin the camel case setting names against a Spring Boot environment
     add 4a4733ac09 Read a compound index's attributes without consuming the declaration
     add 8a7e1ff4c4 Keep the mapping context's database when the client is supplied
     add 4c074122eb Pin the tenant resolver a supplied client ends up with
     add f4bb9466e6 Hold the per-connection children in a ConcurrentHashMap
     add fd13f1a3d6 Read captured log events through a copy-on-write list
     add 848282548a Report, interrupt and resume the index build through its whole lifecycle
     add 6fe37380ea Stop SchemaBasedMultiTenancySpec dropping MongoDB's config database
     add d2970174f2 Give read-only transactions the same meaning on Mongo as on Hibernate
     add e3e7755455 Retire the transaction constructors from before the read-only flag
     add 7a1cea3865 Cover a read-only transaction on the Spring Data interop
     add 3d4f0d3fe0 Document AUTO as the default flush mode, which is what sessions start with
     add 927a2226d0 Accept a null definition when a Mongo session begins a transaction
     add b5737b6571 Show the queued write is dropped, not left where it was
     add 2bdbe36a68 Cover SessionOnlyTransaction in the module it lives in
     add cde6de11a8 Document that read-only transactions no longer flush on MongoDB
     add cbad317a13 Link straight to the read-only transactions section
     add 95c0d27d66 Say that read-only transactions do not flush on any datastore
     add 80f5aa243d Warn when a read-only transaction commits over pending operations
     add 531a01e80b Merge branch '8.0.x' into fix/readonly-no-flush-8.0.x
     add 3f34cb1576 Merge remote-tracking branch 'origin/fix/readonly-no-flush-8.0.x' into fix/readonly-no-flush-8.0.x
     add 92a83c7a0a Merge branch '8.0.x' into fix/readonly-no-flush-8.0.x
     add a6bbcfb8df Merge pull request #16214 from codeconsole/fix/readonly-no-flush-8.0.x
     add 1c85f8bd18 Expose the servlet API on grails-converters' compile classpath
     add 6a4e0447f4 Trim the servlet-api comment to the constraint
     add 0728b2fd11 Merge pull request #16356 from codeconsole/fix/converters-servlet-compile-only-api-8.0.x
     add b073fd84c1 docs: note that @Configuration classes in resources.groovy are no longer processed
     add 3a69be3076 Merge pull request #16359 from apache/docs/16029-resources-groovy-configuration-classes
     add ce1438021a Add configuration metadata compiler
     add fa90c2ca54 Add configuration metadata Gradle plugin
     add fe8725ac5c Generate cache configuration metadata
     add 39d95bbfe1 Generate data binding configuration metadata
     add d26dc7c206 Generate JSON Views configuration metadata
     add 97821d6e71 Generate Markup Views configuration metadata
     add ccc41535b2 Generate URL mappings configuration metadata
     add 5983be36b0 Include generated metadata in configuration reference
     add 41433386f1 Document automated configuration metadata
     add b792a3fd1c Support immutable configuration metadata
     add d12545ae42 Generate metadata for Groovy configuration DSLs
     add 7c10347322 Expand configuration metadata transform coverage
     add 74587e2906 Merge origin/8.0.x into feature/automated-configuration-metadata
     add b3686d66b1 Document generated Views configuration metadata
     add 4f55e5bb6d Preserve configuration metadata identities
     add 4991ae9f5e Keep the configuration metadata compiler internal
     add a5ed183758 Align Groovy configuration metadata inference
     add 1007b5fe1a Match Spring Boot nested property semantics
     add 356b9f912e Merge feature/automated-configuration-metadata to resolve conflicts
     add b770e0b7bd Merge 8.0.x to refresh mergeability
     add af9c397025 Merge feature/automated-configuration-metadata to pick up 8.0.x
     add dd1ab42936 Fix DSL parser crash on same-named properties across if/else branches
     add 6c3328e3df Preserve the unconditional default when a branch overrides it
     add 6a30571fa3 Handle ConfigSlurper environments{} blocks in the DSL parser
     add 013ba6c143 Make ConfigurationMetadataSpec self-maintaining instead of exact-count
     add 90ac62dd28 Merge branch '8.0.x' into feature/automated-configuration-metadata
     add b160cc36aa Merge branch '8.0.x' into feature/automated-configuration-metadata
     add 50207a3722 Harden configuration metadata generation
     add 356ac22f7c Merge feature/automated-configuration-metadata to pick up the metadata fixes
     add 1ae4a4a9d8 Tighten Groovy DSL configuration metadata discovery
     add 4d49894f05 Address Groovy DSL configuration metadata review findings
     add a9eca11fc9 Address configuration metadata review findings
     add 734602c858 Merge feature/automated-configuration-metadata to pick up the review fixes
     add b89f84305b Merge pull request #16048 from apache/feature/groovy-dsl-configuration-metadata
     add 858a92a9ae Merge remote-tracking branch 'origin/8.0.x' into feature/automated-configuration-metadata
     add cd4b5bcddc Merge pull request #16047 from apache/feature/automated-configuration-metadata
     add 4df44b5690 Declare the servlet API compileOnlyApi in grails-web-core and grails-mimetypes
     add 2c201cbc09 Merge pull request #16360 from apache/fix/servlet-compile-only-api-extension-modules
     add 61f8b7c28a feature: ability to lock and not fail on optimisitic locking
     add 0bf4554fcc feedback on method naming
     add 293fb7768c feedback: address locking issues and add support for lockmodetype
     add 4198a9cb84 feedback: lock the row before refreshing on Hibernate 7, follow component cascades on Hibernate 5
     add d2f76c9e3b feedback: lock the hierarchy root row before refreshing on Hibernate 7
     add 2842f51fe0 feedback: lock the concrete row for table-per-concrete-class hierarchies on Hibernate 7
     add d60b7a74fc test: point the union-subclass version comment at the insert-then-update issue
     add ba8a179899 feedback: bind the unproxied target when locking a union-mapped row on Hibernate 7
     add ab537bc5dd feedback: address PR #16344 review findings and fix issue #16349 dirty-checking bug
     add c4f3fee64f feedback: reset dirty state on refresh-cascaded collection elements on Hibernate 5
     add 6ac4136c66 feedback: keep the persist-on-flush cascade action, document the new events, restore the lock(Map) guard
     add 5ba25f4c84 feedback: lock the row on every dialect, cover the merge path, and document both
     add 1ceec3a898 Merge remote-tracking branch 'upstream/8.0.x' into feat/gorm-lock-latest
     add 2c4b8219f1 feedback: lock the row before reloading it on every path, and apply the tenant filter to lock(id)
     add 14ca557844 feedback: correct the transaction and named-connection claims, and pin the flush-time cascade
     add ddd5f0e38a docs: describe what lock() without a transaction actually does on Hibernate 5
     add cde2e1007d feature: reload under the lock in mutex, and route named-connection instance operations
     add e635ada746 fix: supply the target table so an implicit sequence name resolves on Hibernate 7
     add c4b22d54a0 feedback: require a transaction whenever a lock type is named, and declare the supported named arguments
     add f191f248e1 feedback: document the derived sequence name and cover the target-table path
     add a6f7b5c505 test: pin where an entity mapped to one named datasource saves
     add 5ce12a7a99 test: cover named-connection instance operations on MongoDB
     add 497ec8d588 Merge pull request #16344 from apache/feat/gorm-lock-latest
     add df139ec008 fix(deps): update dependencies on 8.0.x
     add e1722078aa fix(forge): remove JavadocStyle check removed in Checkstyle 13.11.0
     add 8c3851b9e4 Merge pull request #16361 from apache/deps/dependency-updates-2026-09
     add abc944e654 Merge remote-tracking branch 'upstream/8.0.x' into feature/mongodb-skip-index-build-8.0.x
     add 5cafdb298e Describe the two index-build settings in the plugin's configuration metadata
     add 9a88f6ecd1 Compare index key patterns in order
     add 0a12094fa4 Put the logback note beside the dependency rather than in an empty closure
     add d8adb08fcf Tighten the index build's lifecycle, reporting and per-collection listing
     add 0ffc9215e7 Say which connection details a supplied client leaves out
     add c6a64e8d1e Keep the index build's breakdown, errors and restarts honest per connection
     add 7d927e10be Let an application build its indexes on demand with buildIndexes off
     add 91a7eb489b Announce a background index build from its own thread and document every summary form
     add 1fadd5c812 Merge pull request #16208 from codeconsole/feature/mongodb-skip-index-build-8.0.x
     add d2ac1ae966 Stop the MongoDB TCK manager from recreating every collection per feature
     add 41531b7576 Declare docker-java-api as a test dependency
     add 467f3901b0 Cover the drop fallback of the MongoDB TCK cleanup with a view
     add e11f509f06 Log when the MongoDB TCK cleanup falls back to dropping a collection
     add f473f06c02 Merge pull request #16357 from matrei/fix/16354-mongo-tck-fd-churn
     add 3912c7f65b Update dependencies for 7.0.17
     add 3bcb6f708e Merge pull request #16358 from apache/deps/7.0.17-dependency-updates
     add 3ac24ed4b0 Revert spring-boot-starter-sitemesh to 3.2.2
     add ec532699ab Merge pull request #16363 from apache/deps/revert-starter-sitemesh-3.2.2
     add d1f4dd8597 fix: validate Map criterion values in GORM for MongoDB queries
     add d0f685a801 Merge pull request #16362 from apache/fix/mongodb-map-criterion-values
     add 359c461b7b Merge remote-tracking branch 'origin/7.0.x' into merge/7.0.x-into-7.1.x
     add e8760c70b2 Merge branch '7.1.x' into merge/7.1.x-into-7.2.x
     add 1e68a548e2 Merge pull request #16365 from apache/merge/7.1.x-into-7.2.x
     add 7e2ca67f1c Merge branch '7.2.x' into 8.0.x
     add 3af01dc69c Merge pull request #16372 from apache/merge/7.2.x-into-8.0.x
     add 571ca77ad5 fix: validate Map criterion values in GORM for MongoDB queries
     add 73e7a31bf7 Merge pull request #16373 from apache/fix/mongodb-map-criterion-values-8.0.x
     add 890451a252 fix(deps): update Groovy to 5.1.3
     add bb372c3603 Merge pull request #16370 from apache/deps/groovy-5.1.3
     add 93f00bbed6 build: run groovydoc and the user guide outside the Gradle daemon
     add 5d347efc38 build: address review of the documentation fork
     add eb0b0bcf76 build: record the measured basis for the 3G daemon heap
     add 113a75420c build: measure the 3G daemon against the whole macOS job, tests included
     add 725d807fee build: address PR review of the documentation fork
     add dfede9d49d build: address second review round on the documentation fork
     add de903ae36a Merge pull request #16376 from apache/fix/docs-out-of-gradle-daemon
     add 8168649123 test: keep the browser's favicon fetch out of the scaffolding example's login flow
     add a054c7aadb forge: keep the browser's favicon fetch out of the starter security feature's login flow
     add 437fef8b77 test: declare the scaffolding example's beans through the beans DSL
     add 1cdc252c05 Trim the favicon comments to the one fact the code does not say
     add 848d29e0ce Merge pull request #16375 from matrei/fix/scaffolding-favicon-session-8.0.x
     add d4aa4effe0 bump publish plugin to 1.0.0-RC1
     add e1ec2629bd fix: use jakarta.servlet.error.exception in generated error.gsp
     add 4dca87c8ad Merge pull request #16379 from apache/fix/error-gsp-jakarta-servlet-attribute
     add cc92b915d2 Find the names a page introduces in one pass, not a regular expression
     add b83626345d End expressions and attribute values where the page compiler ends them
     add 2a99acb013 Hold the long page to strict so a missed name fails it
     add 9ac001f1bc Drop the toString left over from the CharSequence signature
     add 0f97ac5682 Merge pull request #16377 from codeconsole/fix/gsp-page-scope-variable-scan-8.0.x
     add c1121ec22f Make end to end tests worked with our staged artifacts
     add 96e0e72f68 Merge pull request #16384 from apache/fixEndToEndForStaged
     add 7893ed4d7e Close and replace every MongoDB client across a CRaC checkpoint
     add fd02c14795 Route the class's own GORM calls to the connection withConnection names
     add 340b0a1462 Let a Neo4j datastore start with a connection under grails.neo4j.connections
     add 0f3025d536 Keep the connection of a Neo4j API reached through a named connection
     add 41965f37f5 Route the class's own Neo4j calls to the connection withConnection names
     add 8056ea18db Document Neo4j named connections starting and routing their writes
     add 076ff09324 Route the class's own GORM calls to the connection a qualified session or transaction opens
     add 2d8770e5cd Say when the old routing wrote silently, and where the new one stops
     add b34471f68c Resolve a connection scope exactly as naming the connection does
     add 5e5b35a599 Say where the withConnection routing stops, and quote the Neo4j errors
     add 9e0312eb15 Merge branch 'fix/mongodb-crac-named-connections-16366' into fix/qualified-session-connection-scope
     add 190ac9c388 Route the calls inside @Transactional(connection = ...) to that connection
     add 077f33c2c9 State the defaults an IDE shows for grails.mongodb settings correctly
     add 12497cfb51 Let recreateOnConflict resolve a taken index name
     add fdd67c9244 Let GORM own the client the Boot auto-configuration builds
     add 07f68726a4 Bind the tenant a new session is opened for
     add c82dd69b25 Keep a class out of a connection block that does not name it
     add 65b6851931 Say which connection sources a restore leaves holding a closed client
     add 62c7b4a139 Leave a multi-tenant class to its tenant inside a connection's transaction
     add dd92b4502f Leave an enclosing block alone in the default datastore's transactions
     add 9265c8e1b5 Bind the tenant without opening a session that goes unused
     add 1103ddd72c Pin the scope cases the assertions only named
     add 44d95a6427 Cover the annotation on MongoDB and Neo4j, and say what mapped means there
     add d82c24e611 Say what a plain @Transactional inside a connection block covers
     add 81b5b189df Keep the closeable contract on a MongoConnectionSource
     add ad97cc0f95 Merge pull request #16369 from codeconsole/fix/qualified-session-connection-scope
     add 7edff9cb78 Compare configuration metadata paths as the build reports them
     add a25b343435 Add unit coverage for MongodbGrailsPlugin
     add 9840b9c074 Add unit coverage for MongoExtensions
     add 82003817dd Add unit coverage for the simple bson Codec classes
     add 4ab5ee89c0 Add unit coverage for the bson codecs.decoders package
     add 65fb5b578b Add unit coverage for the bson codecs.encoders package
     add 3077fb7db4 Add unit coverage for CodecCustomTypeMarshaller and CodecExtensions
     add 10eca7c29d Add unit coverage for the bson json parser package
     add 1367d7e450 Add unit coverage for the embedded module's backend classes
     add fae8323e92 Add targeted unit coverage for GormSharedSessionMongoTransactionManager
     add 0e55d5513b Add targeted unit coverage for remaining core module gaps
     add 5619a371c2 Merge pull request #16285 from apache/test/grails-data-mongodb-specs
     add cb7e4a9d89 Add test coverage and clean up grails-datamapping-core validation package
     add e38e562ec0 Merge pull request #16189 from apache/chore/datamapping-core-validation-cleanup
     add df7efef273 Add missing test coverage to grails-data-graphql and remove dead disabled spec
     add ee104d2a8c Clean up EntityFetchOptions.java and add its first direct test coverage
     add 0c5defafdf Parameterize raw Association/ToOne/Selection usages in EntityFetchOptions
     add 3192a45320 Restore null-safe getMergedField handling and cover ClosureDataFetcher.buildFetchOptions
     add 5ae100f31a Consolidate PersistentGraphQLProperty's order resolution to a single assignment
     add 149fe635ad Consolidate PersistentGraphQLProperty.getGraphQLType entity/embedded resolution
     add 53a30e3608 Replace deprecated GraphQLArgument/GraphQLInputObjectField defaultValue calls
     add 2308fc63b0 Remove @CompileDynamic escape hatch from GraphQLMapping.methodMissing
     add d72aae4f8d Register custom operation data fetchers via the code registry
     add bbb476a7e2 Merge pull request #16202 from apache/refactor/graphql-entity
     add 4131ce905e Backport GORM AST transform test coverage and crash fixes to 8.0.x
     add 043aee944f Merge pull request #16389 from apache/test/gorm-ast-transform-coverage-8.0.x
     add a2211e9ceb Fix flaky PerTestRecordingSpec by waiting for recordings to stabilize
     add c9b3be3d96 Fix the real causes behind PerTestRecordingSpec's flakiness
     add 28a91dfead Add unit coverage for WebDriverContainerHolder and ground the recording size floor in real measurements
     add d33598371c Address review feedback: fix restart failure handling, driver leak, and test hermeticity
     add 4451faf7f4 Merge pull request #16031 from apache/fix/flaky-per-test-recording-spec
     add 0a412d76f4 Add test coverage for grails-datamapping-async and type decorator closures
     add cb8fc6b371 Add test coverage for AsyncEntity.getAsync()
     add 524a336df1 Merge pull request #16193 from apache/chore/clean-grails-datamapping-async
     add 7d5e684929 fix(config): bind nested settings maps under Spring 7
     add 8aee63808c Bind nested settings entries the resolver cannot address by path
     add 7ab5673d56 Merge pull request #16160 from apache/fix/spring7-nested-map-conversion
     add 99251f30c1 added specs to package
     add 014a0d414c Merge pull request #16188 from apache/test/datamapping-core-utils-cleanup
     add 144eec3a5a Add unit test coverage for the jdbc package in grails-datamapping-core
     add 241a7ef388 Fix potential NPE in DataSourceConnectionSource.close() when unwrapping a DelegatingDataSource
     add 81500c871c Rename shadowed local variable in DataSourceSettings.toProperties()
     add f8cf9d9205 Clean up IntelliJ inspection findings in DataSourceBuilder
     add ff22a0e3d8 Clean up IntelliJ inspection findings in RelaxedDataBinder
     add f2fff3f37c Annotate RelaxedNames/RelaxedConversionService overrides to match Spring's @NullMarked contracts
     add b682cab4fe Annotate remaining nullable overrides in RelaxedConversionService's nested classes
     add 78ac99346d Remove blank Javadoc line in DataSourceBuilder class comment
     add f91a6d3fa7 Close the application contexts opened by the jdbc connection source specs
     add d5a28073ca Remove the unreachable OriginCapablePropertyValue and PropertyOrigin
     add 35494623cd Merge pull request #16153 from apache/chore/jdbc-package-cleanup
     add 5ab85c3108 Merge remote-tracking branch 'upstream/8.0.x' into pr-16063
     add 7c69251c84 fix: honor @NotTransactional opt-out on class-annotated services
     add 63e0b577ca Merge pull request #16063 from borinquenkid/fix/customizable-rollback-tx-attribute-copy
     add 543aa9e55b Improve hot path virtual-thread and codec performance
     add ab2e4f4922 Restore decodeHex Groovy truth compatibility
     add 0282babb06 Address codec and virtual-thread performance review feedback
     add 1cce6632ac Finish the codec review follow-ups
     add b49a48e2ec Merge pull request #15828 from apache/perf/vthread-static-compile-8.0.x
     add 0a4ec6f2bb Merge remote-tracking branch 'upstream/8.0.x' into review-15995
     add 3b3464ef8b Capture plugin dependency diagnostics through logback and report pending versions
     add bba0e9c753 Merge pull request #15995 from apache/fix/plugin-dependency-diagnostics
     add 19fc2a11d7 Remove jodd-wot from fields tests
     add 3b8b35feaf Replace string assertions with Jsoup DOM parsing per review discussion
     add 30fa9ee3f2 Merge remote-tracking branch 'upstream/8.0.x' into pr-15965
     add 2da4fa140b Bump jsoup to 1.23.2 and tighten DefaultFieldTemplateSpec assertions
     add e35e3ae1b1 Merge pull request #15965 from apache/chore/remove-jodd-wot
     add ea69ef4501 Merge branch '8.0.x' into fix/stacktrace-filterer-test-log-capture
     add 64da415999 test: tighten StackTrace LogCapture assertions and pin web-mvc test logging
     add 7ea4cb9d8e Merge pull request #16067 from apache/fix/stacktrace-filterer-test-log-capture
     add dc5fe4ff03 Mark to-one associations read-only after a validation error in Hibernate 7
     add 157195f338 Merge pull request #16391 from apache/fix/hibernate7-to-one-read-only-on-validation-error
     add 1ef86eb1cb Merge remote-tracking branch 'upstream/8.0.x' into pr-16065
     add d8bb65c595 Merge pull request #16065 from borinquenkid/fix/web-transaction-attribute-copy
     add aaf0248a47 Merge remote-tracking branch 'upstream/8.0.x' into pr-16064
     add 4fc28038a7 Merge pull request #16064 from borinquenkid/fix/gorm-transaction-attribute-copy
     add 43fca1cf80 fix(neo4j): make OptimisticLockingSpec commit, observe and verify the background write

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (169193b014)
            \
             N -- N -- N   refs/heads/fix/optimistic-locking-spec-join-assert (43fca1cf80)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .agents/skills/gradle-developer/SKILL.md           |  706 ++
 .agents/skills/grails-8-upgrade/SKILL.md           |    3 +-
 .agents/skills/grails-developer/SKILL.md           |    4 +-
 .agents/skills/groovy-developer/SKILL.md           |   16 +-
 .agents/skills/mono-repo-integration/SKILL.md      |    2 +-
 .git-blame-ignore-revs                             |    2 +
 .github/dependabot.yml                             |    4 +
 .github/dependency-graph/external-references.yml   |    5 +-
 .github/scripts/groovy-joint-build.init.gradle     |   56 -
 .../groovy-snapshot-canary-build.init.gradle       |   56 +
 .github/scripts/ossIndexReport.sh                  |   94 +
 .github/scripts/postStickyComment.sh               |   60 +
 .github/workflows/benchmark.yml                    |  394 ++
 .github/workflows/codeanalysis.yml                 |    4 +-
 .github/workflows/codeql.yml                       |    4 +-
 .github/workflows/codestyle.yml                    |    6 +-
 .github/workflows/coverage.yml                     |    6 +-
 .github/workflows/end-to-end.yml                   |  149 +
 .github/workflows/forge-deploy-aws.yml             |  223 +
 .github/workflows/forge-deploy-next.yml            |  119 -
 .github/workflows/forge-deploy-prev-snapshot.yml   |  119 -
 .github/workflows/forge-deploy-prev.yml            |  119 -
 .github/workflows/forge-deploy-release.yml         |  125 -
 .github/workflows/forge-deploy-snapshot.yml        |  115 -
 .github/workflows/gradle.yml                       |  458 +-
 .github/workflows/groovy-joint-workflow.yml        |  166 -
 .github/workflows/groovy-snapshot-canary.yml       |  196 +
 .github/workflows/rat.yml                          |    4 +-
 .github/workflows/release-close.yml                |    3 +-
 .github/workflows/release-notes.yml                |    2 +-
 .github/workflows/release-publish-docs.yml         |    8 +-
 .github/workflows/release-verify.yml               |   34 +-
 .github/workflows/release.yml                      |  110 +-
 .github/workflows/sitemesh2.yml                    |    8 +-
 .github/workflows/validate-actions.yml             |   59 +
 .github/workflows/vulnerability-scan.yml           |  176 +-
 .gitignore                                         |    1 +
 .sdkmanrc                                          |    4 +-
 AGENTS.md                                          |   41 +-
 CONTRIBUTING.md                                    |    6 +-
 DEVELOPMENT.md                                     |    2 +
 README.md                                          |    2 +-
 RELEASE.md                                         |   59 +-
 RENAME.md                                          |    8 +-
 THREAT_MODEL.md                                    |   16 +-
 build-logic/docs-core/build.gradle                 |   13 +
 .../main/groovy/grails/doc/UserGuideBuilder.groovy |  169 +
 .../grails/doc/gradle/PublishGuideTask.groovy      |  170 +-
 .../doc/gradle/PublishGuideWorkAction.groovy       |   54 +
 .../doc/gradle/PublishGuideWorkParameters.groovy   |   59 +
 .../doc/gradle/AuditGroovydocLinksTask.groovy      |   87 +
 .../grails/doc/gradle/GroovydocLinkAuditor.groovy  |  209 +
 .../test/groovy/grails/doc/GuideProbeMacro.groovy  |   43 +
 .../groovy/grails/doc/UserGuideBuilderSpec.groovy  |  189 +
 .../doc/gradle/GroovydocLinkAuditorSpec.groovy     |  199 +
 build-logic/gradle/wrapper/gradle-wrapper.jar      |  Bin 48462 -> 47505 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    2 +-
 build-logic/gradlew                                |    4 +-
 build-logic/gradlew.bat                            |    4 +-
 build-logic/plugins/build.gradle                   |   26 +
 .../buildsrc/AutoConfigurationImportsPlugin.groovy |   66 +
 .../apache/grails/buildsrc/CompilePlugin.groovy    |   33 +
 .../buildsrc/ConfigurationMetadataPlugin.groovy    |  829 +++
 .../GenerateAutoConfigurationImportsTask.groovy    |  181 +
 .../GrailsDependencyValidatorPlugin.groovy         |  159 +-
 .../buildsrc/GrailsValidateActionsPlugin.groovy    |   62 +
 .../GroovyDslConfigurationMetadataParser.groovy    |  345 +
 .../buildsrc/GroovydocEnhancerExtension.groovy     |   34 +-
 .../grails/buildsrc/GroovydocEnhancerPlugin.groovy |   47 +-
 .../apache/grails/buildsrc/GroovydocRunner.groovy  |   89 +
 .../apache/grails/buildsrc/PublishPlugin.groovy    |   43 +-
 .../org/apache/grails/buildsrc/SbomPlugin.groovy   |  175 +-
 .../grails/buildsrc/TestTaskShardingPlugin.groovy  |  174 +
 .../grails/buildsrc/ValidateActionsTask.groovy     |  236 +
 .../buildsrc/ValidateDependencyVersionsTask.groovy |  100 +
 .../ValidateProductionClasspathTask.groovy         |  102 +
 .../grails/buildsrc/VulnerabilityScanPlugin.groovy |   17 +-
 .../codenarc/codenarc.groovy                       |    4 +
 .../apache/grails/buildsrc/groovydoc-runner.groovy |   72 +
 .../grails/buildsrc/CompilePluginSpec.groovy       |  137 +
 .../ConfigurationMetadataPluginSpec.groovy         | 1590 +++++
 ...GenerateAutoConfigurationImportsTaskSpec.groovy |  195 +
 .../GrailsDependencyValidatorPluginSpec.groovy     |   38 +-
 .../buildsrc/GroovydocEnhancerPluginSpec.groovy    |  162 +
 .../grails/buildsrc/PublishPluginSpec.groovy       |  113 +
 .../apache/grails/buildsrc/SbomPluginSpec.groovy   |  100 +
 .../buildsrc/TestTaskShardingPluginSpec.groovy     |  387 +
 build-logic/settings.gradle                        |    8 +
 build.gradle                                       |   58 +-
 dependencies.gradle                                |  421 +-
 end-to-end/README.md                               |  128 +
 end-to-end/build.gradle                            |   41 +
 end-to-end/gradle.properties                       |   25 +
 end-to-end/gradle/test-config.gradle               |   35 +
 end-to-end/gradle/wrapper/gradle-wrapper.jar       |  Bin 0 -> 47505 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    9 +
 end-to-end/gradlew                                 |  248 +
 end-to-end/gradlew.bat                             |   82 +
 end-to-end/legacy-commands-plugin/build.gradle     |   44 +
 .../legacy/commands/plugin/GreetingService.groovy  |   24 +
 .../commands/plugin/HelloLegacyAppCommand.groovy   |   51 +
 .../plugin/HelloLegacyGrailsCommand.groovy         |   45 +
 .../plugin/LegacyCommandsPluginGrailsPlugin.groovy |   32 +
 .../src/main/resources/META-INF/grails.factories   |   15 +
 .../src/main/scripts/hello-legacy-script.groovy    |   24 +
 end-to-end/legacy-commands/build.gradle            |   98 +
 .../grails-app/conf/application.yml                |   41 +
 .../legacy-commands}/grails-app/conf/logback.xml   |    0
 .../controllers/legacycommands/UrlMappings.groovy  |   35 +
 .../init/legacycommands/Application.groovy         |   30 +
 .../services/legacycommands/GreetingService.groovy |   27 +
 ...egacyCommandCompatibilityIntegrationSpec.groovy |  236 +
 end-to-end/legacy-g7-command-plugin/.sdkmanrc      |    4 +
 end-to-end/legacy-g7-command-plugin/build.gradle   |   83 +
 .../gradle/wrapper/gradle-wrapper.jar              |  Bin 0 -> 47505 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    6 +
 end-to-end/legacy-g7-command-plugin/gradlew        |  248 +
 end-to-end/legacy-g7-command-plugin/gradlew.bat    |   82 +
 .../legacy-g7-command-plugin/settings.gradle       |   60 +
 .../g7/commands/HelloDerivedNameCommand.groovy     |   39 +
 .../g7/commands/HelloG7PrecompiledCommand.groovy   |   49 +
 .../HelloG7PrecompiledGrailsCommand.groovy         |   45 +
 .../src/main/resources/META-INF/grails.factories   |    1 +
 end-to-end/settings.gradle                         |  133 +
 .../spring-dependency-management/build.gradle      |  105 +
 .../grails-app/conf/application.yml                |    0
 .../grails-app/controllers/UrlMappings.groovy      |    0
 .../controllers/springdm/HelloController.groovy    |    0
 .../grails-app/init/springdm/Application.groovy    |    0
 .../grails-app/views/error.gsp                     |    0
 .../grails-app/views/index.gsp                     |    0
 .../grails-app/views/notFound.gsp                  |    0
 .../groovy/springdm/HelloControllerSpec.groovy     |    0
 end-to-end/taglib-index-incremental/build.gradle   |   57 +
 .../taglib/TagLibraryIndexIncrementalSpec.groovy   |  242 +
 etc/bin/Dockerfile                                 |   28 +-
 etc/bin/extract-build-artifact.sh                  |    6 +-
 etc/bin/rename_gradle_artifacts.sh                 |   11 +-
 etc/bin/test-bisect.groovy                         |   57 +-
 etc/bin/test-reproducible-builds.sh                |   18 +-
 etc/bin/verify-jar-artifacts.sh                    |   14 +
 etc/bin/verify-reproducible.sh                     |   66 +-
 etc/bin/verify.sh                                  |   20 -
 gradle-bootstrap/build.gradle                      |   47 +-
 gradle.properties                                  |   79 +-
 gradle/docs-dependencies.gradle                    |  110 +-
 gradle/functional-test-config.gradle               |   99 +-
 gradle/grails-data-tck-config.gradle               |    8 +
 gradle/grails-extension-gradle-config.gradle       |    3 +-
 gradle/hibernate5-test-config.gradle               |   25 +-
 gradle/hibernate7-test-config.gradle               |   25 +-
 gradle/mongodb-forked-test-config.gradle           |   21 +-
 gradle/mongodb-test-config.gradle                  |   18 +-
 gradle/publish-root-config.gradle                  |   19 +-
 gradle/rat-root-config.gradle                      |   10 +-
 gradle/redis-test-config.gradle                    |    5 +-
 gradle/spring-security-test-config.gradle          |   33 +-
 gradle/test-config.gradle                          |   73 +-
 gradle/wrapper/gradle-wrapper.jar                  |  Bin 48462 -> 47505 bytes
 gradle/wrapper/gradle-wrapper.properties           |    2 +-
 gradlew                                            |    4 +-
 gradlew.bat                                        |    4 +-
 .../async/factory/PromiseFactoryBuilder.groovy     |   18 +-
 .../future/CachedThreadPoolPromiseFactory.groovy   |    2 +
 .../factory/future/CompletableFuturePromise.groovy |  115 +
 .../future/CompletableFuturePromiseFactory.groovy  |  170 +
 .../factory/future/ExecutorPromiseFactory.groovy   |    2 +
 .../async/factory/future/FutureTaskPromise.groovy  |    2 +
 .../future/VirtualThreadPromiseFactory.groovy      |   38 +
 .../CompletableFuturePromiseFactorySpec.groovy     |  265 +
 .../test/groovy/grails/async/PromiseMapSpec.groovy |    2 +-
 .../test/groovy/grails/async/PromiseSpec.groovy    |    3 +-
 .../async/VirtualThreadPromiseFactorySpec.groovy   |  188 +
 grails-async/plugin/build.gradle                   |    7 +-
 .../groovy/grails/async/web/AsyncController.groovy |    4 +-
 .../grails/async/web/AsyncGrailsWebRequest.groovy  |    2 +
 .../groovy/grails/async/web/WebPromises.groovy     |   84 +-
 .../plugins/web/async/AsyncRequestSupport.groovy   |   61 +
 .../async/AsyncWebRequestPromiseDecorator.groovy   |   53 +-
 ...WebRequestPromiseDecoratorLookupStrategy.groovy |    2 +
 .../web/async/ControllersAsyncGrailsPlugin.groovy  |   60 +-
 .../plugins/web/async/GrailsAsyncContext.groovy    |    2 +
 .../web/async/GrailsWebRequestTaskDecorator.groovy |   68 +
 .../async/mvc/AsyncActionResultTransformer.groovy  |   98 +-
 .../web/async/spring/PromiseFactoryBean.groovy     |    2 +
 .../grails/async/services/WebPromisesSpec.groovy   |  212 +-
 ...equestPromiseDecoratorLookupStrategySpec.groovy |  102 +
 .../AsyncWebRequestPromiseDecoratorSpec.groovy     |  117 +
 .../async/ControllersAsyncGrailsPluginSpec.groovy  |  165 +-
 .../async/GrailsWebRequestTaskDecoratorSpec.groovy |   64 +
 .../mvc/AsyncActionResultTransformerSpec.groovy    |  164 +
 grails-beans-dsl/build.gradle                      |   73 +
 .../compiler/beans/ConditionalOnGrailsEnv.java     |   56 +
 .../java/grails/compiler/beans/GrailsBeans.java    |  355 +
 .../beans/AutoConfigurationImportsWriter.java      |  279 +
 .../beans/GrailsBeansASTTransformation.java        | 3319 +++++++++
 .../compiler/beans/OnGrailsEnvCondition.java       |  109 +
 .../AutoConfigurationImportsWriterSpec.groovy      |  355 +
 .../beans/GrailsBeansASTTransformationSpec.groovy  | 7371 ++++++++++++++++++++
 .../compiler/beans/OnGrailsEnvConditionSpec.groovy |  117 +
 grails-bom/hibernate5-micronaut/build.gradle       |  264 -
 grails-bom/hibernate7-micronaut/build.gradle       |  264 -
 grails-bom/micronaut/build.gradle                  |  265 -
 grails-bom/neo4j/build.gradle                      |  214 +
 grails-bootstrap/build.gradle                      |   50 +-
 .../groovy/grails/build/logging/ConsoleLogger.java |    0
 .../groovy/grails/build/logging/GrailsConsole.java | 1167 ++++
 .../grails/build/logging/GrailsEclipseConsole.java |    0
 .../CandidateListCompletionHandler.java            |    0
 .../org/grails/build/logging/ConsoleAnsi.java      |  146 +
 .../build/logging/GrailsConsoleAntBuilder.java     |    0
 .../build/logging/GrailsConsoleBuildListener.java  |    0
 .../logging/GrailsConsoleErrorPrintStream.java     |    0
 .../build/logging/GrailsConsolePrintStream.java    |    0
 .../groovy/grails/build/logging/GrailsConsole.java | 1075 ---
 .../org/grails/io/watch/DirectoryWatcher.java      |   74 +-
 .../logging/GrailsConsoleCompleterSpec.groovy      |    0
 .../build/logging/GrailsConsoleLoggingSpec.groovy  |  122 +
 .../grails/build/logging/GrailsConsoleSpec.groovy  |  298 +
 .../CandidateListCompletionHandlerSpec.groovy      |    0
 .../grails/build/logging/GrailsConsoleSpec.groovy  |  109 -
 .../grails/io/watch/DirectoryWatcherSpec.groovy    |  253 +
 grails-cache/build.gradle                          |    7 +
 .../grails/plugin/cache/CacheGrailsPlugin.groovy   |   99 +-
 .../cache/GrailsCacheAutoConfiguration.groovy      |   69 -
 ... additional-spring-configuration-metadata.json} |    0
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    2 +-
 .../plugin/cache/CacheAutoConfigurationSpec.groovy |  173 +
 .../plugin/cache/CacheGrailsPluginSpec.groovy      |   73 -
 .../cache/GrailsCacheAutoConfigurationSpec.groovy  |  108 -
 .../codecs/Base64CodecExtensionMethods.groovy      |   14 +-
 .../org/grails/plugins/codecs/DigestUtils.groovy   |   85 +-
 .../plugins/codecs/HexCodecExtensionMethods.groovy |   52 +-
 .../codecs/MD5BytesCodecExtensionMethods.groovy    |    7 +-
 .../plugins/codecs/MD5CodecExtensionMethods.groovy |   10 +-
 .../codecs/SHA1BytesCodecExtensionMethods.groovy   |    7 +-
 .../codecs/SHA1CodecExtensionMethods.groovy        |    9 +-
 .../codecs/SHA256BytesCodecExtensionMethods.groovy |    7 +-
 .../codecs/SHA256CodecExtensionMethods.groovy      |    9 +-
 .../org/grails/web/codecs/Base64CodecTests.groovy  |   12 +
 .../org/grails/web/codecs/HexCodecTests.groovy     |   24 +-
 grails-codecs/build.gradle                         |    4 +-
 .../grails/plugins/codecs/CodecsConfiguration.java |    6 +-
 .../plugins/codecs/CodecsConfigurationSpec.groovy  |   48 +
 .../grails/common/aot/AheadOfTimeProcessing.java   |   54 +
 .../apache/grails/common/aot/RegistrableTypes.java |  251 +
 .../common/compiler/GroovyTransformOrder.groovy    |   15 +-
 .../grails/common/reflect/ReflectionUtils.java     |  196 +
 .../grails/common/aot/RegistrableTypesSpec.groovy  |  194 +
 .../common/reflect/ReflectionUtilsSpec.groovy      |  174 +
 .../common/reflect/beans/PublicCovariantBase.java  |   25 +
 .../common/reflect/beans/PublicFieldBean.java      |   31 +
 .../grails/common/reflect/beans/PublicThing.java   |   25 +
 .../grails/common/reflect/beans/ThingFactory.java  |  106 +
 grails-configuration-metadata/build.gradle         |   44 +
 .../ConfigurationMetadataTransformation.groovy     |  349 +
 ...org.codehaus.groovy.transform.ASTTransformation |    1 +
 .../ConfigurationMetadataTransformationSpec.groovy |  700 ++
 grails-console/build.gradle                        |    3 +-
 .../GrailsApplicationContextCommandRunner.groovy   |   52 +-
 .../ui/script/GrailsApplicationScriptRunner.groovy |    3 +-
 ...railsApplicationContextCommandRunnerSpec.groovy |  100 +
 grails-controllers/build.gradle                    |    4 +-
 .../main/groovy/grails/artefact/Controller.groovy  |   77 +-
 .../controller/support/AllowedMethodsHelper.groovy |    6 +-
 .../controller/support/RequestForwarder.groovy     |    2 +-
 .../controller/support/ResponseRedirector.groovy   |    2 +-
 .../controller/support/ResponseRenderer.groovy     |   22 +-
 .../controllers/aot/ControllerRuntimeHints.java    |   92 +
 .../compiler/web/ControllerActionTransformer.java  |  219 +-
 .../controllers/ControllersAutoConfiguration.java  |   50 +-
 .../GrailsControllersEnvironmentPostProcessor.java |   60 +
 ...ilsHiddenHttpMethodFilterAutoConfiguration.java |   74 +
 .../api/ControllersDomainBindingApi.java           |   73 +-
 .../src/main/resources/META-INF/spring.factories   |    4 +-
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    1 +
 .../grails/artefact/ControllerRedirectSpec.groovy  |  230 +
 .../support/AllowedMethodsHelperSpec.groovy        |    2 +-
 .../controller/support/ResponseRendererSpec.groovy |  107 +
 .../aot/ControllerRuntimeHintsSpec.groovy          |   84 +
 ...tionTransformerSerializableParameterSpec.groovy |  171 +
 .../ControllersAutoConfigurationSpec.groovy        |  133 +-
 ...sControllersEnvironmentPostProcessorSpec.groovy |   55 +
 ...denHttpMethodFilterAutoConfigurationSpec.groovy |  148 +
 .../api/ControllersDomainBindingApiSpec.groovy     |  147 +
 grails-converters/build.gradle                     |    9 +-
 .../marshaller/json/GenericJavaBeanMarshaller.java |    9 +-
 .../marshaller/json/GroovyBeanMarshaller.java      |    8 +-
 .../marshaller/xml/GenericJavaBeanMarshaller.java  |   11 +-
 .../marshaller/xml/GroovyBeanMarshaller.java       |    8 +-
 .../groovy/grails/converters/XMLParseSpec.groovy   |   73 +
 .../beans/DynamicGroovyPersonFactory.groovy        |   41 +
 .../converters/beans/GroovyPersonFactory.groovy    |   81 +
 .../web/converters/beans/HiddenCovariantBase.java  |   28 +
 .../converters/beans/HiddenCovariantJavaBean.java  |   38 +
 .../web/converters/beans/JavaPersonFactory.java    |   92 +
 .../beans/PackagePrivateGroovyPerson.groovy        |   49 +
 .../converters/beans/PackagePrivateJavaPerson.java |   44 +
 .../PackagePrivateStandaloneGroovyBean.groovy      |   41 +
 .../beans/PackagePrivateStandaloneJavaBean.java    |   36 +
 .../grails/web/converters/beans/PublicPerson.java  |   35 +
 .../converters/beans/SerializableGroovyBean.groovy |   47 +
 .../web/converters/beans/SerializableJavaBean.java |   46 +
 .../json/NonPublicClassMarshallingSpec.groovy      |  314 +
 .../xml/NonPublicClassMarshallingSpec.groovy       |  322 +
 grails-core-cli-legacy/build.gradle                |   69 +
 .../grails/dev/commands/ApplicationCommand.groovy  |   77 +
 .../grails/dev/commands/ExecutionContext.groovy    |   55 +
 .../dev/commands/GrailsApplicationCommand.groovy   |   50 +
 .../dev/commands/io/FileSystemInteraction.groovy   |  146 +
 .../commands/io/FileSystemInteractionImpl.groovy   |  284 +
 .../dev/commands/template/TemplateException.groovy |   32 +
 .../dev/commands/template/TemplateRenderer.groovy  |  174 +
 .../commands/template/TemplateRendererImpl.groovy  |  235 +
 .../compat/LegacyApplicationCommandAdapter.groovy  |   90 +
 .../compat/LegacyApplicationCommandProvider.groovy |  163 +
 .../main/resources/META-INF/grails-cli.factories   |   16 +
 .../cli/LegacyCommandRegistryLoadingSpec.groovy    |  601 ++
 .../LegacyApplicationCommandAdapterSpec.groovy     |  107 +
 grails-core/build.gradle                           |   40 +-
 .../core/cli/ApplicationCommandDiagnostics.groovy  |   87 +
 .../ApplicationCommandFactoryKeyProvider.groovy    |   29 +
 .../core/cli/ApplicationCommandProvider.groovy     |   32 +
 .../core/cli/ApplicationCommandRegistrar.groovy    |   32 +
 .../core/cli/ApplicationCommandTargetAware.groovy  |   29 +
 .../cli/ApplicationContextCommandRegistry.groovy   |  216 +-
 .../compiler/CommandFactoriesTransformation.groovy |   14 +-
 .../core/cli/template/TemplateRendererImpl.groovy  |    3 +-
 .../main/groovy/grails/boot/GrailsBanner.groovy    |  446 +-
 .../config/GrailsApplicationPostProcessor.groovy   |   55 +-
 .../boot/config/GrailsAutoConfiguration.groovy     |   69 +-
 ...GrailsEarlyPluginRegistrationPostProcessor.java |   39 +-
 .../config/GrailsEnvironmentPostProcessor.java     |   18 +
 .../boot/config/tools/ClassPathScanner.groovy      |    2 +-
 .../src/main/groovy/grails/config/Settings.groovy  |   56 +-
 .../PersistenceContextInterceptorExecutor.groovy   |    3 +-
 .../grails/util/AbstractTypeConvertingMap.java     |   17 +
 .../src/main/groovy/grails/util/GrailsUtil.java    |   42 +-
 .../core/GrailsBootstrapRegistryInitializer.java   |  139 +
 .../aot/AbstractBeanDefinitionExcludeFilter.java   |   48 +
 ...assesBeanFactoryInitializationAotProcessor.java |  155 +
 .../AutowireModeBeanRegistrationAotProcessor.java  |   92 +
 .../grails/core/aot/BeanRegistrarRuntimeHints.java |   73 +
 .../grails/core/aot/GrailsApiRuntimeHints.java     |   90 +
 .../grails/core/aot/GrailsBannerRuntimeHints.java  |   70 +
 .../grails/core/aot/GrailsClosureRuntimeHints.java |  156 +
 .../core/aot/GrailsResourceRuntimeHints.java       |   99 +
 .../aot/GroovyExtensionModuleRuntimeHints.java     |  152 +
 .../aot/VarargsBeanRegistrationAotProcessor.java   |  193 +
 .../core/plugins/DefaultPluginDiscovery.java       |   57 +-
 .../apache/grails/core/plugins/PluginUtils.java    |    2 +
 .../TagLibraryInvokerTypeCheckingExtension.groovy  |    7 +
 .../injection/ArtefactTypeAstTransformation.java   |   25 +-
 .../DefaultGrailsDomainClassInjector.java          |    7 +
 .../injection/EntityASTTransformation.java         |   20 +-
 .../GlobalGrailsClassInjectorTransformation.groovy |  815 ++-
 .../injection/GrailsAwareInjectionOperation.java   |    2 +
 .../core/exceptions/DefaultErrorsPrinter.groovy    |    9 +-
 .../core/io/support/GrailsFactoriesLoader.groovy   |   54 +
 .../org/grails/plugins/CoreGrailsPlugin.groovy     |  240 +-
 .../plugins/ProfilingGrailsPluginManager.java      |   38 +-
 .../grails/plugins/core/CoreAutoConfiguration.java |   69 -
 .../org/grails/plugins/support/WatchPattern.groovy |    3 +-
 .../autoproxy/GroovyAwareAutoProxyCreators.java    |   83 +
 .../AbstractResourceLocatorPostProcessor.java      |   98 +
 ...sIgnoringComponentScanBeanDefinitionParser.java |  170 +-
 .../GrailsComponentScanPostProcessor.java          |   95 +
 .../support/GrailsPlaceholderConfigurer.java       |   14 +-
 .../PluginAwareResourceBundleMessageSource.java    |  308 -
 .../ReloadableResourceBundleMessageSource.java     |  735 --
 .../transaction/GrailsTransactionAttribute.java    |   54 +-
 .../grails/transaction/MultiTransactionStatus.java |    2 +-
 .../additional-spring-configuration-metadata.json  |  522 +-
 .../grails-core/native-image.properties            |   30 +
 .../META-INF/spring-configuration-metadata.json    |  346 -
 .../main/resources/META-INF/spring/aot.factories   |   17 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    2 +-
 .../core/cli/ApplicationCommandProviderSpec.groovy |  822 +++
 .../grails/core/cli/ConfigReportCommandSpec.groovy |    0
 .../CommandFactoriesTransformationSpec.groovy      |   61 +
 .../resources/META-INF/grails-cli.factories        |   16 +
 .../grails/boot/GrailsBannerColourSpec.groovy      |  156 +
 .../grails/boot/GrailsBannerNativeMarkSpec.groovy  |  225 +
 .../boot/GrailsBannerVersionLookupSpec.groovy      |  226 +
 .../EarlyPluginRegistrationOrderingSpec.groovy     |   87 +-
 ...icationPostProcessorAnnotationConfigSpec.groovy |   98 +
 .../GrailsAutoConfigurationArtefactsSpec.groovy    |   79 +
 .../GrailsEnvironmentPostProcessorSpec.groovy      |   19 +
 ...tGrailsPluginManagerRegistryContractSpec.groovy |  152 +
 .../plugins/DefaultGrailsPluginManagerSpec.groovy  |  140 +-
 ...aceHolderConfigurerCorePluginRuntimeSpec.groovy |   73 -
 .../grails/util/ActiveProcessorCountForkTests.java |   58 +
 .../grails/util/GrailsUtilStackFiltererSpec.groovy |  163 +
 .../GrailsBootstrapRegistryInitializerSpec.groovy  |  295 +
 .../AbstractBeanDefinitionExcludeFilterSpec.groovy |   79 +
 ...eanFactoryInitializationAotProcessorSpec.groovy |  163 +
 ...wireModeBeanRegistrationAotProcessorSpec.groovy |   70 +
 .../core/aot/BeanRegistrarRuntimeHintsSpec.groovy  |   85 +
 .../core/aot/GrailsApiRuntimeHintsSpec.groovy      |   88 +
 .../core/aot/GrailsBannerRuntimeHintsSpec.groovy   |   79 +
 .../core/aot/GrailsClosureRuntimeHintsSpec.groovy  |  101 +
 .../core/aot/GrailsResourceRuntimeHintsSpec.groovy |  100 +
 .../GroovyExtensionModuleRuntimeHintsSpec.groovy   |  115 +
 .../VarargsBeanRegistrationAotProcessorSpec.groovy |  162 +
 .../CommandFactoriesTransformationSpec.groovy      |   45 -
 .../grails/core/plugins/PluginDiscoverySpec.groovy |  276 +-
 .../DefaultDomainClassInjectorSpec.groovy          |   16 +
 ...balGrailsClassInjectorTransformationSpec.groovy | 1085 ++-
 .../reporting/StackTraceFiltererSpec.groovy        |   95 +-
 .../plugins/CoreAutoConfigurationSpec.groovy       |  199 +
 .../grails/plugins/CoreGrailsPluginAotSpec.groovy  |  186 +
 .../plugins/CoreGrailsPluginRegistrarSpec.groovy   |  291 +
 .../ProfilingGrailsPluginManagerSpec.groovy        |  161 +
 .../grails/plugins/SpringBeanPackagesSpec.groovy   |   86 +
 .../grails/plugins/scan/ScannedComponent.groovy    |   35 +
 .../GroovyAwareAutoProxyCreatorsSpec.groovy        |   90 +
 ...AbstractResourceLocatorPostProcessorSpec.groovy |  109 +
 .../context/ResourceBundleMessageSourceSpec.groovy |   67 -
 .../GrailsTransactionAttributeSpec.groovy          |  289 +
 .../org/grails/util/TypeConvertingMapTests.groovy  |   15 +
 .../grails/boot/version-in-a-resource.properties   |    5 +
 grails-core/src/test/resources/logback-test.xml    |   22 +
 .../grails/core/testing/support/LogCapture.groovy  |   99 +
 .../java}/org/grails/core/io/MockFileResource.java |    0
 .../org/grails/core/io/MockResourceLoader.java     |    0
 .../grails/core/io/MockStringResourceLoader.java   |    0
 .../grails/plugins/MockGrailsPluginManager.java    |    0
 .../org/grails/plugins/MockPluginDiscovery.java    |    0
 grails-data-docs/stage/build.gradle                |   11 +-
 grails-data-graphql/core/build.gradle              |    2 +
 .../grails/gorm/graphql/GraphQLEntityHelper.groovy |    4 +-
 .../groovy/org/grails/gorm/graphql/Schema.groovy   |    6 +-
 .../gorm/graphql/entity/EntityFetchOptions.java    |   41 +-
 .../graphql/entity/arguments/CustomArgument.groovy |    9 +-
 .../gorm/graphql/entity/dsl/GraphQLMapping.groovy  |   27 +-
 .../graphql/entity/dsl/helpers/Arguable.groovy     |    4 +-
 .../graphql/entity/dsl/helpers/ComplexTyped.groovy |   16 +-
 .../entity/operations/CustomOperation.groovy       |   12 +-
 .../property/impl/PersistentGraphQLProperty.groovy |   52 +-
 .../DefaultGraphQLDomainPropertyManager.groovy     |    2 +-
 .../fetcher/impl/CountEntityDataFetcher.groovy     |    8 +-
 .../gorm/graphql/MongoSchemaSpec.groovy.disabled   |  122 -
 .../org/grails/gorm/graphql/SchemaSpec.groovy      |   16 +-
 .../binding/DataBinderNotFoundExceptionSpec.groovy |   41 +
 .../graphql/entity/EntityFetchOptionsSpec.groovy   |  105 +
 .../entity/arguments/SimpleArgumentSpec.groovy     |   89 +
 .../graphql/entity/dsl/GraphQLMappingSpec.groovy   |   35 +-
 .../entity/dsl/helpers/ComplexTypedSpec.groovy     |   69 +
 .../HibernatePersistentGraphQLPropertySpec.groovy  |   18 +-
 .../DataFetcherNotFoundExceptionSpec.groovy        |   43 +
 .../fetcher/impl/ClosureDataFetcherSpec.groovy     |   40 +-
 .../impl/ClosureDataFetchingEnvironmentSpec.groovy |   75 +
 .../fetcher/impl/CountEntityDataFetcherSpec.groovy |   61 +
 .../impl/PaginatedEntityDataFetcherSpec.groovy     |   87 +
 .../impl/PersistentPropertyDataFetcherSpec.groovy  |   43 +
 .../CustomMutationInterceptorInvokerSpec.groovy    |   38 +
 .../CustomQueryInterceptorInvokerSpec.groovy       |   38 +
 .../MutationInterceptorInvokerSpec.groovy          |   28 +-
 .../interceptor/QueryInterceptorInvokerSpec.groovy |   28 +-
 .../CachingGraphQLResponseHandlerSpec.groovy       |   54 +
 .../DefaultGraphQLErrorsResponseHandlerSpec.groovy |   19 +
 .../gorm/graphql/types/KeyClassQuerySpec.groovy    |   81 +
 .../EmbeddedInputObjectTypeBuilderSpec.groovy      |    2 +-
 .../scalars/coercing/CurrencyCoercionSpec.groovy   |   83 +
 .../types/scalars/coercing/DateCoercionSpec.groovy |  119 +
 .../scalars/coercing/SqlDateCoercionSpec.groovy    |  110 +
 .../types/scalars/coercing/TimeCoercionSpec.groovy |  102 +
 .../scalars/coercing/TimeZoneCoercionSpec.groovy   |   78 +
 .../scalars/coercing/TimestampCoercionSpec.groovy  |  102 +
 .../types/scalars/coercing/URICoercionSpec.groovy  |   91 +
 .../types/scalars/coercing/URLCoercionSpec.groovy  |   91 +
 .../types/scalars/coercing/UUIDCoercionSpec.groovy |   97 +
 .../coercing/jsr310/InstantCoercionSpec.groovy     |   96 +
 .../coercing/jsr310/LocalDateCoercionSpec.groovy   |  101 +
 .../jsr310/LocalDateTimeCoercionSpec.groovy        |   93 +
 .../coercing/jsr310/LocalTimeCoercionSpec.groovy   |   93 +
 .../jsr310/OffsetDateTimeCoercionSpec.groovy       |   94 +
 .../coercing/jsr310/OffsetTimeCoercionSpec.groovy  |   94 +
 .../jsr310/ZonedDateTimeCoercionSpec.groovy        |   94 +
 .../gorm/graphql/testing/GraphQLSchemaSpec.groovy  |    0
 .../testing/MockDataFetchingEnvironment.groovy     |    0
 grails-data-graphql/plugin/build.gradle            |    4 +
 grails-data-hibernate5/core/build.gradle           |    5 +-
 .../AbstractHibernateGormInstanceApi.groovy        |  192 +-
 .../AbstractHibernateGormStaticApi.groovy          |   14 +-
 .../orm/hibernate/HibernateGormApiFactory.groovy   |    2 +-
 .../orm/hibernate/HibernateGormEnhancer.groovy     |    5 +-
 .../orm/hibernate/HibernateGormStaticApi.groovy    |  115 +-
 .../org/grails/orm/hibernate/HibernateSession.java |   11 +-
 .../orm/hibernate/cfg/GrailsHibernateUtil.java     |   19 +-
 .../hibernate/cfg/HibernateMappingBuilder.groovy   |    6 +-
 .../orm/hibernate/cfg/HibernateMappingContext.java |    1 +
 .../cfg/HibernateMappingContextConfiguration.java  |   55 +-
 .../compiler/HibernateEntityTransformation.groovy  |    5 +-
 .../HibernateConnectionSourceFactory.java          |   13 +-
 .../HibernateConnectionSourceSettings.groovy       |    2 +-
 .../query/AbstractHibernateCriteriaBuilder.java    |    9 +-
 .../hibernate/query/GrailsHibernateQueryUtils.java |   32 +-
 .../hibernate/support/HibernateRuntimeUtils.groovy |    3 +-
 ... additional-spring-configuration-metadata.json} |    0
 .../tests/Hibernate5JoinedLockDialectSpec.groovy   |  192 +
 .../gorm/tests/Hibernate5RefreshLockSpec.groovy    | 1945 ++++++
 .../gorm/tests/SortArgumentValidationSpec.groovy   |  206 +
 .../HibernateDatastoreMultiTenancySpec.groovy      |   48 +
 ...HibernateMappingContextConfigurationSpec.groovy |  263 +
 .../cfg/HibernateMappingContextSpec.groovy         |   84 +-
 .../HibernateConnectionSourceFactorySpec.groovy    |  145 +
 .../MultipleDataSourceConnectionsSpec.groovy       |   43 +
 grails-data-hibernate5/dbmigration/build.gradle    |    6 +
 .../databasemigration/DbUpdateCommandSpec.groovy   |    0
 .../DatabaseMigrationGrailsPlugin.groovy           |    2 +-
 ... additional-spring-configuration-metadata.json} |    0
 ...ationContextDatabaseMigrationCommandSpec.groovy |  136 +
 .../cli/DatabaseMigrationCommandConfigSpec.groovy  |    0
 .../cli/DatabaseMigrationCommandSpec.groovy        |    0
 .../cli/DbmChangelogSyncCommandSpec.groovy         |    0
 .../cli/DbmChangelogSyncCommandSqlSpec.groovy      |    0
 .../cli/DbmClearChecksumsCommandSpec.groovy        |    0
 .../dbmigration/cli/DbmDiffCommandSpec.groovy      |    0
 .../dbmigration/cli/DbmDropAllCommandSpec.groovy   |    0
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |    0
 .../cli/DbmFutureRollbackSqlCommandSpec.groovy     |    0
 .../cli/DbmGenerateChangelogCommandSpec.groovy     |    0
 .../cli/DbmGenerateGormChangelogCommandSpec.groovy |    0
 .../dbmigration/cli/DbmGormDiffCommandSpec.groovy  |    0
 .../dbmigration/cli/DbmListLocksCommandSpec.groovy |    0
 .../cli/DbmMarkNextChangesetRanCommandSpec.groovy  |    0
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |    0
 .../cli/DbmPreviousChangesetSqlCommandSpec.groovy  |    0
 .../cli/DbmReleaseLocksCommandSpec.groovy          |    0
 .../dbmigration/cli/DbmRollbackCommandSpec.groovy  |    0
 .../cli/DbmRollbackCountCommandSpec.groovy         |    0
 .../cli/DbmRollbackCountSqlCommandSpec.groovy      |    0
 .../cli/DbmRollbackSqlCommandSpec.groovy           |    0
 .../cli/DbmRollbackToDateCommandSpec.groovy        |    0
 .../cli/DbmRollbackToDateSqlCommandSpec.groovy     |    0
 .../dbmigration/cli/DbmStatusCommandSpec.groovy    |    0
 .../dbmigration/cli/DbmUpdateCommandSpec.groovy    |    0
 .../cli/DbmUpdateCountCommandSpec.groovy           |    0
 .../cli/DbmUpdateCountSqlCommandSpec.groovy        |    0
 .../dbmigration/cli/DbmUpdateSqlCommandSpec.groovy |    0
 .../dbmigration/cli/DbmValidateCommandSpec.groovy  |    0
 .../cli/ScriptDatabaseMigrationCommandSpec.groovy  |    0
 .../liquibase/GroovyChangeLogSpec.groovy           |    0
 .../liquibase/GroovyPreconditionSpec.groovy        |    0
 .../resources/logging.properties                   |    0
 ...ationContextDatabaseMigrationCommandSpec.groovy |  127 -
 grails-data-hibernate5/docs/build.gradle           |    1 -
 .../multipleDataSources/dataSourceNamespaces.adoc  |   13 +
 .../docs/asciidoc/persistenceBasics/locking.adoc   |  159 +-
 .../docs/src/docs/asciidoc/querying/finders.adoc   |    2 +
 grails-data-hibernate5/grails-plugin/build.gradle  |    7 +-
 .../data/hibernate5/cli/SchemaExportCommand.groovy |   23 +-
 .../HibernateDatastoreSpringInitializer.groovy     |   10 +-
 .../plugin/hibernate/HibernateGrailsPlugin.groovy  |    4 +-
 .../commands/SchemaExportCommandSpec.groovy        |  140 +
 grails-data-hibernate7/core/build.gradle           |    5 +-
 .../groovy/grails/orm/CriteriaMethodInvoker.java   |   17 +-
 .../orm/hibernate/EventListenerIntegrator.java     |   68 +-
 .../orm/hibernate/HibernateGormEnhancer.groovy     |    2 +-
 .../orm/hibernate/HibernateGormInstanceApi.groovy  |  118 +-
 .../orm/hibernate/HibernateGormStaticApi.groovy    |  135 +-
 .../org/grails/orm/hibernate/HibernateSession.java |   11 +-
 .../orm/hibernate/cfg/HibernateMappingContext.java |    1 +
 .../cfg/HibernateMappingContextConfiguration.java  |   46 +-
 .../cfg/domainbinding/binder/ColumnBinder.java     |    8 +-
 .../cfg/domainbinding/binder/EnumTypeBinder.java   |   59 +-
 .../domainbinding/binder/GrailsPropertyBinder.java |    6 +-
 .../binder/NumericColumnConstraintsBinder.java     |   36 +-
 .../cfg/domainbinding/binder/PropertyBinder.java   |    8 +-
 .../domainbinding/binder/SimpleValueBinder.java    |    5 +-
 .../binder/StringColumnConstraintsBinder.java      |   20 +-
 .../generator/GrailsSequenceStyleGenerator.java    |   24 +
 .../hibernate/HibernateBasicEnumProperty.java      |   80 +
 .../hibernate/HibernateEnumProperty.java           |   47 +-
 .../hibernate/HibernateMappingFactory.groovy       |   11 +-
 .../hibernate/HibernateToManyProperty.java         |   72 +-
 .../secondpass/BasicCollectionElementBinder.java   |    9 +-
 .../domainbinding/util/CascadeBehaviorFetcher.java |   25 +-
 .../cfg/domainbinding/util/GrailsEnumType.java     |   40 +-
 .../domainbinding/util/TableForManyCalculator.java |    5 +-
 .../compiler/HibernateEntityTransformation.groovy  |    5 +-
 .../HibernateConnectionSourceSettings.groovy       |    8 +-
 .../orm/hibernate/query/HqlListQueryBuilder.java   |   40 +-
 .../support/ClosureEventTriggeringInterceptor.java |   96 +
 ...rnateDatastoreConnectionSourcesRegistrar.groovy |    7 +-
 ... additional-spring-configuration-metadata.json} |    0
 .../grails/gorm/tests/EnumHasManyDdlSpec.groovy    |  248 +
 .../gorm/tests/Hibernate7RefreshLockSpec.groovy    | 1926 +++++
 .../gorm/tests/HibernateMappingFactorySpec.groovy  |    7 +-
 .../groovy/grails/gorm/tests/Issue16349Spec.groovy |  228 +
 .../grails/gorm/tests/RLikeHibernate7Spec.groovy   |    9 +-
 .../gorm/tests/SortArgumentValidationSpec.groovy   |  389 ++
 .../tests/hibernatequery/HibernateQuerySpec.groovy |   41 +
 .../grails/orm/CriteriaMethodInvokerSpec.groovy    |   45 +
 .../hibernate/EventListenerIntegratorSpec.groovy   |  111 +
 .../GormNumericTypeColumnIntegrationSpec.groovy    |  101 +
 .../GormNumericTypeColumnPrecisionSpec.groovy      |  108 +
 .../GormTextTypeColumnIntegrationSpec.groovy       |  105 +
 .../hibernate/GormTextTypeColumnLengthSpec.groovy  |   99 +
 .../HibernateDatastoreMultiTenancySpec.groovy      |   48 +
 .../hibernate/HibernateGormInstanceApiSpec.groovy  |   60 +-
 .../cfg/GrailsHibernatePersistentEntitySpec.groovy |    3 +
 ...HibernateMappingContextConfigurationSpec.groovy |  157 +
 .../cfg/HibernateMappingContextSpec.groovy         |  131 +-
 .../cfg/domainbinding/ColumnBinderSpec.groovy      |   36 +-
 .../cfg/domainbinding/EnumTypeBinderSpec.groovy    |   52 +-
 .../domainbinding/GrailsPropertyBinderSpec.groovy  |   68 +
 .../NumericColumnConstraintsBinderSpec.groovy      |   85 +-
 .../cfg/domainbinding/PropertyBinderSpec.groovy    |   28 +-
 .../domainbinding/SequenceGeneratorsSpec.groovy    |   45 +
 .../cfg/domainbinding/SimpleValueBinderSpec.groovy |   70 +-
 .../StringColumnConstraintsBinderSpec.groovy       |   78 +-
 .../TableForManyCalculatorSpec.groovy              |   25 +
 .../GrailsSequenceStyleGeneratorSpec.groovy        |   89 +-
 .../hibernate/HibernateBasicPropertySpec.groovy    |   40 +-
 .../hibernate/HibernateToManyPropertySpec.groovy   |  104 +-
 .../BasicCollectionElementBinderSpec.groovy        |   11 +-
 ...rnateConnectionSourceSettingsBuilderSpec.groovy |   14 +
 .../HibernateConnectionSourceSettingsSpec.groovy   |   23 +-
 .../MultipleDataSourceConnectionsSpec.groovy       |   43 +
 .../hibernate/query/HqlListQueryBuilderSpec.groovy |  125 +
 .../ClosureEventTriggeringInterceptorSpec.groovy   |  117 +
 ...eDatastoreConnectionSourcesRegistrarSpec.groovy |   20 +-
 grails-data-hibernate7/dbmigration/build.gradle    |    8 +-
 .../databasemigration/DbUpdateCommandSpec.groovy   |    0
 ... additional-spring-configuration-metadata.json} |    0
 ...ationContextDatabaseMigrationCommandSpec.groovy |  136 +
 .../cli/DatabaseMigrationCommandConfigSpec.groovy  |    0
 .../cli/DatabaseMigrationCommandSpec.groovy        |    0
 .../cli/DbmChangelogSyncCommandSpec.groovy         |    0
 .../cli/DbmChangelogSyncCommandSqlSpec.groovy      |    0
 .../cli/DbmClearChecksumsCommandSpec.groovy        |    0
 .../dbmigration/cli/DbmDiffCommandSpec.groovy      |    0
 .../dbmigration/cli/DbmDropAllCommandSpec.groovy   |    0
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |    0
 .../cli/DbmFutureRollbackSqlCommandSpec.groovy     |    0
 .../cli/DbmGenerateChangelogCommandSpec.groovy     |    0
 .../cli/DbmGenerateGormChangelogCommandSpec.groovy |    0
 .../dbmigration/cli/DbmGormDiffCommandSpec.groovy  |    0
 .../dbmigration/cli/DbmListLocksCommandSpec.groovy |    0
 .../cli/DbmMarkNextChangesetRanCommandSpec.groovy  |    0
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |    0
 .../cli/DbmPreviousChangesetSqlCommandSpec.groovy  |    0
 .../cli/DbmReleaseLocksCommandSpec.groovy          |    0
 .../dbmigration/cli/DbmRollbackCommandSpec.groovy  |    0
 .../cli/DbmRollbackCountCommandSpec.groovy         |    0
 .../cli/DbmRollbackCountSqlCommandSpec.groovy      |    0
 .../cli/DbmRollbackSqlCommandSpec.groovy           |    0
 .../cli/DbmRollbackToDateCommandSpec.groovy        |    0
 .../cli/DbmRollbackToDateSqlCommandSpec.groovy     |    0
 .../dbmigration/cli/DbmStatusCommandSpec.groovy    |    0
 .../dbmigration/cli/DbmUpdateCommandSpec.groovy    |    0
 .../cli/DbmUpdateCountCommandSpec.groovy           |    0
 .../cli/DbmUpdateCountSqlCommandSpec.groovy        |    0
 .../dbmigration/cli/DbmUpdateSqlCommandSpec.groovy |    0
 .../dbmigration/cli/DbmValidateCommandSpec.groovy  |    0
 .../cli/ScriptDatabaseMigrationCommandSpec.groovy  |    0
 .../liquibase/GroovyChangeLogSpec.groovy           |    0
 .../liquibase/GroovyPreconditionSpec.groovy        |    0
 .../src/test-cli}/resources/logging.properties     |    0
 ...ationContextDatabaseMigrationCommandSpec.groovy |  132 -
 grails-data-hibernate7/docs/build.gradle           |    1 -
 .../eventsAutoTimestamping.adoc                    |    6 +
 .../ormdsl/customNamingStrategy.adoc               |    4 +
 .../ormdsl/optimisticLockingAndVersioning.adoc     |    4 +-
 .../asciidoc/gettingStarted/hibernateVersions.adoc |   12 -
 .../multipleDataSources/dataSourceNamespaces.adoc  |   13 +
 .../docs/asciidoc/persistenceBasics/locking.adoc   |  136 +-
 .../docs/src/docs/asciidoc/querying/finders.adoc   |    2 +
 grails-data-hibernate7/grails-plugin/build.gradle  |    6 +
 .../data/hibernate7/cli/SchemaExportCommand.groovy |   23 +-
 .../HibernateDatastoreSpringInitializer.groovy     |   10 +-
 .../commands/SchemaExportCommandSpec.groovy        |  140 +
 grails-data-mongodb/boot-plugin/build.gradle       |    5 +-
 .../MongoDbGormAutoConfiguration.groovy            |   32 +-
 .../MongoDbGormAutoConfigurationCloseSpec.groovy   |  114 +-
 .../encoders/BasicCollectionTypeEncoder.groovy     |    3 +-
 .../grails/datastore/bson/json/JsonScanner.java    |    5 +-
 .../org/grails/datastore/bson/query/BsonQuery.java |  126 +-
 .../codecs/CodecCustomTypeMarshallerSpec.groovy    |   79 +
 .../bson/codecs/CodecExtensionsSpec.groovy         |  450 ++
 .../datastore/bson/codecs/SimpleCodecsSpec.groovy  |  256 +
 .../decoders/BasicCollectionTypeDecoderSpec.groovy |  155 +
 .../codecs/decoders/CustomTypeDecoderSpec.groovy   |  146 +
 .../decoders/EmbeddedCollectionDecoderSpec.groovy  |  148 +
 .../codecs/decoders/EmbeddedDecoderSpec.groovy     |  120 +
 .../codecs/decoders/IdentityDecoderSpec.groovy     |  120 +
 .../bson/codecs/decoders/SimpleDecoderSpec.groovy  |  158 +
 .../decoders/TemporalTypeDecodersSpec.groovy       |   64 +
 .../codecs/decoders/TenantIdDecoderSpec.groovy     |   91 +
 .../datastore/bson/codecs/domain/Address.groovy    |   31 +
 .../datastore/bson/codecs/domain/Profile.groovy    |   36 +
 .../encoders/BasicCollectionTypeEncoderSpec.groovy |  179 +
 .../codecs/encoders/CustomTypeEncoderSpec.groovy   |  116 +
 .../encoders/EmbeddedCollectionEncoderSpec.groovy  |  213 +
 .../codecs/encoders/EmbeddedEncoderSpec.groovy     |  153 +
 .../codecs/encoders/IdentityEncoderSpec.groovy     |  215 +
 .../bson/codecs/encoders/SimpleEncoderSpec.groovy  |  189 +
 .../encoders/TemporalTypeEncodersSpec.groovy       |   70 +
 .../codecs/encoders/TenantIdEncoderSpec.groovy     |   65 +
 .../datastore/bson/json/JsonReaderSpec.groovy      |  457 ++
 .../datastore/bson/json/JsonWriterSpec.groovy      |  342 +
 .../datastore/bson/query/BsonQuerySpec.groovy      |  217 +-
 grails-data-mongodb/core/build.gradle              |   14 +-
 .../main/groovy/grails/mongodb/MongoEntity.groovy  |    6 +-
 .../MongoDbDataStoreSpringInitializer.groovy       |   29 +-
 .../gorm/mongo/MongoEntityTraitProvider.groovy     |   15 +
 .../gorm/mongo/MongoGormApiFactory.groovy          |    4 +-
 .../datastore/gorm/mongo/MongoGormEnhancer.groovy  |    4 +-
 .../datastore/gorm/mongo/api/MongoStaticApi.groovy |   25 +-
 .../datastore/gorm/mongo/simple/EnumType.groovy    |    3 +-
 .../mapping/mongo/AbstractMongoSession.java        |   14 +-
 .../mapping/mongo/MongoCodecSession.groovy         |  105 +-
 .../datastore/mapping/mongo/MongoDatastore.java    | 1011 ++-
 .../datastore/mapping/mongo/MongoSession.java      |  148 +-
 .../datastore/mapping/mongo/MongoTransaction.java  |   11 +-
 .../mapping/mongo/config/MongoMappingContext.java  |   47 +-
 .../mapping/mongo/config/MongoSettings.groovy      |   48 +-
 .../AbstractMongoConnectionSourceSettings.groovy   |   22 +
 .../mongo/connections/MongoConnectionSource.groovy |  100 +
 .../MongoConnectionSourceFactory.groovy            |    9 +-
 .../mongo/connections/StringIdSettings.groovy      |    2 +-
 .../engine/AbstractMongoObectEntityPersister.java  |   36 +-
 .../mapping/mongo/engine/MongoEntityPersister.java |   18 +-
 .../mapping/mongo/engine/MongoIdCoercion.java      |   24 +
 .../engine/codecs/PersistentEntityCodec.groovy     |   39 +-
 .../datastore/mapping/mongo/query/MongoQuery.java  |   73 +-
 ...toreSpringInitializerBeanDefinitionsSpec.groovy |   85 +
 .../groovy/grails/mongodb/geo/DistanceSpec.groovy  |   63 +
 .../mongo/core/GrailsDataMongoTckManager.groovy    |   34 +-
 .../core/GrailsDataMongoTckManagerSpec.groovy      |   71 +
 .../mongo/BrokenManyToManyAssociationSpec.groovy   |    3 +-
 .../gorm/mongo/BuildIndexesAsyncSpec.groovy        |  247 +
 .../mongo/BuildIndexesBackgroundFailureSpec.groovy |  198 +
 .../BuildIndexesClassificationCostSpec.groovy      |  168 +
 .../gorm/mongo/BuildIndexesDisabledSpec.groovy     |  110 +
 .../mongo/BuildIndexesEnabledByDefaultSpec.groovy  |   77 +
 .../mongo/BuildIndexesFailureSummarySpec.groovy    |  135 +
 .../gorm/mongo/BuildIndexesHookSpec.groovy         |  141 +
 .../gorm/mongo/BuildIndexesKeyOrderSpec.groovy     |   93 +
 .../gorm/mongo/BuildIndexesLifecycleSpec.groovy    |  326 +
 .../gorm/mongo/BuildIndexesNameConflictSpec.groovy |  132 +
 .../gorm/mongo/BuildIndexesOnDemandSpec.groovy     |  191 +
 .../BuildIndexesPartialClassificationSpec.groovy   |  141 +
 .../mongo/BuildIndexesRecreateSummarySpec.groovy   |   95 +
 .../mongo/BuildIndexesStaleSnapshotSpec.groovy     |  124 +
 .../gorm/mongo/BuildIndexesSummaryLogSpec.groovy   |  137 +
 .../mongo/BuildIndexesUnfinishedSummarySpec.groovy |  143 +
 .../BuildIndexesUnreadableIndexListSpec.groovy     |  136 +
 .../grails/datastore/gorm/mongo/CapturedLog.groovy |   70 +
 .../EmbeddedCollectionDirtyTrackingSpec.groovy     |  159 +
 .../EmbeddedWithNonEmbeddedCollectionsSpec.groovy  |    9 +-
 .../datastore/gorm/mongo/FailingMongoClient.groovy |   84 +
 .../mongo/HasManyReassignDirtyTrackingSpec.groovy  |   83 +
 .../gorm/mongo/MapCriterionValueSpec.groovy        |  128 +
 .../gorm/mongo/MongoEntityIdentityTypeSpec.groovy  |  129 +
 .../gorm/mongo/MultipleConnectionsSpec.groovy      |  205 +-
 .../mongo/PortableIdentityPersistenceSpec.groovy   |   47 +
 .../gorm/mongo/SwitchDatabaseAtRuntimeSpec.groovy  |   75 +
 .../gorm/mongo/TextIndexViaAttributesSpec.groovy   |   31 +-
 .../bugs/MappingEngineStringIdStorageSpec.groovy   |  458 ++
 .../gorm/mongo/bugs/MongoIdCoercionSpec.groovy     |  161 +
 .../bugs/StringIdAssociationStorageSpec.groovy     |  639 ++
 .../bugs/StringIdDefaultStoredAsConfigSpec.groovy  |   60 +-
 .../bugs/StringIdWithObjectIdStorageSpec.groovy    |   31 +
 .../BuildIndexesPerConnectionSpec.groovy           |  310 +
 .../BuildIndexesSharedDeclarationSpec.groovy       |   79 +
 .../CheckpointRestoreConnectionsSpec.groovy        |  111 +
 .../connections/SchemaBasedMultiTenancySpec.groovy |   38 +-
 .../SuppliedMongoClientSettingsSpec.groovy         |  206 +
 .../MongoTransactionDisabledSpec.groovy            |   41 +-
 .../mongo/transactions/MongoTransactionSpec.groovy |   28 +-
 .../mongo/MongoDatastoreExternalClientSpec.groovy  |    7 +
 .../mongo/MongoDatastoreLifecycleSpec.groovy       |  363 +
 .../config/MongoConfigurationMetadataSpec.groovy   |   71 +
 .../config/MongoConnectionSourceFactorySpec.groovy |    4 +
 .../MongoConnectionSourceSettingsSpec.groovy       |  130 +
 .../mongo/config/MongoMappingContextSpec.groovy    |  113 +
 .../connections/MongoConnectionSourceSpec.groovy   |  120 +
 .../mongo/engine/MongoIdCoercionSpec.groovy        |  187 +
 .../core/src/test/resources/logback-test.xml       |   34 +
 grails-data-mongodb/docs/build.gradle              |    1 -
 .../asciidoc/gettingStarted/advancedConfig.adoc    |   51 +-
 .../asciidoc/gettingStarted/embeddedMongo.adoc     |  229 +
 .../asciidoc/gettingStarted/springDataInterop.adoc |    4 +-
 .../docs/src/docs/asciidoc/index.adoc              |    3 +
 .../docs/asciidoc/introduction/releaseNotes.adoc   |    8 +-
 .../docs/asciidoc/introduction/upgradeNotes.adoc   |   65 +
 .../multipleDataSources/mongoClientSwitching.adoc  |    4 +-
 .../docs/asciidoc/objectMapping/dirtyChecking.adoc |   30 +-
 .../docs/asciidoc/objectMapping/idGeneration.adoc  |   70 +-
 .../src/docs/asciidoc/querying/queryIndexes.adoc   |  155 +
 .../src/docs/asciidoc/querying/queryingBasics.adoc |   51 +
 .../docs/src/docs/asciidoc/testing.adoc            |    2 +-
 .../docs/src/docs/asciidoc/transactions.adoc       |   30 +-
 grails-data-mongodb/embedded/build.gradle          |   87 +
 .../mongodb/embedded/EmbeddedMongoBackend.java     |   58 +
 .../mongodb/embedded/EmbeddedMongoInitializer.java |  452 ++
 .../mongodb/embedded/EmbeddedMongoLifecycle.java   |   85 +
 .../mongodb/embedded/EmbeddedMongoSettings.java    |  132 +
 .../mongodb/embedded/FlapdoodleMongoBackend.java   |  277 +
 .../mongodb/embedded/InMemoryMongoBackend.java     |  167 +
 .../gorm/mongodb/embedded/ReplicaSetInitiator.java |  115 +
 .../mongodb/embedded/RunningEmbeddedMongo.java     |   66 +
 .../src/main/resources/META-INF/spring.factories   |    2 +
 .../embedded/EmbeddedMongoInitializerSpec.groovy   |  635 ++
 .../embedded/EmbeddedMongoLifecycleSpec.groovy     |  374 +
 .../embedded/EmbeddedMongoReplicaSetSpec.groovy    |  149 +
 .../embedded/EmbeddedMongoSettingsSpec.groovy      |   70 +
 .../embedded/FlapdoodleMongoBackendSpec.groovy     |   56 +
 .../embedded/InMemoryMongoBackendSpec.groovy       |  109 +
 .../embedded/ContextStoppedServerApplication.java  |   56 +
 grails-data-mongodb/ext/build.gradle               |    4 +
 .../mongo/extensions/MongoExtensionsSpec.groovy    | 1195 ++++
 grails-data-mongodb/grails-plugin/build.gradle     |   10 +
 .../plugins/mongodb/MongodbGrailsPlugin.groovy     |    2 +-
 .../additional-spring-configuration-metadata.json  |  172 +
 .../META-INF/spring-configuration-metadata.json    |  160 -
 .../plugins/mongodb/MongodbGrailsPluginSpec.groovy |  117 +
 grails-data-mongodb/spring-data/build.gradle       |    9 +-
 .../SpringDataMongoGormAutoConfiguration.groovy    |    7 +-
 .../DatastoreMongoClientDatabaseFactory.java       |   52 +
 ...SharedSessionMongoTransactionManagerSpec.groovy |  137 +
 ...ataMongoGormAutoConfigurationContextSpec.groovy |   20 +
 .../SpringDataMongoGormRestoreSpec.groovy          |   65 +
 .../springdata/UnifiedMongoTransactionSpec.groovy  |   44 +-
 .../GormSpringDataSessionSupportSpec.groovy        |   11 +-
 grails-data-neo4j/README.md                        |   25 +-
 grails-data-neo4j/boot-plugin/build.gradle         |   60 +-
 .../autoconfigure/Neo4jAutoConfiguration.groovy    |   16 +-
 .../Neo4jAutoConfigurationSpec.groovy              |   17 +-
 grails-data-neo4j/build.gradle                     |  374 -
 grails-data-neo4j/core/build.gradle                |   97 +
 .../src/main/groovy/grails/neo4j/Direction.groovy  |   57 +
 .../main/groovy/grails/neo4j/Neo4jEntity.groovy    |  281 +
 .../core/src/main/groovy/grails/neo4j/Node.groovy  |  144 +
 .../core/src/main/groovy/grails/neo4j/Path.groovy  |   65 +
 .../main/groovy/grails/neo4j/Relationship.groovy   |  114 +
 .../grails/neo4j/mapping/MappingBuilder.groovy     |  109 +
 .../groovy/grails/neo4j/services/Cypher.groovy     |   38 +
 .../grails/datastore/gorm/neo4j/CypherBuilder.java |  288 +
 .../datastore/gorm/neo4j/GraphClassMapping.groovy  |   47 +
 .../gorm/neo4j/GraphGormMappingFactory.groovy      |   94 +
 .../gorm/neo4j/GraphPersistentEntity.groovy        |  658 ++
 .../grails/datastore/gorm/neo4j/IdGenerator.java   |   58 +
 .../datastore/gorm/neo4j/Neo4jDatastore.java       |  606 ++
 .../neo4j/Neo4jDatastoreTransactionManager.java    |  118 +
 .../gorm/neo4j/Neo4jEntityTraitProvider.groovy     |   38 +
 .../gorm/neo4j/Neo4jGormApiFactory.groovy          |   50 +
 .../datastore/gorm/neo4j/Neo4jMappingContext.java  |  221 +
 .../grails/datastore/gorm/neo4j/Neo4jSession.java  | 1075 +++
 .../datastore/gorm/neo4j/Neo4jTransaction.groovy   |  110 +
 .../gorm/neo4j/RelationshipPersistentEntity.groovy |  197 +
 .../datastore/gorm/neo4j/RelationshipUtils.groovy  |  199 +
 .../datastore/gorm/neo4j/SessionFlushedEvent.java  |   38 +
 .../datastore/gorm/neo4j/TypeDirectionPair.java    |   84 +
 .../gorm/neo4j/api/Neo4jGormStaticApi.groovy       |  560 ++
 .../gorm/neo4j/collection/GraphAdapter.groovy      |  119 +
 .../collection/Neo4jAssociationResultList.groovy   |   50 +
 .../gorm/neo4j/collection/Neo4jList.groovy         |  117 +
 .../gorm/neo4j/collection/Neo4jPath.groovy         |  198 +
 .../neo4j/collection/Neo4jPersistentList.groovy    |  126 +
 .../neo4j/collection/Neo4jPersistentSet.groovy     |  126 +
 .../collection/Neo4jPersistentSortedSet.groovy     |  127 +
 .../gorm/neo4j/collection/Neo4jRelationship.groovy |   69 +
 .../gorm/neo4j/collection/Neo4jResultList.groovy   |  163 +
 .../gorm/neo4j/collection/Neo4jSet.groovy          |  108 +
 .../gorm/neo4j/collection/Neo4jSortedSet.groovy    |  104 +
 .../neo4j/config/Neo4jDriverConfigBuilder.groovy   |   90 +
 .../datastore/gorm/neo4j/config/Settings.java      |  101 +
 .../connections/Neo4jConnectionSourceFactory.java  |  133 +
 .../Neo4jConnectionSourceSettings.groovy           |  105 +
 .../Neo4jConnectionSourceSettingsBuilder.groovy    |   51 +
 .../connections/Neo4jEmbeddedConnectionSource.java |   55 +
 .../neo4j/engine/DynamicAssociationSupport.java    |  146 +
 .../engine/Neo4jAssociationQueryExecutor.groovy    |  250 +
 .../gorm/neo4j/engine/Neo4jEntityPersister.java    | 1159 +++
 .../Neo4jModificationTrackingEntityAccess.groovy   |   56 +
 .../datastore/gorm/neo4j/engine/Neo4jQuery.groovy  |  969 +++
 .../neo4j/engine/RelationshipPendingDelete.java    |  105 +
 .../neo4j/engine/RelationshipPendingInsert.java    |  210 +
 .../gorm/neo4j/extensions/Neo4jExtensions.groovy   |  183 +
 .../gorm/neo4j/identity/SnowflakeIdGenerator.java  |  117 +
 .../gorm/neo4j/mapping/config/Attribute.groovy     |   69 +
 .../neo4j/mapping/config/DynamicAssociation.java   |   32 +
 .../mapping/config/DynamicToManyAssociation.java   |   44 +
 .../mapping/config/DynamicToOneAssociation.java    |   57 +
 .../gorm/neo4j/mapping/config/NodeConfig.groovy    |   58 +
 .../neo4j/mapping/config/RelationshipConfig.groovy |   47 +
 .../neo4j/mapping/reflect/Neo4jNameUtils.groovy    |   50 +
 .../datastore/gorm/neo4j/parsers/PlingStemmer.java |  966 +++
 .../proxy/HashcodeEqualsAwareProxyFactory.java     |  118 +
 .../proxy/Neo4jAssociationQueryProxyHandler.java   |   51 +
 .../gorm/neo4j/proxy/Neo4jProxyFactory.java        |   38 +
 .../FindAllCypherQueryImplementer.groovy           |   58 +
 .../FindOneCypherQueryImplementer.groovy           |   51 +
 .../FindPathCypherQueryImplementer.groovy          |   61 +
 .../FindShortestPathImplementer.groovy             |   94 +
 .../StatementResultCypherQueryImplementer.groovy   |   57 +
 .../UpdateCypherQueryImplementer.groovy            |  101 +
 .../transform/CypherQueryStringTransformer.groovy  |   62 +
 .../gorm/neo4j/util/EmbeddedNeo4jServer.java       |  209 +
 .../datastore/gorm/neo4j/util/IteratorUtil.java    |   81 +
 .../org.codehaus.groovy.runtime.ExtensionModule    |    0
 ...rg.grails.compiler.gorm.GormEntityTraitProvider |    0
 ...ails.datastore.gorm.services.ServiceImplementer |    0
 .../groovy/grails/gorm/tests/AssignedIdSpec.groovy |    0
 .../grails/gorm/tests/CascadingDeleteSpec.groovy   |  116 +
 .../CustomLabelWithDynamicAssociationSpec.groovy   |   73 +
 .../grails/gorm/tests/CypherQueryStringSpec.groovy |  171 +
 .../grails/gorm/tests/EagerFetchingSpec.groovy     |  126 +
 .../grails/gorm/tests/EntityParseSpec.groovy       |    0
 .../grails/gorm/tests/FindByIsNullSpec.groovy      |   50 +
 .../grails/gorm/tests/GroovyProxySpec.groovy       |  129 +
 .../gorm/tests/HasManyInheritanceSpec.groovy       |    0
 .../tests/HasManyReassignDirtyCheckingSpec.groovy  |   77 +
 .../grails/gorm/tests/InheritanceProxySpec.groovy  |   66 +
 .../grails/gorm/tests/JavaxValidationSpec.groovy   |   53 +
 .../grails/gorm/tests/JoinCriteriaSpec.groovy      |   83 +
 .../grails/gorm/tests/LabelStrategySpec.groovy     |  330 +
 .../groovy/grails/gorm/tests/LikeQuerySpec.groovy  |  128 +
 .../grails/gorm/tests/ManyToManyQuerySpec.groovy   |   77 +
 .../groovy/grails/gorm/tests/ManyToManySpec.groovy |  367 +
 .../grails/gorm/tests/MapPropertySpec.groovy       |   56 +
 .../grails/gorm/tests/MarkDirtyFalseSpec.groovy    |  111 +
 .../test/groovy/grails/gorm/tests/MiscSpec.groovy  |  609 ++
 .../gorm/tests/MultipleConnectionsSpec.groovy      |  102 +
 .../grails/gorm/tests/NamedConnectionsSpec.groovy  |  150 +
 .../gorm/tests/NativeIdentityGeneratorSpec.groovy  |   76 +
 .../grails/gorm/tests/Neo4jNameUtilsSpec.groovy    |    0
 .../grails/gorm/tests/Neo4jResultListSpec.groovy   |   45 +
 .../grails/gorm/tests/NullValueEqualSpec.groovy    |   45 +
 .../grails/gorm/tests/OneToManyUpdateSpec.groovy   |  147 +
 .../groovy/grails/gorm/tests/OneToOneSpec.groovy   |   85 +
 .../grails/gorm/tests/OptimisticLockingSpec.groovy |  220 +
 .../grails/gorm/tests/OrphanDeleteSpec.groovy      |   78 +
 .../grails/gorm/tests/PagedResultSpec.groovy       |   82 +
 .../gorm/tests/PersistenceEventListenerSpec.groovy |  272 +
 .../src/test/groovy/grails/gorm/tests/Pet.groovy   |   52 +
 .../grails/gorm/tests/ProjectionsSpec.groovy       |   79 +
 .../test/groovy/grails/gorm/tests/ProxySpec.groovy |   97 +
 .../grails/gorm/tests/ReadManyObjectsSpec.groovy   |  119 +
 .../gorm/tests/RelationshipMappingSpec.groovy      |  315 +
 .../grails/gorm/tests/RelationshipUtilsSpec.groovy |   53 +
 .../groovy/grails/gorm/tests/SchemalessSpec.groovy |  347 +
 .../groovy/grails/gorm/tests/TransientsSpec.groovy |   70 +
 .../grails/gorm/tests/UniqueConstraintSpec.groovy  |  156 +
 .../gorm/tests/UpdateWithProxyPresentSpec.groovy   |    0
 .../groovy/grails/gorm/tests/ValidationSpec.groovy |  261 +
 .../grails/gorm/tests/WithTransactionSpec.groovy   |  129 +
 .../tests/assignedid/OneToManyCreateSpec.groovy    |    0
 .../gorm/tests/assignedid/domain/Owner.groovy      |    0
 .../grails/gorm/tests/assignedid/domain/Pet.groovy |    0
 .../gorm/tests/cypher/OneToManyCreateSpec.groovy   |   71 +
 .../grails/gorm/tests/cypher/domain/Owner.groovy   |    0
 .../grails/gorm/tests/cypher/domain/Pet.groovy     |    0
 .../idgeneration/CustomIdGeneratorSpec.groovy      |    0
 .../idgeneration/SnowflakeIdGeneratorSpec.groovy   |    0
 .../tests/multitenancy/MultiTenancySpec.groovy     |    0
 .../tests/multitenancy/SingleTenancySpec.groovy    |  130 +
 .../groovy/grails/gorm/tests/path/PathSpec.groovy  |    0
 .../grails/gorm/tests/path/RelationshipSpec.groovy |    0
 .../grails/gorm/tests/path/domain/Person.groovy    |    0
 .../grails/gorm/tests/services/Author.groovy       |    0
 .../grails/gorm/tests/services/AuthorBooks.groovy  |    0
 .../groovy/grails/gorm/tests/services/Book.groovy  |    0
 .../services/CypherQueryTransformerSpec.groovy     |    0
 .../groovy/grails/neo4j/Neo4jEntitySpec.groovy     |    0
 .../neo4j/core/GrailsDataNeo4jTckManager.groovy    |  139 +
 .../data/neo4j/core/Neo4jGormDatastoreSpec.groovy  |   46 +
 .../datastore/gorm/neo4j/ApiExtensionsSpec.groovy  |   74 +
 .../gorm/neo4j/Neo4jMappingContextSpec.groovy      |   71 +
 .../gorm/neo4j/RelationshipUtilsSpec.groovy        |    0
 .../gorm/neo4j/TransactionPropagationSpec.groovy   |   92 +
 .../Neo4jConnectionSourceSettingsSpec.groovy       |   75 +
 .../config/Neo4jDriverConfigBuilderSpec.groovy     |    0
 ...ails.data.testing.tck.base.GrailsDataTckManager |    1 +
 .../src/test/resources/logback.xml                 |    0
 .../src/test/resources/neo4j-server.properties     |    0
 .../src/test/resources/spy.properties              |    0
 grails-data-neo4j/docs/build.gradle                |  239 +-
 .../docs/asciidoc/gettingStarted/springBoot.adoc   |    2 +-
 .../docs/asciidoc/gettingStarted/standalone.adoc   |    2 +-
 .../docs/asciidoc/introduction/releaseNotes.adoc   |    6 +
 .../src/docs/asciidoc/introduction/upgrading.adoc  |    4 +
 .../multipleDataSources/boltDriverSwitching.adoc   |    4 +-
 .../multipleDataSources/configuration.adoc         |    2 +-
 .../examples/grails3-neo4j-hibernate/build.gradle  |   88 -
 .../grails3-neo4j-hibernate/gradle.properties      |   23 -
 .../grails-app/views/error.gsp                     |   49 -
 .../functional/tests/AuthorControllerSpec.groovy   |   47 -
 .../functional/tests/BookControllerSpec.groovy     |   48 -
 .../functional/tests/Neo4jWithHibernateSpec.groovy |   56 -
 .../examples/grails3-neo4j/build.gradle            |   90 -
 .../examples/grails3-neo4j/gradle.properties       |   23 -
 .../grails3-neo4j/grails-app/views/error.gsp       |   49 -
 .../functional/tests/BookControllerSpec.groovy     |   47 -
 .../examples/neo4j-spring-boot/build.gradle        |   44 -
 .../examples/neo4j-spring-boot/gradle.properties   |   23 -
 .../examples/neo4j-standalone/build.gradle         |   23 -
 .../examples/neo4j-standalone/gradle.properties    |   23 -
 .../examples/test-data-service/build.gradle        |   37 -
 .../examples/test-data-service/gradle.properties   |   23 -
 .../grails-app/conf/application.yml                |   87 -
 .../grails-app/init/example/Application.groovy     |   32 -
 .../grails-app/init/example/BootStrap.groovy       |   28 -
 .../services/example/StudentService.groovy         |   36 -
 .../LoginAuthenticationSucessHandler.groovy        |   40 -
 grails-data-neo4j/gradle.properties                |   50 -
 .../gradle/neo4j-harness-test-config.gradle        |   80 +
 .../grails-datastore-gorm-neo4j/build.gradle       |  109 -
 .../src/main/groovy/grails/neo4j/Direction.groovy  |   56 -
 .../main/groovy/grails/neo4j/Neo4jEntity.groovy    |  278 -
 .../src/main/groovy/grails/neo4j/Node.groovy       |  142 -
 .../src/main/groovy/grails/neo4j/Path.groovy       |   65 -
 .../main/groovy/grails/neo4j/Relationship.groovy   |  114 -
 .../grails/neo4j/mapping/MappingBuilder.groovy     |  106 -
 .../groovy/grails/neo4j/services/Cypher.groovy     |   37 -
 .../grails/datastore/gorm/neo4j/CypherBuilder.java |  286 -
 .../datastore/gorm/neo4j/GraphClassMapping.groovy  |   44 -
 .../gorm/neo4j/GraphGormMappingFactory.groovy      |   65 -
 .../gorm/neo4j/GraphPersistentEntity.groovy        |  668 --
 .../grails/datastore/gorm/neo4j/IdGenerator.java   |   57 -
 .../datastore/gorm/neo4j/Neo4jDatastore.java       |  651 --
 .../neo4j/Neo4jDatastoreTransactionManager.java    |  117 -
 .../gorm/neo4j/Neo4jEntityTraitProvider.groovy     |   37 -
 .../datastore/gorm/neo4j/Neo4jMappingContext.java  |  229 -
 .../grails/datastore/gorm/neo4j/Neo4jSession.java  | 1028 ---
 .../datastore/gorm/neo4j/Neo4jTransaction.groovy   |  107 -
 .../gorm/neo4j/RelationshipPersistentEntity.groovy |  202 -
 .../datastore/gorm/neo4j/RelationshipUtils.groovy  |  203 -
 .../datastore/gorm/neo4j/SessionFlushedEvent.java  |   37 -
 .../datastore/gorm/neo4j/TypeDirectionPair.java    |   87 -
 .../gorm/neo4j/api/Neo4jGormStaticApi.groovy       |  541 --
 .../gorm/neo4j/collection/GraphAdapter.groovy      |  126 -
 .../collection/Neo4jAssociationResultList.groovy   |   50 -
 .../gorm/neo4j/collection/Neo4jList.groovy         |  115 -
 .../gorm/neo4j/collection/Neo4jPath.groovy         |  196 -
 .../neo4j/collection/Neo4jPersistentList.groovy    |  123 -
 .../neo4j/collection/Neo4jPersistentSet.groovy     |  122 -
 .../collection/Neo4jPersistentSortedSet.groovy     |  122 -
 .../gorm/neo4j/collection/Neo4jRelationship.groovy |   68 -
 .../gorm/neo4j/collection/Neo4jResultList.groovy   |  170 -
 .../gorm/neo4j/collection/Neo4jSet.groovy          |  105 -
 .../gorm/neo4j/collection/Neo4jSortedSet.groovy    |  104 -
 .../neo4j/config/Neo4jDriverConfigBuilder.groovy   |   77 -
 .../datastore/gorm/neo4j/config/Settings.java      |  100 -
 .../connections/Neo4jConnectionSourceFactory.java  |  131 -
 .../Neo4jConnectionSourceSettings.groovy           |  104 -
 .../Neo4jConnectionSourceSettingsBuilder.groovy    |   49 -
 .../connections/Neo4jEmbeddedConnectionSource.java |   53 -
 .../neo4j/engine/DynamicAssociationSupport.java    |  141 -
 .../engine/Neo4jAssociationQueryExecutor.groovy    |  256 -
 .../gorm/neo4j/engine/Neo4jEntityPersister.java    | 1128 ---
 .../Neo4jModificationTrackingEntityAccess.groovy   |   55 -
 .../datastore/gorm/neo4j/engine/Neo4jQuery.groovy  |  871 ---
 .../neo4j/engine/RelationshipPendingDelete.java    |  108 -
 .../neo4j/engine/RelationshipPendingInsert.java    |  201 -
 .../gorm/neo4j/extensions/Neo4jExtensions.groovy   |  188 -
 .../gorm/neo4j/identity/SnowflakeIdGenerator.java  |  116 -
 .../gorm/neo4j/mapping/config/Attribute.groovy     |   68 -
 .../neo4j/mapping/config/DynamicAssociation.java   |   31 -
 .../mapping/config/DynamicToManyAssociation.java   |   44 -
 .../mapping/config/DynamicToOneAssociation.java    |   58 -
 .../gorm/neo4j/mapping/config/NodeConfig.groovy    |   57 -
 .../neo4j/mapping/config/RelationshipConfig.groovy |   47 -
 .../neo4j/mapping/reflect/Neo4jNameUtils.groovy    |   50 -
 .../datastore/gorm/neo4j/parsers/PlingStemmer.java |  979 ---
 .../proxy/HashcodeEqualsAwareProxyFactory.java     |  118 -
 .../proxy/Neo4jAssociationQueryProxyHandler.java   |   52 -
 .../gorm/neo4j/proxy/Neo4jProxyFactory.java        |   37 -
 .../FindAllCypherQueryImplementer.groovy           |   58 -
 .../FindOneCypherQueryImplementer.groovy           |   52 -
 .../FindPathCypherQueryImplementer.groovy          |   64 -
 .../FindShortestPathImplementer.groovy             |   90 -
 .../StatementResultCypherQueryImplementer.groovy   |   57 -
 .../UpdateCypherQueryImplementer.groovy            |  103 -
 .../transform/CypherQueryStringTransformer.groovy  |   61 -
 .../gorm/neo4j/util/EmbeddedNeo4jServer.java       |  212 -
 .../datastore/gorm/neo4j/util/IteratorUtil.java    |   82 -
 .../grails/gorm/tests/CascadingDeleteSpec.groovy   |  113 -
 .../CustomLabelWithDynamicAssociationSpec.groovy   |   71 -
 .../grails/gorm/tests/CypherQueryStringSpec.groovy |  171 -
 .../grails/gorm/tests/EagerFetchingSpec.groovy     |  124 -
 .../grails/gorm/tests/FindByIsNullSpec.groovy      |   49 -
 .../grails/gorm/tests/GormDatastoreSpec.groovy     |  125 -
 .../grails/gorm/tests/GroovyProxySpec.groovy       |  127 -
 .../grails/gorm/tests/InheritanceProxySpec.groovy  |   64 -
 .../grails/gorm/tests/JavaxValidationSpec.groovy   |   52 -
 .../grails/gorm/tests/JoinCriteriaSpec.groovy      |   82 -
 .../grails/gorm/tests/LabelStrategySpec.groovy     |  329 -
 .../groovy/grails/gorm/tests/LikeQuerySpec.groovy  |  126 -
 .../grails/gorm/tests/ManyToManyQuerySpec.groovy   |   76 -
 .../groovy/grails/gorm/tests/ManyToManySpec.groovy |  366 -
 .../grails/gorm/tests/MapPropertySpec.groovy       |   55 -
 .../grails/gorm/tests/MarkDirtyFalseSpec.groovy    |  108 -
 .../test/groovy/grails/gorm/tests/MiscSpec.groovy  |  603 --
 .../gorm/tests/MultipleConnectionsSpec.groovy      |   99 -
 .../gorm/tests/NativeIdentityGeneratorSpec.groovy  |   75 -
 .../grails/gorm/tests/Neo4jResultListSpec.groovy   |   44 -
 .../grails/gorm/tests/NullValueEqualSpec.groovy    |   41 -
 .../grails/gorm/tests/OneToManyUpdateSpec.groovy   |  152 -
 .../groovy/grails/gorm/tests/OneToOneSpec.groovy   |   77 -
 .../grails/gorm/tests/OptimisticLockingSpec.groovy |  215 -
 .../grails/gorm/tests/OrphanDeleteSpec.groovy      |   76 -
 .../grails/gorm/tests/PagedResultSpec.groovy       |   79 -
 .../gorm/tests/PersistenceEventListenerSpec.groovy |  271 -
 .../src/test/groovy/grails/gorm/tests/Pet.groovy   |   49 -
 .../grails/gorm/tests/ProjectionsSpec.groovy       |   77 -
 .../test/groovy/grails/gorm/tests/ProxySpec.groovy |   96 -
 .../grails/gorm/tests/ReadManyObjectsSpec.groovy   |  119 -
 .../gorm/tests/RelationshipMappingSpec.groovy      |  314 -
 .../grails/gorm/tests/RelationshipUtilsSpec.groovy |   50 -
 .../groovy/grails/gorm/tests/SchemalessSpec.groovy |  344 -
 .../groovy/grails/gorm/tests/TransientsSpec.groovy |   69 -
 .../grails/gorm/tests/UniqueConstraintSpec.groovy  |  155 -
 .../groovy/grails/gorm/tests/ValidationSpec.groovy |  254 -
 .../grails/gorm/tests/WithTransactionSpec.groovy   |  125 -
 .../gorm/tests/cypher/OneToManyCreateSpec.groovy   |   70 -
 .../tests/multitenancy/SingleTenancySpec.groovy    |  126 -
 .../datastore/gorm/neo4j/ApiExtensionsSpec.groovy  |   77 -
 .../grails/datastore/gorm/neo4j/Neo4jSuite.groovy  |   32 -
 .../gorm/neo4j/TransactionPropagationSpec.groovy   |   92 -
 .../Neo4jConnectionSourceSettingsSpec.groovy       |   51 -
 grails-data-neo4j/grails-plugin/build.gradle       |  118 +-
 .../Neo4jDataStoreSpringInitializer.groovy         |   89 +-
 .../main/groovy/grails/test/neo4j/Neo4jSpec.groovy |   17 +-
 .../datastore/gorm/neo4j/Neo4jGrailsPlugin.groovy  |   44 +-
 .../neo4j/converters/InstantToLongConverter.groovy |    1 +
 .../converters/LocalDateTimeToLongConverter.groovy |    1 +
 .../converters/LocalDateToLongConverter.groovy     |    1 +
 .../converters/LocalTimeToLongConverter.groovy     |    1 +
 .../neo4j/converters/LongToInstantConverter.groovy |    1 +
 .../converters/LongToLocalDateConverter.groovy     |    1 +
 .../converters/LongToLocalDateTimeConverter.groovy |    1 +
 .../converters/LongToLocalTimeConverter.groovy     |    3 +-
 .../LongToOffsetDateTimeConverter.groovy           |    1 +
 .../converters/LongToOffsetTimeConverter.groovy    |    1 +
 .../converters/LongToZonedDateTimeConverter.groovy |    1 +
 .../OffsetDateTimeToLongConverter.groovy           |    1 +
 .../converters/OffsetTimeToLongConverter.groovy    |    1 +
 .../converters/PeriodToStringConverter.groovy      |    1 +
 .../converters/StringToPeriodConverter.groovy      |    1 +
 .../converters/ZonedDateTimeToLongConverter.groovy |    1 +
 .../Neo4jDataStoreSpringInitializerSpec.groovy     |   46 +-
 grails-data-neo4j/settings.gradle                  |   79 -
 .../mapping/simple/SimpleMapDatastore.java         |   13 +-
 .../mapping/simple/query/SimpleMapQuery.groovy     |   28 +-
 .../mapping/simple/SimpleMapDatastoreSpec.groovy   |    9 +-
 .../SimpleMapSessionPendingOperationsSpec.groovy   |  102 +
 .../grails/databinding/FrameworkPropertyNames.java |   55 +
 .../grails/databinding/SimpleDataBinder.groovy     |   71 +-
 .../grails/databinding/SimpleDataBinderSpec.groovy |   36 +
 grails-databinding/build.gradle                    |    7 +-
 .../web/LocaleAwareNumberConverter.groovy          |    2 +-
 .../databinding/DataBindingConfiguration.java      |  132 -
 .../databinding/DataBindingGrailsPlugin.groovy     |   87 +
 .../additional-spring-configuration-metadata.json  |   46 +
 .../META-INF/spring-configuration-metadata.json    |   40 -
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    1 -
 grails-datamapping-async/build.gradle              |    6 +-
 .../grails/datastore/gorm/async/AsyncQuery.groovy  |    4 +-
 .../datastore/gorm/async/GormAsyncStaticApi.groovy |    4 +-
 .../grails/gorm/async/AsyncEntitySpec.groovy       |   93 +
 .../datastore/gorm/async/AsyncQuerySpec.groovy     |   91 +
 .../gorm/async/GormAsyncStaticApiSpec.groovy       |  115 +
 grails-datamapping-core-test/build.gradle          |    2 +-
 .../partitioned/PartitionMultiTenancySpec.groovy   |   22 +
 .../tests/ConnectionScopeMultiTenancySpec.groovy   |  113 +
 .../gorm/tests/MultipleDataSourceSpec.groovy       |  162 +-
 grails-datamapping-core/build.gradle               |    2 +-
 .../grails/gorm/api/GormInstanceOperations.groovy  |   58 +-
 .../grails/gorm/api/GormStaticOperations.groovy    |   71 +-
 .../gorm/multitenancy/CurrentTenantHolder.groovy   |   23 +-
 .../groovy/grails/gorm/multitenancy/Tenants.groovy |   52 +-
 .../transactions/GrailsTransactionAttribute.groovy |   43 +-
 .../transactions/GrailsTransactionTemplate.groovy  |   55 +-
 .../grails/gorm/transactions/Transactional.java    |    5 +-
 .../grails/datamapping/aot/GormRuntimeHints.java   |  112 +
 .../compiler/gorm/DirtyCheckTransformation.groovy  |   16 +-
 .../compiler/gorm/DirtyCheckingTransformer.groovy  |   70 +-
 .../compiler/gorm/GormEntityTraitProvider.groovy   |   17 +
 .../compiler/gorm/GormEntityTransformation.groovy  |  183 +-
 .../gorm/JpaGormEntityTransformation.groovy        |   14 +-
 .../gorm/LocalTransformationSupport.groovy         |   61 +
 .../grails/datastore/gorm/AbstractGormApi.groovy   |   59 +-
 .../datastore/gorm/AbstractGormApiRegistry.groovy  |   47 +-
 .../gorm/ConnectionSourceNameResolver.groovy       |   36 +
 .../datastore/gorm/DelegatingGormEntityApi.groovy  |    5 +
 .../grails/datastore/gorm/GormApiResolver.groovy   |   36 +-
 .../org/grails/datastore/gorm/GormEnhancer.groovy  |  107 +-
 .../org/grails/datastore/gorm/GormEntity.groovy    |  115 +-
 .../org/grails/datastore/gorm/GormEntityApi.groovy |   36 +
 .../grails/datastore/gorm/GormInstanceApi.groovy   |   10 +-
 .../org/grails/datastore/gorm/GormRegistry.groovy  |  271 +-
 .../org/grails/datastore/gorm/GormStaticApi.groovy |  245 +-
 .../grails/datastore/gorm/GormValidationApi.groovy |   15 +-
 .../bootstrap/AbstractDatastoreInitializer.groovy  |   82 +-
 ...igurableApplicationContextEventPublisher.groovy |   58 +-
 .../datastore/gorm/finders/DynamicFinder.java      |  176 +-
 .../datastore/gorm/finders/ListOrderByFinder.java  |   11 +-
 .../gorm/internal/RefreshLockArguments.groovy      |  183 +
 .../datastore/gorm/jdbc/DataSourceBuilder.java     |   21 +-
 .../gorm/jdbc/OriginCapablePropertyValue.java      |   63 -
 .../grails/datastore/gorm/jdbc/PropertyOrigin.java |   50 -
 .../gorm/jdbc/RelaxedConversionService.java        |   26 +-
 .../datastore/gorm/jdbc/RelaxedDataBinder.java     |   79 +-
 .../grails/datastore/gorm/jdbc/RelaxedNames.java   |    6 +-
 .../connections/DataSourceConnectionSource.java    |    3 +
 .../jdbc/connections/DataSourceSettings.groovy     |   16 +-
 .../SpringDataSourceConnectionSourceFactory.java   |    4 +-
 .../TenantDelegatingGormOperations.groovy          |  249 +-
 .../multitenancy/transform/TenantTransform.groovy  |    2 +-
 .../GlobalGormQuerySafetyASTTransformation.java    |   76 +
 .../transform/GormQuerySafetyTransformer.java      |  690 ++
 .../gorm/services/DefaultTransactionService.groovy |   33 +-
 ...stractDetachedCriteriaServiceImplementor.groovy |    6 +
 .../implementers/AbstractSaveImplementer.groovy    |    6 +-
 .../implementers/AbstractServiceImplementer.groovy |    7 +-
 .../AbstractStringQueryImplementer.groovy          |   23 +
 .../implementers/AbstractWhereImplementer.groovy   |    3 +
 .../services/implementers/DeleteImplementer.groovy |    6 +-
 .../implementers/DeleteWhereImplementer.groovy     |    2 +-
 .../implementers/FindAllByImplementer.groovy       |    3 +-
 .../implementers/FindOneImplementer.groovy         |    5 +
 .../FindOneStringQueryImplementer.groovy           |    4 +
 .../implementers/InterfaceProjectionBuilder.groovy |   39 +-
 .../IterableInterfaceProjectionBuilder.groovy      |   16 +-
 .../services/implementers/SaveImplementer.groovy   |    2 +-
 .../implementers/UpdateOneImplementer.groovy       |    3 +-
 .../transform/ServiceTransformation.groovy         |    4 +-
 .../transform/TransactionalTransform.groovy        |   24 +-
 .../gorm/transform/AstPropertyResolveUtils.java    |  146 +-
 .../transform/OrderedGormTransformation.groovy     |    4 +-
 .../datastore/gorm/utils/ReflectionUtils.java      |    6 +-
 .../validation/jakarta/GormValidatorAdapter.groovy |    2 +-
 .../jakarta/GormValidatorFactoryAdapter.groovy     |    2 +-
 .../jakarta/JakartaValidatorRegistry.groovy        |    6 +-
 .../gorm/validation/jakarta/MethodKey.java         |    8 +-
 .../MethodValidationImplementer.groovy             |   11 +-
 .../listener/ValidationEventListener.groovy        |    4 +-
 ...org.codehaus.groovy.transform.ASTTransformation |    1 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../test/groovy/com/IgnoredPackageEntity.groovy    |   27 +
 .../MultiTenantCurrentTenantTransformSpec.groovy   |  143 +
 .../multitenancy/TenantTransformSpec.groovy        |  176 +
 .../transactions/TransactionalTransformSpec.groovy |   75 +
 .../multitenancy/CurrentTenantHolderSpec.groovy    |   30 +
 .../grails/gorm/multitenancy/TenantsSpec.groovy    |   33 +-
 .../ConnectionRoutingServiceTransformSpec.groovy   |  144 +
 .../services/ServiceImplementerEdgeCaseSpec.groovy |  413 ++
 .../transform/ServiceTransformClasses.groovy       |  382 +
 .../services/transform/ServiceTransformSpec.groovy |  532 ++
 .../GrailsTransactionAttributeSpec.groovy          |  288 +
 .../TransactionRollbackRulePropagationSpec.groovy  |  159 +
 .../datamapping/aot/GormRuntimeHintsSpec.groovy    |   81 +
 .../gorm/GormEntityIdentityTypeSpec.groovy         |  119 +
 .../compiler/gorm/GormEntityTransformSpec.groovy   |    8 +
 .../compiler/gorm/JpaEntityTransformSpec.groovy    |   52 +
 .../gorm/AbstractGormApiRegistrySpec.groovy        |  239 +
 .../datastore/gorm/AbstractGormApiSpec.groovy      |   20 +-
 .../gorm/ActiveSessionDatastoreSelectorSpec.groovy |   73 +
 .../gorm/ConnectionSourceNameResolverSpec.groovy   |   51 +
 .../gorm/DefaultDatastoreSelectorSpec.groovy       |   95 +
 .../gorm/DefaultGormApiFactorySpec.groovy          |   63 +
 .../datastore/gorm/GormApiFactorySpec.groovy       |  132 +
 .../datastore/gorm/GormApiRegistrySpec.groovy      |  123 +
 .../datastore/gorm/GormEnhancerCoverageSpec.groovy |  231 +-
 .../datastore/gorm/GormInstanceApiSpec.groovy      |  389 ++
 .../gorm/GormRegistryConcurrencySpec.groovy        |  139 +
 .../datastore/gorm/GormRegistryCoverageSpec.groovy |   41 +-
 .../gorm/GormRegistryEntityRegistrationSpec.groovy |  185 +
 .../datastore/gorm/GormRegistryFactorySpec.groovy  |   73 +
 .../grails/datastore/gorm/GormStaticApiSpec.groovy |  454 +-
 .../gorm/GormValidationApiCoverageSpec.groovy      |   64 +-
 .../datastore/gorm/GormValidationApiSpec.groovy    |   55 +-
 .../gorm/PreferredDatastoreSelectorSpec.groovy     |   75 +
 .../gorm/QualifiedDatastoreSelectorSpec.groovy     |   96 +
 ...actDatastoreInitializerConfigurationSpec.groovy |  190 +
 .../DirtyCheckCollectionReassignmentSpec.groovy    |  458 ++
 .../checking/DirtyCheckTransformationSpec.groovy   |    7 +
 ...ableApplicationContextEventPublisherSpec.groovy |  115 +
 .../gorm/finders/AbstractFinderSpec.groovy         |   27 +
 .../gorm/finders/DynamicFinderCoverageSpec.groovy  |  262 +-
 .../gorm/internal/RefreshLockArgumentsSpec.groovy  |  173 +
 .../datastore/gorm/jdbc/DatabaseDriverSpec.groovy  |   89 +
 .../gorm/jdbc/MultiTenantConnectionSpec.groovy     |   34 +
 .../gorm/jdbc/MultiTenantDataSourceSpec.groovy     |   72 +
 .../gorm/jdbc/RelaxedConversionServiceSpec.groovy  |  116 +
 .../gorm/jdbc/RelaxedDataBinderSpec.groovy         |  123 +
 .../datastore/gorm/jdbc/RelaxedNamesSpec.groovy    |   77 +
 ...hedDataSourceConnectionSourceFactorySpec.groovy |   58 +
 .../DataSourceConnectionSourceFactorySpec.groovy   |  115 +
 .../DataSourceConnectionSourceSpec.groovy          |  108 +
 .../DataSourceSettingsBuilderSpec.groovy           |   75 +
 .../jdbc/connections/DataSourceSettingsSpec.groovy |  123 +
 ...ingDataSourceConnectionSourceFactorySpec.groovy |   89 +
 .../TenantDelegatingGormOperationsSpec.groovy      | 1406 +++-
 .../DetachedCriteriaASTTransformationSpec.groovy   |  131 +
 ...obalGormQuerySafetyASTTransformationSpec.groovy |   78 +
 .../GormQuerySafetyTransformerSpec.groovy          |  543 ++
 .../WhereQueryAggregateSubqueryErrorSpec.groovy    |  131 +
 .../transform/WhereQueryAssociationPathSpec.groovy |  233 +
 .../transform/WhereQueryClosureCaptureSpec.groovy  |   12 +-
 .../WhereQueryDetachedCriteriaCastSpec.groovy      |  131 +
 .../WhereQueryEmbeddedBlockTransformSpec.groovy    |   11 +-
 .../WhereQueryEmbeddedPropertyPathSpec.groovy      |  196 +
 .../transform/WhereQueryFunctionCallSpec.groovy    |  150 +
 ...reQueryMultiLevelAssociationFunctionSpec.groovy |  138 +
 .../query/transform/WhereQueryNegationSpec.groovy  |  121 +
 .../query/transform/WhereQueryOperatorSpec.groovy  |  283 +
 .../transform/WhereQueryPropertyAliasSpec.groovy   |  177 +
 .../transform/WhereQueryStaticFieldSpec.groovy     |  252 +
 .../gorm/services/DefaultTenantServiceSpec.groovy  |    2 +-
 .../services/DefaultTransactionServiceSpec.groovy  |  178 +-
 .../transform/ServiceTransformationSpec.groovy     |  183 +
 .../support/AdaptedProbeServiceImplementer.groovy  |   64 +
 .../support/NoOpServiceImplementerAdapter.groovy   |   41 +
 .../support/ProbeServiceImplementer.groovy         |   63 +
 .../support/ProbeServiceImplementerAdapter.groovy  |   43 +
 .../AbstractGormASTTransformationSpec.groovy       |  123 +
 ...ctTraitApplyingGormASTTransformationSpec.groovy |  170 +
 .../ApplyNonCompilationUnitAwareTransform.java     |   40 +
 .../gorm/transform/ApplyTestTraitWeaving.java      |   38 +
 .../transform/ApplyUnloadableGormTransform.java    |   39 +
 .../transform/AstPropertyResolveUtilsSpec.groovy   |  289 +
 .../gorm/transform/DoubleGenericTestTrait.groovy   |   37 +
 ...onCompilationUnitAwareTestTransformation.groovy |   39 +
 .../transform/OrderedGormTransformationSpec.groovy |   69 +
 .../gorm/transform/SingleGenericTestTrait.groovy   |   31 +
 .../TestTraitWeavingTransformation.groovy          |   61 +
 .../gorm/transform/TestWeavableTrait.groovy        |   31 +
 .../gorm/utils/ClasspathEntityScannerSpec.groovy   |   71 +-
 .../gorm/utils/ReflectionUtilsSpec.groovy          |   80 +
 ...MappingContextAwareConstraintFactorySpec.groovy |   55 +
 .../ConfigurableParameterNameProviderSpec.groovy   |   79 +
 .../jakarta/ConstraintViolationUtilsSpec.groovy    |   68 +
 .../jakarta/GormValidatorFactoryAdapterSpec.groovy |  149 +
 .../jakarta/JakartaValidatorRegistrySpec.groovy    |   98 +
 .../gorm/validation/jakarta/MethodKeySpec.groovy   |   58 +
 .../listener/ValidationEventListenerSpec.groovy    |  147 +
 .../support/ValidatorRegistriesSpec.groovy         |   67 +
 .../jakartafixture/JakartaTestEntity.groovy        |   26 +
 ...ails.datastore.gorm.services.ServiceImplementer |    1 +
 ...tastore.gorm.services.ServiceImplementerAdapter |    2 +
 grails-datamapping-support/build.gradle            |    3 +-
 .../org/grails/compiler/gorm/GormTransformer.java  |    9 +-
 .../datastore/gorm/GormEntityTraitSpec.groovy      |  197 +
 grails-datamapping-tck/build.gradle                |    1 +
 ...intWorksWithTargetProxiesConstraintsSpec.groovy |    4 +-
 .../data/testing/tck/tests/DomainEventsSpec.groovy |    2 +-
 .../data/testing/tck/tests/FindWhereSpec.groovy    |    3 +
 .../tck/tests/FirstAndLastMethodSpec.groovy        |    2 +-
 .../data/testing/tck/tests/ListOrderBySpec.groovy  |   22 +
 .../data/testing/tck/tests/OneToManySpec.groovy    |    2 +
 .../testing/tck/tests/OptimisticLockingSpec.groovy |   13 +-
 .../data/testing/tck/tests/PagedResultSpec.groovy  |    7 +
 .../tck/tests/PersistenceEventListenerSpec.groovy  |    4 +-
 .../testing/tck/tests/WithTransactionSpec.groovy   |   51 +-
 grails-datamapping-validation/build.gradle         |    1 -
 .../aot/ConstrainedPropertyRuntimeHints.java       |   75 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../aot/ConstrainedPropertyRuntimeHintsSpec.groovy |   69 +
 grails-datasource/build.gradle                     |    4 +-
 .../datasource/EmbeddedDatabaseShutdownHook.groovy |    2 +-
 grails-datastore-core/build.gradle                 |    2 +-
 .../mapping/config/AbstractGormMappingFactory.java |   40 +-
 .../mapping/config/ConfigurationBuilder.groovy     |  250 +-
 .../datastore/mapping/config/Property.groovy       |   11 +-
 .../datastore/mapping/core/AbstractDatastore.java  |  140 +-
 .../datastore/mapping/core/AbstractSession.java    |   20 +-
 .../grails/datastore/mapping/core/Datastore.java   |   11 -
 .../datastore/mapping/core/DatastoreUtils.java     |   26 +-
 .../org/grails/datastore/mapping/core/Session.java |   14 +-
 .../datastore/mapping/core/SessionResolver.groovy  |   41 +-
 .../mapping/core/ThreadLocalSessionResolver.groovy |   77 -
 ...ransactionSynchronizationSessionResolver.groovy |  101 +
 .../AbstractConnectionSourceFactory.java           |   11 -
 .../connections/ConnectionSourceSettings.groovy    |    7 +-
 .../ConnectionSourceSettingsBuilder.groovy         |    4 -
 .../MultipleConnectionSourceCapableDatastore.java  |   17 -
 .../connections/SingleSessionCapableDatastore.java |   34 +
 .../dirty/checking/DirtyCheckableCollection.java   |   12 +
 .../dirty/checking/DirtyCheckingCollection.groovy  |   66 +
 .../dirty/checking/DirtyCheckingList.groovy        |  112 +-
 .../mapping/dirty/checking/DirtyCheckingMap.groovy |  104 +
 .../mapping/dirty/checking/DirtyCheckingSet.groovy |    6 +-
 .../dirty/checking/DirtyCheckingSortedSet.groovy   |   50 +-
 .../dirty/checking/DirtyCheckingSupport.groovy     |  186 +
 .../mapping/model/AbstractMappingContext.java      |    1 +
 .../mapping/model/AbstractPersistentEntity.java    |   11 +-
 .../org/grails/datastore/mapping/query/Query.java  |    2 +-
 .../datastore/mapping/reflect/AstUtils.groovy      |   28 +-
 .../mapping/reflect/DevToolsClassLoaders.java      |  107 +
 .../datastore/mapping/reflect/NameUtils.java       |   36 +
 .../datastore/mapping/services/Service.groovy      |    1 -
 .../CustomizableRollbackTransactionAttribute.java  |   64 +-
 .../transactions/DatastoreTransactionManager.java  |   13 +-
 .../transactions/SessionOnlyTransaction.java       |   24 +-
 .../mapping/config/ConfigurationBuilderSpec.groovy |  567 ++
 .../mapping/core/AbstractDatastoreSpec.groovy      |  298 +-
 .../mapping/core/DatastoreUtilsSpec.groovy         |   45 +
 .../core/SessionResolverIntegrationSpec.groovy     |   55 +-
 .../core/ThreadLocalSessionResolverSpec.groovy     |  128 -
 ...actionSynchronizationSessionResolverSpec.groovy |  254 +
 .../AbstractConnectionSourceFactorySpec.groovy     |   36 +-
 .../ConnectionSourceSettingsBuilderSpec.groovy     |   27 +-
 .../checking/DirtyCheckingCollectionSpec.groovy    |  501 ++
 .../config/DocumentMappingContextSpec.groovy       |   89 +
 .../mapping/KeyValueMappingFactoryTests.groovy     |   53 +-
 .../AbstractPersistentEntityGetTenantIdSpec.groovy |  122 -
 .../datastore/mapping/reflect/AstUtilsSpec.groovy  |   34 +-
 .../reflect/DevToolsClassLoadersSpec.groovy        |  186 +
 .../datastore/mapping/reflect/NameUtilsSpec.groovy |   52 +
 .../services/DefaultServiceRegistrySpec.groovy     |    4 +-
 ...omizableRollbackTransactionAttributeSpec.groovy |  200 +-
 .../DatastoreTransactionManagerSpec.groovy         |  137 +
 .../transactions/SessionOnlyTransactionSpec.groovy |   92 +
 .../src/test/resources/logback-test.xml            |   29 +
 grails-dependencies/starter-web/build.gradle       |   12 +-
 grails-doc/build.gradle                            |  148 +-
 grails-doc/src/en/guide/GORM/multiTenancy.adoc     |  129 +
 .../en/guide/GORM/quickStartGuide/basicCRUD.adoc   |   38 +
 .../src/en/guide/REST/callingRestServices.adoc     |   64 +
 .../src/en/guide/REST/linkingToResources.adoc      |   25 +
 .../extendingRestfulController.adoc                |    1 +
 .../restControllersStepByStep.adoc                 |    1 +
 grails-doc/src/en/guide/async/asyncGorm.adoc       |    2 +-
 grails-doc/src/en/guide/async/asyncPromises.adoc   |   54 +-
 grails-doc/src/en/guide/async/asyncRequests.adoc   |   13 +-
 grails-doc/src/en/guide/async/asyncServletApi.adoc |    2 +
 grails-doc/src/en/guide/async/events.adoc          |    4 +-
 grails-doc/src/en/guide/backgroundJobs.adoc        |   81 +
 .../backgroundJobs/backgroundJobsAdvanced.adoc     |   48 +
 .../backgroundJobsAdvanced/quartzClustering.adoc   |   81 +
 .../quartzConfiguration.adoc                       |  249 +
 .../quartzDynamicScheduling.adoc                   |   91 +
 .../backgroundJobsAdvanced/quartzInstallation.adoc |   74 +
 .../quartzJobManagerService.adoc                   |   88 +
 .../quartzJobProperties.adoc                       |   74 +
 .../quartzLongRunningJobs.adoc                     |  157 +
 .../backgroundJobsAdvanced/quartzScheduling.adoc   |  138 +
 .../backgroundJobsAdvanced/quartzTriggers.adoc     |  180 +
 .../backgroundJobsAdvanced/quartzUsefulLinks.adoc  |   27 +
 .../guide/backgroundJobs/backgroundJobsBasic.adoc  |  170 +
 .../guide/commandLine/creatingCustomCommands.adoc  |    9 +-
 .../gradleBuild/gradleDependencies.adoc            |    1 -
 .../applicationClass/applicationLifeCycle.adoc     |    2 +
 .../guide/conf/applicationClass/customizing.adoc   |   34 +-
 grails-doc/src/en/guide/conf/config.adoc           |   33 +
 grails-doc/src/en/guide/conf/config/logging.adoc   |  137 +-
 .../config/logging/loggingFullStackTraces.adoc     |    9 +
 .../guide/conf/dataSource/multipleDatasources.adoc |   13 +
 grails-doc/src/en/guide/conf/micronaut.adoc        |   74 +-
 .../src/en/guide/deployment/deploymentAot.adoc     |  172 +
 .../en/guide/deployment/deploymentAotCache.adoc    |  191 +
 .../src/en/guide/gettingStarted/requirements.adoc  |    5 +-
 grails-doc/src/en/guide/i18n/changingLocales.adoc  |    5 +-
 .../en/guide/i18n/understandingMessageBundles.adoc |   67 +
 grails-doc/src/en/guide/index.adoc                 |   85 +
 grails-doc/src/en/guide/introduction/whatsNew.adoc |  392 +-
 .../introduction/whatsNew/dependencyUpgrades.adoc  |    2 +-
 .../plugins/creatingAndInstallingPlugins.adoc      |   12 +-
 .../plugins/hookingIntoRuntimeConfiguration.adoc   |  214 +
 .../en/guide/plugins/providingBasicArtefacts.adoc  |    9 +
 grails-doc/src/en/guide/reference.adoc             |   25 +
 grails-doc/src/en/guide/scaffolding.adoc           |    2 +-
 grails-doc/src/en/guide/security/codecs.adoc       |    6 +
 .../en/guide/security/securingAgainstAttacks.adoc  |   65 +
 .../security/securityPlugins/springSecurity.adoc   |    4 +-
 .../springSecurity/cas/configuration.adoc          |   26 +-
 .../springSecurity/cas/introduction.adoc           |    2 +-
 .../securityPlugins/springSecurity/cas/usage.adoc  |   20 +-
 .../securityPlugins/springSecurity/core/ip.adoc    |    2 +
 .../springSecurity/ui/customization.adoc           |    2 +-
 .../src/en/guide/spring/springdslAdditional.adoc   |   38 +
 .../grailsCompileStatic.adoc                       |   26 +
 .../src/en/guide/testing/integrationTesting.adoc   |    2 +-
 .../guide/testing/runningTests/withGrailsCli.adoc  |   21 +-
 .../src/en/guide/testing/testingMongodb.adoc       |   74 +
 .../guide/theWebLayer/controllers/dataBinding.adoc |    4 +-
 .../guide/theWebLayer/controllers/formtokens.adoc  |    2 +
 .../theWebLayer/controllers/uploadingFiles.adoc    |   39 +-
 .../src/en/guide/theWebLayer/gson/gsonHal.adoc     |    6 +-
 .../src/en/guide/theWebLayer/gson/gsonTesting.adoc |    7 +-
 .../theWebLayer/gsp/GSPBasics/expressions.adoc     |   12 +
 .../en/guide/theWebLayer/gsp/gspInSpringBoot.adoc  |  164 +
 .../theWebLayer/gsp/gspStaticCompilation.adoc      |  253 +
 .../src/en/guide/theWebLayer/gsp/layouts.adoc      |    2 +-
 .../gsp/makingChangesToADeployedApplication.adoc   |    5 +-
 .../theWebLayer/gsp/taglibs/compiledTags.adoc      |  308 +
 .../gsp/taglibs/usingJSPTagLibraries.adoc          |    2 +
 .../interceptors/interceptorMatching.adoc          |   22 +-
 .../theWebLayer/urlmappings/embeddedVariables.adoc |    2 +
 .../theWebLayer/urlmappings/restfulMappings.adoc   |   78 +-
 grails-doc/src/en/guide/toc.yml                    |   22 +
 grails-doc/src/en/guide/traits/traitsprovided.adoc |    2 +-
 grails-doc/src/en/guide/upgrading.adoc             |   25 +
 .../src/en/guide/upgrading/upgrading60x.adoc       |  118 +
 .../src/en/guide/upgrading/upgrading70x.adoc       |    6 +-
 .../src/en/guide/upgrading/upgrading80x.adoc       | 2667 ++++++-
 grails-doc/src/en/ref/Command Line/test-app.adoc   |   13 +-
 grails-doc/src/en/ref/Constraints/bindable.adoc    |    5 +-
 grails-doc/src/en/ref/Controllers/bindData.adoc    |   50 +-
 grails-doc/src/en/ref/Controllers/withForm.adoc    |    2 +
 grails-doc/src/en/ref/Database Mapping/type.adoc   |    4 +-
 grails-doc/src/en/ref/Dependency Versions.adoc     |    5 +-
 .../src/en/ref/Domain Classes/createCriteria.adoc  |    2 +
 grails-doc/src/en/ref/Domain Classes/list.adoc     |    4 +-
 .../src/en/ref/Domain Classes/listOrderBy.adoc     |    2 +-
 grails-doc/src/en/ref/Domain Classes/lock.adoc     |   98 +-
 grails-doc/src/en/ref/Domain Classes/refresh.adoc  |   72 +
 grails-doc/src/en/ref/Tags - GSP/set.adoc          |    9 +
 grails-doc/src/en/ref/Triggers.adoc                |   41 +
 grails-doc/src/en/ref/Triggers/cron.adoc           |   59 +
 grails-doc/src/en/ref/Triggers/custom.adoc         |   58 +
 grails-doc/src/en/ref/Triggers/simple.adoc         |   57 +
 grails-domain-class/build.gradle                   |    4 +-
 .../DomainClassEnvironmentPostProcessor.groovy     |   70 +
 .../plugins/domain/DomainClassGrailsPlugin.groovy  |   45 +-
 .../GrailsDomainClassAutoConfiguration.groovy      |   78 -
 .../src/main/resources/META-INF/spring.factories   |   20 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    2 +-
 .../domain/AutoTimestampCacheDefaultSpec.groovy    |   97 +
 .../domain/DomainClassGrailsPluginSpec.groovy      |   65 -
 grails-encoder/build.gradle                        |    5 +-
 .../grails/encoder/CodecMetaClassSupport.groovy    |   79 +-
 .../encoder/CodecMetaClassSupportSpec.groovy       |  336 +
 .../events/bus/spring/EventBusFactoryBean.groovy   |   15 +-
 .../grails/events/TaskExecuterEventBusSpec.groovy  |   38 +-
 grails-events/plugin/build.gradle                  |    7 +-
 grails-fields/build.gradle                         |    9 +-
 .../plugin/formfields/FormFieldsTagLib.groovy      |    2 +-
 .../formfields/FormFieldsTemplateService.groovy    |   32 +-
 .../model/DomainModelServiceImpl.groovy            |    2 +-
 .../formfields/DefaultFieldTemplateSpec.groovy     |  104 +-
 .../formfields/TemplateLookupCachingSpec.groovy    |   38 +
 grails-forge/README.md                             |  196 +-
 grails-forge/build.gradle                          |   28 +-
 grails-forge/config/checkstyle/checkstyle.xml      |    4 -
 grails-forge/docs/aws-elastic-beanstalk.md         |  229 +
 grails-forge/gradle.properties                     |    7 +-
 grails-forge/gradle/test-config.gradle             |    2 +-
 grails-forge/gradle/wrapper/gradle-wrapper.jar     |  Bin 48462 -> 47505 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    2 +-
 grails-forge/gradlew                               |    4 +-
 grails-forge/gradlew.bat                           |    4 +-
 .../grails/forge/api/GrailsForgeConfiguration.java |   72 +-
 .../api/create/github/GitHubCreateController.java  |  181 -
 .../forge/api/create/github/GitHubCreateDTO.java   |   57 -
 .../api/create/github/GitHubCreateOperation.java   |   76 -
 .../api/create/github/GitHubCreateService.java     |  220 -
 .../api/create/github/GitHubRedirectService.java   |  149 -
 .../grails-forge-api/native-image.properties       |   14 -
 .../forge/api/ApplicationControllerSpec.groovy     |   23 +
 .../forge/api/GrailsForgeConfigurationSpec.groovy  |   49 +
 .../create/github/GitHubApiMockedController.groovy |  101 -
 .../github/GitHubCreateControllerSpec.groovy       |  116 -
 .../github/GitHubOauthMockedController.groovy      |   45 -
 .../src/test/resources/logback.xml                 |    1 -
 grails-forge/grails-forge-cli/build.gradle         |    7 +-
 .../org/grails/forge/cli/InteractiveShell.java     |   32 +-
 .../groovy/org/grails/forge/cli/CommandSpec.groovy |   50 +-
 grails-forge/grails-forge-core/build.gradle        |    4 +-
 .../dependencies/PomDependencyVersionResolver.java |    6 +-
 .../forge/client/github/oauth/AccessToken.java     |   59 -
 .../client/github/oauth/GitHubOAuthClient.java     |   37 -
 .../client/github/oauth/GitHubOAuthOperations.java |   37 -
 .../forge/client/github/v3/GitHubApiClient.java    |   39 -
 .../client/github/v3/GitHubApiOperations.java      |   94 -
 .../forge/client/github/v3/GitHubRepository.java   |   89 -
 .../forge/client/github/v3/GitHubSecret.java       |   58 -
 .../client/github/v3/GitHubSecretsPublicKey.java   |   50 -
 .../grails/forge/client/github/v3/GitHubUser.java  |   68 -
 .../forge/client/github/v3/GitHubWorkflowRun.java  |   67 -
 .../forge/client/github/v3/GitHubWorkflowRuns.java |   53 -
 .../templates/gradleWrapperProperties.rocker.raw   |    2 +-
 .../grails/forge/feature/database/AsyncGorm.java   |   94 +
 .../forge/feature/database/GrailsDataMongoDB.java  |   29 +-
 .../feature/database/MongoDBTestingSupport.java    |   76 +
 .../database/MongoDBTestingSupportValidator.java   |   47 +
 .../forge/feature/database/MongoFeature.java       |   25 +
 .../grails/forge/feature/database/MongoSync.java   |    6 +-
 .../grails/forge/feature/database/Neo4jGorm.java   |   78 +
 .../grails/templates/urlMappings.rocker.raw        |    4 +
 .../feature/lang/groovy/application.rocker.raw     |   30 +-
 .../forge/feature/lang/groovy/bootStrap.rocker.raw |    8 +-
 .../org/grails/forge/feature/logging/Logback.java  |   11 +-
 .../forge/feature/logging/LogbackConfig.java       |   84 +
 .../forge/feature/security/SecurityFeature.java    |    3 +-
 .../security/SpringBootStarterSecurity.java        |   12 +-
 .../security/template/securityConfig.rocker.raw    |   51 -
 .../feature/security/template/user.rocker.raw      |   15 +-
 .../security/template/userClassic.rocker.raw       |   11 +-
 .../feature/security/template/userSpec.rocker.raw  |   35 +-
 .../org/grails/forge/feature/view/Scaffolding.java |    5 -
 .../java/org/grails/forge/options/GormImpl.java    |    3 +-
 .../java/org/grails/forge/util/GitHubUtil.java     |   94 -
 .../src/main/resources/gradle/gradlew              |    4 +-
 .../src/main/resources/gradle/gradlew.bat          |    4 +-
 .../resources/gradle/wrapper/gradle-wrapper.jar    |  Bin 48462 -> 47505 bytes
 .../src/main/resources/gsp/error.gsp               |    4 +-
 .../src/main/resources/gsp/index.gsp               |   59 +-
 .../src/main/resources/gsp/main.gsp                |   35 +-
 .../forge/ActiveProcessorCountForkSpec.groovy      |   39 +
 .../PomDependencyVersionResolverSpec.groovy        |   39 +-
 .../forge/feature/database/AsyncGormSpec.groovy    |   94 +
 .../feature/database/GrailsDataMongoDBSpec.groovy  |   33 +
 .../database/MongoDBTestingSupportSpec.groovy      |   76 +
 .../forge/feature/database/MongoSyncSpec.groovy    |   18 +
 .../forge/feature/database/Neo4JGormSpec.groovy    |   67 +
 .../feature/grails/GrailsUrlMappingsSpec.groovy    |   63 +
 .../forge/feature/logging/LogbackSpec.groovy       |   32 +-
 .../security/GrailsSpringSecuritySpec.groovy       |   37 +
 .../security/SpringBootStarterSecuritySpec.groovy  |   95 +-
 .../grails/forge/feature/view/GrailsGspSpec.groovy |   29 +-
 .../forge/feature/view/ScaffoldingSpec.groovy      |    4 +-
 .../org/grails/forge/options/GormImplSpec.groovy   |    2 +-
 .../aws/.platform/nginx/conf.d/proxy.conf          |   19 +
 grails-forge/grails-forge-web-netty/aws/Procfile   |    1 +
 grails-forge/grails-forge-web-netty/aws/start.sh   |   31 +
 grails-forge/grails-forge-web-netty/build.gradle   |   31 +
 .../grails-forge-web-netty/reflect-config.json     |   30 -
 .../grails-forge-web-netty/resource-config.json    |    5 +-
 .../src/main/resources/application.yml             |   13 +-
 grails-forge/infrastructure/README.md              |   84 +
 grails-forge/infrastructure/environment.yaml       |  293 +
 grails-forge/infrastructure/shared.yaml            |  400 ++
 grails-forge/settings.gradle                       |   10 +-
 grails-geb/build.gradle                            |    1 +
 .../grails/plugin/geb/GebGrailsPlugin.groovy       |    2 +-
 .../plugin/geb/GebRecordingTestListenerSpec.groovy |   80 +
 .../plugin/geb/WebDriverContainerHolderSpec.groovy |  200 +
 .../plugin/geb/GebRecordingTestListener.groovy     |   14 +
 .../plugin/geb/WebDriverContainerHolder.groovy     |   52 +-
 grails-gradle/build.gradle                         |   30 +-
 .../grails/gradle/common/XmlParserFeature.java     |   94 +
 .../gradle/common/XmlParserFeatureSpec.groovy      |   54 +
 grails-gradle/gradle/docs-config.gradle            |    1 -
 grails-gradle/gradle/test-config.gradle            |    2 +-
 grails-gradle/gradle/wrapper/gradle-wrapper.jar    |  Bin 48462 -> 47505 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    2 +-
 grails-gradle/gradlew                              |    4 +-
 grails-gradle/gradlew.bat                          |    4 +-
 grails-gradle/model/build.gradle                   |    3 +-
 .../model/src/main/groovy/grails/io/IOUtils.groovy |    6 +-
 .../main/groovy/grails/util/BuildSettings.groovy   |   43 +
 .../src/main/groovy/grails/util/Environment.groovy |    8 +-
 .../org/grails/io/support/SpringIOUtils.java       |  162 +-
 .../org/grails/io/support/SpringIOUtilsSpec.groovy |  194 +
 grails-gradle/plugins/build.gradle                 |    7 +
 .../gradle/plugin/aot/AotCacheExtension.groovy     |   67 +
 .../plugin/aot/ExtractApplicationTask.groovy       |   96 +
 .../plugin/aot/GenerateNativeMetadataTask.groovy   |  188 +
 .../plugin/aot/NativeMetadataExtension.groovy      |   62 +
 .../apache/grails/gradle/plugin/aot/RunPort.groovy |   64 +
 .../grails/gradle/plugin/aot/StartupLog.groovy     |  113 +
 .../plugin/aot/TraceNativeMetadataTask.groovy      |  495 ++
 .../gradle/plugin/aot/TrainAotCacheTask.groovy     |  385 +
 .../plugin/bom/BomPropertyOverridesPlugin.groovy   |    8 +
 .../commands/GrailsCliArtifactGradlePlugin.groovy  |   97 +-
 .../plugin/commands/GrailsCliGradlePlugin.groovy   |  100 +-
 .../AutoConfigurationImportsCompileInput.groovy    |   44 +
 .../GrailsCompileStaticArtefactsProvider.groovy    |   11 +-
 .../plugin/core/GrailsCompileStaticOptions.groovy  |  112 +-
 .../core/GrailsCompilerConfigScriptTask.groovy     |   87 +
 .../gradle/plugin/core/GrailsExtension.groovy      |   72 +-
 .../plugin/core/GrailsGormIdTypeProvider.groovy    |   76 +
 .../gradle/plugin/core/GrailsGormOptions.groovy    |   71 +
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   |  709 +-
 .../core/GrailsGspCompileStaticProvider.groovy     |   79 +
 .../gradle/plugin/core/GrailsI18nOptions.groovy    |   64 +
 .../plugin/core/GrailsPluginGradlePlugin.groovy    |  150 +-
 .../plugin/core/TestPhasesGradlePlugin.groovy      |    2 +-
 .../plugin/i18n/GenerateI18nDescriptorTask.groovy  |  177 +
 .../gradle/plugin/i18n/I18nBundleIndex.groovy      |  222 +
 .../scaffolding/GenerateScaffoldedViewsTask.groovy |  301 +
 .../views/gsp/GenerateTagLibraryIndexTask.groovy   |  206 +
 .../views/gsp/GroovyPageForkCompileTask.groovy     |   62 +-
 .../plugin/views/gsp/GroovyPagePlugin.groovy       |  404 +-
 .../plugin/views/gsp/TagLibraryIndexFiles.groovy   |  133 +
 .../plugin/aot/ExtractApplicationTaskSpec.groovy   |   54 +
 .../aot/GenerateNativeMetadataTaskSpec.groovy      |  182 +
 .../grails/gradle/plugin/aot/RunPortSpec.groovy    |   74 +
 .../grails/gradle/plugin/aot/StartupLogSpec.groovy |  129 +
 .../plugin/aot/TraceNativeMetadataTaskSpec.groovy  |  345 +
 .../gradle/plugin/aot/TracedRunFixture.groovy      |  138 +
 .../gradle/plugin/aot/TrainAotCacheTaskSpec.groovy |  383 +
 .../gradle/plugin/aot/TrainingRunFixture.groovy    |   66 +
 .../bom/BomPropertyOverridesPluginSpec.groovy      |   20 +
 .../plugin/commands/CliAutoDiscoverySpec.groovy    |  129 +-
 .../commands/LegacyCommandTaskDiscoverySpec.groovy |   44 +
 .../PluginScriptCommandPackagingSpec.groovy        |  129 +
 .../core/ActiveProcessorCountForkSpec.groovy       |   38 +
 .../plugin/core/AssetClasspathPackagingSpec.groovy |   47 +
 .../core/AutoConfigurationImportsInputSpec.groovy  |   53 +
 .../plugin/core/BomPlatformFunctionalSpec.groovy   |   32 -
 .../core/GormDefaultIdTypeFunctionalSpec.groovy    |   97 +
 ...GrailsCompileStaticArtefactsProviderSpec.groovy |   39 +
 .../core/GrailsCompileStaticOptionsSpec.groovy     |   14 +-
 .../gradle/plugin/core/GrailsExtensionSpec.groovy  |   43 +-
 .../core/GrailsGormIdTypeProviderSpec.groovy       |  121 +
 .../core/GrailsGroovyCompilerConfigSpec.groovy     |  369 +
 .../core/GrailsGspCompileStaticProviderSpec.groovy |  153 +
 .../core/GrailsNativeImageDefaultsSpec.groovy      |  101 +
 .../core/GrailsWebDaemonReuseFunctionalSpec.groovy |   56 +
 .../plugin/core/TestPhasesGradlePluginSpec.groovy  |  108 +
 .../i18n/GenerateI18nDescriptorTaskSpec.groovy     |  124 +
 .../gradle/plugin/i18n/I18nBundleIndexSpec.groovy  |  148 +
 .../i18n/I18nDescriptorFunctionalSpec.groovy       |  119 +
 .../GenerateScaffoldedViewsTaskSpec.groovy         |  335 +
 .../gsp/GenerateTagLibraryIndexTaskSpec.groovy     |  231 +
 .../gsp/GroovyPagePluginFunctionalSpec.groovy      |  131 +
 .../views/gsp/GroovyPageToolchainSpec.groovy       |  108 +
 .../views/gsp/TagLibraryIndexFilesSpec.groovy      |  113 +
 .../gsp/TagLibraryIndexWiringFunctionalSpec.groovy |  131 +
 .../asset-classpath-packaging/build.gradle         |   42 +
 .../asset-classpath-packaging/gradle.properties    |    2 +
 .../asset-classpath-packaging/settings.gradle      |    1 +
 .../build.gradle                                   |   38 -
 .../settings.gradle                                |    1 -
 .../build.gradle                                   |   49 -
 .../settings.gradle                                |    1 -
 .../cli-companion-autodiscovery/app/build.gradle   |   37 +-
 .../included-digit-bearing-plugin/build.gradle     |   21 +
 .../my-plugin-2fa-one/build.gradle                 |    1 +
 .../my-plugin-2fa-snapshot/build.gradle            |    1 +
 .../my-plugin-2fa-timestamp/build.gradle           |    1 +
 .../my-plugin-2fa-unspecified/build.gradle         |    1 +
 .../included-digit-bearing-plugin/settings.gradle  |    3 +
 .../cli-companion-autodiscovery/settings.gradle    |    9 +
 .../app/build.gradle                               |   20 +
 .../build.gradle                                   |    0
 .../gradle.properties                              |    0
 .../producer/build.gradle                          |    3 +
 .../runtime-only-producer/build.gradle             |    3 +
 .../settings.gradle                                |    4 +
 .../build.gradle                                   |  123 +
 .../gradle.properties                              |    0
 .../settings.gradle                                |   25 +
 .../src/main/groovy/example/ConfiguredType.groovy  |   29 +
 .../build.gradle                                   |   60 +
 .../gradle.properties                              |    0
 .../settings.gradle                                |    1 +
 .../compiler-config-incremental/build.gradle       |   11 +
 .../gradle.properties                              |    0
 .../compiler-config-incremental/settings.gradle    |    1 +
 .../compiler-config-late-assignment/build.gradle   |   20 +
 .../gradle.properties                              |    0
 .../settings.gradle                                |    1 +
 .../user-config.groovy                             |    1 +
 .../compiler-config-late-source-set/build.gradle   |   15 +
 .../gradle.properties                              |    0
 .../settings.gradle                                |    1 +
 .../build.gradle                                   |    7 +
 .../gradle.properties                              |    0
 .../settings.gradle                                |    1 +
 .../compiler-config-plugin-inputs/build.gradle     |   14 +
 .../gradle.properties                              |    0
 .../compiler-config-plugin-inputs/settings.gradle  |    1 +
 .../build.gradle                                   |   40 +
 .../gradle.properties                              |    0
 .../settings.gradle                                |    1 +
 .../compiler-config-standalone-task/build.gradle   |   27 +
 .../gradle.properties                              |    0
 .../settings.gradle                                |    1 +
 .../user-config.groovy                             |    1 +
 .../compiler-config-star-imports/build.gradle      |   17 +
 .../gradle.properties                              |    0
 .../compiler-config-star-imports/settings.gradle   |    1 +
 .../app/build.gradle                               |   21 +
 .../app/grails-app/conf/application.yml            |    4 +
 .../build.gradle                                   |   31 +
 .../gradle.properties                              |    0
 .../plugin/build.gradle                            |   16 +
 .../plugin/src/main/java/example/PortableBook.java |   14 +
 .../settings.gradle                                |   11 +
 .../gorm-default-id-type/build.gradle              |   33 +
 .../gradle.properties                              |    0
 .../grails-app/conf/application.yml                |    0
 .../gorm-default-id-type/settings.gradle           |    1 +
 .../gsp-compile-classpath-grails/build.gradle      |   30 +
 .../gsp-compile-classpath-grails/gradle.properties |    2 +
 .../gsp-compile-classpath-grails/settings.gradle   |    1 +
 .../gsp-compile-classpath/build.gradle             |   66 +
 .../compile-classpath-marker/marker.txt            |    1 +
 .../provided-compile-marker/marker.txt             |    1 +
 .../gsp-compile-classpath/settings.gradle          |    1 +
 .../test-projects/gsp-compile-static/build.gradle  |   32 +
 .../gradle.properties                              |    0
 .../grails-app/conf/application.yml                |    0
 .../gsp-compile-static/settings.gradle             |    1 +
 .../test-projects/i18n-descriptor-app/build.gradle |    3 +
 .../i18n-descriptor-app/gradle.properties          |    2 +
 .../grails-app/i18n/api_errors.properties          |    1 +
 .../grails-app/i18n/messages.properties            |    1 +
 .../grails-app/i18n/messages_de.properties         |    1 +
 .../grails-app/i18n/messages_pt_BR.properties      |    1 +
 .../i18n-descriptor-app/settings.gradle            |    1 +
 .../i18n-descriptor-declared/build.gradle          |    9 +
 .../i18n-descriptor-declared/gradle.properties     |    2 +
 .../grails-app/i18n/api.properties                 |    1 +
 .../grails-app/i18n/api_errors.properties          |    1 +
 .../i18n-descriptor-declared/settings.gradle       |    1 +
 .../i18n-descriptor-plugin-collision/build.gradle  |    3 +
 .../gradle.properties                              |    2 +
 .../grails-app/i18n/messages.properties            |    1 +
 .../settings.gradle                                |    1 +
 .../demo/SpringSecurityDemoGrailsPlugin.groovy     |    5 +
 .../i18n-descriptor-plugin/build.gradle            |    3 +
 .../i18n-descriptor-plugin/gradle.properties       |    2 +
 .../spring-security-demo-validation.properties     |    1 +
 .../i18n/spring-security-demo.properties           |    1 +
 .../i18n/spring-security-demo_fr.properties        |    1 +
 .../i18n-descriptor-plugin/settings.gradle         |    1 +
 .../demo/SpringSecurityDemoGrailsPlugin.groovy     |    5 +
 .../legacy-command-discovery/app/build.gradle      |   15 +
 .../gradle.properties                              |    0
 .../legacy-command-api/build.gradle                |    3 +
 .../grails/dev/commands/ApplicationCommand.java    |   28 +
 .../java/grails/dev/commands/ExecutionContext.java |   22 +
 .../legacy-command-plugin/build.gradle             |   14 +
 .../example/legacy/HelloLegacyAppCommand.groovy    |   40 +
 .../src/main/resources/META-INF/grails.factories   |    1 +
 .../legacy-command-discovery/settings.gradle       |    3 +
 .../test-projects/native-defaults-aot/build.gradle |   10 +
 .../gradle.properties                              |    0
 .../grails-app/conf/application.yml                |    0
 .../native-defaults-aot/settings.gradle            |    1 +
 .../test-projects/native-defaults-off/build.gradle |   12 +
 .../gradle.properties                              |    0
 .../grails-app/conf/application.yml                |    0
 .../native-defaults-off/settings.gradle            |    1 +
 .../test-projects/native-defaults-on/build.gradle  |   10 +
 .../gradle.properties                              |    0
 .../grails-app/conf/application.yml                |    0
 .../native-defaults-on/settings.gradle             |    1 +
 .../native-metadata-ordering/build.gradle          |   24 +
 .../gradle.properties                              |    0
 .../grails-app/conf/application.yml                |    0
 .../grails-app/views/index.gsp                     |    3 +
 .../native-metadata-ordering/settings.gradle       |    1 +
 .../plugin-script-commands/gradle.properties       |    2 +
 .../plugin-with-cli/build.gradle                   |   89 +
 .../grails-app/views/sample/show.gsp               |    1 +
 .../resources/META-INF/commands/hand-authored.yml  |    1 +
 .../src/main/scripts/example-multi-step.yml        |    3 +
 .../src/main/scripts/example-script.groovy         |    5 +
 .../plugin-with-cli/src/main/templates/example.gsp |    1 +
 .../plugin-with-cli/src/main/templates/example.txt |    1 +
 .../plugin-without-cli/build.gradle                |   38 +
 .../src/main/scripts/legacy-only-script.groovy     |    5 +
 .../src/main/templates/legacy-only.gsp             |    1 +
 .../src/main/templates/legacy-only.txt             |    1 +
 .../plugin-script-commands/settings.gradle         |    3 +
 .../test-projects/taglib-index-wiring/build.gradle |   32 +
 .../taglib-index-wiring/settings.gradle            |    1 +
 .../test-projects/web-daemon-reuse/build.gradle    |    3 +
 .../gradle.properties                              |    0
 .../grails-app/conf/application.yml                |    0
 .../test-projects/web-daemon-reuse/settings.gradle |    1 +
 grails-gradle/settings.gradle                      |    8 +
 grails-gsp/core/build.gradle                       |   13 +-
 .../gsp/aot/PrecompiledPageRuntimeHints.java       |   52 +
 .../org/grails/gsp/CompileStaticGroovyPage.groovy  |    5 +
 .../src/main/groovy/org/grails/gsp/GroovyPage.java |   93 +-
 .../groovy/org/grails/gsp/GroovyPageMetaInfo.java  |  117 +-
 .../org/grails/gsp/GroovyPagesMetaUtils.groovy     |   25 +-
 .../org/grails/gsp/GroovyPagesTemplateEngine.java  |   12 +-
 .../org/grails/gsp/ModelRecordingGroovyPage.groovy |    3 +-
 .../grails/gsp/compiler/GroovyPageCompiler.groovy  |   69 +-
 .../org/grails/gsp/compiler/GroovyPageParser.java  |  295 +-
 .../org/grails/gsp/compiler/GroovyPageScanner.java |   13 +-
 .../gsp/compiler/GroovyPageTypeCheckingConfig.java |   22 +
 .../GroovyPageTypeCheckingExtension.groovy         |  255 +-
 .../gsp/compiler/PageScopeVariableScanner.java     |  177 +
 .../org/grails/gsp/compiler/tags/GroovyDefTag.java |   25 +-
 .../grails/gsp/io/DefaultGroovyPageLocator.java    |   25 +-
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../gsp/aot/PrecompiledPageRuntimeHintsSpec.groovy |   64 +
 .../grails/gsp/GroovyPageMetaInfoReloadSpec.groovy |  162 +
 .../grails/gsp/GroovyPageMethodMissingSpec.groovy  |  120 +
 .../GroovyPagesTemplateEngineChecksumSpec.groovy   |   52 +
 .../gsp/GroovyPagesTemplateEngineTests.groovy      |   58 +
 .../grails/gsp/GspCompileStaticConfigSpec.groovy   |  721 ++
 .../org/grails/gsp/GspCompileStaticSpec.groovy     |  133 +
 .../GroovyPageCompilerReproducibilitySpec.groovy   |  107 +
 .../gsp/compiler/GroovyPageCompilerSpec.groovy     |  116 +
 .../compiler/PageScopeVariableScannerSpec.groovy   |  119 +
 .../DefaultGroovyPageLocatorPrecompiledSpec.groovy |  120 +
 grails-gsp/grails-layout/build.gradle              |    7 +-
 ...ilsSiteMeshViewResolverBeanPostProcessor.groovy |   18 +-
 .../sitemesh3/Sitemesh3AutoConfiguration.groovy    |  131 -
 .../Sitemesh3EnvironmentPostProcessor.groovy       |   38 +-
 .../plugins/sitemesh3/Sitemesh3GrailsPlugin.groovy |  127 +-
 .../plugins/sitemesh3/Sitemesh3LayoutTagLib.groovy |    8 +
 .../sitemesh3/GrailsSiteMeshViewResolver.java      |   12 +-
 .../src/main/resources/META-INF/spring.factories   |    2 +-
 ...iteMeshViewResolverBeanPostProcessorSpec.groovy |   22 +
 ...lsSiteMeshViewResolverServletContextSpec.groovy |  105 +
 .../Sitemesh3AutoConfigurationSpec.groovy          |   53 +
 .../sitemesh3/Sitemesh3LayoutTagLibSpec.groovy     |   20 +
 grails-gsp/grails-taglib/build.gradle              |    8 +-
 .../grails/core/gsp/DefaultGrailsTagLibClass.java  |   24 +-
 .../org/grails/taglib/CompiledTagInvocation.java   |  215 +
 .../org/grails/taglib/GroovyPageAttributes.java    |   13 +-
 .../grails/taglib/NamespacedTagDispatcher.groovy   |   23 +-
 .../taglib/TagLibNamespaceMethodDispatcher.groovy  |    2 +-
 .../org/grails/taglib/TagLibraryMetaUtils.groovy   |   56 +-
 .../groovy/org/grails/taglib/TagMethodInvoker.java |  217 +-
 .../main/groovy/org/grails/taglib/TagOutput.java   |    2 +-
 .../taglib/TemplateNamespacedTagDispatcher.groovy  |   16 +-
 .../grails/taglib/discovery/AstTagLibraryView.java |   85 +
 .../grails/taglib/discovery/AstTagMethodView.java  |  127 +
 .../taglib/discovery/ReflectedTagLibraryView.java  |   73 +
 .../taglib/discovery/ReflectedTagMethodView.java   |  110 +
 .../grails/taglib/discovery/TagDiscoveryRules.java |  187 +
 .../taglib/discovery/TagLibraryAstDiscovery.java   |   88 +
 .../grails/taglib/discovery/TagLibraryView.java    |   53 +
 .../org/grails/taglib/discovery/TagMethodView.java |  103 +
 .../org/grails/taglib/index/TagLibraryIndex.java   |  526 ++
 .../grails/taglib/index/TagLibraryIndexEntry.java  |   32 +
 .../taglib/index/TagLibraryIndexGenerator.java     |  431 ++
 .../grails/taglib/index/TagLibraryIndexWriter.java |  212 +
 .../grails/taglib/GroovyPageAttributesTests.groovy |   70 +-
 .../grails/taglib/index/TagLibraryIndexSpec.groovy |  340 +
 .../TagLibraryIndexWriterConcurrencySpec.groovy    |  127 +
 grails-gsp/grails-web-gsp-taglib/build.gradle      |    2 +
 .../web/pages/StandaloneTagLibraryLookup.java      |   41 +-
 grails-gsp/grails-web-gsp/build.gradle             |   13 +-
 .../gsp/io/GrailsConventionGroovyPageLocator.java  |    2 +-
 .../org/grails/web/pages/GSPResponseWriter.java    |    2 +-
 .../grails/web/servlet/view/GroovyPageView.java    |    5 +-
 .../web/servlet/view/GroovyPageViewResolver.java   |    4 +-
 .../GrailsConventionGroovyPageLocatorSpec.groovy   |    1 -
 grails-gsp/grails-web-jsp/build.gradle             |    2 +
 .../org/grails/gsp/jsp/GroovyPagesPageContext.java |    2 +-
 .../org/grails/gsp/jsp/PageContextFactory.groovy   |    2 +-
 .../groovy/org/grails/gsp/jsp/TldReader.groovy     |    3 +-
 .../grails/gsp/jsp/WebXmlTagLibraryReader.groovy   |    3 +-
 grails-gsp/grails-web-taglib/build.gradle          |    3 +-
 .../main/groovy/grails/artefact/TagLibrary.groovy  |   31 +-
 .../grails/artefact/gsp/TagLibraryInvoker.groovy   |   20 +-
 .../taglib/compiler/CompiledTagCallRewriter.java   |  616 ++
 .../gsp/taglib/compiler/LocalNameCollector.java    |  131 +
 .../gsp/taglib/compiler/PageBindingCollector.java  |   93 +
 .../TagLibArtefactTypeAstTransformation.java       |   88 +-
 .../taglib/WebRequestTemplateVariableBinding.java  |   13 +-
 .../taglib/discovery/TagDiscoveryRulesSpec.groovy  |  122 +
 .../taglib/discovery/TagSetAgreementSpec.groovy    |   98 +
 .../taglib/index/SingleIndexProducerSpec.groovy    |  126 +
 .../index/SourceResolvedIndexGeneratorSpec.groovy  |  452 ++
 .../index/TagLibraryIndexGeneratorSpec.groovy      |  301 +
 .../web/taglib/NoMetaClassMutationSpec.groovy      |  104 +
 .../web/taglib/TagLibraryLookupIndexSpec.groovy    |  118 +
 .../org/grails/web/taglib/TagPrecedenceSpec.groovy |  112 +
 grails-gsp/plugin/build.gradle                     |   15 +-
 .../traits/CompiledTagCallTransformation.groovy    |  109 +
 ...org.codehaus.groovy.transform.ASTTransformation |    1 +
 .../TagLibBeanDefinitionsPostProcessor.groovy      |   95 +
 .../grails/gsp/taglib/aot/TagLibRuntimeHints.java  |  136 +
 .../plugins/web/GroovyPagesGrailsPlugin.groovy     |   88 +-
 .../grails/plugins/web/taglib/FormTagLib.groovy    |  186 +-
 .../plugins/web/taglib/ValidationTagLib.groovy     |    4 +-
 .../additional-spring-configuration-metadata.json  |  116 +
 .../META-INF/spring-configuration-metadata.json    |   99 -
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../TagLibBeanDefinitionsPostProcessorSpec.groovy  |  117 +
 .../gsp/taglib/aot/TagLibRuntimeHintsSpec.groovy   |   84 +
 .../groovy/org/grails/gsp/compiler/ScanTests.java  |   33 +
 .../org/grails/gsp/jsp/JstlDocTypeTldSpec.groovy   |   72 +
 .../org/grails/gsp/jsp/TldReaderTests.groovy       |   56 +
 .../gsp/jsp/WebXmlTagLibraryReaderTests.groovy     |   20 +
 .../GroovyPagesGrailsPluginPrecompiledSpec.groovy  |   77 +
 .../groovy/org/grails/web/pages/ParseSpec.groovy   |    2 +-
 .../web/taglib/AbstractGrailsTagTests.groovy       |   24 +-
 .../web/taglib/CompiledPageTagCallSpec.groovy      |  138 +
 .../web/taglib/CompiledTagCallBytecodeSpec.groovy  |  284 +
 .../web/taglib/CompiledTagCallRewriterSpec.groovy  |   53 +
 .../CompiledTagCallTransformationOrderSpec.groovy  |   68 +
 .../web/taglib/CompiledTagInvocationSpec.groovy    |  146 +
 .../web/taglib/ControllerTagCallRewriteSpec.groovy |  156 +
 .../web/taglib/FormTagLibResourceTests.groovy      |   21 +
 .../org/grails/web/taglib/FormTagLibTests.groovy   |   15 +
 .../taglib/GroovyMethodNameCollisionSpec.groovy    |  212 +
 .../web/taglib/GspStaticTagResolutionSpec.groovy   |  181 +
 .../grails/web/taglib/IndexEdgeCaseTagLib.groovy   |   65 +
 .../web/taglib/LocaleSelectRenderingSpec.groovy    |  151 +-
 .../grails/web/taglib/RewrittenCallsTagLib.groovy  |   52 +
 .../web/taglib/RewrittenPageRenderingSpec.groovy   |   92 +
 .../web/taglib/SameProjectTagResolutionSpec.groovy |  129 +
 .../grails/web/taglib/TagCallShadowingSpec.groovy  |  236 +
 .../web/taglib/TagLibraryIndexAgreementSpec.groovy |  119 +
 .../taglib/TagLibraryInvokerDispatchSpec.groovy    |  176 +
 .../org/grails/web/taglib/TypedSetTagSpec.groovy   |   46 +
 grails-gsp/spring-boot/README.md                   |   47 +-
 grails-gsp/spring-boot/build.gradle                |    6 +
 .../java/grails/gsp/boot/GspAutoConfiguration.java |  189 +-
 ...oneGrailsApplicationAwareBeanPostProcessor.java |   63 +
 .../gsp/boot/StandaloneGroovyPageViewResolver.java |   76 +
 .../gsp/boot/GspAutoConfigurationSpec.groovy       |  133 +
 ...ilsApplicationAwareBeanPostProcessorSpec.groovy |  109 +
 .../StandaloneGroovyPageViewResolverSpec.groovy    |   92 +
 .../gsp/boot/StandaloneTagLibraryLookupSpec.groovy |  117 +
 .../gsp/boot/TagLibraryLookupRegistrarSpec.groovy  |  110 +
 .../boot/UrlMappingsHolderConfigurationSpec.groovy |   91 +
 .../src/test/resources/gsp/views.properties        |   23 +
 grails-i18n/build.gradle                           |    5 +-
 .../plugins/i18n/AvailableLocaleResolver.java      |  155 +-
 .../plugins/i18n/EffectiveI18nDescriptors.java     |  141 +
 .../GrailsLocaleResolverAutoConfiguration.java     |   22 +-
 .../grails/plugins/i18n/I18nAutoConfiguration.java |  159 -
 .../org/grails/plugins/i18n/I18nDescriptor.java    |   60 +
 .../org/grails/plugins/i18n/I18nDescriptors.java   |  175 +
 .../plugins/i18n/I18nEnvironmentPostProcessor.java |  251 +
 .../grails/plugins/i18n/I18nGrailsPlugin.groovy    |  112 +-
 .../plugins/i18n/I18nRuntimeHintsProcessor.java    |  117 +
 .../src/main/resources/META-INF/spring.factories   |   19 +
 .../main/resources/META-INF/spring/aot.factories   |   20 +
 .../i18n/AvailableLocaleResolverSpec.groovy        |  190 +-
 ...railsLocaleResolverAutoConfigurationSpec.groovy |   24 +
 .../plugins/i18n/I18nAutoConfigurationSpec.groovy  |   96 +-
 .../grails/plugins/i18n/I18nDescriptorsSpec.groovy |  184 +
 .../i18n/I18nEnvironmentPostProcessorSpec.groovy   |  291 +
 .../plugins/i18n/I18nGrailsPluginSpec.groovy       |   17 +-
 .../i18n/I18nRuntimeHintsProcessorSpec.groovy      |  119 +
 .../i18n/MessageSourcePrecedenceSpec.groovy        |  124 +
 .../plugins/i18n/MessageSourceReloadSpec.groovy    |   97 +
 .../i18n/fixtures/AlphaPluginGrailsPlugin.groovy   |   26 +
 .../i18n/fixtures/BetaPluginGrailsPlugin.groovy    |   26 +
 .../test/resources/META-INF/grails/i18n.properties |    8 +
 .../src/test/resources/alpha-plugin.properties     |    3 +
 .../src/test/resources/beta-plugin.properties      |    3 +
 grails-interceptors/build.gradle                   |    6 +-
 .../main/groovy/grails/artefact/Interceptor.groovy |   48 +-
 .../main/groovy/grails/interceptors/Matcher.groovy |   20 +
 ...ailsInterceptorHandlerInterceptorAdapter.groovy |   79 +-
 .../web/interceptors/UrlMappingMatcher.groovy      |   38 +-
 ...InterceptorHandlerInterceptorAdapterSpec.groovy |  325 +
 .../groovy/grails/artefact/InterceptorSpec.groovy  |  257 +-
 .../web/interceptors/UrlMappingMatcherSpec.groovy  |   67 +-
 grails-logging/build.gradle                        |    2 +
 grails-mail/build.gradle                           |    7 +
 .../plugins/mail/MailAutoConfiguration.groovy      |  118 -
 .../grails/plugins/mail/MailGrailsPlugin.groovy    |   93 +-
 .../grails/plugins/mail/PlainTextMailTagLib.groovy |    2 +-
 .../plugins/mail/MailAutoConfigurationSpec.groovy  |  150 +
 .../plugins/mail/PlainTextMailTagLibSpec.groovy    |   50 +
 grails-micronaut/build.gradle                      |   51 -
 .../micronaut/GrailsMicronautGrailsPlugin.groovy   |   96 -
 grails-mimetypes/build.gradle                      |   11 +-
 .../grails/mimetypes/aot/MimeTypeRuntimeHints.java |   57 +
 .../plugins/web/api/MimeTypesApiSupport.groovy     |    2 +-
 .../web/mime/HttpServletResponseExtension.groovy   |    8 +-
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 grails-profiles/base/profile.yml                   |    2 -
 .../skeleton/gradle/wrapper/gradle-wrapper.jar     |  Bin 48462 -> 47505 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    2 +-
 grails-profiles/base/skeleton/gradlew              |    4 +-
 grails-profiles/base/skeleton/gradlew.bat          |    4 +-
 .../skeleton/grails-app/conf/logback-spring.xml    |   25 -
 .../skeleton/gradle/wrapper/gradle-wrapper.jar     |  Bin 48462 -> 47505 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    2 +-
 grails-profiles/profile/skeleton/gradlew           |    4 +-
 grails-profiles/profile/skeleton/gradlew.bat       |    4 +-
 .../artifacts/scaffolding/Controller.groovy        |    4 +-
 .../web/skeleton/grails-app/views/error.gsp        |    4 +-
 .../web/skeleton/grails-app/views/index.gsp        |   59 +-
 .../web/skeleton/grails-app/views/layouts/main.gsp |   35 +-
 grails-quartz/build.gradle                         |   89 +
 grails-quartz/grails-app/conf/plugin.yml           |   17 +
 .../grails/plugins/quartz/JobManagerService.groovy |  122 +
 .../plugins/quartz/CustomTriggerFactoryBean.java   |  125 +
 .../plugins/quartz/DefaultGrailsJobClass.java      |  128 +
 .../grails/plugins/quartz/GrailsJobClass.java      |   89 +
 .../plugins/quartz/GrailsJobClassConstants.java    |   92 +
 .../grails/plugins/quartz/GrailsJobFactory.java    |  181 +
 .../plugins/quartz/JobArtefactHandler.groovy       |   75 +
 .../grails/plugins/quartz/JobDescriptor.groovy     |   54 +
 .../plugins/quartz/JobDetailFactoryBean.java       |  130 +
 .../groovy/grails/plugins/quartz/QuartzJob.groovy  |  154 +
 .../plugins/quartz/QuartzJobTraitInjector.groovy   |   33 +
 .../grails/plugins/quartz/TriggerDescriptor.groovy |   52 +
 .../grails/plugins/quartz/TriggerUtils.groovy      |   64 +
 .../plugins/quartz/cleanup/JdbcCleanup.groovy      |   63 +
 .../quartz/config/TriggersConfigBuilder.groovy     |  257 +
 .../listeners/ExceptionPrinterJobListener.java     |   46 +
 .../quartz/listeners/SessionBinderJobListener.java |   94 +
 .../main/groovy/quartz/QuartzGrailsPlugin.groovy   |  453 ++
 grails-quartz/src/main/scripts/CreateJob.groovy    |   39 +
 grails-quartz/src/main/templates/Job.groovy        |   11 +
 .../plugins/quartz/CronTriggerTimeZoneSpec.groovy  |   62 +
 .../quartz/CustomTriggerFactoryBeanSpec.groovy     |  140 +
 .../quartz/DefaultGrailsJobClassSpec.groovy        |   96 +
 .../plugins/quartz/GrailsJobFactorySpec.groovy     |  198 +
 .../plugins/quartz/JobArtefactHandlerSpec.groovy   |   61 +
 .../grails/plugins/quartz/JobDescriptorSpec.groovy |   64 +
 .../plugins/quartz/JobDetailFactoryBeanSpec.groovy |  162 +
 .../grails/plugins/quartz/MockDoWithSpring.groovy  |   49 +
 .../grails/plugins/quartz/QuartzJobSpec.groovy     |  325 +
 .../quartz/QuartzJobTraitInjectorSpec.groovy       |   34 +
 .../grails/plugins/quartz/TestQuartzJob.groovy     |   32 +
 .../plugins/quartz/TriggerDescriptorSpec.groovy    |   73 +
 .../quartz/config/TriggersConfigBuilderSpec.groovy |  166 +
 .../groovy/quartz/QuartzGrailsPluginSpec.groovy    |  371 +
 .../groovy/quartz/QuartzJobStoreCleanupSpec.groovy |  242 +
 .../quartz/QuartzSchedulerContextSpec.groovy       |  145 +
 .../quartz/QuartzStartupSchedulingSpec.groovy      |  198 +
 .../test/groovy/quartz/jobs/ContextSpecJob.groovy  |   42 +
 grails-redis/build.gradle                          |    4 +-
 .../src/main/groovy/redis/RedisGrailsPlugin.groovy |   21 +-
 grails-rest-transforms/build.gradle                |    7 +-
 .../artefact/controller/RestResponder.groovy       |    2 +-
 .../groovy/grails/rest/RestfulController.groovy    |    2 +-
 .../rest/plugin/RestResponderGrailsPlugin.groovy   |    2 +-
 .../web/rest/render/ServletRenderContext.groovy    |    7 +-
 .../ServletRenderContextHttpMethodSpec.groovy      |   58 +
 grails-scaffolding/build.gradle                    |    9 +-
 .../grails/plugin/scaffolding/GormService.groovy   |    2 -
 .../scaffolding/RestfulServiceController.groovy    |    4 +-
 .../scaffolding/ScaffoldingGrailsPlugin.groovy     |    8 +-
 .../scaffolding/aot/ScaffoldingRuntimeHints.java   |   54 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../templates/scaffolding/AsyncController.groovy   |    8 +-
 .../main/templates/scaffolding/Controller.groovy   |    6 +-
 .../src/main/templates/scaffolding/create.gsp      |    1 +
 .../src/main/templates/scaffolding/edit.gsp        |    1 +
 .../src/main/templates/scaffolding/index.gsp       |    3 +-
 .../src/main/templates/scaffolding/show.gsp        |    1 +
 .../ScaffoldedIndexViewModelSpec.groovy            |   63 +
 grails-services/build.gradle                       |    4 +-
 grails-shell-cli/build.gradle                      |   20 +-
 .../main/groovy/org/grails/cli/GrailsCli.groovy    |   58 +-
 ...SpringApplicationWebApplicationInitializer.java |   15 +-
 .../cli/command/run/SpringApplicationRunner.java   |   26 +-
 ...ltRepositorySystemSessionAutoConfiguration.java |   55 +
 .../grails/cli/gradle/GradleAsyncInvoker.groovy    |    3 +-
 .../cli/gradle/cache/CachedGradleOperation.groovy  |    3 +-
 .../completers/ClassNameCompleter.groovy           |    3 +-
 .../org/grails/cli/profile/AbstractProfile.groovy  |    4 +-
 .../grails/cli/profile/ProfileRepoConfig.groovy    |    2 +-
 .../cli/profile/commands/CreateAppCommand.groovy   |    4 +-
 .../commands/DefaultMultiStepCommand.groovy        |    3 +-
 .../ApplicationContextCommandFactory.groovy        |   62 +-
 .../factory/GroovyScriptCommandFactory.groovy      |    2 +
 .../commands/templates/TemplateRendererImpl.groovy |    3 +-
 .../repository/MavenProfileRepository.groovy       |   35 +-
 .../org/grails/cli/GrailsCliLoggingVerifier.groovy |   63 +
 .../cli/GrailsCliProjectDetectionSpec.groovy       |   57 +
 .../groovy/org/grails/cli/GrailsCliSpec.groovy     |  101 +
 ...ApplicationWebApplicationInitializerSpec.groovy |   97 +
 .../cli/command/run/LifecycleVerifier.groovy       |  195 +
 .../command/run/SpringApplicationRunnerSpec.groovy |  133 +
 ...sitorySystemSessionAutoConfigurationSpec.groovy |   97 +
 .../gradle/RunningApplicationProcessSpec.groovy    |   20 +-
 .../grails/cli/profile/AbstractProfileSpec.groovy  |  119 +
 .../profile/commands/CreateAppCommandSpec.groovy   |    2 +-
 .../ApplicationContextCommandFactorySpec.groovy    |  113 +
 .../factory/LegacyPluginScriptCompatSpec.groovy    |  107 +
 .../MavenProfileRepositorySnapshotSpec.groovy      |   53 +
 .../gradle/wrapper/gradle-wrapper.jar              |  Bin 48462 -> 47505 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    2 +-
 .../src/test/resources/gradle-sample/gradlew       |    4 +-
 .../src/test/resources/gradle-sample/gradlew.bat   |    4 +-
 .../spring-boot-dependencies-effective-bom.xml     |    9 +
 .../acl/SpringSecurityAclGrailsPlugin.groovy       |    8 +-
 .../conf/DefaultCasSecurityConfig.groovy           |    5 +-
 .../cas/plugin/grails-app/conf/logback.xml         |    1 -
 .../cas/SpringSecurityCasGrailsPlugin.groovy       |   48 +-
 grails-spring-security/compat/build.gradle         |    7 +
 .../web/util/matcher/AntPathRequestMatcher.groovy  |   38 +-
 .../util/matcher/AntPathRequestMatcherSpec.groovy  |  122 +
 grails-spring-security/ldap/plugin/build.gradle    |    4 +
 .../ldap/plugin/grails-app/conf/logback.xml        |    1 -
 .../ldap/SpringSecurityLdapGrailsPlugin.groovy     |    8 +-
 grails-spring-security/oauth2/plugin/build.gradle  |    6 +-
 ...roperties => spring-security-oauth2.properties} |    0
 .../oauth2/SpringSecurityOauth2GrailsPlugin.groovy |    2 +-
 grails-spring-security/plugin/build.gradle         |   12 +-
 .../plugin/springsecurity/ReflectionUtils.groovy   |    7 +-
 .../SpringSecurityCoreGrailsPlugin.groovy          |    8 +-
 .../springsecurity/SpringSecurityUtils.groovy      |   12 +-
 ...tContextHolderExceptionTranslationFilter.groovy |    6 -
 .../web/filter/IpAddressFilter.groovy              |   50 +-
 .../additional-spring-configuration-metadata.json  |  964 +++
 .../META-INF/spring-configuration-metadata.json    | 1088 ---
 .../ConfigurationMetadataSpec.groovy               |   82 +
 .../springsecurity/ReflectionUtilsSpec.groovy      |   48 +
 ...textHolderExceptionTranslationFilterSpec.groovy |   93 +
 .../web/filter/IpAddressFilterSpec.groovy          |  178 +
 grails-spring-security/rest/core/build.gradle      |    3 +
 .../rest/SpringSecurityRestGrailsPlugin.groovy     |   10 +-
 grails-spring-security/rest/gorm/build.gradle      |    1 +
 .../rest/SpringSecurityRestGormGrailsPlugin.groovy |   10 +-
 .../rest/grailscache/build.gradle                  |    3 +
 ...pringSecurityRestGrailsCacheGrailsPlugin.groovy |   10 +-
 grails-spring-security/rest/memcached/build.gradle |    1 +
 .../SpringSecurityRestMemcachedGrailsPlugin.groovy |    8 +-
 grails-spring-security/rest/redis/build.gradle     |    1 +
 .../SpringSecurityRestRedisGrailsPlugin.groovy     |   10 +-
 grails-spring-security/ui/plugin/build.gradle      |   16 +-
 ...ui.properties => spring-security-ui.properties} |    0
 .../ui/SpringSecurityUiGrailsPlugin.groovy         |    8 +-
 grails-spring/build.gradle                         |    1 +
 .../spring/DefaultRuntimeSpringConfiguration.java  |   32 +-
 ...DefaultRuntimeSpringConfigurationAotSpec.groovy |   96 +
 grails-test-core/build.gradle                      |   32 +-
 .../AbstractGrailsMockHttpServletResponse.groovy   |   14 +-
 .../grails/test/io/SystemOutAndErrSwapper.groovy   |   24 +-
 .../org/grails/test/report/junit/JUnitReports.java |   90 -
 .../test/report/junit/JUnitReportsFactory.java     |   75 -
 .../grails/test/report/junit/PlainFormatter.java   |  110 -
 .../org/grails/test/report/junit/XMLFormatter.java |   62 -
 grails-test-examples/aot/build.gradle              |   96 +
 .../aot/grails-app/conf/application.yml            |   20 +
 .../controllers/aot/GreetingController.groovy      |   30 +
 .../grails-app/controllers/aot/UrlMappings.groovy  |   29 +
 .../aot/grails-app/init/aot/Application.groovy     |  112 +
 .../grails-app/services/aot/GreetingService.groovy |   30 +
 .../grails-app/taglib/aot/GreetingTagLib.groovy    |   38 +
 .../aot/grails-app/views/greeting/index.gsp        |   35 +
 .../app1/grails-app/conf/application.yml           |    6 +-
 .../functionaltests/IncludesController.groovy      |   13 +
 .../controllers/functionaltests/UrlMappings.groovy |    3 +
 .../fileupload/FileUploadTestController.groovy     |   20 +
 .../requestpath/RequestPathController.groovy       |   78 +
 .../RequestPathForwarderController.groovy          |   37 +
 .../functionaltests/ManagedEntityDomain.groovy     |   27 +
 .../fileupload/FileUploadSpec.groovy               |   81 +
 .../requestpath/RequestPathSpec.groovy             |  148 +
 .../functionaltests/CompiledTagCallSpec.groovy     |   66 +
 .../controllers/app2/TestController.groovy         |    8 +
 .../GrailsUtilStackFiltererIntegrationSpec.groovy  |   59 +
 .../groovy/app2/RecordingStackTraceFilterer.groovy |   57 +
 .../app4/grails-app/conf/application.yml           |    4 +
 .../controllers/app4/ErrorsController.groovy       |    5 +
 .../controllers/app4/UploadController.groovy       |   32 +
 .../grails-app/controllers/app4/UrlMappings.groovy |    1 +
 .../app4/OversizedUploadFunctionalSpec.groovy      |   66 +
 .../async-events-pubsub-demo/build.gradle          |    1 -
 .../grails-app/conf/logback.xml                    |    1 -
 .../pubsub/demo/TimeoutController.groovy           |   34 +
 .../pubsub/demo/TimeoutControllerSpec.groovy       |   37 +
 .../integration-test/resources/logback-test.xml    |    1 -
 grails-test-examples/beans-dsl-plugin/build.gradle |   68 +
 .../groovy/beandsl/example/plugin/Farewell.groovy  |   33 +
 .../example/plugin/FarewellGrailsPlugin.groovy     |   47 +
 .../groovy/beandsl/example/plugin/Greeting.groovy  |   33 +
 .../example/plugin/GreetingGrailsPlugin.groovy     |   52 +
 .../beandsl/example/plugin/Salutation.groovy       |   33 +
 .../example/plugin/SalutationGrailsPlugin.groovy   |   50 +
 .../FarewellGrailsPluginAutoDiscoverySpec.groovy   |   74 +
 .../GreetingGrailsPluginAutoDiscoverySpec.groovy   |   82 +
 .../SalutationGrailsPluginAutoDiscoverySpec.groovy |  101 +
 grails-test-examples/beans-dsl/build.gradle        |   63 +
 .../groovy/beandsl/example/ExampleBeans.groovy     |   45 +
 .../groovy/beandsl/example/FancyGreeter.groovy     |   31 +
 .../src/main/groovy/beandsl/example/Greeter.groovy |   33 +
 .../main/groovy/beandsl/example/LoudGreeter.groovy |   37 +
 .../ExampleBeansAutoConfigurationSpec.groovy       |   74 +
 .../example/ExampleBeansAutoDiscoverySpec.groovy   |   62 +
 grails-test-examples/benchmarks/README.adoc        |  163 +
 grails-test-examples/benchmarks/build.gradle       |  305 +
 .../controllers/ControllerActionBenchmark.java     |  252 +
 .../ControllerMappingCollectionBenchmark.java      |  195 +
 .../controllers/ControllerResponseBenchmark.java   |  248 +
 .../databinding/SimpleDataBinderBenchmark.java     |  175 +
 .../benchmarks/gsp/GroovyPageParserBenchmark.java  |   97 +
 .../interceptors/InterceptorChainBenchmark.java    |  183 +
 .../interceptors/UrlMappingMatcherBenchmark.java   |  156 +
 .../grails/benchmarks/ruler/CpuRulerBenchmark.java |   58 +
 .../benchmarks/ruler/MemoryRulerBenchmark.java     |   63 +
 .../urlmappings/UrlMappingsBenchmark.java          |  135 +
 .../views/ViewTemplateRenderingBenchmark.java      |   97 +
 .../benchmarks/web/GrailsWebRequestBenchmark.java  |  132 +
 .../web/MultipartResolutionBenchmark.java          |  135 +
 .../web/RequestPropertyAccessBenchmark.java        |  108 +
 .../controllers/ControllerFixture.groovy           |  108 +
 .../controllers/ControllerMappingsFixture.groovy   |   95 +
 .../controllers/ControllerResponseFixture.groovy   |  106 +
 .../interceptors/InterceptorChainFixture.groovy    |   54 +
 .../interceptors/InterceptorFixture.groovy         |   32 +
 .../urlmappings/UrlMappingsFixture.groovy          |   41 +
 .../benchmarks/views/ViewTemplateFixture.groovy    |   52 +
 .../benchmarks/web/RequestPropertyFixture.groovy   |   55 +
 .../grails/benchmarks/web/WebContextFixture.groovy |   57 +
 .../grails/benchmarks/report/Benchmark.groovy      |   33 +
 .../benchmarks/report/BenchmarkComparator.groovy   |  133 +
 .../grails/benchmarks/report/CommentPoster.groovy  |  121 +
 .../grails/benchmarks/report/Comparison.groovy     |   60 +
 .../grails/benchmarks/report/JmhCompare.groovy     |  113 +
 .../grails/benchmarks/report/JmhResults.groovy     |  140 +
 .../grails/benchmarks/report/ReportRenderer.groovy |  173 +
 .../report/BenchmarkComparatorSpec.groovy          |   69 +
 .../report/GitHubCommentsHttpSpec.groovy           |  119 +
 .../benchmarks/report/GoldenReportSpec.groovy      |   75 +
 .../grails/benchmarks/report/JmhCompareSpec.groovy |  123 +
 .../grails/benchmarks/report/PostFileSpec.groovy   |  122 +
 .../resources/jmh-golden/broad-base.json           |    1 +
 .../resources/jmh-golden/broad-head.json           |    1 +
 .../resources/jmh-golden/edges-base.json           |    1 +
 .../resources/jmh-golden/edges-head.json           |    1 +
 .../resources/jmh-golden/expected-broad.md         |   37 +
 .../resources/jmh-golden/expected-edges.md         |   35 +
 .../resources/jmh-golden/expected-headonly.md      |   20 +
 .../resources/jmh-golden/expected-norulers.md      |   24 +
 .../resources/jmh-golden/expected-numbers.md       |   32 +
 .../resources/jmh-golden/expected-shards.md        |   32 +
 .../resources/jmh-golden/norulers-base.json        |    1 +
 .../resources/jmh-golden/norulers-head.json        |    1 +
 .../resources/jmh-golden/numbers-base.json         |    1 +
 .../resources/jmh-golden/numbers-head.json         |    1 +
 .../resources/jmh-golden/shards-base/shard-a.json  |    1 +
 .../resources/jmh-golden/shards-base/shard-b.json  |    1 +
 .../resources/jmh-golden/shards-head/shard-a.json  |    1 +
 .../resources/jmh-golden/shards-head/shard-b.json  |    1 +
 grails-test-examples/cache/build.gradle            |    1 -
 .../src/test/groovy/demo/TestControllerSpec.groovy |    7 +
 .../external-configuration/build.gradle            |    1 -
 .../grails-app/conf/logback-spring.xml             |    1 -
 grails-test-examples/geb-context-path/build.gradle |    1 -
 grails-test-examples/geb-gebconfig/build.gradle    |    1 -
 .../grails-app/conf/logback-spring.xml             |    1 -
 grails-test-examples/geb/build.gradle              |    1 -
 .../geb/grails-app/conf/logback-spring.xml         |    1 -
 .../org/demo/spock/PerTestRecordingSpec.groovy     |   54 +-
 grails-test-examples/gorm/build.gradle             |    7 +-
 .../services/gorm/TransactionTestService.groovy    |   16 +
 .../groovy/gorm/TransactionPropagationSpec.groovy  |    8 +
 .../domain/grails/test/app/Address.groovy          |    3 +
 .../grails-app/domain/grails/test/app/User.groovy  |    3 +-
 .../domain/grails/test/app/UserRole.groovy         |    2 +
 .../groovy/grails/test/app/pogo/Profile.groovy     |    6 +
 .../gsp-compile-static/build.gradle                |   70 +
 .../grails-app/conf/application.yml                |   23 +
 .../grails-app/controllers/gspstatic/Book.groovy   |   28 +
 .../controllers/gspstatic/DemoController.groovy    |   40 +
 .../controllers/gspstatic/UrlMappings.groovy       |   29 +
 .../grails-app/init/gspstatic/Application.groovy   |   31 +
 .../grails-app/taglib/gspstatic/DemoTagLib.groovy  |   32 +
 .../grails-app/views/demo/declared.gsp             |   30 +
 .../grails-app/views/demo/frameworkNames.gsp       |   31 +
 .../grails-app/views/demo/index.gsp                |   34 +
 .../gsp-compile-static/grails-app/views/error.gsp  |   20 +
 .../grails-app/views/notFound.gsp                  |   20 +
 .../groovy/gspstatic/GspCompileStaticSpec.groovy   |  129 +
 grails-test-examples/gsp-layout/build.gradle       |   12 +-
 .../gsp-layout/grails-app/conf/logback-spring.xml  |    1 -
 .../views/gsp/layout/AbstractGrailsTagTests.groovy |   24 +-
 grails-test-examples/gsp-sitemesh3/build.gradle    |    1 -
 .../grails-app/conf/logback-spring.xml             |    1 -
 .../gsp-spring-boot/app/build.gradle               |   69 +-
 .../app/src/main/assets/javascripts/application.js |   24 +
 .../app/src/main}/assets/javascripts/theme.js      |    0
 .../src/main/assets/stylesheets/application.css    |   32 +
 .../app/src/main/java/hello/JspSupport.java        |   53 +
 .../app/src/main/java/hello/JspViewController.java |   40 +
 .../app/src/main/java/hello/WebController.java     |   62 +-
 .../app/src/main/resources/application.properties  |   17 +-
 .../app/src/main/resources/templates/form.gsp      |   54 +-
 .../src/main/resources/templates/layouts/main.gsp  |   94 +-
 .../main/resources/templates/layouts/sample.gsp    |   13 +-
 .../app/src/main/resources/templates/results.gsp   |   21 +-
 .../gsp-spring-boot/app/src/main/webapp/form.jsp   |   46 +-
 .../app/src/test/java/hello/AssetLinkTest.java     |   76 +
 .../app/src/test/java/hello/ErrorPageTest.java     |   61 +
 .../app/src/test/java/hello/JspSupportTest.java    |   58 +
 .../app/src/test/java/hello/JspViewTest.java       |   75 +
 .../src/test/java/hello/PrecompiledViewTest.java   |   57 +
 .../src/test/java/hello/StandaloneContextTest.java |   68 +
 .../app/src/test/java/hello/WebControllerTest.java |  108 +-
 .../hibernate5/criteria-extension/build.gradle     |    4 +
 .../build.gradle                                   |    2 +
 .../grails-database-per-tenant/build.gradle        |    2 +
 .../grails-hibernate-groovy-proxy/build.gradle     |    4 +
 .../domain/functional/tests/Organization.groovy    |   24 +
 .../tests/OrganizationValidationSpec.groovy        |   45 +
 .../grails-multiple-datasources/build.gradle       |    2 +
 .../build.gradle                                   |    2 +
 .../grails-partitioned-multi-tenancy/build.gradle  |    4 +-
 .../grails-schema-per-tenant/build.gradle          |    1 +
 .../functionaltests/ManagedEntityDomain.groovy     |   27 +
 .../async-events-pubsub-demo/build.gradle          |    1 -
 .../grails-app/conf/logback.xml                    |    1 -
 .../integration-test/resources/logback-test.xml    |    1 -
 .../hibernate7/criteria-extension/build.gradle     |    4 +
 .../src/test/groovy/demo/TestControllerSpec.groovy |    7 +
 grails-test-examples/hibernate7/gorm/build.gradle  |    2 +-
 .../services/gorm/TransactionTestService.groovy    |   16 +
 .../groovy/gorm/TransactionPropagationSpec.groovy  |    8 +
 .../build.gradle                                   |    2 +
 .../grails-database-per-tenant/build.gradle        |    1 +
 .../grails-hibernate-groovy-proxy/build.gradle     |    4 +
 .../grails-multiple-datasources/build.gradle       |    2 +
 .../build.gradle                                   |    2 +
 .../grails-partitioned-multi-tenancy/build.gradle  |    1 +
 .../grails-schema-per-tenant/build.gradle          |    1 +
 .../grails-app/views/product/index.gson            |    2 +-
 .../issue-10279/grails-app/conf/logback.xml        |    1 -
 grails-test-examples/issue-11767/build.gradle      |   47 -
 .../issue-11767/grails-app/conf/application.yml    |   25 -
 .../issue-11767/grails-app/conf/logback.xml        |   41 -
 .../issue11767/app/AppController.groovy            |   51 -
 .../controllers/issue11767/app/UrlMappings.groovy  |   30 -
 .../init/issue11767/app/Application.groovy         |   33 -
 .../groovy/issue11767/app/ConfigLoadingSpec.groovy |   48 -
 .../issue11767/app/AppGroovyMicronautBean.groovy   |   28 -
 .../issue-15228/grails-app/conf/logback.xml        |    1 -
 grails-test-examples/jetty/build.gradle            |    2 +-
 .../jetty/grails-app/conf/application.yml          |    5 +
 .../jetty/grails-app/conf/logback-spring.xml       |    1 -
 .../controllers/issue12688/UploadController.groovy |   30 +
 .../controllers/issue12688/UrlMappings.groovy      |    1 +
 .../issue12688/JettyOversizedUploadSpec.groovy     |   61 +
 grails-test-examples/mail/build.gradle             |    3 +-
 .../mail/grails-app/conf/logback-spring.xml        |    1 -
 .../micronaut-groovy-only/build.gradle             |   53 -
 .../grails-app/conf/application.yml                |   55 -
 .../micronautgroovyonly/UrlMappings.groovy         |   34 -
 .../init/micronautgroovyonly/Application.groovy    |   33 -
 .../BeanInjectionService.groovy                    |   47 -
 .../micronautgroovyonly/TestService.groovy         |   28 -
 .../BeanInjectionServiceSpec.groovy                |   57 -
 .../MicronautContextSpec.groovy                    |   83 -
 .../MicronautQualifierSpec.groovy                  |   97 -
 .../main/groovy/bean/injection/AppConfig.groovy    |   30 -
 .../bean/injection/FactoryCreatedService.groovy    |   27 -
 .../main/groovy/bean/injection/NamedService.groovy |   24 -
 .../bean/injection/PrimaryNamedService.groovy      |   32 -
 .../main/groovy/bean/injection/Qualified.groovy    |   29 -
 .../bean/injection/QualifiedNamedService.groovy    |   33 -
 .../bean/injection/RegularNamedService.groovy      |   34 -
 .../groovy/bean/injection/ServiceFactory.groovy    |   37 -
 .../bean/injection/SpecialNamedService.groovy      |   34 -
 .../micronaut-hibernate5/build.gradle              |   61 -
 .../grails-app/conf/application.yml                |   74 -
 .../grails-app/conf/logback.xml                    |   37 -
 .../micronaut/hibernate5/UrlMappings.groovy        |   29 -
 .../init/micronaut/hibernate5/Application.groovy   |   30 -
 .../grails-app/views/index.gsp                     |   25 -
 .../hibernate5/ApplicationStartupSpec.groovy       |   33 -
 .../micronaut-hibernate7/build.gradle              |   61 -
 .../grails-app/conf/application.yml                |   74 -
 .../grails-app/conf/logback.xml                    |   37 -
 .../micronaut/hibernate7/UrlMappings.groovy        |   29 -
 .../init/micronaut/hibernate7/Application.groovy   |   30 -
 .../grails-app/views/index.gsp                     |   25 -
 .../hibernate7/ApplicationStartupSpec.groovy       |   33 -
 grails-test-examples/micronaut/.gitignore          |   12 -
 grails-test-examples/micronaut/build.gradle        |   72 -
 .../grails-app/assets/images/advancedgrails.svg    |   27 -
 .../assets/images/apple-touch-icon-retina.png      |  Bin 7038 -> 0 bytes
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin 3077 -> 0 bytes
 .../grails-app/assets/images/documentation.svg     |   19 -
 .../micronaut/grails-app/assets/images/favicon.ico |  Bin 5558 -> 0 bytes
 .../assets/images/grails-cupsonly-logo-white.svg   |   26 -
 .../micronaut/grails-app/assets/images/grails.svg  |   13 -
 .../grails-app/assets/images/skin/database_add.png |  Bin 658 -> 0 bytes
 .../assets/images/skin/database_delete.png         |  Bin 659 -> 0 bytes
 .../assets/images/skin/database_edit.png           |  Bin 767 -> 0 bytes
 .../assets/images/skin/database_save.png           |  Bin 755 -> 0 bytes
 .../assets/images/skin/database_table.png          |  Bin 726 -> 0 bytes
 .../grails-app/assets/images/skin/exclamation.png  |  Bin 701 -> 0 bytes
 .../grails-app/assets/images/skin/house.png        |  Bin 806 -> 0 bytes
 .../grails-app/assets/images/skin/information.png  |  Bin 778 -> 0 bytes
 .../grails-app/assets/images/skin/shadow.jpg       |  Bin 300 -> 0 bytes
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin 835 -> 0 bytes
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin 834 -> 0 bytes
 .../micronaut/grails-app/assets/images/slack.svg   |   18 -
 .../micronaut/grails-app/assets/images/spinner.gif |  Bin 2037 -> 0 bytes
 .../grails-app/assets/javascripts/application.js   |   29 -
 .../grails-app/assets/stylesheets/application.css  |   34 -
 .../grails-app/assets/stylesheets/errors.css       |  128 -
 .../grails-app/assets/stylesheets/grails.css       | 1097 ---
 .../grails-app/assets/stylesheets/main.css         |  613 --
 .../grails-app/assets/stylesheets/mobile.css       |  101 -
 .../micronaut/grails-app/conf/application.yml      |   85 -
 .../micronaut/grails-app/conf/logback.xml          |   37 -
 .../grails-app/conf/spring/resources.groovy        |   22 -
 .../micronaut/ExternalApiController.groovy         |  113 -
 .../micronaut/MicronautTestController.groovy       |   55 -
 .../controllers/micronaut/UrlMappings.groovy       |   50 -
 .../micronaut/grails-app/i18n/messages.properties  |   71 -
 .../grails-app/i18n/messages_cs.properties         |   70 -
 .../grails-app/i18n/messages_da.properties         |   71 -
 .../grails-app/i18n/messages_de.properties         |   70 -
 .../grails-app/i18n/messages_es.properties         |   70 -
 .../grails-app/i18n/messages_fr.properties         |   34 -
 .../grails-app/i18n/messages_it.properties         |   70 -
 .../grails-app/i18n/messages_ja.properties         |   70 -
 .../grails-app/i18n/messages_nb.properties         |   71 -
 .../grails-app/i18n/messages_nl.properties         |   70 -
 .../grails-app/i18n/messages_pl.properties         |   74 -
 .../grails-app/i18n/messages_pt_BR.properties      |   74 -
 .../grails-app/i18n/messages_pt_PT.properties      |   49 -
 .../grails-app/i18n/messages_ru.properties         |   46 -
 .../grails-app/i18n/messages_sk.properties         |   71 -
 .../grails-app/i18n/messages_sv.properties         |   70 -
 .../grails-app/i18n/messages_th.properties         |   70 -
 .../grails-app/i18n/messages_zh_CN.properties      |   33 -
 .../grails-app/init/micronaut/Application.groovy   |   33 -
 .../grails-app/init/micronaut/BootStrap.groovy     |   29 -
 .../services/micronaut/BeanInjectionService.groovy |   47 -
 .../services/micronaut/ExternalApiService.groovy   |  110 -
 .../services/micronaut/TestService.groovy          |   28 -
 .../micronaut/grails-app/views/index.gsp           |   95 -
 .../micronaut/grails-app/views/layouts/main.gsp    |   88 -
 .../micronaut/grails-app/views/notFound.gsp        |   32 -
 .../micronaut/BeanInjectionServiceSpec.groovy      |   57 -
 .../micronaut/MicronautBeanDuplicationSpec.groovy  |  105 -
 .../groovy/micronaut/MicronautBeanTypesSpec.groovy |   99 -
 .../groovy/micronaut/MicronautContextSpec.groovy   |   92 -
 .../MicronautDeclarativeClientSpec.groovy          |  250 -
 .../micronaut/MicronautErsatzAdvancedSpec.groovy   |  563 --
 .../micronaut/MicronautErsatzPatternSpec.groovy    |  450 --
 .../micronaut/MicronautErsatzRoundtripSpec.groovy  |  429 --
 .../micronaut/MicronautPluginBeanSpec.groovy       |   85 -
 .../groovy/micronaut/MicronautQualifierSpec.groovy |  106 -
 .../main/groovy/bean/injection/AppConfig.groovy    |   30 -
 .../bean/injection/FactoryCreatedService.groovy    |   27 -
 .../main/groovy/bean/injection/NamedService.java   |   23 -
 .../bean/injection/PrimaryNamedService.groovy      |   33 -
 .../main/groovy/bean/injection/Qualified.groovy    |   29 -
 .../bean/injection/QualifiedNamedService.groovy    |   33 -
 .../bean/injection/RegularNamedService.groovy      |   34 -
 .../groovy/bean/injection/ServiceFactory.groovy    |   37 -
 .../bean/injection/SpecialNamedService.groovy      |   34 -
 .../client/MicronautAdvancedClient.groovy          |   59 -
 .../client/MicronautFilteredClient.groovy          |   33 -
 .../micronaut/client/MicronautHeaderClient.groovy  |   35 -
 .../micronaut/client/MicronautPathClient.groovy    |   38 -
 .../client/MicronautReactiveClient.groovy          |   45 -
 .../micronaut/client/MicronautTestClient.groovy    |   47 -
 .../java/bean/injection/JavaMessageProvider.java   |   23 -
 .../java/bean/injection/JavaSingletonService.java  |   28 -
 .../micronaut/client/MicronautRetryableClient.java |   31 -
 .../micronaut/filter/AuthTokenClientFilter.java    |   32 -
 grails-test-examples/mongodb/base/build.gradle     |    1 -
 .../functional/tests/LocalMongoUnitSpec.groovy     |    2 -
 .../mongodb/database-per-tenant/build.gradle       |    1 -
 .../mongodb/hibernate5/build.gradle                |    1 -
 .../mongodb/test-data-service/build.gradle         |    2 +
 grails-test-examples/neo4j/base/build.gradle       |   68 +
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../base}/grails-app/assets/images/favicon.ico     |  Bin
 .../base}/grails-app/assets/images/grails_logo.png |  Bin
 .../grails-app/assets/images/skin/database_add.png |  Bin
 .../assets/images/skin/database_delete.png         |  Bin
 .../assets/images/skin/database_edit.png           |  Bin
 .../assets/images/skin/database_save.png           |  Bin
 .../assets/images/skin/database_table.png          |  Bin
 .../grails-app/assets/images/skin/exclamation.png  |  Bin
 .../base}/grails-app/assets/images/skin/house.png  |  Bin
 .../grails-app/assets/images/skin/information.png  |  Bin
 .../base}/grails-app/assets/images/skin/shadow.jpg |  Bin
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin
 .../base}/grails-app/assets/images/spinner.gif     |  Bin
 .../grails-app/assets/javascripts/application.js   |    0
 .../grails-app/assets/stylesheets/application.css  |    0
 .../base}/grails-app/assets/stylesheets/errors.css |    0
 .../base}/grails-app/assets/stylesheets/main.css   |    0
 .../base}/grails-app/assets/stylesheets/mobile.css |    0
 .../neo4j/base}/grails-app/conf/application.yml    |    0
 .../neo4j/base}/grails-app/conf/logback.xml        |    0
 .../base}/grails-app/conf/spring/resources.groovy  |    0
 .../grails-app/controllers/UrlMappings.groovy      |    0
 .../functional/tests/BookController.groovy         |    0
 .../grails-app/domain/functional/tests/Book.groovy |    0
 .../domain/functional/tests/Person.groovy          |    0
 .../base}/grails-app/i18n/messages.properties      |    0
 .../grails-app/i18n/messages_cs_CZ.properties      |    0
 .../base}/grails-app/i18n/messages_da.properties   |    0
 .../base}/grails-app/i18n/messages_de.properties   |    0
 .../base}/grails-app/i18n/messages_es.properties   |    0
 .../base}/grails-app/i18n/messages_fr.properties   |    0
 .../base}/grails-app/i18n/messages_it.properties   |    0
 .../base}/grails-app/i18n/messages_ja.properties   |    0
 .../base}/grails-app/i18n/messages_nb.properties   |    0
 .../base}/grails-app/i18n/messages_nl.properties   |    0
 .../base}/grails-app/i18n/messages_pl.properties   |    0
 .../grails-app/i18n/messages_pt_BR.properties      |    0
 .../grails-app/i18n/messages_pt_PT.properties      |    0
 .../base}/grails-app/i18n/messages_ru.properties   |    0
 .../base}/grails-app/i18n/messages_sv.properties   |    0
 .../base}/grails-app/i18n/messages_th.properties   |    0
 .../grails-app/i18n/messages_zh_CN.properties      |    0
 .../neo4j/base}/grails-app/init/BootStrap.groovy   |    0
 .../init/functional/tests/Application.groovy       |    0
 .../services/functional/tests/PersonService.groovy |    0
 .../neo4j/base}/grails-app/views/book/create.gsp   |    0
 .../neo4j/base}/grails-app/views/book/edit.gsp     |    0
 .../neo4j/base}/grails-app/views/book/index.gsp    |    0
 .../neo4j/base}/grails-app/views/book/show.gsp     |    0
 .../base}/grails-app/views/error.gsp               |    0
 .../neo4j/base}/grails-app/views/index.gsp         |    0
 .../neo4j/base}/grails-app/views/layouts/main.gsp  |    0
 .../neo4j/base}/grails-app/views/notFound.gsp      |    0
 .../functional/tests/BookControllerSpec.groovy     |   44 +
 .../groovy/functional/tests/pages/BookPages.groovy |    0
 .../test/groovy/functional/tests/BookSpec.groovy   |    0
 .../test/groovy/functional/tests/PersonSpec.groovy |    0
 .../functional/tests/StandaloneNeo4jSpec.groovy    |    0
 grails-test-examples/neo4j/hibernate5/build.gradle |   79 +
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../grails-app/assets/images/favicon.ico           |  Bin
 .../grails-app/assets/images/grails_logo.png       |  Bin
 .../grails-app/assets/images/skin/database_add.png |  Bin
 .../assets/images/skin/database_delete.png         |  Bin
 .../assets/images/skin/database_edit.png           |  Bin
 .../assets/images/skin/database_save.png           |  Bin
 .../assets/images/skin/database_table.png          |  Bin
 .../grails-app/assets/images/skin/exclamation.png  |  Bin
 .../grails-app/assets/images/skin/house.png        |  Bin
 .../grails-app/assets/images/skin/information.png  |  Bin
 .../grails-app/assets/images/skin/shadow.jpg       |  Bin
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin
 .../grails-app/assets/images/spinner.gif           |  Bin
 .../grails-app/assets/javascripts/application.js   |    0
 .../grails-app/assets/stylesheets/application.css  |    0
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../grails-app/assets/stylesheets/main.css         |    0
 .../grails-app/assets/stylesheets/mobile.css       |    0
 .../hibernate5}/grails-app/conf/application.yml    |    0
 .../neo4j/hibernate5}/grails-app/conf/logback.xml  |    0
 .../grails-app/conf/spring/resources.groovy        |    0
 .../grails-app/controllers/UrlMappings.groovy      |    0
 .../functional/tests/AuthorController.groovy       |    0
 .../functional/tests/BookController.groovy         |    0
 .../domain/functional/tests/Author.groovy          |    0
 .../grails-app/domain/functional/tests/Book.groovy |    0
 .../grails-app/i18n/messages.properties            |    0
 .../grails-app/i18n/messages_cs_CZ.properties      |    0
 .../grails-app/i18n/messages_da.properties         |    0
 .../grails-app/i18n/messages_de.properties         |    0
 .../grails-app/i18n/messages_es.properties         |    0
 .../grails-app/i18n/messages_fr.properties         |    0
 .../grails-app/i18n/messages_it.properties         |    0
 .../grails-app/i18n/messages_ja.properties         |    0
 .../grails-app/i18n/messages_nb.properties         |    0
 .../grails-app/i18n/messages_nl.properties         |    0
 .../grails-app/i18n/messages_pl.properties         |    0
 .../grails-app/i18n/messages_pt_BR.properties      |    0
 .../grails-app/i18n/messages_pt_PT.properties      |    0
 .../grails-app/i18n/messages_ru.properties         |    0
 .../grails-app/i18n/messages_sv.properties         |    0
 .../grails-app/i18n/messages_th.properties         |    0
 .../grails-app/i18n/messages_zh_CN.properties      |    0
 .../hibernate5}/grails-app/init/BootStrap.groovy   |    0
 .../init/functional/tests/Application.groovy       |    0
 .../hibernate5}/grails-app/views/author/create.gsp |    0
 .../hibernate5}/grails-app/views/author/edit.gsp   |    0
 .../hibernate5}/grails-app/views/author/index.gsp  |    0
 .../hibernate5}/grails-app/views/author/show.gsp   |    0
 .../hibernate5}/grails-app/views/book/create.gsp   |    0
 .../hibernate5}/grails-app/views/book/edit.gsp     |    0
 .../hibernate5}/grails-app/views/book/index.gsp    |    0
 .../hibernate5}/grails-app/views/book/show.gsp     |    0
 .../hibernate5}/grails-app/views/error.gsp         |    0
 .../neo4j/hibernate5}/grails-app/views/index.gsp   |    0
 .../hibernate5}/grails-app/views/layouts/main.gsp  |    0
 .../hibernate5}/grails-app/views/notFound.gsp      |    0
 .../functional/tests/AuthorControllerSpec.groovy   |   44 +
 .../functional/tests/BookControllerSpec.groovy     |   46 +
 .../functional/tests/pages/AuthorPages.groovy      |   58 +
 .../groovy/functional/tests/pages/BookPages.groovy |    0
 .../functional/tests/Neo4jWithHibernateSpec.groovy |   64 +
 .../neo4j/neo4j-standalone/build.gradle            |   46 +
 .../src/main/groovy/example/Person.groovy          |    0
 .../src/main/groovy/example/PersonService.groovy   |    0
 .../test/groovy/example/PersonServiceSpec.groovy   |    0
 .../neo4j/spring-boot/build.gradle                 |   53 +
 .../src/main/groovy/example/Application.groovy     |    0
 .../src/main/groovy/example/Book.groovy            |    0
 .../src/main/groovy/example/BookController.groovy  |    0
 .../src/main/groovy/example/BookService.groovy     |    0
 .../src/main/resources/application.yml             |    0
 .../test/groovy/example/BookControllerSpec.groovy  |    0
 .../neo4j/test-data-service/build.gradle           |   60 +
 .../grails-app/conf/application.groovy             |    0
 .../grails-app/conf/application.yml                |   56 +
 .../test-data-service/grails-app/conf/logback.xml  |    0
 .../grails-app/conf/spring/resources.groovy        |    0
 .../example/ApplicationController.groovy           |    0
 .../controllers/example/UrlMappings.groovy         |    0
 .../grails-app/domain/example/Book.groovy          |    0
 .../grails-app/domain/example/Person.groovy        |    0
 .../grails-app/domain/example/Student.groovy       |    0
 .../grails-app/i18n/messages.properties            |    0
 .../grails-app/init/example/Application.groovy     |    0
 .../grails-app/init/example/BootStrap.groovy       |    0
 .../grails-app/services/example/BookService.groovy |    0
 .../services/example/LibraryService.groovy         |    0
 .../services/example/PersonService.groovy          |    0
 .../services/example/StudentService.groovy         |    0
 .../grails-app/services/example/TestService.groovy |    0
 .../grails-app/views/application/index.gson        |    0
 .../test-data-service/grails-app/views/error.gson  |    0
 .../grails-app/views/errors/_errors.gson           |    0
 .../grails-app/views/notFound.gson                 |    0
 .../grails-app/views/object/_object.gson           |    0
 .../groovy/example/StudentServiceSpec.groovy       |    0
 .../groovy/example/TestServiceSpec.groovy          |    0
 .../LoginAuthenticationSucessHandler.groovy        |    0
 .../src/main/groovy/example/TestBean.groovy        |    0
 .../plugins/issue-11767/build.gradle               |  125 -
 .../plugins/issue-11767/grails-app/conf/plugin.yml |   18 -
 .../init/issue11767/plugin/Application.groovy      |   35 -
 .../issue11767/plugin/MyPluginGrailsPlugin.groovy  |   35 -
 .../plugin/PluginGroovyMicronautBean.groovy        |   30 -
 .../plugin/PluginGroovySpringBean.groovy           |   32 -
 .../issue11767/plugin/PluginJavaMicronautBean.java |   42 -
 .../{messages.properties => loadfirst.properties}  |    0
 ...en_US.properties => loadfirst_en_US.properties} |    0
 .../plugins/micronaut-singleton/build.gradle       |   47 -
 .../MicronautSingletonGrailsPlugin.groovy          |   28 -
 .../plugins/micronaut/PluginMessageProvider.java   |   22 -
 .../plugins/micronaut/PluginSingletonService.java  |   28 -
 grails-test-examples/quartz/build.gradle           |   66 +
 .../quartz/grails-app/conf/application.yml         |   20 +
 .../quartz/grails-app/conf/logback.xml             |   27 +
 .../grails-app/init/quartzapp/Application.groovy   |   29 +
 .../grails-app/init/quartzapp/BootStrap.groovy     |   31 +
 .../grails-app/jobs/quartzapp/DisabledJob.groovy   |   31 +
 .../jobs/quartzapp/InterruptibleJob.groovy         |   52 +
 .../jobs/quartzapp/LongRunningJob.groovy           |   46 +
 .../jobs/quartzapp/NeverFiringJob.groovy           |   33 +
 .../grails-app/jobs/quartzapp/OnDemandJob.groovy   |   38 +
 .../grails-app/jobs/quartzapp/RepeatingJob.groovy  |   39 +
 .../quartzapp/QuartzLongRunningJobSpec.groovy      |  110 +
 .../groovy/quartzapp/QuartzSchedulingSpec.groovy   |  144 +
 .../groovy/quartzapp/RecordingJobListener.groovy   |   53 +
 grails-test-examples/redis/build.gradle            |    5 +-
 grails-test-examples/scaffolding/build.gradle      |    9 +-
 .../controllers/com/example/BookController.groovy  |   32 +
 .../controllers/com/example/UrlMappings.groovy     |    1 +
 .../grails-app/domain/com/example/Book.groovy      |   30 +
 .../grails-app/init/com/example/Application.groovy |   22 +-
 .../grails-app/init/com/example/BootStrap.groovy   |    4 +
 .../services/com/example/BookService.groovy        |   27 +
 .../groovy/com/example/BookControllerSpec.groovy   |   61 +
 .../groovy/com/example/pages/BookListPage.groovy   |   32 +
 .../spring-dependency-management/build.gradle      |   86 -
 .../acl/functional-test-app/build.gradle           |    3 +-
 .../grails-app/conf/logback.xml                    |    1 -
 .../acl/integration-test-app/build.gradle          |    2 +
 .../grails-app/conf/logback.xml                    |    1 -
 grails-test-examples/spring-security/cas/README.md |   85 +-
 .../spring-security/cas/test1/build.gradle         |   28 +-
 .../cas/test1/grails-app/conf/application.groovy   |   80 +-
 .../cas/test1/grails-app/conf/logback.xml          |    1 -
 .../test1/grails-app/conf/spring/resources.groovy  |   24 +
 .../cas/test/SecureController.groovy               |   58 +
 .../springsecurity/cas/test/UrlMappings.groovy     |   35 +
 .../spring/security/cas/SecureController.groovy    |   35 -
 .../spring/security/cas/UrlMappings.groovy         |   35 -
 .../test1/grails-app/domain/com/test/Role.groovy   |   44 -
 .../test1/grails-app/domain/com/test/User.groovy   |   79 -
 .../grails-app/domain/com/test/UserRole.groovy     |  127 -
 .../plugin/springsecurity/cas/test/Role.groovy     |   44 +
 .../plugin/springsecurity/cas/test/User.groovy     |   79 +
 .../plugin/springsecurity/cas/test/UserRole.groovy |  127 +
 .../springsecurity/cas/test/Application.groovy     |   31 +
 .../springsecurity/cas/test/BootStrap.groovy       |   47 +
 .../spring/security/cas/test/Application.groovy    |   31 -
 .../init/spring/security/cas/test/BootStrap.groovy |   49 -
 .../springsecurity/cas/test/AbstractCasSpec.groovy |  185 +
 .../springsecurity/cas/test/CasLoginSpec.groovy    |   93 +
 .../cas/test/CasNoProxyReceptorSpec.groovy         |   81 +
 .../cas/test/CasNoSingleSignOutSpec.groovy         |   58 +
 .../cas/test/CasProxyTicketSpec.groovy             |   63 +
 .../cas/test/CasSingleSignOutSpec.groovy           |   74 +
 .../cas/test/CasContainerHolder.groovy             |  111 +
 .../cas/test/CasServiceUrlConfigurer.groovy        |   57 +
 .../springsecurity/cas/test/CasTestConfig.groovy   |   84 +
 .../test/CasTestEnvironmentPostProcessor.groovy    |   62 +
 .../src/main/resources/META-INF/spring.factories   |   19 +
 .../cas/services/grailsTest-10000001.json          |   12 +
 .../core/functional-test-app/build.gradle          |    2 +
 .../core/integration-test-app/build.gradle         |    2 +
 .../springsecurity/PluginMessageBundleSpec.groovy  |   55 +
 .../misc-functional-test-app/group/build.gradle    |    2 +
 .../integration-test/groovy/demo/LoginPage.groovy  |    6 +
 .../misc-functional-test-app/roles/build.gradle    |    2 +
 .../integration-test/groovy/demo/LoginPage.groovy  |    6 +
 .../build.gradle                                   |    3 +-
 .../grails-app/conf/logback-spring.xml             |    1 -
 .../ldap/functional-test-app/build.gradle          |    3 +-
 .../grails-app/conf/logback-spring.xml             |    1 -
 .../ldap/retrieve-db-roles/build.gradle            |    3 +-
 .../grails-app/conf/logback-spring.xml             |    1 -
 .../ldap/retrieve-group-roles/build.gradle         |    3 +-
 .../grails-app/conf/logback-spring.xml             |    1 -
 .../spring-security/ui/common/build.gradle         |    3 +
 .../spring-security/ui/extended/build.gradle       |    5 +-
 .../ui/extended/grails-app/conf/logback.xml        |    1 -
 .../spring-security/ui/simple/build.gradle         |    1 -
 .../ui/simple/grails-app/conf/logback.xml          |    1 -
 grails-test-examples/undertow/build.gradle         |    4 +-
 .../undertow/grails-app/conf/application.yml       |    5 +
 .../undertow/grails-app/conf/logback-spring.xml    |    1 -
 .../undertowapp/UploadController.groovy            |   30 +
 .../controllers/undertowapp/UrlMappings.groovy     |    1 +
 .../undertowapp/UndertowOversizedUploadSpec.groovy |   61 +
 .../grails-app/views/product/index.gson            |    2 +-
 grails-test-report/build.gradle                    |   23 +-
 grails-test-suite-base/build.gradle                |    1 +
 grails-test-suite-persistence/build.gradle         |    4 +-
 .../web/databinding/GrailsWebDataBinderSpec.groovy |  447 +-
 grails-test-suite-uber/build.gradle                |   21 +-
 .../ResourceAnnotationRestfulControllerSpec.groovy |    2 +-
 .../grails/test/mixin/RestfulControllerSpec.groovy |    2 +-
 .../commons/DefaultGrailsCodecClassTests.groovy    |   16 +
 .../grails/plugins/CoreGrailsPluginTests.groovy    |   68 +-
 .../groovy/org/grails/plugins/PluginTests.java     |    7 +-
 .../GrailsMockHttpServletResponseTests.groovy      |   33 +
 .../web/filters/HiddenHttpMethodFilterTests.groovy |   55 +
 .../ParamsAwareLocaleChangeInterceptorTests.groovy |   51 +
 .../DefaultGrailsApplicationAttributesSpec.groovy  |   90 +
 .../org/grails/web/util/WebUtilsTests.groovy       |   40 +
 grails-test-suite-web/build.gradle                 |   19 +-
 ...ollerActionTransformerAllowedMethodsSpec.groovy |  117 +-
 ...ngHelperDomainClassSpecialPropertiesSpec.groovy |  113 +-
 .../DefaultDatabindingWhitelistBehaviorSpec.groovy |  117 +
 .../groovy/org/grails/web/codecs/CodecSpec.groovy  |   40 +
 .../CommandObjectInstantiationSpec.groovy          |   50 +
 .../web/commandobjects/CommandObjectsSpec.groovy   |   29 +
 .../web/mapping/UrlMappingParameterTests.groovy    |    6 +-
 .../grails/web/servlet/BindDataMethodTests.groovy  | 1441 +++-
 .../web/servlet/mvc/GrailsWebRequestSpec.groovy    |  120 +
 .../mvc/SynchronizerTokensHolderTests.groovy       |  145 +
 grails-testing-support-core/build.gradle           |    2 +
 .../grails/testing/services/ServiceUnitTest.groovy |    2 +-
 .../IntegrationTestAstTransformation.groovy        |    3 +-
 .../org/grails/testing/GrailsUnitTest.groovy       |    6 +-
 grails-testing-support-datamapping/build.gradle    |    1 +
 grails-testing-support-http-client/README.md       |    3 +-
 grails-testing-support-http-client/build.gradle    |    6 +-
 .../testing/http/client/utils/XmlUtils.groovy      |   41 +-
 .../http/client/TestHttpResponseSpec.groovy        |   29 +-
 .../testing/http/client/utils/XmlUtilsSpec.groovy  |   37 +-
 grails-testing-support-mongodb/build.gradle        |    5 +
 .../testing/mongo/EmbeddedReplicaSetSpec.groovy    |  126 +
 grails-testing-support-redis/build.gradle          |    1 +
 grails-testing-support-views-gson/build.gradle     |    4 +-
 grails-testing-support-web/build.gradle            |    5 +-
 .../grails/testing/web/GrailsWebUnitTest.groovy    |    8 +-
 .../testing/spock/WebSetupSpecInterceptor.groovy   |    2 +-
 grails-undertow/plugin/build.gradle                |    3 +
 grails-url-mappings/build.gradle                   |    5 +-
 .../web/mapping/UrlMappingsAutoConfiguration.java  |  102 -
 .../UrlMappingsBeanDefinitionsPostProcessor.groovy |   43 +-
 .../web/mapping/UrlMappingsGrailsPlugin.groovy     |   80 +-
 .../UrlMappingsAutoConfigurationSpec.groovy        |   84 +
 .../web/mapping/UrlMappingsGrailsPluginSpec.groovy |   35 +
 grails-validation/build.gradle                     |    4 +-
 grails-views-core/build.gradle                     |    4 +-
 .../mvc/GenericGroovyTemplateViewResolver.groovy   |    4 +-
 .../views/mvc/renderer/DefaultViewRenderer.groovy  |    2 +-
 .../resolve/GenericGroovyTemplateResolver.groovy   |    2 +-
 grails-views-gson/build.gradle                     |   11 +-
 .../AbstractJsonViewContainerRenderer.groovy       |    2 +-
 .../plugin/json/view/JsonViewConfiguration.groovy  |    2 +
 .../plugin/json/view/JsonViewGrailsPlugin.groovy   |    9 +-
 .../plugin/json/view/api/HalViewHelper.groovy      |   12 +-
 .../view/api/internal/DefaultHalViewHelper.groovy  |   10 +-
 .../api/internal/DefaultJsonApiViewHelper.groovy   |    2 +-
 .../view/api/internal/DefaultJsonViewHelper.groovy |   34 +-
 .../additional-spring-configuration-metadata.json  |  123 +
 .../META-INF/spring-configuration-metadata.json    |   67 -
 .../grails/plugin/json/view/ExpandSpec.groovy      |   18 +-
 .../grails/plugin/json/view/HalEmbeddedSpec.groovy |   52 +-
 .../json/view/IncludeAssociationsSpec.groovy       |    4 +-
 .../plugin/json/view/IterableRenderSpec.groovy     |   68 +-
 .../json/view/JsonViewGrailsPluginSpec.groovy      |   17 +
 .../json/view/JsonViewTemplateResolverSpec.groovy  |   30 +-
 .../grails/plugin/json/view/MapRenderSpec.groovy   |   31 +-
 .../plugin/json/view/NullRenderingSpec.groovy      |   26 +-
 .../json/view/TemplateInheritanceSpec.groovy       |    3 +
 .../view/api/JsonApiHandleAssociationsSpec.groovy  |    2 +-
 .../grails/plugin/json/view/api/JsonApiSpec.groovy |   22 +-
 .../plugin/json/view/api/PaginationSpec.groovy     |   11 +-
 .../view/api/handleassociations/Fixtures.groovy    |   29 +
 .../grails/plugin/json/view/expand/Fixtures.groovy |   46 +
 .../plugin/json/view/halembedded/Fixtures.groovy   |   62 +
 .../plugin/json/view/include/Fixtures.groovy       |   46 +
 .../plugin/json/view/iterable/Fixtures.groovy      |   46 +
 .../plugin/json/view/maprender/Fixtures.groovy     |   52 +
 .../plugin/json/view/nullrendering/Fixtures.groovy |   52 +
 .../plugin/json/view/test/JsonRenderResult.groovy  |    0
 .../plugin/json/view/test/JsonViewTest.groovy      |    0
 .../plugin/json/view/test/TestLinkGenerator.groovy |    0
 .../json/view/test/TestRequestConfigurer.groovy    |    0
 grails-views-markup/build.gradle                   |    6 +-
 .../markup/view/MarkupViewGrailsPlugin.groovy      |    9 +-
 .../additional-spring-configuration-metadata.json  |  155 +
 grails-web-boot/build.gradle                       |    4 +-
 grails-web-common/build.gradle                     |   18 +-
 .../groovy/grails/web/api/ServletAttributes.groovy |    2 +-
 .../grails/web/servlet/mvc/GrailsHttpSession.java  |  141 +-
 .../grails/web/servlet/mvc/GrailsParameterMap.java |   48 +-
 .../web/errors/GrailsWrappedRuntimeException.java  |   10 +-
 .../i18n/ParamsAwareLocaleChangeInterceptor.groovy |    7 +
 .../web/json/PathCapturingJSONWriterWrapper.java   |   64 +-
 .../DefaultGrailsApplicationAttributes.java        |   55 +-
 .../org/grails/web/servlet/GrailsFlashScope.java   |    2 +-
 .../WebRequestDelegatingRequestContext.java        |    2 +-
 .../mvc/DefaultRequestStateLookupStrategy.java     |    5 +-
 .../grails/web/servlet/mvc/GrailsWebRequest.java   |  123 +-
 .../web/util/GrailsApplicationAttributes.java      |   15 +
 .../org/grails/web/util/HiddenHttpMethod.java      |  144 +
 .../main/groovy/org/grails/web/util/WebUtils.java  |  134 +-
 .../web/servlet/mvc/GrailsHttpSessionSpec.groovy   |   24 +
 .../web/servlet/mvc/GrailsParameterMapTests.groovy |  244 +
 .../grails/web/util/HiddenHttpMethodSpec.groovy    |  125 +
 .../groovy/org/grails/web/util/WebUtilsSpec.groovy |  130 +
 .../groovy/grails/util/GrailsWebMockUtil.groovy    |    0
 grails-web-core/build.gradle                       |   12 +-
 .../web/servlet/HttpServletRequestExtension.groovy |   44 +
 .../additional-spring-configuration-metadata.json  |  165 +
 .../META-INF/spring-configuration-metadata.json    |  247 -
 .../servlet/HttpServletRequestExtensionSpec.groovy |   56 +
 grails-web-databinding/build.gradle                |    4 +-
 .../groovy/grails/web/databinding/BindAllowed.java |   30 +
 .../grails/web/databinding/DataBinder.groovy       |    8 +-
 .../grails/web/databinding/DataBindingUtils.java   |  587 +-
 .../web/databinding/GrailsWebDataBinder.groovy     |  415 +-
 .../web/databinding/MissingPropertyClearer.java    |  823 +++
 .../databinding/aot/DataBindingRuntimeHints.java   |   62 +
 .../DataBindingEventMulticastListener.groovy       |    4 +
 .../databinding/DefaultASTDatabindingHelper.java   |  107 +-
 ...tractRequestBodyDataBindingSourceCreator.groovy |    7 +-
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../web/databinding/DataBindingUtilsSpec.groovy    |  272 +
 .../web/databinding/DenyByDefaultConfigSpec.groovy |  103 +
 ...tRequestBodyDataBindingSourceCreatorSpec.groovy |   45 +-
 .../XmlDataBindingSourceCreatorSpec.groovy         |   78 +
 grails-web-mvc/build.gradle                        |    6 +-
 .../grails/web/errors/GrailsExceptionResolver.java |  128 +-
 .../grails/web/filters/HiddenHttpMethodFilter.java |    8 +-
 .../web/servlet/mvc/GrailsDispatcherServlet.groovy |   34 +-
 .../web/servlet/mvc/GrailsWebRequestFilter.java    |   11 +-
 .../servlet/mvc/SynchronizerTokensHolder.groovy    |   90 +-
 .../web/errors/GrailsExceptionResolverSpec.groovy  |  274 +-
 .../GrailsDispatcherServletHiddenMethodSpec.groovy |  130 +
 .../servlet/mvc/GrailsDispatcherServletSpec.groovy |  136 +
 .../servlet/mvc/GrailsWebRequestFilterSpec.groovy  |  102 +
 grails-web-mvc/src/test/resources/logback-test.xml |   22 +
 grails-web-url-mappings/build.gradle               |   17 +-
 .../AnsiConsoleUrlMappingsRenderer.groovy          |  211 +
 .../grails/web/mapping/ResponseRedirector.groovy   |    2 +-
 .../groovy/grails/web/mapping/UrlMappingInfo.java  |   21 +
 .../web/mapping/aot/UrlMappingRuntimeHints.java    |   61 +
 .../grails/web/mapping/AbstractUrlMappingInfo.java |   24 +-
 .../grails/web/mapping/DefaultLinkGenerator.groovy |    4 +-
 .../web/mapping/DefaultUrlMappingEvaluator.java    |   67 +-
 .../grails/web/mapping/DefaultUrlMappingInfo.java  |   71 +-
 .../web/mapping/DefaultUrlMappingsHolder.java      |   58 +-
 .../org/grails/web/mapping/RegexUrlMapping.java    |   91 +-
 .../web/mapping/RuntimeConstraintEvaluator.java    |   72 +
 .../mvc/AbstractGrailsControllerUrlMappings.groovy |    6 +-
 .../mvc/GrailsControllerUrlMappingInfo.groovy      |    3 +
 .../mapping/mvc/UrlMappingsHandlerMapping.groovy   |   79 +-
 .../mvc/UrlMappingsInfoHandlerAdapter.groovy       |   20 +-
 .../AnsiConsoleUrlMappingsRenderer.groovy          |  213 -
 .../additional-spring-configuration-metadata.json  |   64 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../AnsiConsoleUrlMappingsRendererSpec.groovy      |  136 +
 .../web/mapping/RestfulResourceMappingSpec.groovy  |   36 +-
 .../mapping/WildcardResourcesMappingSpec.groovy    |  203 +
 .../EffectiveMethodLinkGenerationSpec.groovy       |   71 +
 .../mapping/RuntimeConstraintEvaluatorSpec.groovy  |  113 +
 .../web/mapping/UrlMappingSegmentFilterSpec.groovy |  105 +
 .../mapping/UrlMappingsWithHttpMethodSpec.groovy   |    1 -
 .../mvc/HiddenHttpMethodHandlerMappingSpec.groovy  |  317 +
 .../mvc/UrlMappingNameResolutionSpec.groovy        |  178 +
 .../mvc/UrlMappingsHandlerMappingSpec.groovy       |   61 +
 .../UrlMappingsInfoHandlerAdapterAsyncSpec.groovy  |   79 +
 .../AnsiConsoleUrlMappingsRendererSpec.groovy      |  133 -
 settings.gradle                                    |  136 +-
 threat-model.yaml                                  |   28 +-
 2986 files changed, 188662 insertions(+), 48866 deletions(-)
 create mode 100644 .agents/skills/gradle-developer/SKILL.md
 delete mode 100644 .github/scripts/groovy-joint-build.init.gradle
 create mode 100644 .github/scripts/groovy-snapshot-canary-build.init.gradle
 create mode 100755 .github/scripts/ossIndexReport.sh
 create mode 100755 .github/scripts/postStickyComment.sh
 create mode 100644 .github/workflows/benchmark.yml
 create mode 100644 .github/workflows/end-to-end.yml
 create mode 100644 .github/workflows/forge-deploy-aws.yml
 delete mode 100644 .github/workflows/forge-deploy-next.yml
 delete mode 100644 .github/workflows/forge-deploy-prev-snapshot.yml
 delete mode 100644 .github/workflows/forge-deploy-prev.yml
 delete mode 100644 .github/workflows/forge-deploy-release.yml
 delete mode 100644 .github/workflows/forge-deploy-snapshot.yml
 delete mode 100644 .github/workflows/groovy-joint-workflow.yml
 create mode 100644 .github/workflows/groovy-snapshot-canary.yml
 create mode 100644 .github/workflows/validate-actions.yml
 create mode 100644 build-logic/docs-core/src/main/groovy/grails/doc/UserGuideBuilder.groovy
 create mode 100644 build-logic/docs-core/src/main/groovy/grails/doc/gradle/PublishGuideWorkAction.groovy
 create mode 100644 build-logic/docs-core/src/main/groovy/grails/doc/gradle/PublishGuideWorkParameters.groovy
 create mode 100644 build-logic/docs-core/src/main/groovy/org/grails/doc/gradle/AuditGroovydocLinksTask.groovy
 create mode 100644 build-logic/docs-core/src/main/groovy/org/grails/doc/gradle/GroovydocLinkAuditor.groovy
 create mode 100644 build-logic/docs-core/src/test/groovy/grails/doc/GuideProbeMacro.groovy
 create mode 100644 build-logic/docs-core/src/test/groovy/grails/doc/UserGuideBuilderSpec.groovy
 create mode 100644 build-logic/docs-core/src/test/groovy/org/grails/doc/gradle/GroovydocLinkAuditorSpec.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/AutoConfigurationImportsPlugin.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/ConfigurationMetadataPlugin.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GenerateAutoConfigurationImportsTask.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsValidateActionsPlugin.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GroovyDslConfigurationMetadataParser.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GroovydocRunner.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/TestTaskShardingPlugin.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/ValidateActionsTask.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/ValidateDependencyVersionsTask.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/ValidateProductionClasspathTask.groovy
 create mode 100644 build-logic/plugins/src/main/resources/org/apache/grails/buildsrc/groovydoc-runner.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/CompilePluginSpec.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/ConfigurationMetadataPluginSpec.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GenerateAutoConfigurationImportsTaskSpec.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GroovydocEnhancerPluginSpec.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/PublishPluginSpec.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/SbomPluginSpec.groovy
 create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/TestTaskShardingPluginSpec.groovy
 create mode 100644 end-to-end/README.md
 create mode 100644 end-to-end/build.gradle
 create mode 100644 end-to-end/gradle.properties
 create mode 100644 end-to-end/gradle/test-config.gradle
 create mode 100644 end-to-end/gradle/wrapper/gradle-wrapper.jar
 create mode 100644 end-to-end/gradle/wrapper/gradle-wrapper.properties
 create mode 100755 end-to-end/gradlew
 create mode 100755 end-to-end/gradlew.bat
 create mode 100644 end-to-end/legacy-commands-plugin/build.gradle
 create mode 100644 end-to-end/legacy-commands-plugin/src/main/groovy/legacy/commands/plugin/GreetingService.groovy
 create mode 100644 end-to-end/legacy-commands-plugin/src/main/groovy/legacy/commands/plugin/HelloLegacyAppCommand.groovy
 create mode 100644 end-to-end/legacy-commands-plugin/src/main/groovy/legacy/commands/plugin/HelloLegacyGrailsCommand.groovy
 create mode 100644 end-to-end/legacy-commands-plugin/src/main/groovy/legacy/commands/plugin/LegacyCommandsPluginGrailsPlugin.groovy
 create mode 100644 end-to-end/legacy-commands-plugin/src/main/resources/META-INF/grails.factories
 create mode 100644 end-to-end/legacy-commands-plugin/src/main/scripts/hello-legacy-script.groovy
 create mode 100644 end-to-end/legacy-commands/build.gradle
 create mode 100644 end-to-end/legacy-commands/grails-app/conf/application.yml
 copy {grails-test-examples/config-report => end-to-end/legacy-commands}/grails-app/conf/logback.xml (100%)
 create mode 100644 end-to-end/legacy-commands/grails-app/controllers/legacycommands/UrlMappings.groovy
 create mode 100644 end-to-end/legacy-commands/grails-app/init/legacycommands/Application.groovy
 create mode 100644 end-to-end/legacy-commands/grails-app/services/legacycommands/GreetingService.groovy
 create mode 100644 end-to-end/legacy-commands/src/integration-test/groovy/legacycommands/LegacyCommandCompatibilityIntegrationSpec.groovy
 create mode 100644 end-to-end/legacy-g7-command-plugin/.sdkmanrc
 create mode 100644 end-to-end/legacy-g7-command-plugin/build.gradle
 create mode 100644 end-to-end/legacy-g7-command-plugin/gradle/wrapper/gradle-wrapper.jar
 create mode 100644 end-to-end/legacy-g7-command-plugin/gradle/wrapper/gradle-wrapper.properties
 create mode 100755 end-to-end/legacy-g7-command-plugin/gradlew
 create mode 100755 end-to-end/legacy-g7-command-plugin/gradlew.bat
 create mode 100644 end-to-end/legacy-g7-command-plugin/settings.gradle
 create mode 100644 end-to-end/legacy-g7-command-plugin/src/main/groovy/legacy/g7/commands/HelloDerivedNameCommand.groovy
 create mode 100644 end-to-end/legacy-g7-command-plugin/src/main/groovy/legacy/g7/commands/HelloG7PrecompiledCommand.groovy
 create mode 100644 end-to-end/legacy-g7-command-plugin/src/main/groovy/legacy/g7/commands/HelloG7PrecompiledGrailsCommand.groovy
 create mode 100644 end-to-end/legacy-g7-command-plugin/src/main/resources/META-INF/grails.factories
 create mode 100644 end-to-end/settings.gradle
 create mode 100644 end-to-end/spring-dependency-management/build.gradle
 rename {grails-test-examples => end-to-end}/spring-dependency-management/grails-app/conf/application.yml (100%)
 rename {grails-test-examples => end-to-end}/spring-dependency-management/grails-app/controllers/UrlMappings.groovy (100%)
 rename {grails-test-examples => end-to-end}/spring-dependency-management/grails-app/controllers/springdm/HelloController.groovy (100%)
 rename {grails-test-examples => end-to-end}/spring-dependency-management/grails-app/init/springdm/Application.groovy (100%)
 rename {grails-test-examples => end-to-end}/spring-dependency-management/grails-app/views/error.gsp (100%)
 rename {grails-test-examples => end-to-end}/spring-dependency-management/grails-app/views/index.gsp (100%)
 rename {grails-test-examples => end-to-end}/spring-dependency-management/grails-app/views/notFound.gsp (100%)
 rename {grails-test-examples => end-to-end}/spring-dependency-management/src/integration-test/groovy/springdm/HelloControllerSpec.groovy (100%)
 create mode 100644 end-to-end/taglib-index-incremental/build.gradle
 create mode 100644 end-to-end/taglib-index-incremental/src/test/groovy/org/apache/grails/e2e/taglib/TagLibraryIndexIncrementalSpec.groovy
 create mode 100644 grails-async/core/src/main/groovy/org/grails/async/factory/future/CompletableFuturePromise.groovy
 create mode 100644 grails-async/core/src/main/groovy/org/grails/async/factory/future/CompletableFuturePromiseFactory.groovy
 create mode 100644 grails-async/core/src/main/groovy/org/grails/async/factory/future/VirtualThreadPromiseFactory.groovy
 create mode 100644 grails-async/core/src/test/groovy/grails/async/CompletableFuturePromiseFactorySpec.groovy
 create mode 100644 grails-async/core/src/test/groovy/grails/async/VirtualThreadPromiseFactorySpec.groovy
 create mode 100644 grails-async/plugin/src/main/groovy/org/grails/plugins/web/async/AsyncRequestSupport.groovy
 create mode 100644 grails-async/plugin/src/main/groovy/org/grails/plugins/web/async/GrailsWebRequestTaskDecorator.groovy
 create mode 100644 grails-async/plugin/src/test/groovy/org/grails/plugins/web/async/AsyncWebRequestPromiseDecoratorLookupStrategySpec.groovy
 create mode 100644 grails-async/plugin/src/test/groovy/org/grails/plugins/web/async/AsyncWebRequestPromiseDecoratorSpec.groovy
 create mode 100644 grails-async/plugin/src/test/groovy/org/grails/plugins/web/async/GrailsWebRequestTaskDecoratorSpec.groovy
 create mode 100644 grails-async/plugin/src/test/groovy/org/grails/plugins/web/async/mvc/AsyncActionResultTransformerSpec.groovy
 create mode 100644 grails-beans-dsl/build.gradle
 create mode 100644 grails-beans-dsl/src/main/java/grails/compiler/beans/ConditionalOnGrailsEnv.java
 create mode 100644 grails-beans-dsl/src/main/java/grails/compiler/beans/GrailsBeans.java
 create mode 100644 grails-beans-dsl/src/main/java/org/grails/compiler/beans/AutoConfigurationImportsWriter.java
 create mode 100644 grails-beans-dsl/src/main/java/org/grails/compiler/beans/GrailsBeansASTTransformation.java
 create mode 100644 grails-beans-dsl/src/main/java/org/grails/compiler/beans/OnGrailsEnvCondition.java
 create mode 100644 grails-beans-dsl/src/test/groovy/org/grails/compiler/beans/AutoConfigurationImportsWriterSpec.groovy
 create mode 100644 grails-beans-dsl/src/test/groovy/org/grails/compiler/beans/GrailsBeansASTTransformationSpec.groovy
 create mode 100644 grails-beans-dsl/src/test/groovy/org/grails/compiler/beans/OnGrailsEnvConditionSpec.groovy
 delete mode 100644 grails-bom/hibernate5-micronaut/build.gradle
 delete mode 100644 grails-bom/hibernate7-micronaut/build.gradle
 delete mode 100644 grails-bom/micronaut/build.gradle
 create mode 100644 grails-bom/neo4j/build.gradle
 rename grails-bootstrap/src/{main => cli}/groovy/grails/build/logging/ConsoleLogger.java (100%)
 create mode 100644 grails-bootstrap/src/cli/groovy/grails/build/logging/GrailsConsole.java
 rename grails-bootstrap/src/{main => cli}/groovy/grails/build/logging/GrailsEclipseConsole.java (100%)
 rename grails-bootstrap/src/{main => cli}/groovy/org/grails/build/interactive/CandidateListCompletionHandler.java (100%)
 create mode 100644 grails-bootstrap/src/cli/groovy/org/grails/build/logging/ConsoleAnsi.java
 rename grails-bootstrap/src/{main => cli}/groovy/org/grails/build/logging/GrailsConsoleAntBuilder.java (100%)
 rename grails-bootstrap/src/{main => cli}/groovy/org/grails/build/logging/GrailsConsoleBuildListener.java (100%)
 rename grails-bootstrap/src/{main => cli}/groovy/org/grails/build/logging/GrailsConsoleErrorPrintStream.java (100%)
 rename grails-bootstrap/src/{main => cli}/groovy/org/grails/build/logging/GrailsConsolePrintStream.java (100%)
 delete mode 100644 grails-bootstrap/src/main/groovy/grails/build/logging/GrailsConsole.java
 rename grails-bootstrap/src/{test => test-cli}/groovy/grails/build/logging/GrailsConsoleCompleterSpec.groovy (100%)
 create mode 100644 grails-bootstrap/src/test-cli/groovy/grails/build/logging/GrailsConsoleLoggingSpec.groovy
 create mode 100644 grails-bootstrap/src/test-cli/groovy/grails/build/logging/GrailsConsoleSpec.groovy
 rename grails-bootstrap/src/{test => test-cli}/groovy/org/grails/build/interactive/CandidateListCompletionHandlerSpec.groovy (100%)
 delete mode 100644 grails-bootstrap/src/test/groovy/grails/build/logging/GrailsConsoleSpec.groovy
 create mode 100644 grails-bootstrap/src/test/groovy/org/grails/io/watch/DirectoryWatcherSpec.groovy
 delete mode 100644 grails-cache/src/main/groovy/grails/plugin/cache/GrailsCacheAutoConfiguration.groovy
 rename grails-cache/src/main/resources/META-INF/{spring-configuration-metadata.json => additional-spring-configuration-metadata.json} (100%)
 create mode 100644 grails-cache/src/test/groovy/grails/plugin/cache/CacheAutoConfigurationSpec.groovy
 delete mode 100644 grails-cache/src/test/groovy/grails/plugin/cache/CacheGrailsPluginSpec.groovy
 delete mode 100644 grails-cache/src/test/groovy/grails/plugin/cache/GrailsCacheAutoConfigurationSpec.groovy
 create mode 100644 grails-codecs/src/test/groovy/org/grails/plugins/codecs/CodecsConfigurationSpec.groovy
 create mode 100644 grails-common/src/main/groovy/org/apache/grails/common/aot/AheadOfTimeProcessing.java
 create mode 100644 grails-common/src/main/groovy/org/apache/grails/common/aot/RegistrableTypes.java
 create mode 100644 grails-common/src/main/groovy/org/apache/grails/common/reflect/ReflectionUtils.java
 create mode 100644 grails-common/src/test/groovy/org/apache/grails/common/aot/RegistrableTypesSpec.groovy
 create mode 100644 grails-common/src/test/groovy/org/apache/grails/common/reflect/ReflectionUtilsSpec.groovy
 create mode 100644 grails-common/src/test/groovy/org/apache/grails/common/reflect/beans/PublicCovariantBase.java
 create mode 100644 grails-common/src/test/groovy/org/apache/grails/common/reflect/beans/PublicFieldBean.java
 create mode 100644 grails-common/src/test/groovy/org/apache/grails/common/reflect/beans/PublicThing.java
 create mode 100644 grails-common/src/test/groovy/org/apache/grails/common/reflect/beans/ThingFactory.java
 create mode 100644 grails-configuration-metadata/build.gradle
 create mode 100644 grails-configuration-metadata/src/main/groovy/org/apache/grails/configuration/metadata/ConfigurationMetadataTransformation.groovy
 create mode 100644 grails-configuration-metadata/src/main/resources/META-INF/services/org.codehaus.groovy.transform.ASTTransformation
 create mode 100644 grails-configuration-metadata/src/test/groovy/org/apache/grails/configuration/metadata/ConfigurationMetadataTransformationSpec.groovy
 create mode 100644 grails-controllers/src/main/groovy/org/apache/grails/controllers/aot/ControllerRuntimeHints.java
 create mode 100644 grails-controllers/src/main/groovy/org/grails/plugins/web/controllers/GrailsControllersEnvironmentPostProcessor.java
 create mode 100644 grails-controllers/src/main/groovy/org/grails/plugins/web/controllers/GrailsHiddenHttpMethodFilterAutoConfiguration.java
 create mode 100644 grails-controllers/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-controllers/src/test/groovy/grails/artefact/ControllerRedirectSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/grails/artefact/controller/support/ResponseRendererSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/apache/grails/controllers/aot/ControllerRuntimeHintsSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/compiler/web/ControllerActionTransformerSerializableParameterSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/GrailsControllersEnvironmentPostProcessorSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/GrailsHiddenHttpMethodFilterAutoConfigurationSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/api/ControllersDomainBindingApiSpec.groovy
 create mode 100644 grails-converters/src/test/groovy/grails/converters/XMLParseSpec.groovy
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/DynamicGroovyPersonFactory.groovy
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/GroovyPersonFactory.groovy
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/HiddenCovariantBase.java
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/HiddenCovariantJavaBean.java
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/JavaPersonFactory.java
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/PackagePrivateGroovyPerson.groovy
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/PackagePrivateJavaPerson.java
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/PackagePrivateStandaloneGroovyBean.groovy
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/PackagePrivateStandaloneJavaBean.java
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/PublicPerson.java
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/SerializableGroovyBean.groovy
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/beans/SerializableJavaBean.java
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/marshaller/json/NonPublicClassMarshallingSpec.groovy
 create mode 100644 grails-converters/src/test/groovy/org/grails/web/converters/marshaller/xml/NonPublicClassMarshallingSpec.groovy
 create mode 100644 grails-core-cli-legacy/build.gradle
 create mode 100644 grails-core-cli-legacy/src/main/groovy/grails/dev/commands/ApplicationCommand.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/grails/dev/commands/ExecutionContext.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/grails/dev/commands/GrailsApplicationCommand.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/grails/dev/commands/io/FileSystemInteraction.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/grails/dev/commands/io/FileSystemInteractionImpl.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/grails/dev/commands/template/TemplateException.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/grails/dev/commands/template/TemplateRenderer.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/grails/dev/commands/template/TemplateRendererImpl.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/org/apache/grails/core/cli/compat/LegacyApplicationCommandAdapter.groovy
 create mode 100644 grails-core-cli-legacy/src/main/groovy/org/apache/grails/core/cli/compat/LegacyApplicationCommandProvider.groovy
 create mode 100644 grails-core-cli-legacy/src/main/resources/META-INF/grails-cli.factories
 create mode 100644 grails-core-cli-legacy/src/test/groovy/org/apache/grails/core/cli/LegacyCommandRegistryLoadingSpec.groovy
 create mode 100644 grails-core-cli-legacy/src/test/groovy/org/apache/grails/core/cli/compat/LegacyApplicationCommandAdapterSpec.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ApplicationCommandDiagnostics.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ApplicationCommandFactoryKeyProvider.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ApplicationCommandProvider.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ApplicationCommandRegistrar.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ApplicationCommandTargetAware.groovy
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/AbstractBeanDefinitionExcludeFilter.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/ArtefactClassesBeanFactoryInitializationAotProcessor.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/AutowireModeBeanRegistrationAotProcessor.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/BeanRegistrarRuntimeHints.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/GrailsApiRuntimeHints.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/GrailsBannerRuntimeHints.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/GrailsClosureRuntimeHints.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/GrailsResourceRuntimeHints.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/GroovyExtensionModuleRuntimeHints.java
 create mode 100644 grails-core/src/main/groovy/org/apache/grails/core/aot/VarargsBeanRegistrationAotProcessor.java
 delete mode 100644 grails-core/src/main/groovy/org/grails/plugins/core/CoreAutoConfiguration.java
 create mode 100644 grails-core/src/main/groovy/org/grails/spring/aop/autoproxy/GroovyAwareAutoProxyCreators.java
 create mode 100644 grails-core/src/main/groovy/org/grails/spring/beans/AbstractResourceLocatorPostProcessor.java
 create mode 100644 grails-core/src/main/groovy/org/grails/spring/context/annotation/GrailsComponentScanPostProcessor.java
 delete mode 100644 grails-core/src/main/groovy/org/grails/spring/context/support/PluginAwareResourceBundleMessageSource.java
 delete mode 100644 grails-core/src/main/groovy/org/grails/spring/context/support/ReloadableResourceBundleMessageSource.java
 create mode 100644 grails-core/src/main/resources/META-INF/native-image/org.apache.grails/grails-core/native-image.properties
 delete mode 100644 grails-core/src/main/resources/META-INF/spring-configuration-metadata.json
 create mode 100644 grails-core/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-core/src/test-cli/groovy/org/apache/grails/core/cli/ApplicationCommandProviderSpec.groovy
 rename grails-core/src/{test => test-cli}/groovy/org/apache/grails/core/cli/ConfigReportCommandSpec.groovy (100%)
 create mode 100644 grails-core/src/test-cli/groovy/org/apache/grails/core/cli/compiler/CommandFactoriesTransformationSpec.groovy
 create mode 100644 grails-core/src/test-cli/resources/META-INF/grails-cli.factories
 create mode 100644 grails-core/src/test/groovy/grails/boot/GrailsBannerColourSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/boot/GrailsBannerNativeMarkSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/boot/GrailsBannerVersionLookupSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/boot/config/GrailsApplicationPostProcessorAnnotationConfigSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/boot/config/GrailsAutoConfigurationArtefactsSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/plugins/DefaultGrailsPluginManagerRegistryContractSpec.groovy
 delete mode 100644 grails-core/src/test/groovy/grails/spring/GrailsPlaceHolderConfigurerCorePluginRuntimeSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/util/ActiveProcessorCountForkTests.java
 create mode 100644 grails-core/src/test/groovy/grails/util/GrailsUtilStackFiltererSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/GrailsBootstrapRegistryInitializerSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/AbstractBeanDefinitionExcludeFilterSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/ArtefactClassesBeanFactoryInitializationAotProcessorSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/AutowireModeBeanRegistrationAotProcessorSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/BeanRegistrarRuntimeHintsSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/GrailsApiRuntimeHintsSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/GrailsBannerRuntimeHintsSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/GrailsClosureRuntimeHintsSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/GrailsResourceRuntimeHintsSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/GroovyExtensionModuleRuntimeHintsSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/aot/VarargsBeanRegistrationAotProcessorSpec.groovy
 delete mode 100644 grails-core/src/test/groovy/org/apache/grails/core/cli/compiler/CommandFactoriesTransformationSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/plugins/CoreAutoConfigurationSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/plugins/CoreGrailsPluginAotSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/plugins/CoreGrailsPluginRegistrarSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/plugins/ProfilingGrailsPluginManagerSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/plugins/SpringBeanPackagesSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/plugins/scan/ScannedComponent.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/spring/aop/autoproxy/GroovyAwareAutoProxyCreatorsSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/spring/beans/AbstractResourceLocatorPostProcessorSpec.groovy
 delete mode 100644 grails-core/src/test/groovy/org/grails/spring/context/ResourceBundleMessageSourceSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/transaction/GrailsTransactionAttributeSpec.groovy
 create mode 100644 grails-core/src/test/resources/grails/boot/version-in-a-resource.properties
 create mode 100644 grails-core/src/test/resources/logback-test.xml
 create mode 100644 grails-core/src/testFixtures/groovy/org/apache/grails/core/testing/support/LogCapture.groovy
 rename grails-core/src/{main/groovy => testFixtures/java}/org/grails/core/io/MockFileResource.java (100%)
 rename grails-core/src/{main/groovy => testFixtures/java}/org/grails/core/io/MockResourceLoader.java (100%)
 rename grails-core/src/{main/groovy => testFixtures/java}/org/grails/core/io/MockStringResourceLoader.java (100%)
 rename grails-core/src/{main/groovy => testFixtures/java}/org/grails/plugins/MockGrailsPluginManager.java (100%)
 rename grails-core/src/{main/groovy => testFixtures/java}/org/grails/plugins/MockPluginDiscovery.java (100%)
 delete mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/MongoSchemaSpec.groovy.disabled
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/binding/DataBinderNotFoundExceptionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/entity/EntityFetchOptionsSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/entity/arguments/SimpleArgumentSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/entity/dsl/helpers/ComplexTypedSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/fetcher/DataFetcherNotFoundExceptionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/fetcher/impl/ClosureDataFetchingEnvironmentSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/fetcher/impl/CountEntityDataFetcherSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/fetcher/impl/PaginatedEntityDataFetcherSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/fetcher/impl/PersistentPropertyDataFetcherSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/fetcher/interceptor/CustomMutationInterceptorInvokerSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/fetcher/interceptor/CustomQueryInterceptorInvokerSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/response/CachingGraphQLResponseHandlerSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/KeyClassQuerySpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/CurrencyCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/DateCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/SqlDateCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/TimeCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/TimeZoneCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/TimestampCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/URICoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/URLCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/UUIDCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/jsr310/InstantCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/jsr310/LocalDateCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/jsr310/LocalDateTimeCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/jsr310/LocalTimeCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/jsr310/OffsetDateTimeCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/jsr310/OffsetTimeCoercionSpec.groovy
 create mode 100644 grails-data-graphql/core/src/test/groovy/org/grails/gorm/graphql/types/scalars/coercing/jsr310/ZonedDateTimeCoercionSpec.groovy
 rename grails-data-graphql/core/src/{main => testFixtures}/groovy/org/grails/gorm/graphql/testing/GraphQLSchemaSpec.groovy (100%)
 rename grails-data-graphql/core/src/{main => testFixtures}/groovy/org/grails/gorm/graphql/testing/MockDataFetchingEnvironment.groovy (100%)
 rename grails-data-hibernate5/core/src/main/resources/META-INF/{spring-configuration-metadata.json => additional-spring-configuration-metadata.json} (100%)
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/Hibernate5JoinedLockDialectSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/Hibernate5RefreshLockSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/SortArgumentValidationSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContextConfigurationSpec.groovy
 rename grails-data-hibernate5/dbmigration/src/{integration-test => integration-test-cli}/groovy/org/grails/plugins/databasemigration/DbUpdateCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/main/resources/META-INF/{spring-configuration-metadata.json => additional-spring-configuration-metadata.json} (100%)
 create mode 100644 grails-data-hibernate5/dbmigration/src/test-cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/ApplicationContextDatabaseMigrationCommandSpec.groovy
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DatabaseMigrationCommandConfigSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DatabaseMigrationCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmChangelogSyncCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmChangelogSyncCommandSqlSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmClearChecksumsCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmDiffCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmDropAllCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmFutureRollbackCountSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmFutureRollbackSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGenerateChangelogCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGenerateGormChangelogCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGormDiffCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmListLocksCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmMarkNextChangesetRanCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmMarkNextChangesetRanSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmPreviousChangesetSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmReleaseLocksCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCountCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCountSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackToDateCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackToDateSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmStatusCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCountCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCountSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmValidateCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/ScriptDatabaseMigrationCommandSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogSpec.groovy (100%)
 rename grails-data-hibernate5/dbmigration/src/{test => test-cli}/groovy/org/grails/plugins/databasemigration/liquibase/GroovyPreconditionSpec.groovy (100%)
 copy grails-data-hibernate5/dbmigration/src/{test => test-cli}/resources/logging.properties (100%)
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/ApplicationContextDatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/grails-plugin/src/test-cli/groovy/grails/plugin/hibernate/commands/SchemaExportCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateBasicEnumProperty.java
 rename grails-data-hibernate7/core/src/main/resources/META-INF/{spring-configuration-metadata.json => additional-spring-configuration-metadata.json} (100%)
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/EnumHasManyDdlSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/Hibernate7RefreshLockSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/Issue16349Spec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/SortArgumentValidationSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/GormNumericTypeColumnIntegrationSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/GormNumericTypeColumnPrecisionSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/GormTextTypeColumnIntegrationSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/GormTextTypeColumnLengthSpec.groovy
 rename grails-data-hibernate7/dbmigration/src/{integration-test => integration-test-cli}/groovy/org/grails/plugins/databasemigration/DbUpdateCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/main/resources/META-INF/{spring-configuration-metadata.json => additional-spring-configuration-metadata.json} (100%)
 create mode 100644 grails-data-hibernate7/dbmigration/src/test-cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/ApplicationContextDatabaseMigrationCommandSpec.groovy
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DatabaseMigrationCommandConfigSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DatabaseMigrationCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmChangelogSyncCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmChangelogSyncCommandSqlSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmClearChecksumsCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmDiffCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmDropAllCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmFutureRollbackCountSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmFutureRollbackSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGenerateChangelogCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGenerateGormChangelogCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGormDiffCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmListLocksCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmMarkNextChangesetRanCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmMarkNextChangesetRanSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmPreviousChangesetSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmReleaseLocksCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCountCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCountSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackToDateCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackToDateSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmStatusCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCountCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCountSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateSqlCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmValidateCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/ScriptDatabaseMigrationCommandSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogSpec.groovy (100%)
 rename grails-data-hibernate7/dbmigration/src/{test => test-cli}/groovy/org/grails/plugins/databasemigration/liquibase/GroovyPreconditionSpec.groovy (100%)
 copy {grails-data-hibernate5/dbmigration/src/test => grails-data-hibernate7/dbmigration/src/test-cli}/resources/logging.properties (100%)
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/ApplicationContextDatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/grails-plugin/src/test-cli/groovy/grails/plugin/hibernate/commands/SchemaExportCommandSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/CodecCustomTypeMarshallerSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/CodecExtensionsSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/SimpleCodecsSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/decoders/BasicCollectionTypeDecoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/decoders/CustomTypeDecoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/decoders/EmbeddedCollectionDecoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/decoders/EmbeddedDecoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/decoders/IdentityDecoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/decoders/SimpleDecoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/decoders/TemporalTypeDecodersSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/decoders/TenantIdDecoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/domain/Address.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/domain/Profile.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/encoders/BasicCollectionTypeEncoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/encoders/CustomTypeEncoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/encoders/EmbeddedCollectionEncoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/encoders/EmbeddedEncoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/encoders/IdentityEncoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/encoders/SimpleEncoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/encoders/TemporalTypeEncodersSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/codecs/encoders/TenantIdEncoderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/json/JsonReaderSpec.groovy
 create mode 100644 grails-data-mongodb/bson/src/test/groovy/org/grails/datastore/bson/json/JsonWriterSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/connections/MongoConnectionSource.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/grails/mongodb/bootstrap/MongoDbDataStoreSpringInitializerBeanDefinitionsSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/grails/mongodb/geo/DistanceSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesAsyncSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesBackgroundFailureSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesClassificationCostSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesDisabledSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesEnabledByDefaultSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesFailureSummarySpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesHookSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesKeyOrderSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesLifecycleSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesNameConflictSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesOnDemandSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesPartialClassificationSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesRecreateSummarySpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesStaleSnapshotSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesSummaryLogSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesUnfinishedSummarySpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesUnreadableIndexListSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CapturedLog.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionDirtyTrackingSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/FailingMongoClient.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HasManyReassignDirtyTrackingSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MapCriterionValueSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoEntityIdentityTypeSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/PortableIdentityPersistenceSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/bugs/MappingEngineStringIdStorageSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/bugs/MongoIdCoercionSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/bugs/StringIdAssociationStorageSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/connections/BuildIndexesPerConnectionSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/connections/BuildIndexesSharedDeclarationSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/connections/CheckpointRestoreConnectionsSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/connections/SuppliedMongoClientSettingsSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/mapping/mongo/MongoDatastoreLifecycleSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/mapping/mongo/config/MongoConfigurationMetadataSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/mapping/mongo/config/MongoMappingContextSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/mapping/mongo/connections/MongoConnectionSourceSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/mapping/mongo/engine/MongoIdCoercionSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/resources/logback-test.xml
 create mode 100644 grails-data-mongodb/docs/src/docs/asciidoc/gettingStarted/embeddedMongo.adoc
 create mode 100644 grails-data-mongodb/embedded/build.gradle
 create mode 100644 grails-data-mongodb/embedded/src/main/java/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoBackend.java
 create mode 100644 grails-data-mongodb/embedded/src/main/java/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoInitializer.java
 create mode 100644 grails-data-mongodb/embedded/src/main/java/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoLifecycle.java
 create mode 100644 grails-data-mongodb/embedded/src/main/java/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoSettings.java
 create mode 100644 grails-data-mongodb/embedded/src/main/java/org/grails/datastore/gorm/mongodb/embedded/FlapdoodleMongoBackend.java
 create mode 100644 grails-data-mongodb/embedded/src/main/java/org/grails/datastore/gorm/mongodb/embedded/InMemoryMongoBackend.java
 create mode 100644 grails-data-mongodb/embedded/src/main/java/org/grails/datastore/gorm/mongodb/embedded/ReplicaSetInitiator.java
 create mode 100644 grails-data-mongodb/embedded/src/main/java/org/grails/datastore/gorm/mongodb/embedded/RunningEmbeddedMongo.java
 create mode 100644 grails-data-mongodb/embedded/src/main/resources/META-INF/spring.factories
 create mode 100644 grails-data-mongodb/embedded/src/test/groovy/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoInitializerSpec.groovy
 create mode 100644 grails-data-mongodb/embedded/src/test/groovy/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoLifecycleSpec.groovy
 create mode 100644 grails-data-mongodb/embedded/src/test/groovy/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoReplicaSetSpec.groovy
 create mode 100644 grails-data-mongodb/embedded/src/test/groovy/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoSettingsSpec.groovy
 create mode 100644 grails-data-mongodb/embedded/src/test/groovy/org/grails/datastore/gorm/mongodb/embedded/FlapdoodleMongoBackendSpec.groovy
 create mode 100644 grails-data-mongodb/embedded/src/test/groovy/org/grails/datastore/gorm/mongodb/embedded/InMemoryMongoBackendSpec.groovy
 create mode 100644 grails-data-mongodb/embedded/src/test/java/org/grails/datastore/gorm/mongodb/embedded/ContextStoppedServerApplication.java
 create mode 100644 grails-data-mongodb/ext/src/test/groovy/org/grails/datastore/gorm/mongo/extensions/MongoExtensionsSpec.groovy
 create mode 100644 grails-data-mongodb/grails-plugin/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 delete mode 100644 grails-data-mongodb/grails-plugin/src/main/resources/META-INF/spring-configuration-metadata.json
 create mode 100644 grails-data-mongodb/grails-plugin/src/test/groovy/grails/plugins/mongodb/MongodbGrailsPluginSpec.groovy
 create mode 100644 grails-data-mongodb/spring-data/src/main/java/org/grails/datastore/gorm/mongodb/springdata/DatastoreMongoClientDatabaseFactory.java
 create mode 100644 grails-data-mongodb/spring-data/src/test/groovy/org/grails/datastore/gorm/mongodb/springdata/GormSharedSessionMongoTransactionManagerSpec.groovy
 create mode 100644 grails-data-mongodb/spring-data/src/test/groovy/org/grails/datastore/gorm/mongodb/springdata/SpringDataMongoGormRestoreSpec.groovy
 delete mode 100644 grails-data-neo4j/build.gradle
 create mode 100644 grails-data-neo4j/core/build.gradle
 create mode 100644 grails-data-neo4j/core/src/main/groovy/grails/neo4j/Direction.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/grails/neo4j/Neo4jEntity.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/grails/neo4j/Node.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/grails/neo4j/Path.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/grails/neo4j/Relationship.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/grails/neo4j/mapping/MappingBuilder.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/grails/neo4j/services/Cypher.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/CypherBuilder.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphClassMapping.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphGormMappingFactory.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphPersistentEntity.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/IdGenerator.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jDatastore.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jDatastoreTransactionManager.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jEntityTraitProvider.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jGormApiFactory.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jMappingContext.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jSession.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jTransaction.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/RelationshipPersistentEntity.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/RelationshipUtils.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/SessionFlushedEvent.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/TypeDirectionPair.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/api/Neo4jGormStaticApi.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/GraphAdapter.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jAssociationResultList.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jList.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPath.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentList.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentSet.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentSortedSet.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jRelationship.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jResultList.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jSet.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jSortedSet.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/config/Neo4jDriverConfigBuilder.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/config/Settings.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceFactory.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceSettings.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceSettingsBuilder.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jEmbeddedConnectionSource.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/DynamicAssociationSupport.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jAssociationQueryExecutor.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jEntityPersister.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jModificationTrackingEntityAccess.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jQuery.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/RelationshipPendingDelete.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/RelationshipPendingInsert.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/extensions/Neo4jExtensions.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/identity/SnowflakeIdGenerator.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/Attribute.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicAssociation.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicToManyAssociation.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicToOneAssociation.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/NodeConfig.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/RelationshipConfig.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/reflect/Neo4jNameUtils.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/parsers/PlingStemmer.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/proxy/HashcodeEqualsAwareProxyFactory.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/proxy/Neo4jAssociationQueryProxyHandler.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/proxy/Neo4jProxyFactory.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindAllCypherQueryImplementer.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindOneCypherQueryImplementer.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindPathCypherQueryImplementer.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindShortestPathImplementer.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/StatementResultCypherQueryImplementer.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/UpdateCypherQueryImplementer.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/services/transform/CypherQueryStringTransformer.groovy
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/util/EmbeddedNeo4jServer.java
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/util/IteratorUtil.java
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/resources/META-INF/services/org.codehaus.groovy.runtime.ExtensionModule (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/resources/META-INF/services/org.grails.compiler.gorm.GormEntityTraitProvider (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/resources/META-INF/services/org.grails.datastore.gorm.services.ServiceImplementer (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/AssignedIdSpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/CascadingDeleteSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/CustomLabelWithDynamicAssociationSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/CypherQueryStringSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/EagerFetchingSpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/EntityParseSpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/FindByIsNullSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/GroovyProxySpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/HasManyInheritanceSpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/HasManyReassignDirtyCheckingSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/InheritanceProxySpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/JavaxValidationSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/JoinCriteriaSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/LabelStrategySpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/LikeQuerySpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/ManyToManyQuerySpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/ManyToManySpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/MapPropertySpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/MarkDirtyFalseSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/MiscSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/MultipleConnectionsSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/NamedConnectionsSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/NativeIdentityGeneratorSpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/Neo4jNameUtilsSpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/Neo4jResultListSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/NullValueEqualSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/OneToManyUpdateSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/OneToOneSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/OptimisticLockingSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/OrphanDeleteSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/PagedResultSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/PersistenceEventListenerSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/Pet.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/ProjectionsSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/ProxySpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/ReadManyObjectsSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/RelationshipMappingSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/RelationshipUtilsSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/SchemalessSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/TransientsSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/UniqueConstraintSpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/UpdateWithProxyPresentSpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/ValidationSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/WithTransactionSpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/assignedid/OneToManyCreateSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/assignedid/domain/Owner.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/assignedid/domain/Pet.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/cypher/OneToManyCreateSpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/cypher/domain/Owner.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/cypher/domain/Pet.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/idgeneration/CustomIdGeneratorSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/idgeneration/SnowflakeIdGeneratorSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/multitenancy/MultiTenancySpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/grails/gorm/tests/multitenancy/SingleTenancySpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/path/PathSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/path/RelationshipSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/path/domain/Person.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/services/Author.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/services/AuthorBooks.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/services/Book.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/services/CypherQueryTransformerSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/neo4j/Neo4jEntitySpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/org/apache/grails/data/neo4j/core/GrailsDataNeo4jTckManager.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/org/apache/grails/data/neo4j/core/Neo4jGormDatastoreSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/org/grails/datastore/gorm/neo4j/ApiExtensionsSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/org/grails/datastore/gorm/neo4j/Neo4jMappingContextSpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/org/grails/datastore/gorm/neo4j/RelationshipUtilsSpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/groovy/org/grails/datastore/gorm/neo4j/TransactionPropagationSpec.groovy
 create mode 100644 grails-data-neo4j/core/src/test/groovy/org/grails/datastore/gorm/neo4j/config/Neo4jConnectionSourceSettingsSpec.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/org/grails/datastore/gorm/neo4j/config/Neo4jDriverConfigBuilderSpec.groovy (100%)
 create mode 100644 grails-data-neo4j/core/src/test/resources/META-INF/services/org.apache.grails.data.testing.tck.base.GrailsDataTckManager
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/resources/logback.xml (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/resources/neo4j-server.properties (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/resources/spy.properties (100%)
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j-hibernate/build.gradle
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j-hibernate/gradle.properties
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j-hibernate/grails-app/views/error.gsp
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j-hibernate/src/integration-test/groovy/functional/tests/AuthorControllerSpec.groovy
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j-hibernate/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j-hibernate/src/test/groovy/functional/tests/Neo4jWithHibernateSpec.groovy
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j/build.gradle
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j/gradle.properties
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j/grails-app/views/error.gsp
 delete mode 100644 grails-data-neo4j/examples/grails3-neo4j/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy
 delete mode 100644 grails-data-neo4j/examples/neo4j-spring-boot/build.gradle
 delete mode 100644 grails-data-neo4j/examples/neo4j-spring-boot/gradle.properties
 delete mode 100644 grails-data-neo4j/examples/neo4j-standalone/build.gradle
 delete mode 100644 grails-data-neo4j/examples/neo4j-standalone/gradle.properties
 delete mode 100644 grails-data-neo4j/examples/test-data-service/build.gradle
 delete mode 100644 grails-data-neo4j/examples/test-data-service/gradle.properties
 delete mode 100644 grails-data-neo4j/examples/test-data-service/grails-app/conf/application.yml
 delete mode 100644 grails-data-neo4j/examples/test-data-service/grails-app/init/example/Application.groovy
 delete mode 100644 grails-data-neo4j/examples/test-data-service/grails-app/init/example/BootStrap.groovy
 delete mode 100644 grails-data-neo4j/examples/test-data-service/grails-app/services/example/StudentService.groovy
 delete mode 100644 grails-data-neo4j/examples/test-data-service/src/main/groovy/example/LoginAuthenticationSucessHandler.groovy
 delete mode 100644 grails-data-neo4j/gradle.properties
 create mode 100644 grails-data-neo4j/gradle/neo4j-harness-test-config.gradle
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/build.gradle
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/grails/neo4j/Direction.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/grails/neo4j/Neo4jEntity.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/grails/neo4j/Node.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/grails/neo4j/Path.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/grails/neo4j/Relationship.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/grails/neo4j/mapping/MappingBuilder.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/grails/neo4j/services/Cypher.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/CypherBuilder.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphClassMapping.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphGormMappingFactory.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphPersistentEntity.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/IdGenerator.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jDatastore.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jDatastoreTransactionManager.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jEntityTraitProvider.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jMappingContext.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jSession.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jTransaction.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/RelationshipPersistentEntity.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/RelationshipUtils.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/SessionFlushedEvent.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/TypeDirectionPair.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/api/Neo4jGormStaticApi.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/GraphAdapter.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jAssociationResultList.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jList.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPath.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentList.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentSet.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentSortedSet.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jRelationship.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jResultList.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jSet.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jSortedSet.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/config/Neo4jDriverConfigBuilder.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/config/Settings.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceFactory.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceSettings.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceSettingsBuilder.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jEmbeddedConnectionSource.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/DynamicAssociationSupport.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jAssociationQueryExecutor.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jEntityPersister.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jModificationTrackingEntityAccess.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jQuery.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/RelationshipPendingDelete.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/RelationshipPendingInsert.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/extensions/Neo4jExtensions.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/identity/SnowflakeIdGenerator.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/Attribute.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicAssociation.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicToManyAssociation.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicToOneAssociation.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/NodeConfig.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/RelationshipConfig.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/reflect/Neo4jNameUtils.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/parsers/PlingStemmer.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/proxy/HashcodeEqualsAwareProxyFactory.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/proxy/Neo4jAssociationQueryProxyHandler.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/proxy/Neo4jProxyFactory.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindAllCypherQueryImplementer.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindOneCypherQueryImplementer.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindPathCypherQueryImplementer.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindShortestPathImplementer.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/StatementResultCypherQueryImplementer.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/UpdateCypherQueryImplementer.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/services/transform/CypherQueryStringTransformer.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/util/EmbeddedNeo4jServer.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/util/IteratorUtil.java
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/CascadingDeleteSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/CustomLabelWithDynamicAssociationSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/CypherQueryStringSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/EagerFetchingSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/FindByIsNullSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/GormDatastoreSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/GroovyProxySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/InheritanceProxySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/JavaxValidationSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/JoinCriteriaSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/LabelStrategySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/LikeQuerySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/ManyToManyQuerySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/ManyToManySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/MapPropertySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/MarkDirtyFalseSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/MiscSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/MultipleConnectionsSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/NativeIdentityGeneratorSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Neo4jResultListSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/NullValueEqualSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/OneToManyUpdateSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/OneToOneSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/OptimisticLockingSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/OrphanDeleteSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/PagedResultSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/PersistenceEventListenerSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Pet.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/ProjectionsSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/ProxySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/ReadManyObjectsSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/RelationshipMappingSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/RelationshipUtilsSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/SchemalessSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/TransientsSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/UniqueConstraintSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/ValidationSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/WithTransactionSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/cypher/OneToManyCreateSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/multitenancy/SingleTenancySpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/org/grails/datastore/gorm/neo4j/ApiExtensionsSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/org/grails/datastore/gorm/neo4j/Neo4jSuite.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/org/grails/datastore/gorm/neo4j/TransactionPropagationSpec.groovy
 delete mode 100644 grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/org/grails/datastore/gorm/neo4j/config/Neo4jConnectionSourceSettingsSpec.groovy
 delete mode 100644 grails-data-neo4j/settings.gradle
 create mode 100644 grails-data-simple/src/test/groovy/org/grails/datastore/mapping/simple/SimpleMapSessionPendingOperationsSpec.groovy
 create mode 100644 grails-databinding-core/src/main/groovy/grails/databinding/FrameworkPropertyNames.java
 delete mode 100644 grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingConfiguration.java
 create mode 100644 grails-databinding/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 delete mode 100644 grails-databinding/src/main/resources/META-INF/spring-configuration-metadata.json
 delete mode 100644 grails-databinding/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
 create mode 100644 grails-datamapping-async/src/test/groovy/grails/gorm/async/AsyncEntitySpec.groovy
 create mode 100644 grails-datamapping-async/src/test/groovy/org/grails/datastore/gorm/async/AsyncQuerySpec.groovy
 create mode 100644 grails-datamapping-async/src/test/groovy/org/grails/datastore/gorm/async/GormAsyncStaticApiSpec.groovy
 create mode 100644 grails-datamapping-core-test/src/test/groovy/grails/gorm/tests/ConnectionScopeMultiTenancySpec.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/apache/grails/datamapping/aot/GormRuntimeHints.java
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/compiler/gorm/LocalTransformationSupport.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/internal/RefreshLockArguments.groovy
 delete mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/jdbc/OriginCapablePropertyValue.java
 delete mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/jdbc/PropertyOrigin.java
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/query/transform/GlobalGormQuerySafetyASTTransformation.java
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/query/transform/GormQuerySafetyTransformer.java
 create mode 100644 grails-datamapping-core/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-datamapping-core/src/test/groovy/com/IgnoredPackageEntity.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/annotation/multitenancy/MultiTenantCurrentTenantTransformSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/annotation/multitenancy/TenantTransformSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/ServiceImplementerEdgeCaseSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/transform/ServiceTransformClasses.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/transform/ServiceTransformSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/transactions/GrailsTransactionAttributeSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/transactions/TransactionRollbackRulePropagationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/apache/grails/datamapping/aot/GormRuntimeHintsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/compiler/gorm/GormEntityIdentityTypeSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/AbstractGormApiRegistrySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/ActiveSessionDatastoreSelectorSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/DefaultDatastoreSelectorSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/DefaultGormApiFactorySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormApiFactorySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormApiRegistrySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormRegistryConcurrencySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormRegistryEntityRegistrationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormRegistryFactorySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/PreferredDatastoreSelectorSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/QualifiedDatastoreSelectorSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/bootstrap/AbstractDatastoreInitializerConfigurationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/dirty/checking/DirtyCheckCollectionReassignmentSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/events/ConfigurableApplicationContextEventPublisherSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/internal/RefreshLockArgumentsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/DatabaseDriverSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/MultiTenantDataSourceSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/RelaxedConversionServiceSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/RelaxedDataBinderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/RelaxedNamesSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/connections/CachedDataSourceConnectionSourceFactorySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/connections/DataSourceConnectionSourceFactorySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/connections/DataSourceConnectionSourceSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/connections/DataSourceSettingsBuilderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/connections/DataSourceSettingsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/connections/SpringDataSourceConnectionSourceFactorySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/DetachedCriteriaASTTransformationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/GlobalGormQuerySafetyASTTransformationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/GormQuerySafetyTransformerSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryAggregateSubqueryErrorSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryAssociationPathSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryDetachedCriteriaCastSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryEmbeddedPropertyPathSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryFunctionCallSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryMultiLevelAssociationFunctionSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryNegationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryOperatorSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryPropertyAliasSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryStaticFieldSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/transform/ServiceTransformationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/transform/support/AdaptedProbeServiceImplementer.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/transform/support/NoOpServiceImplementerAdapter.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/transform/support/ProbeServiceImplementer.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/transform/support/ProbeServiceImplementerAdapter.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/AbstractGormASTTransformationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/AbstractTraitApplyingGormASTTransformationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/ApplyNonCompilationUnitAwareTransform.java
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/ApplyTestTraitWeaving.java
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/ApplyUnloadableGormTransform.java
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/AstPropertyResolveUtilsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/DoubleGenericTestTrait.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/NonCompilationUnitAwareTestTransformation.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/OrderedGormTransformationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/SingleGenericTestTrait.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/TestTraitWeavingTransformation.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/TestWeavableTrait.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/utils/ReflectionUtilsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/validation/constraints/MappingContextAwareConstraintFactorySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/validation/jakarta/ConfigurableParameterNameProviderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/validation/jakarta/ConstraintViolationUtilsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/validation/jakarta/GormValidatorFactoryAdapterSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/validation/jakarta/JakartaValidatorRegistrySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/validation/jakarta/MethodKeySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/validation/listener/ValidationEventListenerSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/validation/registry/support/ValidatorRegistriesSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/jakartafixture/JakartaTestEntity.groovy
 create mode 100644 grails-datamapping-core/src/test/resources/META-INF/services/org.grails.datastore.gorm.services.ServiceImplementer
 create mode 100644 grails-datamapping-core/src/test/resources/META-INF/services/org.grails.datastore.gorm.services.ServiceImplementerAdapter
 create mode 100644 grails-datamapping-validation/src/main/groovy/org/apache/grails/datamapping/validation/aot/ConstrainedPropertyRuntimeHints.java
 create mode 100644 grails-datamapping-validation/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-datamapping-validation/src/test/groovy/org/apache/grails/datamapping/validation/aot/ConstrainedPropertyRuntimeHintsSpec.groovy
 delete mode 100644 grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/ThreadLocalSessionResolver.groovy
 create mode 100644 grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/TransactionSynchronizationSessionResolver.groovy
 create mode 100644 grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/connections/SingleSessionCapableDatastore.java
 create mode 100644 grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/reflect/DevToolsClassLoaders.java
 delete mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/core/ThreadLocalSessionResolverSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/core/TransactionSynchronizationSessionResolverSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/dirty/checking/DirtyCheckingCollectionSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/document/config/DocumentMappingContextSpec.groovy
 delete mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/model/AbstractPersistentEntityGetTenantIdSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/reflect/DevToolsClassLoadersSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/transactions/DatastoreTransactionManagerSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/transactions/SessionOnlyTransactionSpec.groovy
 create mode 100644 grails-datastore-core/src/test/resources/logback-test.xml
 create mode 100644 grails-doc/src/en/guide/GORM/multiTenancy.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzClustering.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzConfiguration.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzDynamicScheduling.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzInstallation.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzJobManagerService.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzJobProperties.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzLongRunningJobs.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzScheduling.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzTriggers.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsAdvanced/quartzUsefulLinks.adoc
 create mode 100644 grails-doc/src/en/guide/backgroundJobs/backgroundJobsBasic.adoc
 create mode 100644 grails-doc/src/en/guide/deployment/deploymentAot.adoc
 create mode 100644 grails-doc/src/en/guide/deployment/deploymentAotCache.adoc
 create mode 100644 grails-doc/src/en/guide/testing/testingMongodb.adoc
 create mode 100644 grails-doc/src/en/guide/theWebLayer/gsp/gspInSpringBoot.adoc
 create mode 100644 grails-doc/src/en/guide/theWebLayer/gsp/gspStaticCompilation.adoc
 create mode 100644 grails-doc/src/en/guide/theWebLayer/gsp/taglibs/compiledTags.adoc
 create mode 100644 grails-doc/src/en/ref/Triggers.adoc
 create mode 100644 grails-doc/src/en/ref/Triggers/cron.adoc
 create mode 100644 grails-doc/src/en/ref/Triggers/custom.adoc
 create mode 100644 grails-doc/src/en/ref/Triggers/simple.adoc
 create mode 100644 grails-domain-class/src/main/groovy/org/grails/plugins/domain/DomainClassEnvironmentPostProcessor.groovy
 delete mode 100644 grails-domain-class/src/main/groovy/org/grails/plugins/domain/GrailsDomainClassAutoConfiguration.groovy
 create mode 100644 grails-domain-class/src/main/resources/META-INF/spring.factories
 create mode 100644 grails-domain-class/src/test/groovy/org/grails/plugins/domain/AutoTimestampCacheDefaultSpec.groovy
 delete mode 100644 grails-domain-class/src/test/groovy/org/grails/plugins/domain/DomainClassGrailsPluginSpec.groovy
 create mode 100644 grails-encoder/src/test/groovy/org/grails/encoder/CodecMetaClassSupportSpec.groovy
 create mode 100644 grails-forge/docs/aws-elastic-beanstalk.md
 mode change 100644 => 100755 grails-forge/gradlew.bat
 delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateController.java
 delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateDTO.java
 delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateOperation.java
 delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateService.java
 delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubRedirectService.java
 delete mode 100644 grails-forge/grails-forge-api/src/main/resources/META-INF/native-image/org.grails.forge.api/grails-forge-api/native-image.properties
 create mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/GrailsForgeConfigurationSpec.groovy
 delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/create/github/GitHubApiMockedController.groovy
 delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/create/github/GitHubCreateControllerSpec.groovy
 delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/create/github/GitHubOauthMockedController.groovy
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/AccessToken.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/GitHubOAuthClient.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/GitHubOAuthOperations.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubApiClient.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubApiOperations.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubRepository.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecret.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecretsPublicKey.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubUser.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubWorkflowRun.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubWorkflowRuns.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/AsyncGorm.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/MongoDBTestingSupport.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/MongoDBTestingSupportValidator.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/Neo4jGorm.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/LogbackConfig.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/securityConfig.rocker.raw
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/util/GitHubUtil.java
 mode change 100644 => 100755 grails-forge/grails-forge-core/src/main/resources/gradle/gradlew.bat
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/ActiveProcessorCountForkSpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/AsyncGormSpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/MongoDBTestingSupportSpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/Neo4JGormSpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/grails/GrailsUrlMappingsSpec.groovy
 create mode 100644 grails-forge/grails-forge-web-netty/aws/.platform/nginx/conf.d/proxy.conf
 create mode 100644 grails-forge/grails-forge-web-netty/aws/Procfile
 create mode 100644 grails-forge/grails-forge-web-netty/aws/start.sh
 delete mode 100644 grails-forge/grails-forge-web-netty/src/main/resources/META-INF/native-image/org.grails.forge/grails-forge-web-netty/reflect-config.json
 create mode 100644 grails-forge/infrastructure/README.md
 create mode 100644 grails-forge/infrastructure/environment.yaml
 create mode 100644 grails-forge/infrastructure/shared.yaml
 create mode 100644 grails-geb/src/test/groovy/grails/plugin/geb/GebRecordingTestListenerSpec.groovy
 create mode 100644 grails-geb/src/test/groovy/grails/plugin/geb/WebDriverContainerHolderSpec.groovy
 create mode 100644 grails-gradle/common/src/main/groovy/org/apache/grails/gradle/common/XmlParserFeature.java
 create mode 100644 grails-gradle/common/src/test/groovy/org/apache/grails/gradle/common/XmlParserFeatureSpec.groovy
 create mode 100644 grails-gradle/model/src/test/groovy/org/grails/io/support/SpringIOUtilsSpec.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/apache/grails/gradle/plugin/aot/AotCacheExtension.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/apache/grails/gradle/plugin/aot/ExtractApplicationTask.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/apache/grails/gradle/plugin/aot/GenerateNativeMetadataTask.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/apache/grails/gradle/plugin/aot/NativeMetadataExtension.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/apache/grails/gradle/plugin/aot/RunPort.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/apache/grails/gradle/plugin/aot/StartupLog.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/apache/grails/gradle/plugin/aot/TraceNativeMetadataTask.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/apache/grails/gradle/plugin/aot/TrainAotCacheTask.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/AutoConfigurationImportsCompileInput.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsCompilerConfigScriptTask.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGormIdTypeProvider.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGormOptions.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGspCompileStaticProvider.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsI18nOptions.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/i18n/GenerateI18nDescriptorTask.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/i18n/I18nBundleIndex.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/scaffolding/GenerateScaffoldedViewsTask.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GenerateTagLibraryIndexTask.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/TagLibraryIndexFiles.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/apache/grails/gradle/plugin/aot/ExtractApplicationTaskSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/apache/grails/gradle/plugin/aot/GenerateNativeMetadataTaskSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/apache/grails/gradle/plugin/aot/RunPortSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/apache/grails/gradle/plugin/aot/StartupLogSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/apache/grails/gradle/plugin/aot/TraceNativeMetadataTaskSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/apache/grails/gradle/plugin/aot/TracedRunFixture.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/apache/grails/gradle/plugin/aot/TrainAotCacheTaskSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/apache/grails/gradle/plugin/aot/TrainingRunFixture.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/commands/LegacyCommandTaskDiscoverySpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/commands/PluginScriptCommandPackagingSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/ActiveProcessorCountForkSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/AssetClasspathPackagingSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/AutoConfigurationImportsInputSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GormDefaultIdTypeFunctionalSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsGormIdTypeProviderSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsGroovyCompilerConfigSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsGspCompileStaticProviderSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsNativeImageDefaultsSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsWebDaemonReuseFunctionalSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/TestPhasesGradlePluginSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/i18n/GenerateI18nDescriptorTaskSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/i18n/I18nBundleIndexSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/i18n/I18nDescriptorFunctionalSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/scaffolding/GenerateScaffoldedViewsTaskSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/GenerateTagLibraryIndexTaskSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/GroovyPagePluginFunctionalSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageToolchainSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/TagLibraryIndexFilesSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/TagLibraryIndexWiringFunctionalSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/asset-classpath-packaging/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/asset-classpath-packaging/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/asset-classpath-packaging/settings.gradle
 delete mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bom-platform-hibernate7-micronaut-auto/build.gradle
 delete mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bom-platform-hibernate7-micronaut-auto/settings.gradle
 delete mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bom-platform-hibernate7-micronaut-manual/build.gradle
 delete mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bom-platform-hibernate7-micronaut-manual/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/included-digit-bearing-plugin/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/included-digit-bearing-plugin/my-plugin-2fa-one/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/included-digit-bearing-plugin/my-plugin-2fa-snapshot/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/included-digit-bearing-plugin/my-plugin-2fa-timestamp/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/included-digit-bearing-plugin/my-plugin-2fa-unspecified/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/included-digit-bearing-plugin/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-classpath-decoupling/app/build.gradle
 copy {grails-profiles/base/features/geb2/skeleton => grails-gradle/plugins/src/test/resources/test-projects/compiler-config-classpath-decoupling}/build.gradle (100%)
 rename grails-gradle/plugins/src/test/resources/test-projects/{bom-platform-hibernate7-micronaut-auto => compiler-config-classpath-decoupling}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-classpath-decoupling/producer/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-classpath-decoupling/runtime-only-producer/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-classpath-decoupling/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-generated-user-script-execution/build.gradle
 rename grails-gradle/plugins/src/test/resources/test-projects/{bom-platform-hibernate7-micronaut-manual => compiler-config-generated-user-script-execution}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-generated-user-script-execution/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-generated-user-script-execution/src/main/groovy/example/ConfiguredType.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-generated-user-script/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-generated-user-script}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-generated-user-script/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-incremental/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-incremental}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-incremental/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-late-assignment/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-late-assignment}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-late-assignment/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-late-assignment/user-config.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-late-source-set/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-late-source-set}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-late-source-set/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-missing-user-script/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-missing-user-script}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-missing-user-script/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-plugin-inputs/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-plugin-inputs}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-plugin-inputs/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-runtime-classpath-producer/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-runtime-classpath-producer}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-runtime-classpath-producer/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-standalone-task/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-standalone-task}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-standalone-task/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-standalone-task/user-config.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-star-imports/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => compiler-config-star-imports}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/compiler-config-star-imports/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gorm-default-id-type-plugin-consumer/app/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gorm-default-id-type-plugin-consumer/app/grails-app/conf/application.yml
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gorm-default-id-type-plugin-consumer/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => gorm-default-id-type-plugin-consumer}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gorm-default-id-type-plugin-consumer/plugin/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gorm-default-id-type-plugin-consumer/plugin/src/main/java/example/PortableBook.java
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gorm-default-id-type-plugin-consumer/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gorm-default-id-type/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => gorm-default-id-type}/gradle.properties (100%)
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => gorm-default-id-type}/grails-app/conf/application.yml (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gorm-default-id-type/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-classpath-grails/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-classpath-grails/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-classpath-grails/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-classpath/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-classpath/compile-classpath-marker/marker.txt
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-classpath/provided-compile-marker/marker.txt
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-classpath/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-static/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => gsp-compile-static}/gradle.properties (100%)
 copy grails-gradle/plugins/src/test/resources/test-projects/{boot-run-pid-web => gsp-compile-static}/grails-app/conf/application.yml (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/gsp-compile-static/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-app/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-app/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-app/grails-app/i18n/api_errors.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-app/grails-app/i18n/messages.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-app/grails-app/i18n/messages_de.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-app/grails-app/i18n/messages_pt_BR.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-app/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-declared/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-declared/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-declared/grails-app/i18n/api.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-declared/grails-app/i18n/api_errors.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-declared/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin-collision/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin-collision/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin-collision/grails-app/i18n/messages.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin-collision/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin-collision/src/main/groovy/demo/SpringSecurityDemoGrailsPlugin.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin/grails-app/i18n/spring-security-demo-validation.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin/grails-app/i18n/spring-security-demo.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin/grails-app/i18n/spring-security-demo_fr.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/i18n-descriptor-plugin/src/main/groovy/demo/SpringSecurityDemoGrailsPlugin.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/legacy-command-discovery/app/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{cli-companion-autodiscovery => legacy-command-discovery}/gradle.properties (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/legacy-command-discovery/legacy-command-api/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/legacy-command-discovery/legacy-command-api/src/main/java/grails/dev/commands/ApplicationCommand.java
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/legacy-command-discovery/legacy-command-api/src/main/java/grails/dev/commands/ExecutionContext.java
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/legacy-command-discovery/legacy-command-plugin/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/legacy-command-discovery/legacy-command-plugin/src/main/groovy/org/example/legacy/HelloLegacyAppCommand.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/legacy-command-discovery/legacy-command-plugin/src/main/resources/META-INF/grails.factories
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/legacy-command-discovery/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-defaults-aot/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => native-defaults-aot}/gradle.properties (100%)
 copy grails-gradle/plugins/src/test/resources/test-projects/{boot-run-pid-web => native-defaults-aot}/grails-app/conf/application.yml (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-defaults-aot/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-defaults-off/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => native-defaults-off}/gradle.properties (100%)
 copy grails-gradle/plugins/src/test/resources/test-projects/{boot-run-pid-web => native-defaults-off}/grails-app/conf/application.yml (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-defaults-off/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-defaults-on/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => native-defaults-on}/gradle.properties (100%)
 copy grails-gradle/plugins/src/test/resources/test-projects/{boot-run-pid-web => native-defaults-on}/grails-app/conf/application.yml (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-defaults-on/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-metadata-ordering/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => native-metadata-ordering}/gradle.properties (100%)
 copy grails-gradle/plugins/src/test/resources/test-projects/{boot-run-pid-web => native-metadata-ordering}/grails-app/conf/application.yml (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-metadata-ordering/grails-app/views/index.gsp
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/native-metadata-ordering/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-with-cli/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-with-cli/grails-app/views/sample/show.gsp
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-with-cli/src/main/resources/META-INF/commands/hand-authored.yml
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-with-cli/src/main/scripts/example-multi-step.yml
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-with-cli/src/main/scripts/example-script.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-with-cli/src/main/templates/example.gsp
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-with-cli/src/main/templates/example.txt
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-without-cli/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-without-cli/src/main/scripts/legacy-only-script.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-without-cli/src/main/templates/legacy-only.gsp
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/plugin-without-cli/src/main/templates/legacy-only.txt
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-script-commands/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/taglib-index-wiring/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/taglib-index-wiring/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/web-daemon-reuse/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => web-daemon-reuse}/gradle.properties (100%)
 copy grails-gradle/plugins/src/test/resources/test-projects/{boot-run-pid-web => web-daemon-reuse}/grails-app/conf/application.yml (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/web-daemon-reuse/settings.gradle
 create mode 100644 grails-gsp/core/src/main/groovy/org/apache/grails/gsp/aot/PrecompiledPageRuntimeHints.java
 create mode 100644 grails-gsp/core/src/main/groovy/org/grails/gsp/compiler/PageScopeVariableScanner.java
 create mode 100644 grails-gsp/core/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-gsp/core/src/test/groovy/org/apache/grails/gsp/aot/PrecompiledPageRuntimeHintsSpec.groovy
 create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/GroovyPageMetaInfoReloadSpec.groovy
 create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/GroovyPageMethodMissingSpec.groovy
 create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/GroovyPagesTemplateEngineChecksumSpec.groovy
 create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/GspCompileStaticConfigSpec.groovy
 create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/compiler/GroovyPageCompilerReproducibilitySpec.groovy
 create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/compiler/GroovyPageCompilerSpec.groovy
 create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/compiler/PageScopeVariableScannerSpec.groovy
 create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/io/DefaultGroovyPageLocatorPrecompiledSpec.groovy
 delete mode 100644 grails-gsp/grails-sitemesh3/src/main/groovy/org/grails/plugins/sitemesh3/Sitemesh3AutoConfiguration.groovy
 create mode 100644 grails-gsp/grails-sitemesh3/src/test/groovy/org/grails/plugins/sitemesh3/GrailsSiteMeshViewResolverServletContextSpec.groovy
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/CompiledTagInvocation.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/AstTagLibraryView.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/AstTagMethodView.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/ReflectedTagLibraryView.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/ReflectedTagMethodView.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/TagDiscoveryRules.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/TagLibraryAstDiscovery.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/TagLibraryView.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/discovery/TagMethodView.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndex.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndexEntry.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndexGenerator.java
 create mode 100644 grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndexWriter.java
 create mode 100644 grails-gsp/grails-taglib/src/test/groovy/org/grails/taglib/index/TagLibraryIndexSpec.groovy
 create mode 100644 grails-gsp/grails-taglib/src/test/groovy/org/grails/taglib/index/TagLibraryIndexWriterConcurrencySpec.groovy
 create mode 100644 grails-gsp/grails-web-taglib/src/main/groovy/grails/gsp/taglib/compiler/CompiledTagCallRewriter.java
 create mode 100644 grails-gsp/grails-web-taglib/src/main/groovy/grails/gsp/taglib/compiler/LocalNameCollector.java
 create mode 100644 grails-gsp/grails-web-taglib/src/main/groovy/grails/gsp/taglib/compiler/PageBindingCollector.java
 create mode 100644 grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/discovery/TagDiscoveryRulesSpec.groovy
 create mode 100644 grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/discovery/TagSetAgreementSpec.groovy
 create mode 100644 grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/index/SingleIndexProducerSpec.groovy
 create mode 100644 grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/index/SourceResolvedIndexGeneratorSpec.groovy
 create mode 100644 grails-gsp/grails-web-taglib/src/test/groovy/org/grails/taglib/index/TagLibraryIndexGeneratorSpec.groovy
 create mode 100644 grails-gsp/grails-web-taglib/src/test/groovy/org/grails/web/taglib/NoMetaClassMutationSpec.groovy
 create mode 100644 grails-gsp/grails-web-taglib/src/test/groovy/org/grails/web/taglib/TagLibraryLookupIndexSpec.groovy
 create mode 100644 grails-gsp/grails-web-taglib/src/test/groovy/org/grails/web/taglib/TagPrecedenceSpec.groovy
 create mode 100644 grails-gsp/plugin/src/ast/groovy/grails/compiler/traits/CompiledTagCallTransformation.groovy
 create mode 100644 grails-gsp/plugin/src/ast/resources/META-INF/services/org.codehaus.groovy.transform.ASTTransformation
 create mode 100644 grails-gsp/plugin/src/main/groovy/org/apache/grails/gsp/taglib/TagLibBeanDefinitionsPostProcessor.groovy
 create mode 100644 grails-gsp/plugin/src/main/groovy/org/apache/grails/gsp/taglib/aot/TagLibRuntimeHints.java
 create mode 100644 grails-gsp/plugin/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 delete mode 100644 grails-gsp/plugin/src/main/resources/META-INF/spring-configuration-metadata.json
 create mode 100644 grails-gsp/plugin/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/apache/grails/gsp/taglib/TagLibBeanDefinitionsPostProcessorSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/apache/grails/gsp/taglib/aot/TagLibRuntimeHintsSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/gsp/jsp/JstlDocTypeTldSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/plugins/web/GroovyPagesGrailsPluginPrecompiledSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledPageTagCallSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledTagCallBytecodeSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledTagCallRewriterSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledTagCallTransformationOrderSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/CompiledTagInvocationSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/ControllerTagCallRewriteSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/GroovyMethodNameCollisionSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/GspStaticTagResolutionSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/IndexEdgeCaseTagLib.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/RewrittenCallsTagLib.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/RewrittenPageRenderingSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/SameProjectTagResolutionSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/TagCallShadowingSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/TagLibraryIndexAgreementSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/TagLibraryInvokerDispatchSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/TypedSetTagSpec.groovy
 create mode 100644 grails-gsp/spring-boot/src/main/java/grails/gsp/boot/StandaloneGrailsApplicationAwareBeanPostProcessor.java
 create mode 100644 grails-gsp/spring-boot/src/main/java/grails/gsp/boot/StandaloneGroovyPageViewResolver.java
 create mode 100644 grails-gsp/spring-boot/src/test/groovy/grails/gsp/boot/GspAutoConfigurationSpec.groovy
 create mode 100644 grails-gsp/spring-boot/src/test/groovy/grails/gsp/boot/StandaloneGrailsApplicationAwareBeanPostProcessorSpec.groovy
 create mode 100644 grails-gsp/spring-boot/src/test/groovy/grails/gsp/boot/StandaloneGroovyPageViewResolverSpec.groovy
 create mode 100644 grails-gsp/spring-boot/src/test/groovy/grails/gsp/boot/StandaloneTagLibraryLookupSpec.groovy
 create mode 100644 grails-gsp/spring-boot/src/test/groovy/grails/gsp/boot/TagLibraryLookupRegistrarSpec.groovy
 create mode 100644 grails-gsp/spring-boot/src/test/groovy/grails/gsp/boot/UrlMappingsHolderConfigurationSpec.groovy
 create mode 100644 grails-gsp/spring-boot/src/test/resources/gsp/views.properties
 create mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/EffectiveI18nDescriptors.java
 delete mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/I18nAutoConfiguration.java
 create mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/I18nDescriptor.java
 create mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/I18nDescriptors.java
 create mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/I18nEnvironmentPostProcessor.java
 create mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/I18nRuntimeHintsProcessor.java
 create mode 100644 grails-i18n/src/main/resources/META-INF/spring.factories
 create mode 100644 grails-i18n/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/I18nDescriptorsSpec.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/I18nEnvironmentPostProcessorSpec.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/I18nRuntimeHintsProcessorSpec.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/MessageSourcePrecedenceSpec.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/MessageSourceReloadSpec.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/fixtures/AlphaPluginGrailsPlugin.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/fixtures/BetaPluginGrailsPlugin.groovy
 create mode 100644 grails-i18n/src/test/resources/META-INF/grails/i18n.properties
 create mode 100644 grails-i18n/src/test/resources/alpha-plugin.properties
 create mode 100644 grails-i18n/src/test/resources/beta-plugin.properties
 delete mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailAutoConfiguration.groovy
 create mode 100644 grails-mail/src/test/groovy/grails/plugins/mail/MailAutoConfigurationSpec.groovy
 create mode 100644 grails-mail/src/test/groovy/grails/plugins/mail/PlainTextMailTagLibSpec.groovy
 delete mode 100644 grails-micronaut/build.gradle
 delete mode 100644 grails-micronaut/src/main/groovy/org/apache/grails/micronaut/GrailsMicronautGrailsPlugin.groovy
 create mode 100644 grails-mimetypes/src/main/groovy/org/apache/grails/mimetypes/aot/MimeTypeRuntimeHints.java
 create mode 100644 grails-mimetypes/src/main/resources/META-INF/spring/aot.factories
 delete mode 100644 grails-profiles/base/skeleton/grails-app/conf/logback-spring.xml
 create mode 100644 grails-quartz/build.gradle
 create mode 100644 grails-quartz/grails-app/conf/plugin.yml
 create mode 100644 grails-quartz/grails-app/services/grails/plugins/quartz/JobManagerService.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/CustomTriggerFactoryBean.java
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/DefaultGrailsJobClass.java
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/GrailsJobClass.java
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/GrailsJobClassConstants.java
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/GrailsJobFactory.java
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/JobArtefactHandler.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/JobDescriptor.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/JobDetailFactoryBean.java
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/QuartzJob.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/QuartzJobTraitInjector.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/TriggerDescriptor.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/TriggerUtils.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/cleanup/JdbcCleanup.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/config/TriggersConfigBuilder.groovy
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/listeners/ExceptionPrinterJobListener.java
 create mode 100644 grails-quartz/src/main/groovy/grails/plugins/quartz/listeners/SessionBinderJobListener.java
 create mode 100644 grails-quartz/src/main/groovy/quartz/QuartzGrailsPlugin.groovy
 create mode 100644 grails-quartz/src/main/scripts/CreateJob.groovy
 create mode 100644 grails-quartz/src/main/templates/Job.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/CronTriggerTimeZoneSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/CustomTriggerFactoryBeanSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/DefaultGrailsJobClassSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/GrailsJobFactorySpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/JobArtefactHandlerSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/JobDescriptorSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/JobDetailFactoryBeanSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/MockDoWithSpring.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/QuartzJobSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/QuartzJobTraitInjectorSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/TestQuartzJob.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/TriggerDescriptorSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/grails/plugins/quartz/config/TriggersConfigBuilderSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/quartz/QuartzGrailsPluginSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/quartz/QuartzJobStoreCleanupSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/quartz/QuartzSchedulerContextSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/quartz/QuartzStartupSchedulingSpec.groovy
 create mode 100644 grails-quartz/src/test/groovy/quartz/jobs/ContextSpecJob.groovy
 create mode 100644 grails-rest-transforms/src/test/groovy/org/grails/plugins/web/rest/render/ServletRenderContextHttpMethodSpec.groovy
 create mode 100644 grails-scaffolding/src/main/groovy/org/apache/grails/scaffolding/aot/ScaffoldingRuntimeHints.java
 create mode 100644 grails-scaffolding/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-scaffolding/src/test/groovy/grails/plugin/scaffolding/ScaffoldedIndexViewModelSpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/GrailsCliLoggingVerifier.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/GrailsCliProjectDetectionSpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/GrailsCliSpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/boot/SpringApplicationWebApplicationInitializerSpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/command/run/LifecycleVerifier.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/command/run/SpringApplicationRunnerSpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/compiler/grape/DefaultRepositorySystemSessionAutoConfigurationSpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/profile/AbstractProfileSpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/profile/commands/factory/ApplicationContextCommandFactorySpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/profile/commands/factory/LegacyPluginScriptCompatSpec.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/profile/repository/MavenProfileRepositorySnapshotSpec.groovy
 mode change 100644 => 100755 grails-shell-cli/src/test/resources/gradle-sample/gradlew.bat
 create mode 100644 grails-shell-cli/src/test/resources/org/grails/cli/compiler/dependencies/spring-boot-dependencies-effective-bom.xml
 create mode 100644 grails-spring-security/compat/src/test/groovy/org/springframework/security/web/util/matcher/AntPathRequestMatcherSpec.groovy
 rename grails-spring-security/oauth2/plugin/grails-app/i18n/{messages.properties => spring-security-oauth2.properties} (100%)
 create mode 100644 grails-spring-security/plugin/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 delete mode 100644 grails-spring-security/plugin/src/main/resources/META-INF/spring-configuration-metadata.json
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/ConfigurationMetadataSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/UpdateRequestContextHolderExceptionTranslationFilterSpec.groovy
 rename grails-spring-security/ui/plugin/grails-app/i18n/{messages.spring-security-ui.properties => spring-security-ui.properties} (100%)
 create mode 100644 grails-spring/src/test/groovy/org/grails/spring/DefaultRuntimeSpringConfigurationAotSpec.groovy
 delete mode 100644 grails-test-core/src/main/groovy/org/grails/test/report/junit/JUnitReports.java
 delete mode 100644 grails-test-core/src/main/groovy/org/grails/test/report/junit/JUnitReportsFactory.java
 delete mode 100644 grails-test-core/src/main/groovy/org/grails/test/report/junit/PlainFormatter.java
 delete mode 100644 grails-test-core/src/main/groovy/org/grails/test/report/junit/XMLFormatter.java
 create mode 100644 grails-test-examples/aot/build.gradle
 create mode 100644 grails-test-examples/aot/grails-app/conf/application.yml
 create mode 100644 grails-test-examples/aot/grails-app/controllers/aot/GreetingController.groovy
 create mode 100644 grails-test-examples/aot/grails-app/controllers/aot/UrlMappings.groovy
 create mode 100644 grails-test-examples/aot/grails-app/init/aot/Application.groovy
 create mode 100644 grails-test-examples/aot/grails-app/services/aot/GreetingService.groovy
 create mode 100644 grails-test-examples/aot/grails-app/taglib/aot/GreetingTagLib.groovy
 create mode 100644 grails-test-examples/aot/grails-app/views/greeting/index.gsp
 create mode 100644 grails-test-examples/app1/grails-app/controllers/functionaltests/requestpath/RequestPathController.groovy
 create mode 100644 grails-test-examples/app1/grails-app/controllers/functionaltests/requestpath/RequestPathForwarderController.groovy
 create mode 100644 grails-test-examples/app1/grails-app/domain/functionaltests/ManagedEntityDomain.groovy
 create mode 100644 grails-test-examples/app1/src/integration-test/groovy/functionaltests/requestpath/RequestPathSpec.groovy
 create mode 100644 grails-test-examples/app1/src/test/groovy/functionaltests/CompiledTagCallSpec.groovy
 create mode 100644 grails-test-examples/app2/src/integration-test/groovy/app2/GrailsUtilStackFiltererIntegrationSpec.groovy
 create mode 100644 grails-test-examples/app2/src/main/groovy/app2/RecordingStackTraceFilterer.groovy
 create mode 100644 grails-test-examples/app4/grails-app/controllers/app4/UploadController.groovy
 create mode 100644 grails-test-examples/app4/src/integration-test/groovy/app4/OversizedUploadFunctionalSpec.groovy
 create mode 100644 grails-test-examples/async-events-pubsub-demo/grails-app/controllers/pubsub/demo/TimeoutController.groovy
 create mode 100644 grails-test-examples/async-events-pubsub-demo/src/integration-test/groovy/pubsub/demo/TimeoutControllerSpec.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/build.gradle
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/Farewell.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/FarewellGrailsPlugin.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/Greeting.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/GreetingGrailsPlugin.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/Salutation.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/SalutationGrailsPlugin.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/test/groovy/beandsl/example/plugin/FarewellGrailsPluginAutoDiscoverySpec.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/test/groovy/beandsl/example/plugin/GreetingGrailsPluginAutoDiscoverySpec.groovy
 create mode 100644 grails-test-examples/beans-dsl-plugin/src/test/groovy/beandsl/example/plugin/SalutationGrailsPluginAutoDiscoverySpec.groovy
 create mode 100644 grails-test-examples/beans-dsl/build.gradle
 create mode 100644 grails-test-examples/beans-dsl/src/main/groovy/beandsl/example/ExampleBeans.groovy
 create mode 100644 grails-test-examples/beans-dsl/src/main/groovy/beandsl/example/FancyGreeter.groovy
 create mode 100644 grails-test-examples/beans-dsl/src/main/groovy/beandsl/example/Greeter.groovy
 create mode 100644 grails-test-examples/beans-dsl/src/main/groovy/beandsl/example/LoudGreeter.groovy
 create mode 100644 grails-test-examples/beans-dsl/src/test/groovy/beandsl/example/ExampleBeansAutoConfigurationSpec.groovy
 create mode 100644 grails-test-examples/beans-dsl/src/test/groovy/beandsl/example/ExampleBeansAutoDiscoverySpec.groovy
 create mode 100644 grails-test-examples/benchmarks/README.adoc
 create mode 100644 grails-test-examples/benchmarks/build.gradle
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/controllers/ControllerActionBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/controllers/ControllerMappingCollectionBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/controllers/ControllerResponseBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/databinding/SimpleDataBinderBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/gsp/GroovyPageParserBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/interceptors/InterceptorChainBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/interceptors/UrlMappingMatcherBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/ruler/CpuRulerBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/ruler/MemoryRulerBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/urlmappings/UrlMappingsBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/views/ViewTemplateRenderingBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/web/GrailsWebRequestBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/web/MultipartResolutionBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/jmh/java/org/apache/grails/benchmarks/web/RequestPropertyAccessBenchmark.java
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/controllers/ControllerFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/controllers/ControllerMappingsFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/controllers/ControllerResponseFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/interceptors/InterceptorChainFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/interceptors/InterceptorFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/urlmappings/UrlMappingsFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/views/ViewTemplateFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/web/RequestPropertyFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/main/groovy/org/apache/grails/benchmarks/web/WebContextFixture.groovy
 create mode 100644 grails-test-examples/benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/Benchmark.groovy
 create mode 100644 grails-test-examples/benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/BenchmarkComparator.groovy
 create mode 100644 grails-test-examples/benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/CommentPoster.groovy
 create mode 100644 grails-test-examples/benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/Comparison.groovy
 create mode 100644 grails-test-examples/benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/JmhCompare.groovy
 create mode 100644 grails-test-examples/benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/JmhResults.groovy
 create mode 100644 grails-test-examples/benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/ReportRenderer.groovy
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/BenchmarkComparatorSpec.groovy
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/GitHubCommentsHttpSpec.groovy
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/GoldenReportSpec.groovy
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/JmhCompareSpec.groovy
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/PostFileSpec.groovy
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/broad-base.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/broad-head.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/edges-base.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/edges-head.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/expected-broad.md
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/expected-edges.md
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/expected-headonly.md
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/expected-norulers.md
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/expected-numbers.md
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/expected-shards.md
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/norulers-base.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/norulers-head.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/numbers-base.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/numbers-head.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/shards-base/shard-a.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/shards-base/shard-b.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/shards-head/shard-a.json
 create mode 100644 grails-test-examples/benchmarks/src/reportTest/resources/jmh-golden/shards-head/shard-b.json
 create mode 100644 grails-test-examples/gsp-compile-static/build.gradle
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/conf/application.yml
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/controllers/gspstatic/Book.groovy
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/controllers/gspstatic/DemoController.groovy
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/controllers/gspstatic/UrlMappings.groovy
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/init/gspstatic/Application.groovy
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/taglib/gspstatic/DemoTagLib.groovy
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/views/demo/declared.gsp
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/views/demo/frameworkNames.gsp
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/views/demo/index.gsp
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/views/error.gsp
 create mode 100644 grails-test-examples/gsp-compile-static/grails-app/views/notFound.gsp
 create mode 100644 grails-test-examples/gsp-compile-static/src/integration-test/groovy/gspstatic/GspCompileStaticSpec.groovy
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/main/assets/javascripts/application.js
 copy {grails-forge/grails-forge-core/src/main/resources => grails-test-examples/gsp-spring-boot/app/src/main}/assets/javascripts/theme.js (100%)
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/main/assets/stylesheets/application.css
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/main/java/hello/JspSupport.java
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/main/java/hello/JspViewController.java
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/test/java/hello/AssetLinkTest.java
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/test/java/hello/ErrorPageTest.java
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/test/java/hello/JspSupportTest.java
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/test/java/hello/JspViewTest.java
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/test/java/hello/PrecompiledViewTest.java
 create mode 100644 grails-test-examples/gsp-spring-boot/app/src/test/java/hello/StandaloneContextTest.java
 create mode 100644 grails-test-examples/hibernate5/grails-hibernate/grails-app/domain/functional/tests/Organization.groovy
 create mode 100644 grails-test-examples/hibernate5/grails-hibernate/src/integration-test/groovy/functional/tests/OrganizationValidationSpec.groovy
 create mode 100644 grails-test-examples/hibernate7/app1/grails-app/domain/functionaltests/ManagedEntityDomain.groovy
 delete mode 100644 grails-test-examples/issue-11767/build.gradle
 delete mode 100644 grails-test-examples/issue-11767/grails-app/conf/application.yml
 delete mode 100644 grails-test-examples/issue-11767/grails-app/conf/logback.xml
 delete mode 100644 grails-test-examples/issue-11767/grails-app/controllers/issue11767/app/AppController.groovy
 delete mode 100644 grails-test-examples/issue-11767/grails-app/controllers/issue11767/app/UrlMappings.groovy
 delete mode 100644 grails-test-examples/issue-11767/grails-app/init/issue11767/app/Application.groovy
 delete mode 100644 grails-test-examples/issue-11767/src/integration-test/groovy/issue11767/app/ConfigLoadingSpec.groovy
 delete mode 100644 grails-test-examples/issue-11767/src/main/groovy/issue11767/app/AppGroovyMicronautBean.groovy
 create mode 100644 grails-test-examples/jetty/grails-app/controllers/issue12688/UploadController.groovy
 create mode 100644 grails-test-examples/jetty/src/integration-test/groovy/issue12688/JettyOversizedUploadSpec.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/build.gradle
 delete mode 100644 grails-test-examples/micronaut-groovy-only/grails-app/conf/application.yml
 delete mode 100644 grails-test-examples/micronaut-groovy-only/grails-app/controllers/micronautgroovyonly/UrlMappings.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/grails-app/init/micronautgroovyonly/Application.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/grails-app/services/micronautgroovyonly/BeanInjectionService.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/grails-app/services/micronautgroovyonly/TestService.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/integration-test/groovy/micronautgroovyonly/BeanInjectionServiceSpec.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/integration-test/groovy/micronautgroovyonly/MicronautContextSpec.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/integration-test/groovy/micronautgroovyonly/MicronautQualifierSpec.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/AppConfig.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/FactoryCreatedService.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/NamedService.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/PrimaryNamedService.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/Qualified.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/QualifiedNamedService.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/RegularNamedService.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/ServiceFactory.groovy
 delete mode 100644 grails-test-examples/micronaut-groovy-only/src/main/groovy/bean/injection/SpecialNamedService.groovy
 delete mode 100644 grails-test-examples/micronaut-hibernate5/build.gradle
 delete mode 100644 grails-test-examples/micronaut-hibernate5/grails-app/conf/application.yml
 delete mode 100644 grails-test-examples/micronaut-hibernate5/grails-app/conf/logback.xml
 delete mode 100644 grails-test-examples/micronaut-hibernate5/grails-app/controllers/micronaut/hibernate5/UrlMappings.groovy
 delete mode 100644 grails-test-examples/micronaut-hibernate5/grails-app/init/micronaut/hibernate5/Application.groovy
 delete mode 100644 grails-test-examples/micronaut-hibernate5/grails-app/views/index.gsp
 delete mode 100644 grails-test-examples/micronaut-hibernate5/src/integration-test/groovy/micronaut/hibernate5/ApplicationStartupSpec.groovy
 delete mode 100644 grails-test-examples/micronaut-hibernate7/build.gradle
 delete mode 100644 grails-test-examples/micronaut-hibernate7/grails-app/conf/application.yml
 delete mode 100644 grails-test-examples/micronaut-hibernate7/grails-app/conf/logback.xml
 delete mode 100644 grails-test-examples/micronaut-hibernate7/grails-app/controllers/micronaut/hibernate7/UrlMappings.groovy
 delete mode 100644 grails-test-examples/micronaut-hibernate7/grails-app/init/micronaut/hibernate7/Application.groovy
 delete mode 100644 grails-test-examples/micronaut-hibernate7/grails-app/views/index.gsp
 delete mode 100644 grails-test-examples/micronaut-hibernate7/src/integration-test/groovy/micronaut/hibernate7/ApplicationStartupSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/.gitignore
 delete mode 100644 grails-test-examples/micronaut/build.gradle
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/advancedgrails.svg
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/apple-touch-icon-retina.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/apple-touch-icon.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/documentation.svg
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/favicon.ico
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/grails-cupsonly-logo-white.svg
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/grails.svg
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/database_add.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/database_delete.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/database_edit.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/database_save.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/database_table.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/exclamation.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/house.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/information.png
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/shadow.jpg
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/sorted_asc.gif
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/skin/sorted_desc.gif
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/slack.svg
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/images/spinner.gif
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/javascripts/application.js
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/stylesheets/application.css
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/stylesheets/errors.css
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/stylesheets/grails.css
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/stylesheets/main.css
 delete mode 100644 grails-test-examples/micronaut/grails-app/assets/stylesheets/mobile.css
 delete mode 100644 grails-test-examples/micronaut/grails-app/conf/application.yml
 delete mode 100644 grails-test-examples/micronaut/grails-app/conf/logback.xml
 delete mode 100644 grails-test-examples/micronaut/grails-app/conf/spring/resources.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/controllers/micronaut/ExternalApiController.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/controllers/micronaut/MicronautTestController.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/controllers/micronaut/UrlMappings.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_cs.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_da.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_de.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_es.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_fr.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_it.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_ja.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_nb.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_nl.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_pl.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_pt_BR.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_pt_PT.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_ru.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_sk.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_sv.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_th.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/i18n/messages_zh_CN.properties
 delete mode 100644 grails-test-examples/micronaut/grails-app/init/micronaut/Application.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/init/micronaut/BootStrap.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/services/micronaut/BeanInjectionService.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/services/micronaut/ExternalApiService.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/services/micronaut/TestService.groovy
 delete mode 100644 grails-test-examples/micronaut/grails-app/views/index.gsp
 delete mode 100644 grails-test-examples/micronaut/grails-app/views/layouts/main.gsp
 delete mode 100644 grails-test-examples/micronaut/grails-app/views/notFound.gsp
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/BeanInjectionServiceSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautBeanDuplicationSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautBeanTypesSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautContextSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautDeclarativeClientSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautErsatzAdvancedSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautErsatzPatternSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautErsatzRoundtripSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautPluginBeanSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautQualifierSpec.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/AppConfig.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/FactoryCreatedService.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/NamedService.java
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/PrimaryNamedService.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/Qualified.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/QualifiedNamedService.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/RegularNamedService.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/ServiceFactory.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/bean/injection/SpecialNamedService.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/micronaut/client/MicronautAdvancedClient.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/micronaut/client/MicronautFilteredClient.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/micronaut/client/MicronautHeaderClient.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/micronaut/client/MicronautPathClient.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/micronaut/client/MicronautReactiveClient.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/groovy/micronaut/client/MicronautTestClient.groovy
 delete mode 100644 grails-test-examples/micronaut/src/main/java/bean/injection/JavaMessageProvider.java
 delete mode 100644 grails-test-examples/micronaut/src/main/java/bean/injection/JavaSingletonService.java
 delete mode 100644 grails-test-examples/micronaut/src/main/java/micronaut/client/MicronautRetryableClient.java
 delete mode 100644 grails-test-examples/micronaut/src/main/java/micronaut/filter/AuthTokenClientFilter.java
 create mode 100644 grails-test-examples/neo4j/base/build.gradle
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/apple-touch-icon-retina.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/apple-touch-icon.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/favicon.ico (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/grails_logo.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/database_add.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/database_delete.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/database_edit.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/database_save.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/database_table.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/exclamation.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/house.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/information.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/shadow.jpg (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/sorted_asc.gif (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/skin/sorted_desc.gif (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/images/spinner.gif (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/javascripts/application.js (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/stylesheets/application.css (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/stylesheets/errors.css (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/stylesheets/main.css (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/assets/stylesheets/mobile.css (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/grails-app/conf/application.yml (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/conf/logback.xml (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/conf/spring/resources.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/controllers/UrlMappings.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/grails-app/controllers/functional/tests/BookController.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/grails-app/domain/functional/tests/Book.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/grails-app/domain/functional/tests/Person.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_cs_CZ.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_da.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_de.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_es.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_fr.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_it.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_ja.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_nb.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_nl.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_pl.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_pt_BR.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_pt_PT.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_ru.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_sv.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_th.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/i18n/messages_zh_CN.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/init/BootStrap.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/grails-app/init/functional/tests/Application.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/grails-app/services/functional/tests/PersonService.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/views/book/create.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/views/book/edit.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/views/book/index.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/views/book/show.gsp (100%)
 rename grails-test-examples/{micronaut => neo4j/base}/grails-app/views/error.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/views/index.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/views/layouts/main.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/base}/grails-app/views/notFound.gsp (100%)
 create mode 100644 grails-test-examples/neo4j/base/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy
 copy grails-test-examples/{hibernate5/grails-hibernate => neo4j/base}/src/integration-test/groovy/functional/tests/pages/BookPages.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/src/test/groovy/functional/tests/BookSpec.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/src/test/groovy/functional/tests/PersonSpec.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/src/test/groovy/functional/tests/StandaloneNeo4jSpec.groovy (100%)
 create mode 100644 grails-test-examples/neo4j/hibernate5/build.gradle
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/apple-touch-icon-retina.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/apple-touch-icon.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/favicon.ico (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/grails_logo.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/database_add.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/database_delete.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/database_edit.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/database_save.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/database_table.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/exclamation.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/house.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/information.png (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/shadow.jpg (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/sorted_asc.gif (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/skin/sorted_desc.gif (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/images/spinner.gif (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/javascripts/application.js (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/stylesheets/application.css (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/stylesheets/errors.css (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/stylesheets/main.css (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/assets/stylesheets/mobile.css (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/conf/application.yml (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/conf/logback.xml (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/conf/spring/resources.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/controllers/UrlMappings.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/controllers/functional/tests/AuthorController.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/controllers/functional/tests/BookController.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/domain/functional/tests/Author.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/domain/functional/tests/Book.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_cs_CZ.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_da.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_de.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_es.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_fr.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_it.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_ja.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_nb.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_nl.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_pl.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_pt_BR.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_pt_PT.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_ru.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_sv.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_th.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/i18n/messages_zh_CN.properties (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/init/BootStrap.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/init/functional/tests/Application.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/views/author/create.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/views/author/edit.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/views/author/index.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/views/author/show.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/views/book/create.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/views/book/edit.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/views/book/index.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/views/book/show.gsp (100%)
 copy grails-test-examples/{app2 => neo4j/hibernate5}/grails-app/views/error.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/views/index.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/views/layouts/main.gsp (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/hibernate5}/grails-app/views/notFound.gsp (100%)
 create mode 100644 grails-test-examples/neo4j/hibernate5/src/integration-test/groovy/functional/tests/AuthorControllerSpec.groovy
 create mode 100644 grails-test-examples/neo4j/hibernate5/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy
 create mode 100644 grails-test-examples/neo4j/hibernate5/src/integration-test/groovy/functional/tests/pages/AuthorPages.groovy
 copy grails-test-examples/{hibernate5/grails-hibernate => neo4j/hibernate5}/src/integration-test/groovy/functional/tests/pages/BookPages.groovy (100%)
 create mode 100644 grails-test-examples/neo4j/hibernate5/src/test/groovy/functional/tests/Neo4jWithHibernateSpec.groovy
 create mode 100644 grails-test-examples/neo4j/neo4j-standalone/build.gradle
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/neo4j-standalone/src/main/groovy/example/Person.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/neo4j-standalone/src/main/groovy/example/PersonService.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/neo4j-standalone/src/test/groovy/example/PersonServiceSpec.groovy (100%)
 create mode 100644 grails-test-examples/neo4j/spring-boot/build.gradle
 rename {grails-data-neo4j/examples/neo4j-spring-boot => grails-test-examples/neo4j/spring-boot}/src/main/groovy/example/Application.groovy (100%)
 rename {grails-data-neo4j/examples/neo4j-spring-boot => grails-test-examples/neo4j/spring-boot}/src/main/groovy/example/Book.groovy (100%)
 rename {grails-data-neo4j/examples/neo4j-spring-boot => grails-test-examples/neo4j/spring-boot}/src/main/groovy/example/BookController.groovy (100%)
 rename {grails-data-neo4j/examples/neo4j-spring-boot => grails-test-examples/neo4j/spring-boot}/src/main/groovy/example/BookService.groovy (100%)
 rename {grails-data-neo4j/examples/neo4j-spring-boot => grails-test-examples/neo4j/spring-boot}/src/main/resources/application.yml (100%)
 rename {grails-data-neo4j/examples/neo4j-spring-boot => grails-test-examples/neo4j/spring-boot}/src/test/groovy/example/BookControllerSpec.groovy (100%)
 create mode 100644 grails-test-examples/neo4j/test-data-service/build.gradle
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/conf/application.groovy (100%)
 create mode 100644 grails-test-examples/neo4j/test-data-service/grails-app/conf/application.yml
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/conf/logback.xml (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/conf/spring/resources.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/controllers/example/ApplicationController.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/controllers/example/UrlMappings.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/domain/example/Book.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/domain/example/Person.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/domain/example/Student.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/i18n/messages.properties (100%)
 copy grails-test-examples/{hibernate5/criteria-extension => neo4j/test-data-service}/grails-app/init/example/Application.groovy (100%)
 copy grails-test-examples/{hibernate5/criteria-extension => neo4j/test-data-service}/grails-app/init/example/BootStrap.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/services/example/BookService.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/services/example/LibraryService.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/services/example/PersonService.groovy (100%)
 copy grails-test-examples/{mongodb => neo4j}/test-data-service/grails-app/services/example/StudentService.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/services/example/TestService.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/views/application/index.gson (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/views/error.gson (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/views/errors/_errors.gson (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/views/notFound.gson (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/views/object/_object.gson (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/src/integration-test/groovy/example/StudentServiceSpec.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/src/integration-test/groovy/example/TestServiceSpec.groovy (100%)
 copy grails-test-examples/{mongodb => neo4j}/test-data-service/src/main/groovy/example/LoginAuthenticationSucessHandler.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/src/main/groovy/example/TestBean.groovy (100%)
 delete mode 100644 grails-test-examples/plugins/issue-11767/build.gradle
 delete mode 100644 grails-test-examples/plugins/issue-11767/grails-app/conf/plugin.yml
 delete mode 100644 grails-test-examples/plugins/issue-11767/grails-app/init/issue11767/plugin/Application.groovy
 delete mode 100644 grails-test-examples/plugins/issue-11767/src/main/groovy/issue11767/plugin/MyPluginGrailsPlugin.groovy
 delete mode 100644 grails-test-examples/plugins/issue-11767/src/main/groovy/issue11767/plugin/PluginGroovyMicronautBean.groovy
 delete mode 100644 grails-test-examples/plugins/issue-11767/src/main/groovy/issue11767/plugin/PluginGroovySpringBean.groovy
 delete mode 100644 grails-test-examples/plugins/issue-11767/src/main/java/issue11767/plugin/PluginJavaMicronautBean.java
 rename grails-test-examples/plugins/loadfirst/grails-app/i18n/{messages.properties => loadfirst.properties} (100%)
 rename grails-test-examples/plugins/loadfirst/grails-app/i18n/{messages_en_US.properties => loadfirst_en_US.properties} (100%)
 delete mode 100644 grails-test-examples/plugins/micronaut-singleton/build.gradle
 delete mode 100644 grails-test-examples/plugins/micronaut-singleton/src/main/groovy/micronaut/singleton/MicronautSingletonGrailsPlugin.groovy
 delete mode 100644 grails-test-examples/plugins/micronaut-singleton/src/main/java/com/example/grails/plugins/micronaut/PluginMessageProvider.java
 delete mode 100644 grails-test-examples/plugins/micronaut-singleton/src/main/java/com/example/grails/plugins/micronaut/PluginSingletonService.java
 create mode 100644 grails-test-examples/quartz/build.gradle
 create mode 100644 grails-test-examples/quartz/grails-app/conf/application.yml
 create mode 100644 grails-test-examples/quartz/grails-app/conf/logback.xml
 create mode 100644 grails-test-examples/quartz/grails-app/init/quartzapp/Application.groovy
 create mode 100644 grails-test-examples/quartz/grails-app/init/quartzapp/BootStrap.groovy
 create mode 100644 grails-test-examples/quartz/grails-app/jobs/quartzapp/DisabledJob.groovy
 create mode 100644 grails-test-examples/quartz/grails-app/jobs/quartzapp/InterruptibleJob.groovy
 create mode 100644 grails-test-examples/quartz/grails-app/jobs/quartzapp/LongRunningJob.groovy
 create mode 100644 grails-test-examples/quartz/grails-app/jobs/quartzapp/NeverFiringJob.groovy
 create mode 100644 grails-test-examples/quartz/grails-app/jobs/quartzapp/OnDemandJob.groovy
 create mode 100644 grails-test-examples/quartz/grails-app/jobs/quartzapp/RepeatingJob.groovy
 create mode 100644 grails-test-examples/quartz/src/integration-test/groovy/quartzapp/QuartzLongRunningJobSpec.groovy
 create mode 100644 grails-test-examples/quartz/src/integration-test/groovy/quartzapp/QuartzSchedulingSpec.groovy
 create mode 100644 grails-test-examples/quartz/src/main/groovy/quartzapp/RecordingJobListener.groovy
 create mode 100644 grails-test-examples/scaffolding/grails-app/controllers/com/example/BookController.groovy
 create mode 100644 grails-test-examples/scaffolding/grails-app/domain/com/example/Book.groovy
 create mode 100644 grails-test-examples/scaffolding/grails-app/services/com/example/BookService.groovy
 create mode 100644 grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/BookControllerSpec.groovy
 create mode 100644 grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/BookListPage.groovy
 delete mode 100644 grails-test-examples/spring-dependency-management/build.gradle
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/conf/spring/resources.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/controllers/grails/plugin/springsecurity/cas/test/SecureController.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/controllers/grails/plugin/springsecurity/cas/test/UrlMappings.groovy
 delete mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/controllers/spring/security/cas/SecureController.groovy
 delete mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/controllers/spring/security/cas/UrlMappings.groovy
 delete mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/domain/com/test/Role.groovy
 delete mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/domain/com/test/User.groovy
 delete mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/domain/com/test/UserRole.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/domain/grails/plugin/springsecurity/cas/test/Role.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/domain/grails/plugin/springsecurity/cas/test/User.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/domain/grails/plugin/springsecurity/cas/test/UserRole.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/init/grails/plugin/springsecurity/cas/test/Application.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/init/grails/plugin/springsecurity/cas/test/BootStrap.groovy
 delete mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/init/spring/security/cas/test/Application.groovy
 delete mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/init/spring/security/cas/test/BootStrap.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/integration-test/groovy/grails/plugin/springsecurity/cas/test/AbstractCasSpec.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/integration-test/groovy/grails/plugin/springsecurity/cas/test/CasLoginSpec.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/integration-test/groovy/grails/plugin/springsecurity/cas/test/CasNoProxyReceptorSpec.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/integration-test/groovy/grails/plugin/springsecurity/cas/test/CasNoSingleSignOutSpec.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/integration-test/groovy/grails/plugin/springsecurity/cas/test/CasProxyTicketSpec.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/integration-test/groovy/grails/plugin/springsecurity/cas/test/CasSingleSignOutSpec.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/main/groovy/grails/plugin/springsecurity/cas/test/CasContainerHolder.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/main/groovy/grails/plugin/springsecurity/cas/test/CasServiceUrlConfigurer.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/main/groovy/grails/plugin/springsecurity/cas/test/CasTestConfig.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/main/groovy/grails/plugin/springsecurity/cas/test/CasTestEnvironmentPostProcessor.groovy
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/main/resources/META-INF/spring.factories
 create mode 100644 grails-test-examples/spring-security/cas/test1/src/main/resources/cas/services/grailsTest-10000001.json
 create mode 100644 grails-test-examples/spring-security/core/integration-test-app/src/integration-test/groovy/grails/plugin/springsecurity/PluginMessageBundleSpec.groovy
 create mode 100644 grails-test-examples/undertow/grails-app/controllers/undertowapp/UploadController.groovy
 create mode 100644 grails-test-examples/undertow/src/integration-test/groovy/undertowapp/UndertowOversizedUploadSpec.groovy
 create mode 100644 grails-test-suite-uber/src/test/groovy/org/grails/web/servlet/DefaultGrailsApplicationAttributesSpec.groovy
 create mode 100644 grails-test-suite-web/src/test/groovy/org/grails/web/binding/DefaultDatabindingWhitelistBehaviorSpec.groovy
 create mode 100644 grails-test-suite-web/src/test/groovy/org/grails/web/servlet/mvc/GrailsWebRequestSpec.groovy
 create mode 100644 grails-testing-support-mongodb/src/main/groovy/org/apache/grails/testing/mongo/EmbeddedReplicaSetSpec.groovy
 delete mode 100644 grails-url-mappings/src/main/groovy/org/grails/plugins/web/mapping/UrlMappingsAutoConfiguration.java
 create mode 100644 grails-views-gson/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 delete mode 100644 grails-views-gson/src/main/resources/META-INF/spring-configuration-metadata.json
 create mode 100644 grails-views-gson/src/test/groovy/grails/plugin/json/view/api/handleassociations/Fixtures.groovy
 create mode 100644 grails-views-gson/src/test/groovy/grails/plugin/json/view/expand/Fixtures.groovy
 create mode 100644 grails-views-gson/src/test/groovy/grails/plugin/json/view/halembedded/Fixtures.groovy
 create mode 100644 grails-views-gson/src/test/groovy/grails/plugin/json/view/include/Fixtures.groovy
 create mode 100644 grails-views-gson/src/test/groovy/grails/plugin/json/view/iterable/Fixtures.groovy
 create mode 100644 grails-views-gson/src/test/groovy/grails/plugin/json/view/maprender/Fixtures.groovy
 create mode 100644 grails-views-gson/src/test/groovy/grails/plugin/json/view/nullrendering/Fixtures.groovy
 rename grails-views-gson/src/{main => testFixtures}/groovy/grails/plugin/json/view/test/JsonRenderResult.groovy (100%)
 rename grails-views-gson/src/{main => testFixtures}/groovy/grails/plugin/json/view/test/JsonViewTest.groovy (100%)
 rename grails-views-gson/src/{main => testFixtures}/groovy/grails/plugin/json/view/test/TestLinkGenerator.groovy (100%)
 rename grails-views-gson/src/{main => testFixtures}/groovy/grails/plugin/json/view/test/TestRequestConfigurer.groovy (100%)
 create mode 100644 grails-views-markup/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 create mode 100644 grails-web-common/src/main/groovy/org/grails/web/util/HiddenHttpMethod.java
 create mode 100644 grails-web-common/src/test/groovy/org/grails/web/util/HiddenHttpMethodSpec.groovy
 rename grails-web-common/src/{main => testFixtures}/groovy/grails/util/GrailsWebMockUtil.groovy (100%)
 create mode 100644 grails-web-core/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 delete mode 100644 grails-web-core/src/main/resources/META-INF/spring-configuration-metadata.json
 create mode 100644 grails-web-databinding/src/main/groovy/grails/web/databinding/BindAllowed.java
 create mode 100644 grails-web-databinding/src/main/groovy/grails/web/databinding/MissingPropertyClearer.java
 create mode 100644 grails-web-databinding/src/main/groovy/org/apache/grails/web/databinding/aot/DataBindingRuntimeHints.java
 create mode 100644 grails-web-databinding/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-web-databinding/src/test/groovy/grails/web/databinding/DataBindingUtilsSpec.groovy
 create mode 100644 grails-web-databinding/src/test/groovy/grails/web/databinding/DenyByDefaultConfigSpec.groovy
 create mode 100644 grails-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/XmlDataBindingSourceCreatorSpec.groovy
 create mode 100644 grails-web-mvc/src/test/groovy/org/grails/web/servlet/mvc/GrailsDispatcherServletHiddenMethodSpec.groovy
 create mode 100644 grails-web-mvc/src/test/groovy/org/grails/web/servlet/mvc/GrailsDispatcherServletSpec.groovy
 create mode 100644 grails-web-mvc/src/test/groovy/org/grails/web/servlet/mvc/GrailsWebRequestFilterSpec.groovy
 create mode 100644 grails-web-mvc/src/test/resources/logback-test.xml
 create mode 100644 grails-web-url-mappings/src/cli/groovy/org/grails/web/mapping/reporting/AnsiConsoleUrlMappingsRenderer.groovy
 create mode 100644 grails-web-url-mappings/src/main/groovy/org/apache/grails/web/mapping/aot/UrlMappingRuntimeHints.java
 create mode 100644 grails-web-url-mappings/src/main/groovy/org/grails/web/mapping/RuntimeConstraintEvaluator.java
 delete mode 100644 grails-web-url-mappings/src/main/groovy/org/grails/web/mapping/reporting/AnsiConsoleUrlMappingsRenderer.groovy
 create mode 100644 grails-web-url-mappings/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 create mode 100644 grails-web-url-mappings/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-web-url-mappings/src/test-cli/groovy/org/grails/web/mapping/reporting/AnsiConsoleUrlMappingsRendererSpec.groovy
 create mode 100644 grails-web-url-mappings/src/test/groovy/grails/web/mapping/WildcardResourcesMappingSpec.groovy
 create mode 100644 grails-web-url-mappings/src/test/groovy/org/grails/web/mapping/EffectiveMethodLinkGenerationSpec.groovy
 create mode 100644 grails-web-url-mappings/src/test/groovy/org/grails/web/mapping/RuntimeConstraintEvaluatorSpec.groovy
 create mode 100644 grails-web-url-mappings/src/test/groovy/org/grails/web/mapping/UrlMappingSegmentFilterSpec.groovy
 create mode 100644 grails-web-url-mappings/src/test/groovy/org/grails/web/mapping/mvc/HiddenHttpMethodHandlerMappingSpec.groovy
 create mode 100644 grails-web-url-mappings/src/test/groovy/org/grails/web/mapping/mvc/UrlMappingNameResolutionSpec.groovy
 create mode 100644 grails-web-url-mappings/src/test/groovy/org/grails/web/mapping/mvc/UrlMappingsInfoHandlerAdapterAsyncSpec.groovy
 delete mode 100644 grails-web-url-mappings/src/test/groovy/org/grails/web/mapping/reporting/AnsiConsoleUrlMappingsRendererSpec.groovy