You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by gi...@apache.org on 2026/08/25 23:40:37 UTC

(grails-core) branch dependabot/github_actions/actions/cache-6 updated (81cade5208 -> ae7f59f834)

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

dependabot[bot] pushed a change to branch dependabot/github_actions/actions/cache-6
in repository https://gitbox.apache.org/repos/asf/grails-core.git


 discard 81cade5208 build(deps): bump actions/cache from 4 to 6
     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 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 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 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 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 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 ae7f59f834 Bump actions/cache from 4 to 6

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   (81cade5208)
            \
             N -- N -- N   refs/heads/dependabot/github_actions/actions/cache-6 (ae7f59f834)

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:
 .git-blame-ignore-revs                             |    2 +
 .github/scripts/ossIndexReport.sh                  |   94 ++
 .github/scripts/postStickyComment.sh               |   60 +
 .github/workflows/benchmark.yml                    |  394 ++++++
 .github/workflows/codeql.yml                       |    4 +-
 .github/workflows/end-to-end.yml                   |    2 +-
 .github/workflows/gradle.yml                       |   96 +-
 .github/workflows/groovy-joint-workflow.yml        |   38 +-
 .github/workflows/release-publish-docs.yml         |    2 +-
 .github/workflows/release.yml                      |   12 +-
 .github/workflows/vulnerability-scan.yml           |  165 ++-
 .gitignore                                         |    1 +
 .sdkmanrc                                          |    2 +-
 DEVELOPMENT.md                                     |    2 +
 RENAME.md                                          |    3 +
 .../GrailsDependencyValidatorPlugin.groovy         |    2 +-
 .../apache/grails/buildsrc/PublishPlugin.groovy    |    1 +
 .../org/apache/grails/buildsrc/SbomPlugin.groovy   |   30 +-
 .../grails/buildsrc/VulnerabilityScanPlugin.groovy |   17 +-
 .../GrailsDependencyValidatorPluginSpec.groovy     |   26 +
 build.gradle                                       |   54 +-
 dependencies.gradle                                |  213 ++-
 end-to-end/README.md                               |    1 +
 end-to-end/settings.gradle                         |    4 +
 .../spring-dependency-management/build.gradle      |   15 +-
 end-to-end/taglib-index-incremental/build.gradle   |   54 +
 .../taglib/TagLibraryIndexIncrementalSpec.groovy   |  241 ++++
 etc/bin/Dockerfile                                 |    2 +-
 etc/bin/rename_gradle_artifacts.sh                 |    6 +
 etc/bin/test-bisect.groovy                         |   57 +-
 gradle.properties                                  |    3 +
 gradle/functional-test-config.gradle               |   18 +-
 gradle/grails-data-tck-config.gradle               |    8 +
 gradle/hibernate5-test-config.gradle               |   24 +-
 gradle/hibernate7-test-config.gradle               |   24 +-
 gradle/mongodb-forked-test-config.gradle           |   21 +-
 gradle/mongodb-test-config.gradle                  |   17 +-
 gradle/publish-root-config.gradle                  |    7 +
 gradle/rat-root-config.gradle                      |    9 +-
 gradle/redis-test-config.gradle                    |    4 +-
 gradle/spring-security-test-config.gradle          |    4 +-
 gradle/test-config.gradle                          |   37 +-
 grails-async/plugin/build.gradle                   |    4 +-
 .../async/AsyncWebRequestPromiseDecorator.groovy   |   49 +-
 .../grails/async/services/WebPromisesSpec.groovy   |   78 +-
 ...equestPromiseDecoratorLookupStrategySpec.groovy |  102 ++
 .../AsyncWebRequestPromiseDecoratorSpec.groovy     |  117 ++
 grails-beans-dsl/build.gradle                      |    2 +
 grails-benchmarks/README.adoc                      |  156 +++
 grails-benchmarks/build.gradle                     |  289 ++++
 .../databinding/SimpleDataBinderBenchmark.java     |  175 +++
 .../benchmarks/gsp/GroovyPageParserBenchmark.java  |   97 ++
 .../interceptors/UrlMappingMatcherBenchmark.java   |  156 +++
 .../grails/benchmarks/ruler/CpuRulerBenchmark.java |   58 +
 .../benchmarks/ruler/MemoryRulerBenchmark.java     |   63 +
 .../urlmappings/UrlMappingsBenchmark.java          |  110 ++
 .../views/ViewTemplateRenderingBenchmark.java      |   97 ++
 .../interceptors/InterceptorFixture.groovy         |   15 +-
 .../urlmappings/UrlMappingsFixture.groovy          |   41 +
 .../benchmarks/views/ViewTemplateFixture.groovy    |   54 +-
 .../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-bom/base/build.gradle                       |    6 -
 grails-bom/hibernate5-micronaut/build.gradle       |    3 -
 grails-bom/hibernate5/build.gradle                 |    3 -
 grails-bom/hibernate7-micronaut/build.gradle       |    3 -
 grails-bom/hibernate7/build.gradle                 |    3 -
 grails-bom/micronaut/build.gradle                  |    3 -
 grails-bom/{hibernate7 => neo4j}/build.gradle      |    9 +-
 grails-cache/build.gradle                          |    6 +
 .../grails/plugin/cache/CacheGrailsPlugin.groovy   |    2 +-
 grails-codecs/build.gradle                         |    1 +
 .../grails/common/aot/AheadOfTimeProcessing.java   |   54 +
 .../apache/grails/common/aot/RegistrableTypes.java |  251 ++++
 .../common/compiler/GroovyTransformOrder.groovy    |    7 +
 .../grails/common/aot/RegistrableTypesSpec.groovy  |  194 +++
 grails-console/build.gradle                        |    2 +
 grails-controllers/build.gradle                    |    1 +
 .../main/groovy/grails/artefact/Controller.groovy  |    8 +-
 .../controllers/aot/ControllerRuntimeHints.java    |   92 ++
 .../compiler/web/ControllerActionTransformer.java  |  102 +-
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../aot/ControllerRuntimeHintsSpec.groovy          |   84 ++
 grails-converters/build.gradle                     |    1 +
 grails-core-cli-legacy/build.gradle                |    2 +
 grails-core/build.gradle                           |    2 +
 .../main/groovy/grails/boot/GrailsBanner.groovy    |  446 +++++-
 .../config/GrailsApplicationPostProcessor.groovy   |   55 +-
 .../boot/config/GrailsAutoConfiguration.groovy     |   44 +
 .../src/main/groovy/grails/config/Settings.groovy  |   24 +-
 .../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 +++
 .../TagLibraryInvokerTypeCheckingExtension.groovy  |    7 +
 .../org/grails/plugins/CoreGrailsPlugin.groovy     |   59 +-
 .../AbstractResourceLocatorPostProcessor.java      |   18 +-
 .../PluginAwareResourceBundleMessageSource.java    |  308 -----
 .../ReloadableResourceBundleMessageSource.java     |  735 ----------
 .../additional-spring-configuration-metadata.json  |   76 +-
 .../grails-core/native-image.properties            |   30 +
 .../META-INF/spring-configuration-metadata.json    |   12 -
 .../main/resources/META-INF/spring/aot.factories   |   17 +
 .../grails/boot/GrailsBannerColourSpec.groovy      |  156 +++
 .../grails/boot/GrailsBannerNativeMarkSpec.groovy  |  225 +++
 .../boot/GrailsBannerVersionLookupSpec.groovy      |  226 +++
 ...icationPostProcessorAnnotationConfigSpec.groovy |   98 ++
 .../GrailsAutoConfigurationArtefactsSpec.groovy    |   79 ++
 .../grails/util/ActiveProcessorCountForkTests.java |   58 +
 .../grails/util/GrailsUtilStackFiltererSpec.groovy |   10 +-
 .../GrailsBootstrapRegistryInitializerSpec.groovy  |    6 +-
 .../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 +++
 .../grails/plugins/CoreGrailsPluginAotSpec.groovy  |  186 +++
 ...AbstractResourceLocatorPostProcessorSpec.groovy |  109 ++
 .../context/ResourceBundleMessageSourceSpec.groovy |   67 -
 .../grails/boot/version-in-a-resource.properties   |    5 +
 .../org/grails/gorm/graphql/SchemaSpec.groovy      |    6 +-
 .../HibernatePersistentGraphQLPropertySpec.groovy  |   18 +-
 .../manager/GraphQLDataFetcherManagerSpec.groovy   |    5 +-
 .../EmbeddedInputObjectTypeBuilderSpec.groovy      |    2 +-
 grails-data-graphql/plugin/build.gradle            |    4 +
 grails-data-hibernate5/core/build.gradle           |    3 +
 .../orm/hibernate/HibernateGormApiFactory.groovy   |   77 ++
 .../orm/hibernate/HibernateGormEnhancer.groovy     |    5 +-
 .../orm/hibernate/HibernateGormStaticApi.groovy    |    7 +-
 .../org/grails/orm/hibernate/HibernateSession.java |   78 +-
 .../hibernate/cfg/HibernateMappingBuilder.groovy   |    6 +-
 .../orm/hibernate/cfg/HibernateMappingContext.java |    1 +
 .../compiler/HibernateEntityTransformation.groovy  |    5 +-
 .../core/GrailsDataHibernate5TckManager.groovy     |   17 +-
 .../tck/base/GrailsDataTckManagerSpec.groovy       |   70 +
 .../datastore/gorm/GormEnhancerCleanupSpec.groovy  |   61 +-
 .../cfg/HibernateMappingContextSpec.groovy         |   84 +-
 .../DatabaseMultiTenantServiceRoutingSpec.groovy   |  117 ++
 .../connections/GormApiAllocationSpec.groovy       |   26 +-
 .../MultiTenantFinderDispatchSpec.groovy           |  104 ++
 grails-data-hibernate5/dbmigration/build.gradle    |    1 +
 .../DatabaseMigrationGrailsPlugin.groovy           |    2 +-
 ...ationContextDatabaseMigrationCommandSpec.groovy |    9 +
 grails-data-hibernate5/grails-plugin/build.gradle  |    4 +
 .../HibernateDatastoreSpringInitializer.groovy     |   10 +-
 .../plugin/hibernate/HibernateGrailsPlugin.groovy  |    4 +-
 grails-data-hibernate7/core/build.gradle           |    2 +
 .../orm/hibernate/HibernateGormApiFactory.groovy   |   77 ++
 .../orm/hibernate/HibernateGormEnhancer.groovy     |    5 +-
 .../orm/hibernate/HibernateGormStaticApi.groovy    |   24 +-
 .../org/grails/orm/hibernate/HibernateSession.java |   87 +-
 .../orm/hibernate/cfg/HibernateMappingContext.java |    1 +
 .../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 +-
 .../hibernate/HibernateBasicEnumProperty.java      |   80 ++
 .../hibernate/HibernateEnumProperty.java           |   47 +-
 .../hibernate/HibernateMappingFactory.groovy       |    7 +-
 .../hibernate/HibernateToManyProperty.java         |   45 +-
 .../secondpass/BasicCollectionElementBinder.java   |    9 +-
 .../domainbinding/util/CascadeBehaviorFetcher.java |   25 +-
 .../cfg/domainbinding/util/GrailsEnumType.java     |   40 +-
 .../domainbinding/util/TableForManyCalculator.java |    5 +-
 .../compiler/HibernateEntityTransformation.groovy  |    5 +-
 .../grails/orm/hibernate/query/HibernateQuery.java |   24 +
 ...rnateDatastoreConnectionSourcesRegistrar.groovy |    7 +-
 .../grails/gorm/tests/EnumHasManyDdlSpec.groovy    |  248 ++++
 .../gorm/tests/HibernateMappingFactorySpec.groovy  |    7 +-
 .../tests/hibernatequery/HibernateQuerySpec.groovy |   41 +
 .../datastore/gorm/GormEnhancerCleanupSpec.groovy  |   63 +-
 .../GormNumericTypeColumnIntegrationSpec.groovy    |  101 ++
 .../GormNumericTypeColumnPrecisionSpec.groovy      |  108 ++
 .../GormTextTypeColumnIntegrationSpec.groovy       |  105 ++
 .../hibernate/GormTextTypeColumnLengthSpec.groovy  |   99 ++
 .../hibernate/HibernateGormInstanceApiSpec.groovy  |   10 +-
 .../hibernate/HibernateGormStaticApiSpec.groovy    |    3 +-
 .../HibernateGormValidationApiSpec.groovy          |    5 +-
 .../hibernate/SchemaTenantGormEnhancerSpec.groovy  |    2 -
 .../cfg/GrailsHibernatePersistentEntitySpec.groovy |    3 +
 .../cfg/HibernateMappingContextSpec.groovy         |  106 +-
 .../cfg/domainbinding/ColumnBinderSpec.groovy      |   36 +-
 .../cfg/domainbinding/EnumTypeBinderSpec.groovy    |   52 +-
 .../GrailsIdentityGeneratorSpec.groovy             |    7 +
 .../domainbinding/GrailsPropertyBinderSpec.groovy  |   68 +
 .../NumericColumnConstraintsBinderSpec.groovy      |   85 +-
 .../cfg/domainbinding/PropertyBinderSpec.groovy    |   28 +-
 .../cfg/domainbinding/SimpleValueBinderSpec.groovy |   70 +-
 .../StringColumnConstraintsBinderSpec.groovy       |   78 +-
 .../TableForManyCalculatorSpec.groovy              |   25 +
 .../hibernate/HibernateBasicPropertySpec.groovy    |   40 +-
 .../hibernate/HibernateToManyPropertySpec.groovy   |    4 +-
 .../BasicCollectionElementBinderSpec.groovy        |   11 +-
 .../connections/GormApiAllocationSpec.groovy       |   26 +-
 ...eDatastoreConnectionSourcesRegistrarSpec.groovy |   20 +-
 grails-data-hibernate7/dbmigration/build.gradle    |    1 +
 ...ationContextDatabaseMigrationCommandSpec.groovy |    4 +
 grails-data-hibernate7/grails-plugin/build.gradle  |    5 +
 .../HibernateDatastoreSpringInitializer.groovy     |   10 +-
 grails-data-mongodb/boot-plugin/build.gradle       |    5 +-
 grails-data-mongodb/core/build.gradle              |   12 +-
 .../MongoDbDataStoreSpringInitializer.groovy       |   29 +-
 .../gorm/mongo/MongoGormApiFactory.groovy          |   47 +
 .../datastore/gorm/mongo/MongoGormEnhancer.groovy  |    6 +
 .../datastore/gorm/mongo/api/MongoStaticApi.groovy |   19 +-
 .../datastore/mapping/mongo/MongoDatastore.java    |   80 +-
 ...toreSpringInitializerBeanDefinitionsSpec.groovy |   85 ++
 .../gorm/mongo/DisjunctionQuerySpec.groovy         |    2 +
 .../gorm/mongo/api/MongoStaticApiSpec.groovy       |   55 +
 .../gorm/mongo/connections/MultiTenancySpec.groovy |   14 +-
 .../connections/SchemaBasedMultiTenancySpec.groovy |   14 +-
 .../MongoTransactionDisabledSpec.groovy            |   11 +-
 .../mongo/transactions/MongoTransactionSpec.groovy |   11 +-
 .../mongo/MongoDatastoreLifecycleSpec.groovy       |  187 +++
 .../mongo/config/MongoMappingContextSpec.groovy    |   89 ++
 .../asciidoc/gettingStarted/embeddedMongo.adoc     |  223 +++
 .../docs/src/docs/asciidoc/index.adoc              |    3 +
 grails-data-mongodb/embedded/build.gradle          |   87 ++
 .../mongodb/embedded/EmbeddedMongoBackend.java     |   58 +
 .../mongodb/embedded/EmbeddedMongoInitializer.java |  445 ++++++
 .../mongodb/embedded/EmbeddedMongoLifecycle.java   |   85 ++
 .../mongodb/embedded/EmbeddedMongoSettings.java    |  132 ++
 .../mongodb/embedded/FlapdoodleMongoBackend.java   |  277 ++++
 .../mongodb/embedded/InMemoryMongoBackend.java     |  150 ++
 .../gorm/mongodb/embedded/ReplicaSetInitiator.java |  115 ++
 .../mongodb/embedded/RunningEmbeddedMongo.java     |   65 +
 .../src/main/resources/META-INF/spring.factories   |    2 +
 .../embedded/EmbeddedMongoInitializerSpec.groovy   |  604 ++++++++
 .../embedded/EmbeddedMongoLifecycleSpec.groovy     |  325 +++++
 .../embedded/EmbeddedMongoReplicaSetSpec.groovy    |  135 ++
 .../embedded/EmbeddedMongoSettingsSpec.groovy      |   70 +
 grails-data-mongodb/ext/build.gradle               |    1 +
 grails-data-mongodb/grails-plugin/build.gradle     |    2 +
 .../plugins/mongodb/MongodbGrailsPlugin.groovy     |    2 +-
 grails-data-mongodb/spring-data/build.gradle       |    9 +-
 .../springdata/UnifiedMongoTransactionSpec.groovy  |   11 +-
 .../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  |    3 +-
 .../main/groovy/grails/neo4j/Neo4jEntity.groovy    |   33 +-
 .../src/main/groovy/grails/neo4j/Node.groovy       |    4 +-
 .../src/main/groovy/grails/neo4j/Path.groovy       |    4 +-
 .../main/groovy/grails/neo4j/Relationship.groovy   |   26 +-
 .../grails/neo4j/mapping/MappingBuilder.groovy     |    9 +-
 .../groovy/grails/neo4j/services/Cypher.groovy     |    3 +-
 .../grails/datastore/gorm/neo4j/CypherBuilder.java |  118 +-
 .../datastore/gorm/neo4j/GraphClassMapping.groovy  |    5 +-
 .../gorm/neo4j/GraphGormMappingFactory.groovy      |   39 +-
 .../gorm/neo4j/GraphPersistentEntity.groovy        |  156 +--
 .../grails/datastore/gorm/neo4j/IdGenerator.java   |   11 +-
 .../datastore/gorm/neo4j/Neo4jDatastore.java       |  277 ++--
 .../neo4j/Neo4jDatastoreTransactionManager.java    |   15 +-
 .../gorm/neo4j/Neo4jEntityTraitProvider.groovy     |    7 +-
 .../gorm/neo4j/Neo4jGormApiFactory.groovy          |   49 +
 .../datastore/gorm/neo4j/Neo4jMappingContext.java  |  132 +-
 .../grails/datastore/gorm/neo4j/Neo4jSession.java  |  213 +--
 .../datastore/gorm/neo4j/Neo4jTransaction.groovy   |   25 +-
 .../gorm/neo4j/RelationshipPersistentEntity.groovy |   65 +-
 .../datastore/gorm/neo4j/RelationshipUtils.groovy  |   52 +-
 .../datastore/gorm/neo4j/SessionFlushedEvent.java  |    3 +-
 .../datastore/gorm/neo4j/TypeDirectionPair.java    |   19 +-
 .../gorm/neo4j/api/Neo4jGormStaticApi.groovy       |  208 +--
 .../gorm/neo4j/collection/GraphAdapter.groovy      |   45 +-
 .../collection/Neo4jAssociationResultList.groovy   |    6 +-
 .../gorm/neo4j/collection/Neo4jList.groovy         |   20 +-
 .../gorm/neo4j/collection/Neo4jPath.groovy         |   56 +-
 .../neo4j/collection/Neo4jPersistentList.groovy    |   15 +-
 .../neo4j/collection/Neo4jPersistentSet.groovy     |   24 +-
 .../collection/Neo4jPersistentSortedSet.groovy     |   19 +-
 .../gorm/neo4j/collection/Neo4jRelationship.groovy |    5 +-
 .../gorm/neo4j/collection/Neo4jResultList.groovy   |   63 +-
 .../gorm/neo4j/collection/Neo4jSet.groovy          |   21 +-
 .../gorm/neo4j/collection/Neo4jSortedSet.groovy    |   20 +-
 .../neo4j/config/Neo4jDriverConfigBuilder.groovy   |   22 +-
 .../datastore/gorm/neo4j/config/Settings.java      |    3 +-
 .../connections/Neo4jConnectionSourceFactory.java  |   66 +-
 .../Neo4jConnectionSourceSettings.groovy           |    3 +-
 .../Neo4jConnectionSourceSettingsBuilder.groovy    |    4 +-
 .../connections/Neo4jEmbeddedConnectionSource.java |    6 +-
 .../neo4j/engine/DynamicAssociationSupport.java    |   57 +-
 .../engine/Neo4jAssociationQueryExecutor.groovy    |  140 +-
 .../gorm/neo4j/engine/Neo4jEntityPersister.java    |  557 ++++----
 .../Neo4jModificationTrackingEntityAccess.groovy   |    1 +
 .../datastore/gorm/neo4j/engine/Neo4jQuery.groovy  |  969 +++++++++++++
 .../neo4j/engine/RelationshipPendingDelete.java    |   37 +-
 .../neo4j/engine/RelationshipPendingInsert.java    |  105 +-
 .../gorm/neo4j/extensions/Neo4jExtensions.groovy   |   73 +-
 .../gorm/neo4j/identity/SnowflakeIdGenerator.java  |   21 +-
 .../gorm/neo4j/mapping/config/Attribute.groovy     |    3 +-
 .../neo4j/mapping/config/DynamicAssociation.java   |    1 +
 .../mapping/config/DynamicToManyAssociation.java   |    2 +-
 .../mapping/config/DynamicToOneAssociation.java    |    5 +-
 .../gorm/neo4j/mapping/config/NodeConfig.groovy    |    5 +-
 .../neo4j/mapping/config/RelationshipConfig.groovy |    4 +-
 .../neo4j/mapping/reflect/Neo4jNameUtils.groovy    |    8 +-
 .../datastore/gorm/neo4j/parsers/PlingStemmer.java |  966 +++++++++++++
 .../proxy/HashcodeEqualsAwareProxyFactory.java     |  118 ++
 .../proxy/Neo4jAssociationQueryProxyHandler.java   |    5 +-
 .../gorm/neo4j/proxy/Neo4jProxyFactory.java        |    5 +-
 .../FindAllCypherQueryImplementer.groovy           |   10 +-
 .../FindOneCypherQueryImplementer.groovy           |   11 +-
 .../FindPathCypherQueryImplementer.groovy          |   11 +-
 .../FindShortestPathImplementer.groovy             |   26 +-
 .../StatementResultCypherQueryImplementer.groovy   |   10 +-
 .../UpdateCypherQueryImplementer.groovy            |   28 +-
 .../transform/CypherQueryStringTransformer.groovy  |    9 +-
 .../gorm/neo4j/util/EmbeddedNeo4jServer.java       |   55 +-
 .../datastore/gorm/neo4j/util/IteratorUtil.java    |    7 +-
 .../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   |   17 +-
 .../CustomLabelWithDynamicAssociationSpec.groovy   |   12 +-
 .../grails/gorm/tests/CypherQueryStringSpec.groovy |   16 +-
 .../grails/gorm/tests/EagerFetchingSpec.groovy     |   24 +-
 .../grails/gorm/tests/EntityParseSpec.groovy       |    0
 .../grails/gorm/tests/FindByIsNullSpec.groovy      |   11 +-
 .../grails/gorm/tests/GroovyProxySpec.groovy       |   22 +-
 .../gorm/tests/HasManyInheritanceSpec.groovy       |    0
 .../grails/gorm/tests/InheritanceProxySpec.groovy  |   14 +-
 .../grails/gorm/tests/JavaxValidationSpec.groovy   |   11 +-
 .../grails/gorm/tests/JoinCriteriaSpec.groovy      |   11 +-
 .../grails/gorm/tests/LabelStrategySpec.groovy     |   13 +-
 .../groovy/grails/gorm/tests/LikeQuerySpec.groovy  |   20 +-
 .../grails/gorm/tests/ManyToManyQuerySpec.groovy   |    9 +-
 .../groovy/grails/gorm/tests/ManyToManySpec.groovy |   61 +-
 .../grails/gorm/tests/MapPropertySpec.groovy       |    9 +-
 .../grails/gorm/tests/MarkDirtyFalseSpec.groovy    |   27 +-
 .../test/groovy/grails/gorm/tests/MiscSpec.groovy  |   92 +-
 .../gorm/tests/MultipleConnectionsSpec.groovy      |    9 +-
 .../gorm/tests/NativeIdentityGeneratorSpec.groovy  |   15 +-
 .../grails/gorm/tests/Neo4jNameUtilsSpec.groovy    |    0
 .../grails/gorm/tests/Neo4jResultListSpec.groovy   |   11 +-
 .../grails/gorm/tests/NullValueEqualSpec.groovy    |   10 +-
 .../grails/gorm/tests/OneToManyUpdateSpec.groovy   |   31 +-
 .../groovy/grails/gorm/tests/OneToOneSpec.groovy   |   18 +-
 .../grails/gorm/tests/OptimisticLockingSpec.groovy |   50 +-
 .../grails/gorm/tests/OrphanDeleteSpec.groovy      |   12 +-
 .../grails/gorm/tests/PagedResultSpec.groovy       |   11 +-
 .../gorm/tests/PersistenceEventListenerSpec.groovy |   37 +-
 .../src/test/groovy/grails/gorm/tests/Pet.groovy   |    3 +
 .../grails/gorm/tests/ProjectionsSpec.groovy       |   10 +-
 .../test/groovy/grails/gorm/tests/ProxySpec.groovy |   17 +-
 .../grails/gorm/tests/ReadManyObjectsSpec.groovy   |   22 +-
 .../gorm/tests/RelationshipMappingSpec.groovy      |   27 +-
 .../grails/gorm/tests/RelationshipUtilsSpec.groovy |   15 +-
 .../groovy/grails/gorm/tests/SchemalessSpec.groovy |   75 +-
 .../groovy/grails/gorm/tests/TransientsSpec.groovy |   11 +-
 .../grails/gorm/tests/UniqueConstraintSpec.groovy  |   21 +-
 .../gorm/tests/UpdateWithProxyPresentSpec.groovy   |    0
 .../groovy/grails/gorm/tests/ValidationSpec.groovy |   29 +-
 .../grails/gorm/tests/WithTransactionSpec.groovy   |   12 +-
 .../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   |    1 +
 .../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    |   10 +-
 .../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  |   17 +-
 .../gorm/neo4j/Neo4jMappingContextSpec.groovy      |   71 +
 .../gorm/neo4j/RelationshipUtilsSpec.groovy        |    0
 .../gorm/neo4j/TransactionPropagationSpec.groovy   |   14 +-
 .../Neo4jConnectionSourceSettingsSpec.groovy       |    0
 .../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                |  238 ++--
 .../docs/asciidoc/gettingStarted/springBoot.adoc   |    2 +-
 .../docs/asciidoc/gettingStarted/standalone.adoc   |    2 +-
 .../examples/grails3-neo4j-hibernate/build.gradle  |   88 --
 .../grails3-neo4j-hibernate/gradle.properties      |   23 -
 .../grails-app/views/error.gsp                     |   49 -
 .../examples/grails3-neo4j/build.gradle            |   90 --
 .../examples/grails3-neo4j/gradle.properties       |   23 -
 .../grails3-neo4j/grails-app/views/error.gsp       |   49 -
 .../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 -
 .../services/example/StudentService.groovy         |   36 -
 .../LoginAuthenticationSucessHandler.groovy        |   40 -
 grails-data-neo4j/gradle.properties                |   49 -
 .../gradle/neo4j-harness-test-config.gradle        |   80 ++
 .../grails-datastore-gorm-neo4j/build.gradle       |  109 --
 .../datastore/gorm/neo4j/engine/Neo4jQuery.groovy  |  871 ------------
 .../datastore/gorm/neo4j/parsers/PlingStemmer.java |  979 -------------
 .../proxy/HashcodeEqualsAwareProxyFactory.java     |  118 --
 .../grails/gorm/tests/GormDatastoreSpec.groovy     |  125 --
 .../grails/datastore/gorm/neo4j/Neo4jSuite.groovy  |   32 -
 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 --
 grails-data-simple/build.gradle                    |    2 +
 .../mapping/simple/SimpleMapDatastore.java         |   19 +-
 .../mapping/simple/SimpleMapDatastoreSpec.groovy   |   67 +
 .../grails/databinding/FrameworkPropertyNames.java |   55 +
 .../grails/databinding/SimpleDataBinder.groovy     |   52 +-
 .../grails/databinding/SimpleDataBinderSpec.groovy |   36 +
 grails-databinding/build.gradle                    |    1 +
 .../META-INF/spring-configuration-metadata.json    |    6 +
 grails-datamapping-core-test/build.gradle          |    2 +-
 .../org/grails/datastore/gorm/CoreTestSuite.groovy |    3 +-
 .../gorm/ExplicitSaveRepersistsSpec.groovy         |   64 +
 grails-datamapping-core/build.gradle               |    3 +-
 .../main/groovy/grails/gorm/CriteriaBuilder.java   |   25 +
 .../groovy/grails/gorm/DetachedCriteria.groovy     |   10 +-
 .../src/main/groovy/grails/gorm/MultiTenant.groovy |   12 +-
 .../grails/gorm/api/GormStaticOperations.groovy    |   37 +
 .../gorm/multitenancy/CurrentTenantHolder.groovy   |  148 ++
 .../groovy/grails/gorm/multitenancy/Tenants.groovy |  212 +--
 .../transactions/GrailsTransactionTemplate.groovy  |    5 +
 .../grails/datamapping/aot/GormRuntimeHints.java   |  112 ++
 .../datastore/gorm/AbstractDatastoreApi.groovy     |   29 +-
 .../grails/datastore/gorm/AbstractGormApi.groovy   |  182 ++-
 .../datastore/gorm/AbstractGormApiRegistry.groovy  |  197 +++
 .../gorm/ConnectionSourceNameResolver.groovy       |  106 ++
 .../grails/datastore/gorm/DatastoreResolver.groovy |   20 +-
 .../datastore/gorm/DefaultGormApiFactory.groovy    |   83 ++
 .../grails/datastore/gorm/GormApiFactory.groovy    |   52 +
 .../grails/datastore/gorm/GormApiResolver.groovy   |  441 ++++++
 .../org/grails/datastore/gorm/GormEnhancer.groovy  |  738 ++++------
 .../datastore/gorm/GormEnhancerRegistry.groovy     |   99 ++
 .../org/grails/datastore/gorm/GormEntity.groovy    |   70 +-
 .../datastore/gorm/GormEntityDirtyCheckable.groovy |    8 +-
 .../grails/datastore/gorm/GormInstanceApi.groovy   |  444 +++---
 .../datastore/gorm/GormInstanceApiRegistry.groovy  |   57 +
 .../org/grails/datastore/gorm/GormRegistry.groovy  | 1026 ++++++++++++++
 .../org/grails/datastore/gorm/GormStaticApi.groovy | 1313 ++++++++----------
 .../datastore/gorm/GormStaticApiRegistry.groovy    |   57 +
 .../grails/datastore/gorm/GormValidateable.groovy  |    6 +-
 .../grails/datastore/gorm/GormValidationApi.groovy |  145 +-
 .../gorm/GormValidationApiRegistry.groovy          |   57 +
 .../bootstrap/AbstractDatastoreInitializer.groovy  |   79 +-
 .../gorm/events/AutoTimestampEventListener.java    |    5 +
 ...igurableApplicationContextEventPublisher.groovy |   58 +-
 .../gorm/finders/AbstractFindByFinder.java         |    8 +-
 .../datastore/gorm/finders/AbstractFinder.java     |   29 +-
 .../datastore/gorm/finders/CountByFinder.java      |   55 +-
 .../datastore/gorm/finders/DynamicFinder.java      |   57 +-
 .../gorm/finders/FindAllByBooleanFinder.java       |   18 +-
 .../datastore/gorm/finders/FindAllByFinder.java    |   13 +-
 .../gorm/finders/FindByBooleanFinder.java          |   25 +-
 .../datastore/gorm/finders/FindByFinder.java       |    5 +
 .../gorm/finders/FindOrCreateByFinder.java         |    9 +
 .../datastore/gorm/finders/FindOrSaveByFinder.java |   48 +-
 .../datastore/gorm/finders/ListOrderByFinder.java  |   76 +-
 .../multitenancy/MultiTenantEventListener.java     |   68 +-
 .../TenantDelegatingGormOperations.groovy          |  246 ++--
 .../multitenancy/transform/TenantTransform.groovy  |   30 +-
 .../query/criteria/AbstractCriteriaBuilder.java    |   19 +
 .../gorm/services/DefaultTenantService.groovy      |   66 +-
 .../gorm/services/DefaultTransactionService.groovy |   13 +
 .../implementers/AbstractServiceImplementer.groovy |   49 +-
 .../AbstractStringQueryImplementer.groovy          |   72 +-
 .../implementers/FindAllByImplementer.groovy       |   10 +-
 ...nterfaceProjectionStringQueryImplementer.groovy |    5 +
 .../FindOneStringQueryImplementer.groovy           |   21 +-
 .../UpdateStringQueryImplementer.groovy            |    5 +
 .../transform/ServiceTransformation.groovy         |  284 ++--
 .../DefaultTransactionTemplateFactory.groovy       |   51 +
 .../transactions/TransactionTemplateFactory.groovy |   61 +
 .../transform/TransactionalTransform.groovy        |  429 +++---
 ...tDatastoreMethodDecoratingTransformation.groovy |  202 ++-
 .../AbstractMethodDecoratingTransformation.groovy  |    7 +-
 .../gorm/transform/AstPropertyResolveUtils.java    |  146 +-
 .../constraints/builtin/UniqueConstraint.groovy    |    4 +-
 .../validation/jakarta/GormValidatorAdapter.groovy |   16 +-
 .../MappingContextTraversableResolver.groovy       |    3 +
 .../listener/ValidationEventListener.groovy        |    4 +-
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../groovy/grails/gorm/CriteriaBuilderSpec.groovy  |  133 ++
 .../MultiTenantCurrentTenantTransformSpec.groovy   |  143 ++
 .../transactions/TransactionalTransformSpec.groovy |   32 +
 .../multitenancy/CurrentTenantHolderSpec.groovy    |  235 ++++
 .../grails/gorm/multitenancy/TenantsSpec.groovy    |  587 ++++++++
 .../AbstractServiceImplementerCoverageSpec.groovy  |   57 +
 ...stractStringQueryImplementerCoverageSpec.groovy |  125 ++
 .../CompileStaticServiceInjectionSpec.groovy       |    2 -
 .../FindAllByImplementerCoverageSpec.groovy        |   84 ++
 .../services/MethodValidationTransformSpec.groovy  |    5 +-
 .../gorm/services/ServiceTransformSpec.groovy      |   46 +-
 .../ServiceTransformationCoverageSpec.groovy       |  101 ++
 .../transform/ServiceTransformClasses.groovy       |  382 ++++++
 .../services/transform/ServiceTransformSpec.groovy |  532 ++++++++
 .../GrailsTransactionTemplateSpec.groovy           |   75 +
 .../datamapping/aot/GormRuntimeHintsSpec.groovy    |   81 ++
 .../datastore/gorm/AbstractDatastoreApiSpec.groovy |  115 ++
 .../gorm/AbstractGormApiRegistrySpec.groovy        |  239 ++++
 .../datastore/gorm/AbstractGormApiSpec.groovy      |  191 +++
 .../gorm/ActiveSessionDatastoreSelectorSpec.groovy |   73 +
 .../gorm/ConnectionSourceNameResolverSpec.groovy   |  105 ++
 .../gorm/DefaultDatastoreSelectorSpec.groovy       |   95 ++
 .../gorm/DefaultGormApiFactorySpec.groovy          |   63 +
 .../datastore/gorm/GormApiFactorySpec.groovy       |  132 ++
 .../datastore/gorm/GormApiRegistrySpec.groovy      |  123 ++
 .../datastore/gorm/GormApiResolverSpec.groovy      |  967 +++++++++++++
 .../gorm/GormEnhancerAllQualifiersSpec.groovy      |  354 +++--
 .../datastore/gorm/GormEnhancerCoverageSpec.groovy |  393 ++++++
 .../gorm/GormInstanceApiRegistrySpec.groovy        |   95 ++
 .../datastore/gorm/GormInstanceApiSpec.groovy      |  410 ++++++
 .../gorm/GormRegistryConcurrencySpec.groovy        |  139 ++
 .../datastore/gorm/GormRegistryCoverageSpec.groovy |  470 +++++++
 .../gorm/GormRegistryEntityRegistrationSpec.groovy |  185 +++
 .../datastore/gorm/GormRegistryFactorySpec.groovy  |   73 +
 .../grails/datastore/gorm/GormRegistrySpec.groovy  |  491 +++++++
 .../gorm/GormStaticApiRegistrySpec.groovy          |   95 ++
 .../grails/datastore/gorm/GormStaticApiSpec.groovy |  739 ++++++++++
 .../GormStaticApiStringQueryDelegationSpec.groovy  |   91 ++
 .../GormStaticApiWithDatastoreSessionSpec.groovy   |   70 +
 .../gorm/GormValidationApiCoverageSpec.groovy      |  436 ++++++
 .../gorm/GormValidationApiRegistrySpec.groovy      |   94 ++
 .../datastore/gorm/GormValidationApiSpec.groovy    |  119 ++
 .../gorm/PreferredDatastoreSelectorSpec.groovy     |   75 +
 .../gorm/QualifiedDatastoreSelectorSpec.groovy     |   96 ++
 ...actDatastoreInitializerConfigurationSpec.groovy |  190 +++
 ...ableApplicationContextEventPublisherSpec.groovy |  115 ++
 .../gorm/finders/AbstractFinderSpec.groovy         |  100 ++
 .../gorm/finders/DynamicFinderCoverageSpec.groovy  |  262 ++++
 .../gorm/finders/FindOrSaveByFinderSpec.groovy     |   88 ++
 .../gorm/jdbc/MultiTenantConnectionSpec.groovy     |   81 ++
 .../MultiTenantEventListenerSpec.groovy            |  321 +++++
 .../TenantDelegatingGormOperationsSpec.groovy      | 1432 +++++++++++++++++++
 .../transform/WhereQueryClosureCaptureSpec.groovy  |   12 +-
 .../WhereQueryEmbeddedBlockTransformSpec.groovy    |   11 +-
 .../gorm/services/DefaultTenantServiceSpec.groovy  |  214 +++
 .../services/DefaultTransactionServiceSpec.groovy  |   45 +
 .../DefaultTransactionTemplateFactorySpec.groovy   |   63 +
 .../transform/AstPropertyResolveUtilsSpec.groovy   |  289 ++++
 .../MappingContextTraversableResolverSpec.groovy   |   28 +
 grails-datamapping-support/build.gradle            |    3 +-
 grails-datamapping-tck/build.gradle                |    1 +
 .../testing/tck/base/GrailsDataTckManager.groovy   |   14 +-
 ...intWorksWithTargetProxiesConstraintsSpec.groovy |    4 +-
 .../data/testing/tck/tests/FindWhereSpec.groovy    |    3 +
 .../data/testing/tck/tests/OneToManySpec.groovy    |    2 +
 .../testing/tck/tests/OptimisticLockingSpec.groovy |   13 +-
 .../data/testing/tck/tests/PagedResultSpec.groovy  |    7 +
 .../testing/tck/tests/WithTransactionSpec.groovy   |   51 +-
 .../aot/ConstrainedPropertyRuntimeHints.java       |   75 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../aot/ConstrainedPropertyRuntimeHintsSpec.groovy |   69 +
 grails-datasource/build.gradle                     |    1 +
 .../mapping/config/AbstractGormMappingFactory.java |   40 +-
 .../datastore/mapping/config/Property.groovy       |   11 +-
 .../datastore/mapping/core/AbstractDatastore.java  |   63 +-
 .../datastore/mapping/core/DatastoreUtils.java     |   44 +-
 .../datastore/mapping/core/SessionResolver.groovy  |   72 +
 ...ransactionSynchronizationSessionResolver.groovy |  101 ++
 .../AbstractConnectionSourceFactory.java           |   17 +-
 ... MultipleConnectionSourceCapableDatastore.java} |    8 +-
 .../connections/SingleSessionCapableDatastore.java |   23 +-
 .../mapping/model/AbstractMappingContext.java      |    1 +
 .../datastore/mapping/reflect/AstUtils.groovy      |   21 +-
 .../mapping/transactions/SessionHolder.java        |    9 +
 .../mapping/core/AbstractDatastoreSpec.groovy      |  247 ++++
 .../mapping/core/DatastoreUtilsSpec.groovy         |  164 +++
 .../core/SessionResolverIntegrationSpec.groovy     |   62 +
 ...actionSynchronizationSessionResolverSpec.groovy |  254 ++++
 .../AbstractConnectionSourceFactorySpec.groovy     |   77 ++
 .../config/DocumentMappingContextSpec.groovy       |   89 ++
 .../mapping/KeyValueMappingFactoryTests.groovy     |   53 +-
 .../datastore/mapping/reflect/AstUtilsSpec.groovy  |   66 +
 grails-doc/build.gradle                            |   29 +-
 grails-doc/src/en/guide/GORM/multiTenancy.adoc     |  129 ++
 .../en/guide/GORM/quickStartGuide/basicCRUD.adoc   |   38 +
 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/conf/applicationClass/customizing.adoc   |   34 +-
 .../src/en/guide/deployment/deploymentAot.adoc     |  172 +++
 .../en/guide/deployment/deploymentAotCache.adoc    |  191 +++
 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 |  149 ++
 .../plugins/creatingAndInstallingPlugins.adoc      |   12 +-
 grails-doc/src/en/guide/reference.adoc             |   25 +
 .../security/securityPlugins/springSecurity.adoc   |    4 +-
 .../springSecurity/cas/configuration.adoc          |   26 +-
 .../springSecurity/cas/introduction.adoc           |    2 +-
 .../securityPlugins/springSecurity/cas/usage.adoc  |   20 +-
 .../springSecurity/ui/customization.adoc           |    2 +-
 .../grailsCompileStatic.adoc                       |   26 +
 .../src/en/guide/testing/testingMongodb.adoc       |   74 +
 .../guide/theWebLayer/controllers/dataBinding.adoc |    4 +-
 .../theWebLayer/gsp/GSPBasics/expressions.adoc     |   12 +
 .../theWebLayer/gsp/gspStaticCompilation.adoc      |  247 ++++
 .../gsp/makingChangesToADeployedApplication.adoc   |    5 +-
 .../theWebLayer/gsp/taglibs/compiledTags.adoc      |  308 +++++
 grails-doc/src/en/guide/toc.yml                    |   21 +
 grails-doc/src/en/guide/upgrading.adoc             |   13 +
 .../src/en/guide/upgrading/upgrading60x.adoc       |  118 ++
 .../src/en/guide/upgrading/upgrading80x.adoc       |  684 +++++++++-
 grails-doc/src/en/ref/Constraints/bindable.adoc    |    5 +-
 grails-doc/src/en/ref/Controllers/bindData.adoc    |   50 +-
 grails-doc/src/en/ref/Database Mapping/type.adoc   |    4 +-
 grails-doc/src/en/ref/Dependency Versions.adoc     |    5 +-
 grails-doc/src/en/ref/Tags - GSP/set.adoc          |    9 +
 .../expressions.adoc => ref/Triggers.adoc}         |   26 +-
 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                   |    1 +
 grails-encoder/build.gradle                        |    2 +
 grails-events/plugin/build.gradle                  |    7 +-
 grails-fields/build.gradle                         |    2 +
 grails-forge/build.gradle                          |   28 +-
 grails-forge/gradle/test-config.gradle             |    2 +-
 .../forge/feature/database/GrailsDataMongoDB.java  |   29 +-
 .../{MongoSync.java => MongoDBTestingSupport.java} |   47 +-
 .../database/MongoDBTestingSupportValidator.java   |   47 +
 .../forge/feature/database/MongoFeature.java       |   25 +
 .../grails/forge/feature/database/MongoSync.java   |    6 +-
 .../{GrailsDataMongoDB.java => Neo4jGorm.java}     |   39 +-
 .../feature/lang/groovy/application.rocker.raw     |   30 +-
 .../forge/feature/lang/groovy/bootStrap.rocker.raw |    8 +-
 .../security/SpringBootStarterSecurity.java        |    9 +-
 .../security/template/securityConfig.rocker.raw    |   51 -
 .../feature/security/template/user.rocker.raw      |    2 +-
 .../java/org/grails/forge/options/GormImpl.java    |    3 +-
 .../src/main/resources/gsp/index.gsp               |   44 +-
 .../src/main/resources/gsp/main.gsp                |    6 +-
 .../forge/ActiveProcessorCountForkSpec.groovy      |   33 +-
 .../feature/database/GrailsDataMongoDBSpec.groovy  |   33 +
 .../database/MongoDBTestingSupportSpec.groovy      |   76 ++
 .../forge/feature/database/MongoSyncSpec.groovy    |   18 +
 .../{MongoSyncSpec.groovy => Neo4JGormSpec.groovy} |   37 +-
 .../security/SpringBootStarterSecuritySpec.groovy  |   40 +-
 .../org/grails/forge/options/GormImplSpec.groovy   |    2 +-
 grails-geb/build.gradle                            |    1 +
 .../grails/plugin/geb/GebGrailsPlugin.groovy       |    2 +-
 grails-gradle/bom/build.gradle                     |    3 -
 grails-gradle/build.gradle                         |   30 +-
 grails-gradle/gradle/test-config.gradle            |    2 +-
 .../main/groovy/grails/util/BuildSettings.groovy   |   21 +
 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 ++++++
 .../GrailsCompileStaticArtefactsProvider.groovy    |   11 +-
 .../plugin/core/GrailsCompileStaticOptions.groovy  |  112 +-
 .../gradle/plugin/core/GrailsExtension.groovy      |   18 +
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   |  414 ++++++
 .../core/GrailsGspCompileStaticProvider.groovy     |   79 ++
 .../gradle/plugin/core/GrailsI18nOptions.groovy    |   64 +
 .../plugin/core/GrailsPluginGradlePlugin.groovy    |   32 +
 .../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       |  367 ++++-
 .../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 +
 .../core/ActiveProcessorCountForkSpec.groovy       |   38 +
 .../plugin/core/AssetClasspathPackagingSpec.groovy |   47 +
 ...GrailsCompileStaticArtefactsProviderSpec.groovy |   39 +
 .../core/GrailsCompileStaticOptionsSpec.groovy     |   14 +-
 .../gradle/plugin/core/GrailsExtensionSpec.groovy  |   43 +-
 .../core/GrailsGspCompileStaticProviderSpec.groovy |  153 +++
 .../core/GrailsNativeImageDefaultsSpec.groovy      |  101 ++
 .../i18n/GenerateI18nDescriptorTaskSpec.groovy     |  124 ++
 .../gradle/plugin/i18n/I18nBundleIndexSpec.groovy  |  148 ++
 .../i18n/I18nDescriptorFunctionalSpec.groovy       |  119 ++
 .../GenerateScaffoldedViewsTaskSpec.groovy         |  335 +++++
 .../gsp/GenerateTagLibraryIndexTaskSpec.groovy     |  231 ++++
 .../gsp/GroovyPagePluginFunctionalSpec.groovy      |   31 +
 .../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 +
 .../gsp-compile-classpath/build.gradle             |    2 +
 .../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 +
 .../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 +
 .../test-projects/taglib-index-wiring/build.gradle |   32 +
 .../taglib-index-wiring/settings.gradle            |    1 +
 grails-gsp/core/build.gradle                       |   10 +-
 .../gsp/aot/PrecompiledPageRuntimeHints.java       |   52 +
 .../org/grails/gsp/CompileStaticGroovyPage.groovy  |    5 +
 .../src/main/groovy/org/grails/gsp/GroovyPage.java |   47 +
 .../groovy/org/grails/gsp/GroovyPageMetaInfo.java  |  117 +-
 .../org/grails/gsp/GroovyPagesMetaUtils.groovy     |   25 +-
 .../org/grails/gsp/GroovyPagesTemplateEngine.java  |   12 +-
 .../grails/gsp/compiler/GroovyPageCompiler.groovy  |   54 +-
 .../org/grails/gsp/compiler/GroovyPageParser.java  |  312 ++++-
 .../org/grails/gsp/compiler/GroovyPageScanner.java |   13 +-
 .../gsp/compiler/GroovyPageTypeCheckingConfig.java |   22 +
 .../GroovyPageTypeCheckingExtension.groovy         |  255 +++-
 .../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   |  670 +++++++++
 .../org/grails/gsp/GspCompileStaticSpec.groovy     |    9 +
 .../GroovyPageCompilerReproducibilitySpec.groovy   |  107 ++
 .../DefaultGroovyPageLocatorPrecompiledSpec.groovy |  120 ++
 grails-gsp/grails-layout/build.gradle              |    4 +
 .../plugins/sitemesh3/Sitemesh3GrailsPlugin.groovy |    4 +-
 .../sitemesh3/GrailsSiteMeshViewResolver.java      |   12 +-
 ...lsSiteMeshViewResolverServletContextSpec.groovy |  105 ++
 grails-gsp/grails-taglib/build.gradle              |    5 +-
 .../grails/core/gsp/DefaultGrailsTagLibClass.java  |   24 +-
 .../org/grails/taglib/CompiledTagInvocation.java   |  215 +++
 .../grails/taglib/NamespacedTagDispatcher.groovy   |   23 +-
 .../taglib/TagLibNamespaceMethodDispatcher.groovy  |    2 +-
 .../org/grails/taglib/TagLibraryMetaUtils.groovy   |   56 +-
 .../groovy/org/grails/taglib/TagMethodInvoker.java |  217 +--
 .../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  |   17 +-
 .../taglib/index/TagLibraryIndexGenerator.java     |  431 ++++++
 .../grails/taglib/index/TagLibraryIndexWriter.java |  212 +++
 .../grails/taglib/index/TagLibraryIndexSpec.groovy |  340 +++++
 .../TagLibraryIndexWriterConcurrencySpec.groovy    |  127 ++
 grails-gsp/grails-web-gsp-taglib/build.gradle      |    2 +
 grails-gsp/grails-web-gsp/build.gradle             |    4 +-
 .../GrailsConventionGroovyPageLocatorSpec.groovy   |    1 -
 grails-gsp/grails-web-jsp/build.gradle             |    2 +
 grails-gsp/grails-web-taglib/build.gradle          |    3 +-
 .../main/groovy/grails/artefact/TagLibrary.groovy  |   29 +-
 .../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  |    7 +
 .../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                     |   10 +-
 .../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 +-
 .../META-INF/spring-configuration-metadata.json    |  211 +--
 .../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 +
 .../GroovyPagesGrailsPluginPrecompiledSpec.groovy  |   77 ++
 .../groovy/org/grails/web/pages/ParseSpec.groovy   |    2 +-
 .../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 +++
 .../taglib/GroovyMethodNameCollisionSpec.groovy    |  212 +++
 .../web/taglib/GspStaticTagResolutionSpec.groovy   |  181 +++
 .../grails/web/taglib/IndexEdgeCaseTagLib.groovy   |   65 +
 .../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   |   43 +-
 grails-i18n/build.gradle                           |    1 +
 .../plugins/i18n/AvailableLocaleResolver.java      |  155 +--
 .../plugins/i18n/EffectiveI18nDescriptors.java     |  141 ++
 .../org/grails/plugins/i18n/I18nDescriptor.java    |   60 +
 .../org/grails/plugins/i18n/I18nDescriptors.java   |  175 +++
 .../plugins/i18n/I18nEnvironmentPostProcessor.java |  251 ++++
 .../grails/plugins/i18n/I18nGrailsPlugin.groovy    |   58 +-
 .../plugins/i18n/I18nRuntimeHintsProcessor.java    |  117 ++
 .../src/main/resources/META-INF/spring.factories   |   13 +-
 .../main/resources/META-INF/spring/aot.factories   |   14 +-
 .../i18n/AvailableLocaleResolverSpec.groovy        |  190 +--
 .../plugins/i18n/I18nAutoConfigurationSpec.groovy  |   67 +-
 .../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   |   15 +-
 .../i18n/fixtures/BetaPluginGrailsPlugin.groovy    |   15 +-
 .../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                   |    1 +
 grails-logging/build.gradle                        |    2 +
 grails-mail/build.gradle                           |    6 +-
 .../grails/plugins/mail/MailGrailsPlugin.groovy    |   14 +-
 .../grails/plugins/mail/PlainTextMailTagLib.groovy |    2 +-
 .../plugins/mail/PlainTextMailTagLibSpec.groovy    |   50 +
 grails-micronaut/build.gradle                      |    1 +
 grails-mimetypes/build.gradle                      |    1 +
 .../grails/mimetypes/aot/MimeTypeRuntimeHints.java |   57 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../web/skeleton/grails-app/views/index.gsp        |   44 +-
 .../web/skeleton/grails-app/views/layouts/main.gsp |    6 +-
 grails-quartz/build.gradle                         |   89 ++
 .../grails-app/conf/plugin.yml                     |    5 +-
 .../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   |   21 +-
 .../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       |   17 +-
 .../grails/plugins/quartz/TestQuartzJob.groovy     |   14 +-
 .../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  |   24 +-
 grails-redis/build.gradle                          |    3 +-
 .../src/main/groovy/redis/RedisGrailsPlugin.groovy |   21 +-
 grails-rest-transforms/build.gradle                |    1 +
 grails-scaffolding/build.gradle                    |    7 +
 .../grails/plugin/scaffolding/GormService.groovy   |    2 -
 .../scaffolding/ScaffoldingGrailsPlugin.groovy     |    8 +-
 .../scaffolding/aot/ScaffoldingRuntimeHints.java   |   54 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../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 +
 grails-services/build.gradle                       |    1 +
 .../gradle/RunningApplicationProcessSpec.groovy    |   20 +-
 .../acl/SpringSecurityAclGrailsPlugin.groovy       |    8 +-
 .../conf/DefaultCasSecurityConfig.groovy           |    5 +-
 .../cas/SpringSecurityCasGrailsPlugin.groovy       |   48 +-
 grails-spring-security/ldap/plugin/build.gradle    |    4 +
 .../ldap/SpringSecurityLdapGrailsPlugin.groovy     |    8 +-
 grails-spring-security/oauth2/plugin/build.gradle  |    4 +-
 ...roperties => spring-security-oauth2.properties} |    0
 .../oauth2/SpringSecurityOauth2GrailsPlugin.groovy |    2 +-
 grails-spring-security/plugin/build.gradle         |    4 +
 .../SpringSecurityCoreGrailsPlugin.groovy          |    8 +-
 ...tContextHolderExceptionTranslationFilter.groovy |    6 -
 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      |    4 +
 ...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                      |   20 +-
 .../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           |   10 +-
 .../controllers/aot/GreetingController.groovy      |   17 +-
 .../grails-app/controllers/aot}/UrlMappings.groovy |   14 +-
 .../aot/grails-app/init/aot/Application.groovy     |  112 ++
 .../grails-app/services/aot/GreetingService.groovy |   14 +-
 .../grails-app/taglib/aot/GreetingTagLib.groovy    |   24 +-
 .../aot/grails-app/views/greeting/index.gsp        |   25 +-
 .../functionaltests/IncludesController.groovy      |   13 +
 .../functionaltests/ManagedEntityDomain.groovy     |   11 +-
 .../functionaltests/CompiledTagCallSpec.groovy     |   66 +
 grails-test-examples/beans-dsl-plugin/build.gradle |    4 +
 .../domain/grails/test/app/Address.groovy          |    3 +
 .../grails-app/domain/grails/test/app/User.groovy  |    3 +-
 .../domain/grails/test/app/UserRole.groovy         |    2 +
 .../grails/test/app/CommentIntegrationSpec.groovy  |    5 +
 .../grails/test/app/TagIntegrationSpec.groovy      |    5 +
 .../grails/test/app/UserRoleIntegrationSpec.groovy |    5 +
 .../groovy/grails/test/app/pogo/Profile.groovy     |    6 +
 .../build.gradle                                   |   31 +-
 .../grails-app/conf}/application.yml               |   13 +-
 .../grails-app/controllers/gspstatic}/Book.groovy  |    6 +-
 .../controllers/gspstatic/DemoController.groovy    |   23 +-
 .../controllers/gspstatic}/UrlMappings.groovy      |   16 +-
 .../grails-app/init/gspstatic}/Application.groovy  |    5 +-
 .../grails-app/taglib/gspstatic/DemoTagLib.groovy  |   13 +-
 .../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       |    4 +
 .../hibernate5/criteria-extension/build.gradle     |    4 +
 .../build.gradle                                   |    2 +
 .../grails-hibernate-groovy-proxy/build.gradle     |    4 +
 .../domain/functional/tests/Organization.groovy    |    6 +-
 .../tests/OrganizationValidationSpec.groovy        |   23 +-
 .../grails-multiple-datasources/build.gradle       |    2 +
 .../build.gradle                                   |    2 +
 .../functionaltests/ManagedEntityDomain.groovy     |   11 +-
 .../hibernate7/criteria-extension/build.gradle     |    4 +
 .../build.gradle                                   |    2 +
 .../grails-hibernate-groovy-proxy/build.gradle     |    4 +
 .../grails-multiple-datasources/build.gradle       |    2 +
 .../build.gradle                                   |    2 +
 grails-test-examples/mail/build.gradle             |    2 +
 .../mongodb/test-data-service/build.gradle         |    2 +
 .../{gsp-layout => neo4j/base}/build.gradle        |   45 +-
 .../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     |   27 +-
 .../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
 .../{redis => neo4j/hibernate5}/build.gradle       |   46 +-
 .../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   |   27 +-
 .../functional/tests/BookControllerSpec.groovy     |   26 +-
 .../functional/tests/pages/AuthorPages.groovy}     |   43 +-
 .../groovy/functional/tests/pages/BookPages.groovy |    0
 .../functional/tests/Neo4jWithHibernateSpec.groovy |    8 +
 .../neo4j-standalone}/build.gradle                 |   23 +-
 .../src/main/groovy/example/Person.groovy          |    0
 .../src/main/groovy/example/PersonService.groovy   |    0
 .../test/groovy/example/PersonServiceSpec.groovy   |    0
 .../spring-boot}/build.gradle                      |   30 +-
 .../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
 .../test-data-service/build.gradle                 |    9 +-
 .../grails-app/conf/application.groovy             |    0
 .../grails-app/conf/application.yml                |   31 -
 .../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
 .../issue11767/plugin/MyPluginGrailsPlugin.groovy  |    2 +-
 .../{messages.properties => loadfirst.properties}  |    0
 ...en_US.properties => loadfirst_en_US.properties} |    0
 .../{undertow => quartz}/build.gradle              |   45 +-
 .../quartz/grails-app/conf}/application.yml        |   10 +-
 .../quartz/grails-app/conf/logback.xml             |   27 +
 .../grails-app/init/quartzapp}/Application.groovy  |    8 +-
 .../grails-app/init/quartzapp}/BootStrap.groovy    |   11 +-
 .../grails-app/jobs/quartzapp/DisabledJob.groovy}  |   12 +-
 .../jobs/quartzapp/InterruptibleJob.groovy         |   46 +-
 .../jobs/quartzapp/LongRunningJob.groovy           |   40 +-
 .../jobs/quartzapp/NeverFiringJob.groovy           |   15 +-
 .../grails-app/jobs/quartzapp/OnDemandJob.groovy   |   27 +-
 .../grails-app/jobs/quartzapp/RepeatingJob.groovy  |   28 +-
 .../quartzapp/QuartzLongRunningJobSpec.groovy      |  110 ++
 .../groovy/quartzapp/QuartzSchedulingSpec.groovy   |  144 ++
 .../groovy/quartzapp/RecordingJobListener.groovy   |   49 +-
 grails-test-examples/redis/build.gradle            |    4 +
 grails-test-examples/scaffolding/build.gradle      |    8 +
 .../com/example/BookController.groovy}             |   22 +-
 .../grails-app/domain/com/example}/Book.groovy     |    9 +-
 .../grails-app/init/com/example/BootStrap.groovy   |    4 +
 .../services/com}/example/BookService.groovy       |   15 +-
 .../groovy/com/example/BookControllerSpec.groovy   |   61 +
 .../groovy/com/example/pages/BookListPage.groovy   |   15 +-
 .../acl/functional-test-app/build.gradle           |    2 +
 .../acl/integration-test-app/build.gradle          |    2 +
 grails-test-examples/spring-security/cas/README.md |   85 +-
 .../spring-security/cas/test1/build.gradle         |   27 +
 .../cas/test1/grails-app/conf/application.groovy   |   80 +-
 .../test1}/grails-app/conf/spring/resources.groovy |    4 +-
 .../cas/test/SecureController.groovy               |   58 +
 .../springsecurity/cas/test}/UrlMappings.groovy    |    2 +-
 .../spring/security/cas/SecureController.groovy    |   35 -
 .../plugin/springsecurity/cas}/test/Role.groovy    |    2 +-
 .../plugin/springsecurity/cas}/test/User.groovy    |    2 +-
 .../springsecurity/cas}/test/UserRole.groovy       |    2 +-
 .../springsecurity}/cas/test/Application.groovy    |    2 +-
 .../springsecurity}/cas/test/BootStrap.groovy      |    6 +-
 .../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   |   13 +-
 .../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                                   |    2 +
 .../ldap/functional-test-app/build.gradle          |    2 +
 .../ldap/retrieve-db-roles/build.gradle            |    2 +
 .../ldap/retrieve-group-roles/build.gradle         |    2 +
 .../spring-security/ui/common/build.gradle         |    3 +
 .../spring-security/ui/extended/build.gradle       |    4 +-
 grails-test-examples/undertow/build.gradle         |    2 +
 grails-test-report/build.gradle                    |   18 +-
 grails-test-suite-base/build.gradle                |    1 +
 grails-test-suite-persistence/build.gradle         |    2 +-
 .../web/databinding/GrailsWebDataBinderSpec.groovy |  446 +++++-
 grails-test-suite-uber/build.gradle                |   20 +-
 .../ResourceAnnotationRestfulControllerSpec.groovy |    2 +-
 .../grails/test/mixin/RestfulControllerSpec.groovy |    2 +-
 .../groovy/org/grails/plugins/PluginTests.java     |    7 +-
 .../org/grails/web/util/WebUtilsTests.groovy       |   40 +
 grails-test-suite-web/build.gradle                 |   17 +-
 ...ngHelperDomainClassSpecialPropertiesSpec.groovy |  113 +-
 .../web/commandobjects/CommandObjectsSpec.groovy   |   29 +
 .../grails/web/servlet/BindDataMethodTests.groovy  | 1441 +++++++++++++++++++-
 grails-testing-support-core/build.gradle           |    2 +
 grails-testing-support-datamapping/build.gradle    |    1 +
 grails-testing-support-http-client/build.gradle    |    5 +-
 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     |    2 +
 grails-testing-support-web/build.gradle            |    2 +
 .../grails/testing/web/GrailsWebUnitTest.groovy    |    3 +
 grails-undertow/plugin/build.gradle                |    3 +
 grails-url-mappings/build.gradle                   |    1 +
 .../UrlMappingsBeanDefinitionsPostProcessor.groovy |   34 +-
 .../web/mapping/UrlMappingsGrailsPlugin.groovy     |   15 +-
 .../web/mapping/UrlMappingsGrailsPluginSpec.groovy |   35 +
 grails-validation/build.gradle                     |    1 +
 grails-views-core/build.gradle                     |    4 +-
 grails-views-gson/build.gradle                     |    6 +-
 .../plugin/json/view/JsonViewGrailsPlugin.groovy   |    9 +-
 .../grails/plugin/json/view/ExpandSpec.groovy      |   18 +-
 .../grails/plugin/json/view/HalEmbeddedSpec.groovy |   52 +-
 .../json/view/IncludeAssociationsSpec.groovy       |    4 +-
 .../plugin/json/view/IterableRenderSpec.groovy     |   44 +-
 .../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 +-
 .../view/api/handleassociations/Fixtures.groovy    |   11 +-
 .../grails/plugin/json/view/expand/Fixtures.groovy |   41 +-
 .../plugin/json/view/halembedded/Fixtures.groovy   |   57 +-
 .../plugin/json/view/include/Fixtures.groovy       |   41 +-
 .../plugin/json/view/iterable/Fixtures.groovy      |   41 +-
 .../plugin/json/view/maprender/Fixtures.groovy     |   47 +-
 .../plugin/json/view/nullrendering/Fixtures.groovy |   47 +-
 grails-views-markup/build.gradle                   |    3 +-
 .../markup/view/MarkupViewGrailsPlugin.groovy      |    9 +-
 grails-web-boot/build.gradle                       |    1 +
 grails-web-common/build.gradle                     |    2 +
 .../main/groovy/org/grails/web/util/WebUtils.java  |   19 +-
 grails-web-core/build.gradle                       |    1 +
 grails-web-databinding/build.gradle                |    1 +
 .../groovy/grails/web/databinding/BindAllowed.java |   11 +-
 .../grails/web/databinding/DataBinder.groovy       |    8 +-
 .../grails/web/databinding/DataBindingUtils.java   |  412 +++++-
 .../web/databinding/GrailsWebDataBinder.groovy     |  410 +++++-
 .../web/databinding/MissingPropertyClearer.java    |  823 +++++++++++
 .../databinding/aot/DataBindingRuntimeHints.java   |   62 +
 .../DataBindingEventMulticastListener.groovy       |    4 +
 .../databinding/DefaultASTDatabindingHelper.java   |  107 +-
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 .../web/databinding/DenyByDefaultConfigSpec.groovy |  103 ++
 grails-web-mvc/build.gradle                        |    3 +-
 .../web/errors/GrailsExceptionResolverSpec.groovy  |   68 +-
 grails-web-url-mappings/build.gradle               |    2 +
 .../web/mapping/aot/UrlMappingRuntimeHints.java    |   61 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 settings.gradle                                    |   48 +
 1396 files changed, 76259 insertions(+), 12848 deletions(-)
 create mode 100755 .github/scripts/ossIndexReport.sh
 create mode 100755 .github/scripts/postStickyComment.sh
 create mode 100644 .github/workflows/benchmark.yml
 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/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-benchmarks/README.adoc
 create mode 100644 grails-benchmarks/build.gradle
 create mode 100644 grails-benchmarks/src/jmh/java/org/apache/grails/benchmarks/databinding/SimpleDataBinderBenchmark.java
 create mode 100644 grails-benchmarks/src/jmh/java/org/apache/grails/benchmarks/gsp/GroovyPageParserBenchmark.java
 create mode 100644 grails-benchmarks/src/jmh/java/org/apache/grails/benchmarks/interceptors/UrlMappingMatcherBenchmark.java
 create mode 100644 grails-benchmarks/src/jmh/java/org/apache/grails/benchmarks/ruler/CpuRulerBenchmark.java
 create mode 100644 grails-benchmarks/src/jmh/java/org/apache/grails/benchmarks/ruler/MemoryRulerBenchmark.java
 create mode 100644 grails-benchmarks/src/jmh/java/org/apache/grails/benchmarks/urlmappings/UrlMappingsBenchmark.java
 create mode 100644 grails-benchmarks/src/jmh/java/org/apache/grails/benchmarks/views/ViewTemplateRenderingBenchmark.java
 copy grails-data-neo4j/examples/grails3-neo4j/grails-app/domain/functional/tests/Book.groovy => grails-benchmarks/src/main/groovy/org/apache/grails/benchmarks/interceptors/InterceptorFixture.groovy (77%)
 create mode 100644 grails-benchmarks/src/main/groovy/org/apache/grails/benchmarks/urlmappings/UrlMappingsFixture.groovy
 copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/JavaxValidationSpec.groovy => grails-benchmarks/src/main/groovy/org/apache/grails/benchmarks/views/ViewTemplateFixture.groovy (52%)
 create mode 100644 grails-benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/Benchmark.groovy
 create mode 100644 grails-benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/BenchmarkComparator.groovy
 create mode 100644 grails-benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/CommentPoster.groovy
 create mode 100644 grails-benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/Comparison.groovy
 create mode 100644 grails-benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/JmhCompare.groovy
 create mode 100644 grails-benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/JmhResults.groovy
 create mode 100644 grails-benchmarks/src/report/groovy/org/apache/grails/benchmarks/report/ReportRenderer.groovy
 create mode 100644 grails-benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/BenchmarkComparatorSpec.groovy
 create mode 100644 grails-benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/GitHubCommentsHttpSpec.groovy
 create mode 100644 grails-benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/GoldenReportSpec.groovy
 create mode 100644 grails-benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/JmhCompareSpec.groovy
 create mode 100644 grails-benchmarks/src/reportTest/groovy/org/apache/grails/benchmarks/report/PostFileSpec.groovy
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/broad-base.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/broad-head.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/edges-base.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/edges-head.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/expected-broad.md
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/expected-edges.md
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/expected-headonly.md
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/expected-norulers.md
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/expected-numbers.md
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/expected-shards.md
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/norulers-base.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/norulers-head.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/numbers-base.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/numbers-head.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/shards-base/shard-a.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/shards-base/shard-b.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/shards-head/shard-a.json
 create mode 100644 grails-benchmarks/src/reportTest/resources/jmh-golden/shards-head/shard-b.json
 copy grails-bom/{hibernate7 => neo4j}/build.gradle (95%)
 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/test/groovy/org/apache/grails/common/aot/RegistrableTypesSpec.groovy
 create mode 100644 grails-controllers/src/main/groovy/org/apache/grails/controllers/aot/ControllerRuntimeHints.java
 create mode 100644 grails-controllers/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-controllers/src/test/groovy/org/apache/grails/controllers/aot/ControllerRuntimeHintsSpec.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/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
 create mode 100644 grails-core/src/main/resources/META-INF/spring/aot.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/util/ActiveProcessorCountForkTests.java
 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
 create mode 100644 grails-core/src/test/groovy/org/grails/plugins/CoreGrailsPluginAotSpec.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/resources/grails/boot/version-in-a-resource.properties
 create mode 100644 grails-data-hibernate5/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormApiFactory.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/apache/grails/data/testing/tck/base/GrailsDataTckManagerSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/connections/DatabaseMultiTenantServiceRoutingSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/connections/MultiTenantFinderDispatchSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormApiFactory.groovy
 create mode 100644 grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateBasicEnumProperty.java
 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/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
 create mode 100644 grails-data-mongodb/core/src/main/groovy/org/grails/datastore/gorm/mongo/MongoGormApiFactory.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/org/grails/datastore/gorm/mongo/api/MongoStaticApiSpec.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/MongoMappingContextSpec.groovy
 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
 delete mode 100644 grails-data-neo4j/build.gradle
 create mode 100644 grails-data-neo4j/core/build.gradle
 copy grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/grails/neo4j/Direction.groovy (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/grails/neo4j/Neo4jEntity.groovy (94%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/grails/neo4j/Node.groovy (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/grails/neo4j/Path.groovy (96%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/grails/neo4j/Relationship.groovy (76%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/grails/neo4j/mapping/MappingBuilder.groovy (97%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/grails/neo4j/services/Cypher.groovy (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/CypherBuilder.java (85%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphClassMapping.groovy (86%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphGormMappingFactory.groovy (52%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/GraphPersistentEntity.groovy (87%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/IdGenerator.java (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jDatastore.java (80%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jDatastoreTransactionManager.java (97%)
 copy grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jEntityTraitProvider.groovy (94%)
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jGormApiFactory.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jMappingContext.java (77%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jSession.java (89%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jTransaction.groovy (86%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/RelationshipPersistentEntity.groovy (80%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/RelationshipUtils.groovy (87%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/SessionFlushedEvent.java (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/TypeDirectionPair.java (92%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/api/Neo4jGormStaticApi.groovy (81%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/GraphAdapter.groovy (78%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jAssociationResultList.groovy (94%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jList.groovy (90%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPath.groovy (82%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentList.groovy (95%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentSet.groovy (91%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jPersistentSortedSet.groovy (94%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jRelationship.groovy (97%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jResultList.groovy (80%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jSet.groovy (89%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/collection/Neo4jSortedSet.groovy (89%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/config/Neo4jDriverConfigBuilder.groovy (90%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/config/Settings.java (97%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceFactory.java (83%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceSettings.groovy (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jConnectionSourceSettingsBuilder.groovy (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/connections/Neo4jEmbeddedConnectionSource.java (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/DynamicAssociationSupport.java (82%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jAssociationQueryExecutor.groovy (71%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jEntityPersister.java (73%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jModificationTrackingEntityAccess.groovy (99%)
 create mode 100644 grails-data-neo4j/core/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/Neo4jQuery.groovy
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/RelationshipPendingDelete.java (90%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/engine/RelationshipPendingInsert.java (71%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/extensions/Neo4jExtensions.groovy (77%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/identity/SnowflakeIdGenerator.java (94%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/Attribute.groovy (99%)
 copy grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicAssociation.java (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicToManyAssociation.java (98%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicToOneAssociation.java (93%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/NodeConfig.groovy (95%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/RelationshipConfig.groovy (96%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/reflect/Neo4jNameUtils.groovy (91%)
 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
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/proxy/Neo4jAssociationQueryProxyHandler.java (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/proxy/Neo4jProxyFactory.java (99%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindAllCypherQueryImplementer.groovy (93%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindOneCypherQueryImplementer.groovy (92%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindPathCypherQueryImplementer.groovy (83%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/FindShortestPathImplementer.groovy (76%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/StatementResultCypherQueryImplementer.groovy (88%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/services/implementers/UpdateCypherQueryImplementer.groovy (82%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/services/transform/CypherQueryStringTransformer.groovy (96%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/util/EmbeddedNeo4jServer.java (84%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/main/groovy/org/grails/datastore/gorm/neo4j/util/IteratorUtil.java (96%)
 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%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/CascadingDeleteSpec.groovy (87%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/CustomLabelWithDynamicAssociationSpec.groovy (88%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/CypherQueryStringSpec.groovy (94%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/EagerFetchingSpec.groovy (88%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/EntityParseSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/FindByIsNullSpec.groovy (87%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/GroovyProxySpec.groovy (83%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/HasManyInheritanceSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/InheritanceProxySpec.groovy (81%)
 copy grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/JavaxValidationSpec.groovy (84%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/JoinCriteriaSpec.groovy (89%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/LabelStrategySpec.groovy (93%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/LikeQuerySpec.groovy (91%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/ManyToManyQuerySpec.groovy (90%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/ManyToManySpec.groovy (87%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/MapPropertySpec.groovy (88%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/MarkDirtyFalseSpec.groovy (73%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/MiscSpec.groovy (85%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/MultipleConnectionsSpec.groovy (93%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/NativeIdentityGeneratorSpec.groovy (87%)
 copy grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/Neo4jNameUtilsSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/Neo4jResultListSpec.groovy (85%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/NullValueEqualSpec.groovy (84%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/OneToManyUpdateSpec.groovy (89%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/OneToOneSpec.groovy (82%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/OptimisticLockingSpec.groovy (72%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/OrphanDeleteSpec.groovy (87%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/PagedResultSpec.groovy (91%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/PersistenceEventListenerSpec.groovy (87%)
 copy grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/Pet.groovy (88%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/ProjectionsSpec.groovy (89%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/ProxySpec.groovy (86%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/ReadManyObjectsSpec.groovy (86%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/RelationshipMappingSpec.groovy (93%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/RelationshipUtilsSpec.groovy (73%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/SchemalessSpec.groovy (80%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/TransientsSpec.groovy (87%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/UniqueConstraintSpec.groovy (91%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/UpdateWithProxyPresentSpec.groovy (100%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/ValidationSpec.groovy (86%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/WithTransactionSpec.groovy (90%)
 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%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/cypher/OneToManyCreateSpec.groovy (91%)
 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%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/grails/gorm/tests/multitenancy/SingleTenancySpec.groovy (95%)
 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%)
 copy 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%)
 copy 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
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/org/grails/datastore/gorm/neo4j/ApiExtensionsSpec.groovy (86%)
 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%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/org/grails/datastore/gorm/neo4j/TransactionPropagationSpec.groovy (89%)
 rename grails-data-neo4j/{grails-datastore-gorm-neo4j => core}/src/test/groovy/org/grails/datastore/gorm/neo4j/config/Neo4jConnectionSourceSettingsSpec.groovy (100%)
 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/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/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/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/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/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/test/groovy/grails/gorm/tests/GormDatastoreSpec.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/settings.gradle
 create mode 100644 grails-data-simple/src/test/groovy/org/grails/datastore/mapping/simple/SimpleMapDatastoreSpec.groovy
 create mode 100644 grails-databinding-core/src/main/groovy/grails/databinding/FrameworkPropertyNames.java
 create mode 100644 grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/ExplicitSaveRepersistsSpec.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/grails/gorm/multitenancy/CurrentTenantHolder.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/datastore/gorm/AbstractGormApiRegistry.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/ConnectionSourceNameResolver.groovy
 copy grails-data-neo4j/grails-plugin/src/main/groovy/org/grails/datastore/gorm/neo4j/converters/LocalDateToLongConverter.groovy => grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/DatastoreResolver.groovy (68%)
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/DefaultGormApiFactory.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormApiFactory.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormApiResolver.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormEnhancerRegistry.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormInstanceApiRegistry.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormRegistry.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormStaticApiRegistry.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormValidationApiRegistry.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/transactions/DefaultTransactionTemplateFactory.groovy
 create mode 100644 grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/transactions/TransactionTemplateFactory.groovy
 create mode 100644 grails-datamapping-core/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/CriteriaBuilderSpec.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/multitenancy/CurrentTenantHolderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/multitenancy/TenantsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/AbstractServiceImplementerCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/AbstractStringQueryImplementerCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/FindAllByImplementerCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/ServiceTransformationCoverageSpec.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/GrailsTransactionTemplateSpec.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/datastore/gorm/AbstractDatastoreApiSpec.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/AbstractGormApiSpec.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/ConnectionSourceNameResolverSpec.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/GormApiResolverSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormEnhancerCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormInstanceApiRegistrySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormInstanceApiSpec.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/GormRegistryCoverageSpec.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/GormRegistrySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormStaticApiRegistrySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormStaticApiSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormStaticApiStringQueryDelegationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormStaticApiWithDatastoreSessionSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormValidationApiCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormValidationApiRegistrySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormValidationApiSpec.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/events/ConfigurableApplicationContextEventPublisherSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/finders/AbstractFinderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/finders/DynamicFinderCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/finders/FindOrSaveByFinderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/jdbc/MultiTenantConnectionSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/multitenancy/MultiTenantEventListenerSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/multitenancy/TenantDelegatingGormOperationsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/DefaultTenantServiceSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/DefaultTransactionServiceSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transactions/DefaultTransactionTemplateFactorySpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/transform/AstPropertyResolveUtilsSpec.groovy
 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
 create mode 100644 grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/SessionResolver.groovy
 create mode 100644 grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/TransactionSynchronizationSessionResolver.groovy
 rename grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/connections/{MultipleConnectionSourceCapableDatastore.groovy => MultipleConnectionSourceCapableDatastore.java} (82%)
 rename grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jEntityTraitProvider.groovy => grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/connections/SingleSessionCapableDatastore.java (51%)
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/core/AbstractDatastoreSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/core/SessionResolverIntegrationSpec.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/core/connections/AbstractConnectionSourceFactorySpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/document/config/DocumentMappingContextSpec.groovy
 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/gspStaticCompilation.adoc
 create mode 100644 grails-doc/src/en/guide/theWebLayer/gsp/taglibs/compiledTags.adoc
 copy grails-doc/src/en/{guide/theWebLayer/gsp/GSPBasics/expressions.adoc => ref/Triggers.adoc} (50%)
 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
 copy grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/{MongoSync.java => MongoDBTestingSupport.java} (67%)
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/MongoDBTestingSupportValidator.java
 copy grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/{GrailsDataMongoDB.java => Neo4jGorm.java} (67%)
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/securityConfig.rocker.raw
 rename grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Neo4jNameUtilsSpec.groovy => grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/ActiveProcessorCountForkSpec.groovy (61%)
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/MongoDBTestingSupportSpec.groovy
 copy grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/{MongoSyncSpec.groovy => Neo4JGormSpec.groovy} (56%)
 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/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/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/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/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/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
 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/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/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-gsp/core/src/main/groovy/org/apache/grails/gsp/aot/PrecompiledPageRuntimeHints.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/io/DefaultGroovyPageLocatorPrecompiledSpec.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
 rename grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/mapping/config/DynamicAssociation.java => grails-gsp/grails-taglib/src/main/groovy/org/grails/taglib/index/TagLibraryIndexEntry.java (61%)
 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/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/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
 copy grails-data-neo4j/examples/test-data-service/src/integration-test/groovy/example/TestServiceSpec.groovy => grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/TypedSetTagSpec.groovy (51%)
 create mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/EffectiveI18nDescriptors.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
 copy grails-spring-security/oauth2/plugin/grails-app/i18n/messages.properties => grails-i18n/src/main/resources/META-INF/spring.factories (52%)
 copy grails-spring-security/oauth2/plugin/grails-app/i18n/messages.properties => grails-i18n/src/main/resources/META-INF/spring/aot.factories (52%)
 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
 copy grails-data-neo4j/examples/grails3-neo4j/grails-app/domain/functional/tests/Book.groovy => grails-i18n/src/test/groovy/org/grails/plugins/i18n/fixtures/AlphaPluginGrailsPlugin.groovy (78%)
 copy grails-data-neo4j/examples/grails3-neo4j/grails-app/domain/functional/tests/Book.groovy => grails-i18n/src/test/groovy/org/grails/plugins/i18n/fixtures/BetaPluginGrailsPlugin.groovy (78%)
 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
 create mode 100644 grails-mail/src/test/groovy/grails/plugins/mail/PlainTextMailTagLibSpec.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
 create mode 100644 grails-quartz/build.gradle
 copy grails-test-examples/plugins/loadfirst/grails-app/i18n/messages.properties => grails-quartz/grails-app/conf/plugin.yml (90%)
 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
 copy grails-mail/src/main/groovy/grails/plugins/mail/PlainTextMailTagLib.groovy => grails-quartz/src/main/groovy/grails/plugins/quartz/QuartzJobTraitInjector.groovy (59%)
 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
 copy grails-data-neo4j/examples/grails3-neo4j/grails-app/domain/functional/tests/Book.groovy => grails-quartz/src/test/groovy/grails/plugins/quartz/QuartzJobTraitInjectorSpec.groovy (73%)
 copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/services/Author.groovy => grails-quartz/src/test/groovy/grails/plugins/quartz/TestQuartzJob.groovy (73%)
 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
 copy grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/finders/FindByFinder.java => grails-quartz/src/test/groovy/quartz/jobs/ContextSpecJob.groovy (57%)
 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
 copy grails-spring-security/oauth2/plugin/grails-app/i18n/{messages.properties => spring-security-oauth2.properties} (100%)
 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
 copy {grails-data-neo4j/examples/neo4j-spring-boot/src/main/resources => grails-test-examples/aot/grails-app/conf}/application.yml (88%)
 copy grails-data-neo4j/examples/test-data-service/grails-app/controllers/example/ApplicationController.groovy => grails-test-examples/aot/grails-app/controllers/aot/GreetingController.groovy (74%)
 copy {grails-data-neo4j/examples/grails3-neo4j-hibernate/grails-app/controllers => grails-test-examples/aot/grails-app/controllers/aot}/UrlMappings.groovy (73%)
 create mode 100644 grails-test-examples/aot/grails-app/init/aot/Application.groovy
 copy grails-data-neo4j/examples/grails3-neo4j-hibernate/grails-app/domain/functional/tests/Author.groovy => grails-test-examples/aot/grails-app/services/aot/GreetingService.groovy (74%)
 copy grails-data-neo4j/examples/grails3-neo4j/src/test/groovy/functional/tests/BookSpec.groovy => grails-test-examples/aot/grails-app/taglib/aot/GreetingTagLib.groovy (61%)
 copy grails-data-neo4j/examples/grails3-neo4j/grails-app/views/notFound.gsp => grails-test-examples/aot/grails-app/views/greeting/index.gsp (57%)
 copy grails-data-neo4j/examples/test-data-service/grails-app/init/example/BootStrap.groovy => grails-test-examples/app1/grails-app/domain/functionaltests/ManagedEntityDomain.groovy (85%)
 create mode 100644 grails-test-examples/app1/src/test/groovy/functionaltests/CompiledTagCallSpec.groovy
 copy grails-test-examples/{hibernate5/grails-multitenant-multi-datasource => gsp-compile-static}/build.gradle (70%)
 copy {grails-data-neo4j/examples/neo4j-spring-boot/src/main/resources => grails-test-examples/gsp-compile-static/grails-app/conf}/application.yml (87%)
 copy {grails-data-neo4j/examples/test-data-service/grails-app/domain/example => grails-test-examples/gsp-compile-static/grails-app/controllers/gspstatic}/Book.groovy (90%)
 copy grails-data-neo4j/examples/test-data-service/grails-app/controllers/example/ApplicationController.groovy => grails-test-examples/gsp-compile-static/grails-app/controllers/gspstatic/DemoController.groovy (62%)
 copy {grails-data-neo4j/examples/grails3-neo4j/grails-app/controllers => grails-test-examples/gsp-compile-static/grails-app/controllers/gspstatic}/UrlMappings.groovy (79%)
 rename {grails-data-neo4j/examples/test-data-service/grails-app/init/example => grails-test-examples/gsp-compile-static/grails-app/init/gspstatic}/Application.groovy (98%)
 copy grails-data-neo4j/examples/grails3-neo4j/grails-app/domain/functional/tests/Book.groovy => grails-test-examples/gsp-compile-static/grails-app/taglib/gspstatic/DemoTagLib.groovy (79%)
 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
 copy grails-data-neo4j/examples/test-data-service/grails-app/domain/example/Book.groovy => grails-test-examples/hibernate5/grails-hibernate/grails-app/domain/functional/tests/Organization.groovy (93%)
 copy grails-data-neo4j/examples/test-data-service/src/integration-test/groovy/example/StudentServiceSpec.groovy => grails-test-examples/hibernate5/grails-hibernate/src/integration-test/groovy/functional/tests/OrganizationValidationSpec.groovy (67%)
 copy grails-data-neo4j/examples/test-data-service/grails-app/services/example/BookService.groovy => grails-test-examples/hibernate7/app1/grails-app/domain/functionaltests/ManagedEntityDomain.groovy (85%)
 copy grails-test-examples/{gsp-layout => neo4j/base}/build.gradle (70%)
 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%)
 copy {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%)
 copy {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%)
 copy {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%)
 copy grails-test-examples/{app2 => 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%)
 rename {grails-data-neo4j/examples/grails3-neo4j => grails-test-examples/neo4j/base}/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy (65%)
 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%)
 copy grails-test-examples/{redis => neo4j/hibernate5}/build.gradle (63%)
 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%)
 copy {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/grails-app/domain/functional/tests/Author.groovy (100%)
 copy {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%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/src/integration-test/groovy/functional/tests/AuthorControllerSpec.groovy (64%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/src/integration-test/groovy/functional/tests/BookControllerSpec.groovy (66%)
 copy grails-test-examples/{spring-security/core/misc-functional-test-app/group/src/integration-test/groovy/demo/LoginPage.groovy => neo4j/hibernate5/src/integration-test/groovy/functional/tests/pages/AuthorPages.groovy} (52%)
 copy grails-test-examples/{hibernate5/grails-hibernate => neo4j/hibernate5}/src/integration-test/groovy/functional/tests/pages/BookPages.groovy (100%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/neo4j/hibernate5}/src/test/groovy/functional/tests/Neo4jWithHibernateSpec.groovy (76%)
 copy grails-test-examples/{hibernate7/grails-hibernate-groovy-proxy => neo4j/neo4j-standalone}/build.gradle (63%)
 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%)
 copy grails-test-examples/{hibernate7/grails-hibernate-groovy-proxy => neo4j/spring-boot}/build.gradle (56%)
 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%)
 copy {grails-data-neo4j/examples/neo4j-spring-boot => grails-test-examples/neo4j/spring-boot}/src/main/groovy/example/BookService.groovy (100%)
 copy {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%)
 copy grails-test-examples/{mongodb => neo4j}/test-data-service/build.gradle (88%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/conf/application.groovy (100%)
 rename {grails-data-neo4j/examples => grails-test-examples/neo4j}/test-data-service/grails-app/conf/application.yml (69%)
 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%)
 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%)
 copy grails-test-examples/{undertow => quartz}/build.gradle (65%)
 rename {grails-data-neo4j/examples/neo4j-spring-boot/src/main/resources => grails-test-examples/quartz/grails-app/conf}/application.yml (88%)
 create mode 100644 grails-test-examples/quartz/grails-app/conf/logback.xml
 rename {grails-data-neo4j/examples/grails3-neo4j/grails-app/init/functional/tests => grails-test-examples/quartz/grails-app/init/quartzapp}/Application.groovy (93%)
 rename {grails-data-neo4j/examples/test-data-service/grails-app/init/example => grails-test-examples/quartz/grails-app/init/quartzapp}/BootStrap.groovy (81%)
 copy grails-test-examples/{graphql/grails-test-app/src/main/groovy/grails/test/app/pogo/Profile.groovy => quartz/grails-app/jobs/quartzapp/DisabledJob.groovy} (77%)
 rename grails-data-neo4j/examples/neo4j-spring-boot/build.gradle => grails-test-examples/quartz/grails-app/jobs/quartzapp/InterruptibleJob.groovy (51%)
 rename grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/JavaxValidationSpec.groovy => grails-test-examples/quartz/grails-app/jobs/quartzapp/LongRunningJob.groovy (53%)
 rename grails-data-neo4j/examples/grails3-neo4j-hibernate/grails-app/domain/functional/tests/Author.groovy => grails-test-examples/quartz/grails-app/jobs/quartzapp/NeverFiringJob.groovy (72%)
 copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/neo4j/Neo4jEntitySpec.groovy => grails-test-examples/quartz/grails-app/jobs/quartzapp/OnDemandJob.groovy (68%)
 rename grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/neo4j/Neo4jEntitySpec.groovy => grails-test-examples/quartz/grails-app/jobs/quartzapp/RepeatingJob.groovy (66%)
 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
 rename grails-data-neo4j/grails-datastore-gorm-neo4j/src/main/groovy/grails/neo4j/Direction.groovy => grails-test-examples/quartz/src/main/groovy/quartzapp/RecordingJobListener.groovy (50%)
 copy grails-test-examples/scaffolding/grails-app/{init/com/example/BootStrap.groovy => controllers/com/example/BookController.groovy} (61%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate/grails-app/domain/functional/tests => grails-test-examples/scaffolding/grails-app/domain/com/example}/Book.groovy (90%)
 rename {grails-data-neo4j/examples/neo4j-spring-boot/src/main/groovy => grails-test-examples/scaffolding/grails-app/services/com}/example/BookService.groovy (78%)
 create mode 100644 grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/BookControllerSpec.groovy
 rename grails-data-neo4j/examples/grails3-neo4j/grails-app/domain/functional/tests/Book.groovy => grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/BookListPage.groovy (76%)
 rename {grails-data-neo4j/examples/grails3-neo4j-hibernate => grails-test-examples/spring-security/cas/test1}/grails-app/conf/spring/resources.groovy (87%)
 create mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/controllers/grails/plugin/springsecurity/cas/test/SecureController.groovy
 rename grails-test-examples/spring-security/cas/test1/grails-app/controllers/{spring/security/cas => grails/plugin/springsecurity/cas/test}/UrlMappings.groovy (96%)
 delete mode 100644 grails-test-examples/spring-security/cas/test1/grails-app/controllers/spring/security/cas/SecureController.groovy
 rename grails-test-examples/spring-security/cas/test1/grails-app/domain/{com => grails/plugin/springsecurity/cas}/test/Role.groovy (96%)
 rename grails-test-examples/spring-security/cas/test1/grails-app/domain/{com => grails/plugin/springsecurity/cas}/test/User.groovy (97%)
 rename grails-test-examples/spring-security/cas/test1/grails-app/domain/{com => grails/plugin/springsecurity/cas}/test/UserRole.groovy (98%)
 rename grails-test-examples/spring-security/cas/test1/grails-app/init/{spring/security => grails/plugin/springsecurity}/cas/test/Application.groovy (95%)
 rename grails-test-examples/spring-security/cas/test1/grails-app/init/{spring/security => grails/plugin/springsecurity}/cas/test/BootStrap.groovy (93%)
 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
 rename grails-spring-security/oauth2/plugin/grails-app/i18n/messages.properties => grails-test-examples/spring-security/cas/test1/src/main/resources/META-INF/spring.factories (52%)
 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-testing-support-mongodb/src/main/groovy/org/apache/grails/testing/mongo/EmbeddedReplicaSetSpec.groovy
 rename grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/services/Author.groovy => grails-views-gson/src/test/groovy/grails/plugin/json/view/api/handleassociations/Fixtures.groovy (72%)
 copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Pet.groovy => grails-views-gson/src/test/groovy/grails/plugin/json/view/expand/Fixtures.groovy (60%)
 copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Pet.groovy => grails-views-gson/src/test/groovy/grails/plugin/json/view/halembedded/Fixtures.groovy (51%)
 copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Pet.groovy => grails-views-gson/src/test/groovy/grails/plugin/json/view/include/Fixtures.groovy (60%)
 copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Pet.groovy => grails-views-gson/src/test/groovy/grails/plugin/json/view/iterable/Fixtures.groovy (60%)
 copy grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Pet.groovy => grails-views-gson/src/test/groovy/grails/plugin/json/view/maprender/Fixtures.groovy (57%)
 rename grails-data-neo4j/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/Pet.groovy => grails-views-gson/src/test/groovy/grails/plugin/json/view/nullrendering/Fixtures.groovy (55%)
 copy grails-gsp/core/src/main/groovy/org/grails/gsp/compiler/GroovyPageTypeCheckingConfig.java => grails-web-databinding/src/main/groovy/grails/web/databinding/BindAllowed.java (84%)
 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/DenyByDefaultConfigSpec.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/resources/META-INF/spring/aot.factories