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

jamesfredley pushed a change to branch 8.1.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git


    from 0613772b36 Merge pull request #16135 from 
apache/feat/enable-datamapping-rx
     add de314a0557 Fix reproducible build artifact verification
     add b86d50422c Merge pull request #16091 from apache/post-8.0.0-M5-release
     add a8a12d5d5a Add @GrailsBeans: compile a bean-wiring DSL into real 
@AutoConfiguration classes
     add e361649056 Allow @GrailsBeans directly on a *GrailsPlugin.groovy 
Plugin subclass
     add 0ed1645459 Verify and document @GrailsBeans compatibility with 
@CompileStatic
     add 79b2f3f158 Address review findings: publishing, static compilation, 
arg validation, silent failures
     add 48ed0fa86c Statically compile generated GrailsBeans plugin siblings
     add 360bc4306e Document @GrailsBeans DSL limitations
     add ff2241926c Add primary(), lazy(), and scope(...) qualifiers to the 
beans DSL
     add d5c7d2d017 Correct inaccurate claim about per-bean Spring conditionals 
in docs
     add 4cf0a7ab11 Add a generic annotate(...) qualifier to the beans DSL
     add 4dea95c048 Add field(...) and method(...) to the beans DSL
     add 6385b338be Convert the real grails-i18n autoconfiguration to 
@GrailsBeans
     add e4f92b1eab Use the real Settings constants for @Value keys in the i18n 
conversion
     add dc07794825 Remove unnecessary method() indirection from the i18n 
conversion
     add 8c35ae1e56 Split a merged comment back into its two original topics
     add c038c985c3 Address review: propagate Conditional*/Import* annotations 
to the generated sibling, fix acronym decapitalization, reject duplicate 
bean/field/method names
     add 12fa9dfd06 Document 
field()/method()/.primary()/.lazy()/.scope()/.annotate() and 
sibling-annotation-move on @GrailsBeans
     add ec5f8e52ac Address a second review: recurse through composed 
condition/import annotations, add @GrailsBeans(autoConfigurationName = ...)
     add 959fa3df34 Reject autoConfigurationName on a standalone class, where 
it silently had no effect
     add b36edf3fa8 Document the full sibling-annotation move, composed 
annotations, autoConfigurationName, and the bean-name-is-a-Java-identifier 
limitation
     add 6806043b23 Fix the bean-name-limitation workaround: it doesn't apply 
to the Plugin-subclass form
     add 32b0e06e5c Use autoConfigurationName to preserve 
I18nAutoConfiguration's identity through the @GrailsBeans conversion
     add 48d4af2cb9 Complete the I18nAutoConfiguration identity restoration 
(previous commit only carried the file rename)
     add 471008b6d2 Add bean(...).named(...) so a bean name that isn't a valid 
Java identifier can still be expressed
     add 98089e5552 Make .named(...) optional: fall back to a synthesized 
<type>$N method name instead of a compile error
     add bdb6b63a2b Drop the redundant explicit bean names that just repeated 
the convention-derived one
     add faf14de109 Reject blank/reserved-keyword names, add ImportResource to 
the sibling-move list, and rename .named(...) to .methodNamed(...)
     add dde9f33b67 Keep localeChangeInterceptor's explicit bean name; verify 
beforeName ordering and availableLocaleResolver's derived name
     add b9063a78ed Rename .methodNamed to .methodName; auto-move 
@ComponentScan/@PropertySources; add moveAnnotations escape hatch
     add a019de05f3 Remove .methodName(...) from the DSL: generated method 
names are an implementation detail
     add 31feae1ed2 Make bean/member name-collision handling independent of 
declaration order
     add c41c33b2b1 Reserve existing host and hierarchy member names before 
choosing generated names
     add 21f69f9210 Traverse the full interface graph when reserving existing 
member names
     add 2ff9ebcda5 Reserve the accessor names Groovy will synthesize for 
properties
     add e0f8d13f16 Consolidate comments that restated each other or nearby 
documentation
     add 07e89bbde0 Groovy-fy the beans DSL: suffix-derived sibling names, 
richer conditionalOnMissingBean, field .value(...)
     add b936793fde Apply the new DSL conveniences to the real i18n conversion
     add 6148123389 Add .conditionalOnMissingBeanName(...): name-based 
self-back-off stated once
     add 2306135aa2 Reject types given both positionally and via value: on 
conditionalOnMissingBean; fix stale method(...) chaining docs
     add b821683c51 Fold .value(...) placeholders at transform time; compile 
I18nGrailsPlugin with @CompileStatic
     add 98b046b946 Merge branch '8.0.x' into spike/grails-beans-dsl
     add 19a502c420 Flip the DSL argument order to name-first: bean('name', 
Type), field('name', Type), method('name', Type)
     add 48d352fadf Allow one bean name across several bean(...) statements 
when each carries a discriminating condition
     add 855a28347d Document @GrailsBeans for applications, including the 
Application class
     add 32ead2bbc4 Auto-wrap a bare config key given to single-argument 
.value(...)
     add 5e9e162e99 Convert UrlMappingsAutoConfiguration to a @GrailsBeans 
block on UrlMappingsGrailsPlugin
     add 776985dd80 Reject a blank config key in .value(...)
     add 03209d1209 Cover the migrated grailsLinkGenerator behavior in 
UrlMappingsAutoConfigurationSpec
     add 5450dffcfe Add bean(...).staticMethod(): a static @Bean factory method
     add 53dcb874db Convert Sitemesh3AutoConfiguration to a @GrailsBeans block 
on Sitemesh3GrailsPlugin
     add 6e4a52013d Convert MailAutoConfiguration to a @GrailsBeans block on 
MailGrailsPlugin
     add 8ce848237d Cover the enabled JNDI path and qualified session injection 
in MailAutoConfigurationSpec
     add 483d9a543c Simplify the mail sender's nested host/encoding defaults
     add 203a8ae9d9 Use tap for the mail sender's conditional configuration
     add 7d17c3ac4e Polish the converted bean bodies with Groovy idioms
     add 5c71d9e88c Merge branch '8.0.x' into spike/grails-beans-dsl
     add 6986f0cc12 Convert CoreAutoConfiguration to a @GrailsBeans block on 
CoreGrailsPlugin
     add 100b9dbf77 Apply the configured Spring placeholder prefix
     add 311fb9a959 Convert GrailsCacheAutoConfiguration to a @GrailsBeans 
block on CacheGrailsPlugin
     add 700cf9c329 Convert GrailsDomainClassAutoConfiguration to a 
@GrailsBeans block on DomainClassGrailsPlugin
     add 623ce9748d Convert DataBindingConfiguration to a @GrailsBeans block on 
DataBindingGrailsPlugin
     add 4dab384019 Allow bean(Type) with no factory closure
     add 6fe91a2519 Collapse the databinding source creators onto bodyless 
bean(Type)
     add bab7b058f3 Drop redundant explicit bean names from the converted 
plugins
     add cd1639f850 Use idiomatic array concatenation in the data binder bean
     add 350bb9891a Collapse the remaining bare-construction beans onto 
bodyless bean(Type)
     add f4410fd5c0 Use tap for the source registry and wrap the long 
url-mapping chains
     add 285168ddf8 Show the bodyless bean form in the application-class 
documentation
     add 80e526a087 Treat an empty beans block as a no-op
     add 6a71fa5ef6 Merge branch '8.0.x' into spike/grails-beans-dsl
     add 5a4e2b8c21 Compile a beans property without requiring @GrailsBeans
     add 1af34ee7f0 Drop @GrailsBeans from the plugin descriptors that no 
longer need it
     add 1346b27b2b Move the cache plugin fully onto auto-configuration
     add da28b4f1e9 Move the SiteMesh 3 mutator into the DSL and fix its 
environment post-processor
     add 1544bd7d19 Contribute the auto-timestamp cache default to the 
environment
     add 29305023f4 Drop the dead GrailsConfigurationAware contract from 
GrailsPlaceholderConfigurer
     add 0161f9dcbe Fix component scanning outside the project directory
     add 48b2bfb1e5 Contribute the bean-packages scan through beanRegistrar
     add 637b7affc6 Move CoreGrailsPlugin's bean definitions out of doWithSpring
     add a70ff87f1f Register the abstract resource locator without doWithSpring
     add 5525000e0f Merge branch '8.0.x' into spike/grails-beans-dsl
     add 9743d3a54e Fix eight defects in the beans DSL transform
     add 62b74b9a3f Fix the imports generator and give it a real consumer
     add 138d014236 Declare the beans DSL once, and give it its own group
     add 0224df0ecd Move the beans DSL examples under grails-test-examples
     add 94e25dee20 Only claim a beans property that looks like the DSL
     add af64be699c Use the Settings constants, and name the sibling correctly
     add 0067d15e23 Correct the beans DSL documentation
     add 1fe013a1c6 Declare the constraint evaluator's parameters in 
constructor order
     add d8f2a7b78b Let an empty bean closure body mean "construct from these 
parameters"
     add 9796eb104a Prove the parameter @Qualifier through real Spring injection
     add e09d4ef4e8 Wrap overlong source lines
     add 9f0b4d5f7b Use the concise bean forms in the DSL example module
     add 8009c21a64 Correct two stale limitations in the DSL documentation
     add 1410710809 Read @AutoConfiguration from class files instead of loading 
them
     add cc6bdf429c Source ASM's version from the build-tooling version map
     add a4deb3d2cd Locate two errors that were reported against nothing, or 
against the wrong thing
     add f31d57061f Stop claiming a Groovy class constant does not fold
     add 33c9ee771d Key the cache plugin's startup hook on what actually 
registered
     add 4e51a2556a Document the component-scan behaviour change, and drop 
@GrailsBeans to CLASS retention
     add 297767a923 Merge branch '8.0.x' into spike/grails-beans-dsl
     add 7d90d67932 Merge remote-tracking branch 
'origin/spike/grails-beans-dsl' into spike/grails-beans-dsl
     add 9f18a77067 Cover the relaxed-boolean path that motivated the cache fix
     add ccee98a603 Merge branch '8.0.x' into spike/grails-beans-dsl
     add 022465ee3c Merge branch '8.0.x' into spike/grails-beans-dsl
     add 783b1ec36c Give every Grails 8 upgrade section a distinct number
     add c3c9b4986d Address review: correct the Application beans docs and drop 
a redundant comment
     add 6378d2daed Merge pull request #16019 from 
codeconsole/spike/grails-beans-dsl
     add 4cb7c85650 build: do not cache project references
     add 4bc5bd8233 Merge pull request #16087 from 
apache/impr-gradle-conf-time-2
     add 5aa26db4c4 Fall back to the WatchService watcher instead of polling
     add 40272535a4 Treat a linkage failure as the native watcher being 
unavailable
     add 48d528d95f Merge branch '8.0.x' into 
fix/directory-watcher-fallback-8.0.x
     add 641849abb6 Assert watcher behaviour rather than the implementation 
selected
     add 7cd616519b Require macOS for the native watcher test
     add ab2b2afb3e Warn when native macOS file watching is unavailable
     add 948775bcb4 Merge pull request #16089 from 
codeconsole/fix/directory-watcher-fallback-8.0.x
     add 35b1f70801 docs: add Gradle 9 developer skill for monorepo builds
     add 0ea98a1a07 docs: register gradle-developer skill in AGENTS.md
     add e4d26c5d6d docs: polish gradle-developer skill with cacheability and 
monorepo lessons
     add 3de06ee544 Merge pull request #16083 from 
apache/docs/gradle-developer-skill
     add d8c90360f3 change cooldown for dependabot to 7 days
     add 8c5b1cfdd8 Merge pull request #16099 from 
paulk-asert/dependabotCooldown
     add 5784450e7e [skip ci] Release v8.0.0-M5
     add c989200e71 [skip ci] Bump version to 8.0.0-SNAPSHOT
     add e88612c33c Merge pull request #16106 from apache/merge-back-8.0.0-M5
     add a330f176fa port validate-actions GitHub action from Groovy to Grails
     add 674a3a375d Merge pull request #16100 from paulk-asert/validateAction
     add 4ac99ab547 Bump release-drafter/release-drafter
     add 95d2232e9e Merge pull request #15711 from 
apache/dependabot/github_actions/release-drafter/release-drafter-693d20e7c1ce1a81d3a41962f85914253b518449
     add 4242d6b39c Bump codecov/codecov-action from 6.0.0 to 7.0.0
     add 93fd522fb6 Merge pull request #16038 from 
apache/dependabot/github_actions/codecov/codecov-action-7.0.0
     add f252b430cb Harden synchronizer token consumption
     add 880e6b36ab Trim oversized synchronizer token state
     add 5130d3c4ac Document synchronizer token consumption and bounds
     add 1ffe64ea47 Merge remote-tracking branch 'origin/8.0.x' into 
fix/synchronizer-token-hardening
     add e929338408 Merge pull request #15803 from 
apache/fix/synchronizer-token-hardening
     add bfa1f8e676 Remove unused Forge GitHub create and OAuth integration
     add a1e526fd02 Merge branch '8.0.x' into fix/forge-oauth-state-validation
     add ac94b25e81 Merge pull request #15812 from 
apache/fix/forge-oauth-state-validation
     add 994311865b Keep BeanBuilder DSL independent of XML setup
     add 833d3e4d8e Avoid XML reader init for missing namespaces
     add 5b3d004648 Merge remote-tracking branch 'origin/8.0.x' into 
fix/14915-beanbuilder-spring7
     add 0f1cf52699 Merge 8.0.x into fix/14915-beanbuilder-spring7
     add a3b910951c Merge remote-tracking branch 'origin/8.0.x' into 
fix/14915-beanbuilder-spring7
     add a1b7309d20 Merge origin/8.0.x into fix/14915-beanbuilder-spring7
     add c47fb1ebdb Merge branch '8.0.x' into fix/14915-beanbuilder-spring7
     add afabbc5c2a Merge remote-tracking branch 'origin/8.0.x' into 
apache/fix/14915-beanbuilder-spring7
     add 71efa807c7 Merge pull request #15824 from 
apache/fix/14915-beanbuilder-spring7
     add f18fc9af04 Revert "Keep BeanBuilder DSL independent of XML setup"
     add 3e4fa5c897 Merge pull request #16112 from 
apache/revert-15824-fix/14915-beanbuilder-spring7
     add 8a3a79ffb6 Add deterministic test task sharding
     add 57a387c032 Parallelize critical CI test workloads
     add cd4490aea5 Parallelize remaining critical CI workloads
     add 7ebf2fb3e1 Shard critical selector test legs
     add 7bb015970e Separate rerun build work from its test shards
     add 8804f208a9 Shard remaining critical CI test legs
     add fcc8f257b9 Merge pull request #16116 from 
apache/perf/8.0.x-ci-wall-clock-regression
     add 6e914ccac0 Avoid duplicate cached codec metaclass registration
     add 5311c4cd97 Add codec metaclass registration benchmark
     add 4805301d26 Run codec benchmark as opt-in Spock spec
     add a81a84baaf Track codec registrations by weak factory keys
     add 413a4f345b Merge remote-tracking branch 'origin/8.0.x' into 
fix/15374-codec-metaclass-registration-overhead
     add c421fbabcc Merge remote-tracking branch 'origin/8.0.x' into 
fix/15374-codec-metaclass-registration-overhead
     add ac31469817 Address codec metaclass registration review feedback
     add e655aaae65 Merge branch '8.0.x' into 
fix/15374-codec-metaclass-registration-overhead
     add b37a11c061 Avoid double codec registration at startup and in mockCodec
     add 7e08fa926a Key codec metaclass registration by Class and lock per 
factory
     add bd7ef514fc Merge branch '8.0.x' into 
fix/15374-codec-metaclass-registration-overhead
     add 59f9b22e7b Preserve codec metaclass registration contracts
     add 09b037af96 Remove the ad hoc codec benchmark
     add ab63e4e5c0 Cover codec lookup lifecycle initialization
     add cf62c7f8d4 Cover mockCodec without lookup reinitialization
     add b9f5c1f17e Merge branch '8.0.x' into 
fix/15374-codec-metaclass-registration-overhead
     add 19bcf52e8c Merge branch '8.0.x' into 
fix/15374-codec-metaclass-registration-overhead
     add fbdf186fe1 Merge pull request #15800 from 
apache/fix/15374-codec-metaclass-registration-overhead
     add 43c6d17dcf fix(grails-data-hibernate7): stop conflating decimal and 
bit precision for numeric columns
     add b711dd5bcc test: address review feedback on numeric precision fix
     add 72d0873c0b Merge pull request #16026 from 
apache/fix/gorm-numeric-column-dialect-precision
     add 15c93f2d7c build(refactor): replace deprecated Gradle test listener 
creation
     add 4e2b0463c4 Merge pull request #16103 from 
apache/refactor-depr-gradle-test-listeners
     add ae1a390db5 build: cleanup SLF4J warnings in the build output
     add 388e5af89e build: change sbom logging to info
     add 1c77528134 Merge pull request #16104 from 
apache/remove-missing-slf4j-warnings
     add ae3c52c65f chore: remove decommissioned code and its dependencies
     add 8ac14e97a5 chore: remove test dependencies as there are no tests
     add 8f1fa16053 Merge pull request #16096 from 
apache/remove-decommissioned-test-code
     add 81a151cbcd Generate Spring Security wiring through the beans DSL
     add f64b04c71c Lock down the generated Spring Security defaults
     add 7fbe45e180 Seed a non-admin account in generated secured apps
     add 5e1acba929 Merge pull request #16119 from 
codeconsole/forge-security-beans-dsl
     add f813b48af6 Compile GSP pages with the Java the project asked for
     add 321c9de6f5 Merge pull request #16118 from 
codeconsole/fix/gsp-compile-java-toolchain-8.0.x
     add 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 8be3bf2060 Merge branch '8.0.x' into 8.1.x
     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 df424da847 Merge branch '8.0.x' into 8.1.x

No new revisions were added by this update.

Summary of changes:
 .agents/skills/gradle-developer/SKILL.md           |  701 +++++
 .github/dependabot.yml                             |    4 +
 .github/workflows/benchmark.yml                    |  394 +++
 .github/workflows/coverage.yml                     |    2 +-
 .github/workflows/end-to-end.yml                   |    2 +-
 .github/workflows/forge-deploy-next.yml            |    3 +-
 .github/workflows/forge-deploy-prev-snapshot.yml   |    3 +-
 .github/workflows/forge-deploy-prev.yml            |    3 +-
 .github/workflows/forge-deploy-release.yml         |    4 +-
 .github/workflows/forge-deploy-snapshot.yml        |    3 +-
 .github/workflows/gradle.yml                       |  197 +-
 .github/workflows/groovy-joint-workflow.yml        |   39 +-
 .github/workflows/release-notes.yml                |    2 +-
 .github/workflows/release.yml                      |   10 +-
 .github/workflows/validate-actions.yml             |   59 +
 AGENTS.md                                          |   10 +-
 THREAT_MODEL.md                                    |    4 +-
 build-logic/plugins/build.gradle                   |   19 +
 .../buildsrc/AutoConfigurationImportsPlugin.groovy |   66 +
 .../GenerateAutoConfigurationImportsTask.groovy    |  181 ++
 .../buildsrc/GrailsValidateActionsPlugin.groovy    |   62 +
 .../org/apache/grails/buildsrc/SbomPlugin.groovy   |    8 +-
 .../grails/buildsrc/TestTaskShardingPlugin.groovy  |  174 ++
 .../grails/buildsrc/ValidateActionsTask.groovy     |  236 ++
 ...GenerateAutoConfigurationImportsTaskSpec.groovy |  195 ++
 .../buildsrc/TestTaskShardingPluginSpec.groovy     |  387 +++
 build.gradle                                       |    4 +-
 dependencies.gradle                                |    1 +
 etc/bin/extract-build-artifact.sh                  |    6 +-
 etc/bin/test-bisect.groovy                         |   57 +-
 etc/bin/verify-reproducible.sh                     |    7 +-
 gradle.properties                                  |    2 +
 gradle/functional-test-config.gradle               |   33 +-
 gradle/hibernate5-test-config.gradle               |   24 +-
 gradle/hibernate7-test-config.gradle               |   24 +-
 gradle/mongodb-forked-test-config.gradle           |   10 +-
 gradle/mongodb-test-config.gradle                  |   10 +-
 gradle/publish-root-config.gradle                  |    2 +
 gradle/rat-root-config.gradle                      |    3 +-
 gradle/redis-test-config.gradle                    |    4 +-
 gradle/spring-security-test-config.gradle          |    4 +-
 gradle/test-config.gradle                          |   34 +-
 grails-async/plugin/build.gradle                   |    4 +-
 .../build.gradle                                   |   47 +-
 .../java/grails/compiler/beans/GrailsBeans.java    |  136 +
 .../beans/GrailsBeansASTTransformation.java        | 1384 +++++++++
 .../beans/GrailsBeansASTTransformationSpec.groovy  | 3151 ++++++++++++++++++++
 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         |   23 +-
 .../urlmappings/UrlMappingsFixture.groovy          |   41 +
 .../benchmarks/views/ViewTemplateFixture.groovy    |   52 +-
 .../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-bootstrap/build.gradle                      |   30 +
 .../org/grails/io/watch/DirectoryWatcher.java      |   74 +-
 .../grails/io/watch/DirectoryWatcherSpec.groovy    |  253 ++
 grails-cache/build.gradle                          |    6 +
 .../grails/plugin/cache/CacheGrailsPlugin.groovy   |   97 +-
 .../cache/GrailsCacheAutoConfiguration.groovy      |   69 -
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    2 +-
 ...ec.groovy => CacheAutoConfigurationSpec.groovy} |   87 +-
 .../plugin/cache/CacheGrailsPluginSpec.groovy      |   73 -
 grails-codecs/build.gradle                         |    1 +
 .../grails/plugins/codecs/CodecsConfiguration.java |    6 +-
 .../plugins/codecs/CodecsConfigurationSpec.groovy  |   48 +
 grails-console/build.gradle                        |    2 +
 grails-controllers/build.gradle                    |    1 +
 .../main/groovy/grails/artefact/Controller.groovy  |   37 +-
 .../compiler/web/ControllerActionTransformer.java  |  102 +-
 .../controllers/ControllersAutoConfiguration.java  |    4 +-
 grails-converters/build.gradle                     |    1 +
 grails-core-cli-legacy/build.gradle                |    2 +
 grails-core/build.gradle                           |   15 +
 .../src/main/groovy/grails/config/Settings.groovy  |    2 +
 .../GlobalGrailsClassInjectorTransformation.groovy |   96 +
 .../org/grails/plugins/CoreGrailsPlugin.groovy     |  175 +-
 .../grails/plugins/core/CoreAutoConfiguration.java |   69 -
 .../AbstractResourceLocatorPostProcessor.java      |   82 +
 ...sIgnoringComponentScanBeanDefinitionParser.java |  170 +-
 .../GrailsComponentScanPostProcessor.java          |   95 +
 .../support/GrailsPlaceholderConfigurer.java       |   14 +-
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    2 +-
 ...aceHolderConfigurerCorePluginRuntimeSpec.groovy |   73 -
 ...balGrailsClassInjectorTransformationSpec.groovy |   91 +
 .../plugins/CoreAutoConfigurationSpec.groovy       |  178 ++
 .../plugins/CoreGrailsPluginRegistrarSpec.groovy   |  229 ++
 .../grails/plugins/SpringBeanPackagesSpec.groovy   |   86 +
 .../grails/plugins/scan/ScannedComponent.groovy    |   22 +-
 grails-data-graphql/plugin/build.gradle            |    4 +
 grails-data-hibernate5/core/build.gradle           |    3 +
 .../compiler/HibernateEntityTransformation.groovy  |    5 +-
 grails-data-hibernate5/dbmigration/build.gradle    |    1 +
 grails-data-hibernate5/grails-plugin/build.gradle  |    4 +
 grails-data-hibernate7/core/build.gradle           |    2 +
 .../cfg/domainbinding/binder/ColumnBinder.java     |    2 +-
 .../binder/NumericColumnConstraintsBinder.java     |   36 +-
 .../compiler/HibernateEntityTransformation.groovy  |    5 +-
 .../GormNumericTypeColumnIntegrationSpec.groovy    |  101 +
 .../GormNumericTypeColumnPrecisionSpec.groovy      |  108 +
 .../cfg/domainbinding/ColumnBinderSpec.groovy      |    2 +-
 .../NumericColumnConstraintsBinderSpec.groovy      |   85 +-
 .../cfg/domainbinding/SimpleValueBinderSpec.groovy |    6 +-
 grails-data-hibernate7/dbmigration/build.gradle    |    1 +
 grails-data-hibernate7/grails-plugin/build.gradle  |    5 +
 grails-data-mongodb/boot-plugin/build.gradle       |    5 +-
 grails-data-mongodb/core/build.gradle              |    3 +-
 .../datastore/mapping/mongo/MongoDatastore.java    |   80 +-
 .../mongo/MongoDatastoreLifecycleSpec.groovy       |  187 ++
 .../asciidoc/gettingStarted/embeddedMongo.adoc     |  178 ++
 .../docs/src/docs/asciidoc/index.adoc              |    3 +
 grails-data-mongodb/embedded/build.gradle          |   83 +
 .../mongodb/embedded/EmbeddedMongoBackend.java     |   59 +
 .../mongodb/embedded/EmbeddedMongoInitializer.java |  361 +++
 .../mongodb/embedded/EmbeddedMongoLifecycle.java   |   85 +
 .../mongodb/embedded/EmbeddedMongoSettings.java    |   69 +
 .../mongodb/embedded/FlapdoodleMongoBackend.java   |  160 +
 .../mongodb/embedded/InMemoryMongoBackend.java     |  135 +
 .../mongodb/embedded/RunningEmbeddedMongo.java     |   59 +
 .../src/main/resources/META-INF/spring.factories   |    2 +
 .../embedded/EmbeddedMongoInitializerSpec.groovy   |  513 ++++
 .../embedded/EmbeddedMongoLifecycleSpec.groovy     |  204 ++
 .../embedded/EmbeddedMongoSettingsSpec.groovy      |   52 +
 grails-data-mongodb/ext/build.gradle               |    1 +
 grails-data-mongodb/grails-plugin/build.gradle     |    2 +
 grails-data-mongodb/spring-data/build.gradle       |    4 +-
 .../grails-datastore-gorm-neo4j/build.gradle       |   10 +-
 .../grails/databinding/FrameworkPropertyNames.java |   55 +
 .../grails/databinding/SimpleDataBinder.groovy     |   52 +-
 .../grails/databinding/SimpleDataBinderSpec.groovy |   36 +
 grails-databinding/build.gradle                    |    2 +
 .../databinding/DataBindingConfiguration.java      |  132 -
 .../databinding/DataBindingGrailsPlugin.groovy     |   87 +
 .../META-INF/spring-configuration-metadata.json    |    6 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    1 -
 grails-datamapping-core-test/build.gradle          |    2 +-
 grails-datamapping-core/build.gradle               |    2 +-
 grails-datamapping-support/build.gradle            |    3 +-
 grails-datamapping-tck/build.gradle                |    1 +
 grails-datasource/build.gradle                     |    1 +
 .../applicationClass/applicationLifeCycle.adoc     |    2 +
 .../plugins/hookingIntoRuntimeConfiguration.adoc   |  142 +
 .../src/en/guide/spring/springdslAdditional.adoc   |   38 +
 .../guide/theWebLayer/controllers/dataBinding.adoc |    4 +-
 .../guide/theWebLayer/controllers/formtokens.adoc  |    2 +
 .../theWebLayer/gsp/GSPBasics/expressions.adoc     |   12 +
 grails-doc/src/en/guide/upgrading.adoc             |   13 +
 .../src/en/guide/upgrading/upgrading80x.adoc       |  185 +-
 grails-doc/src/en/ref/Constraints/bindable.adoc    |    5 +-
 grails-doc/src/en/ref/Controllers/bindData.adoc    |   50 +-
 grails-doc/src/en/ref/Controllers/withForm.adoc    |    2 +
 grails-domain-class/build.gradle                   |    1 +
 .../DomainClassEnvironmentPostProcessor.groovy     |   70 +
 .../plugins/domain/DomainClassGrailsPlugin.groovy  |   45 +-
 .../GrailsDomainClassAutoConfiguration.groovy      |   78 -
 .../src/main/resources/META-INF/spring.factories   |    5 +-
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    2 +-
 .../domain/AutoTimestampCacheDefaultSpec.groovy    |   97 +
 .../domain/DomainClassGrailsPluginSpec.groovy      |   65 -
 grails-encoder/build.gradle                        |    5 +-
 .../grails/encoder/CodecMetaClassSupport.groovy    |   74 +-
 .../encoder/CodecMetaClassSupportSpec.groovy       |  336 +++
 grails-events/plugin/build.gradle                  |    7 +-
 grails-fields/build.gradle                         |    2 +
 grails-forge/README.md                             |   34 +-
 grails-forge/gradle.properties                     |    1 -
 .../grails/forge/api/GrailsForgeConfiguration.java |   69 +-
 .../api/create/github/GitHubCreateController.java  |  181 --
 .../forge/api/create/github/GitHubCreateDTO.java   |   57 -
 .../api/create/github/GitHubCreateOperation.java   |   76 -
 .../api/create/github/GitHubCreateService.java     |  220 --
 .../api/create/github/GitHubRedirectService.java   |  149 -
 .../grails-forge-api/native-image.properties       |   14 -
 .../forge/api/GrailsForgeConfigurationSpec.groovy} |   46 +-
 .../create/github/GitHubApiMockedController.groovy |  101 -
 .../github/GitHubCreateControllerSpec.groovy       |  116 -
 .../github/GitHubOauthMockedController.groovy      |   45 -
 .../src/test/resources/logback.xml                 |    1 -
 grails-forge/grails-forge-core/build.gradle        |    1 -
 .../forge/client/github/oauth/AccessToken.java     |   59 -
 .../client/github/oauth/GitHubOAuthClient.java     |   37 -
 .../forge/client/github/v3/GitHubApiClient.java    |   39 -
 .../client/github/v3/GitHubApiOperations.java      |   94 -
 .../forge/client/github/v3/GitHubRepository.java   |   89 -
 .../forge/client/github/v3/GitHubSecret.java       |   58 -
 .../grails/forge/client/github/v3/GitHubUser.java  |   68 -
 .../forge/client/github/v3/GitHubWorkflowRun.java  |   67 -
 .../forge/feature/database/GrailsDataMongoDB.java  |   29 +-
 .../forge/feature/database/MongoFeature.java       |   25 +
 .../grails/forge/feature/database/MongoSync.java   |    6 +-
 .../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/util/GitHubUtil.java     |   94 -
 .../feature/database/GrailsDataMongoDBSpec.groovy  |   24 +
 .../forge/feature/database/MongoSyncSpec.groovy    |   18 +
 .../security/SpringBootStarterSecuritySpec.groovy  |   40 +-
 .../grails-forge-web-netty/reflect-config.json     |   30 -
 .../grails-forge-web-netty/resource-config.json    |    5 +-
 .../src/main/resources/application.yml             |   13 +-
 grails-geb/build.gradle                            |    1 +
 .../views/gsp/GroovyPageForkCompileTask.groovy     |   22 +-
 .../plugin/views/gsp/GroovyPagePlugin.groovy       |   12 +
 .../views/gsp/GroovyPageToolchainSpec.groovy       |  108 +
 grails-gsp/core/build.gradle                       |    7 +-
 .../org/grails/gsp/compiler/GroovyPageParser.java  |    3 +
 .../org/grails/gsp/compiler/GroovyPageScanner.java |   13 +-
 .../gsp/GroovyPagesTemplateEngineTests.groovy      |   58 +
 .../org/grails/gsp/GspCompileStaticSpec.groovy     |    9 +
 grails-gsp/grails-layout/build.gradle              |    4 +
 .../sitemesh3/Sitemesh3AutoConfiguration.groovy    |  131 -
 .../Sitemesh3EnvironmentPostProcessor.groovy       |   38 +-
 .../plugins/sitemesh3/Sitemesh3GrailsPlugin.groovy |  119 +-
 .../src/main/resources/META-INF/spring.factories   |    2 +-
 grails-gsp/grails-taglib/build.gradle              |    5 +-
 grails-gsp/grails-web-gsp-taglib/build.gradle      |    2 +
 grails-gsp/grails-web-gsp/build.gradle             |    4 +-
 grails-gsp/grails-web-jsp/build.gradle             |    2 +
 grails-gsp/grails-web-taglib/build.gradle          |    3 +-
 grails-gsp/plugin/build.gradle                     |    9 +-
 .../groovy/org/grails/gsp/compiler/ScanTests.java  |   33 +
 .../web/taglib/AbstractGrailsTagTests.groovy       |   24 +-
 grails-i18n/build.gradle                           |    2 +
 .../GrailsLocaleResolverAutoConfiguration.java     |   22 +-
 .../grails/plugins/i18n/I18nAutoConfiguration.java |  159 -
 .../grails/plugins/i18n/I18nGrailsPlugin.groovy    |  104 +-
 ...railsLocaleResolverAutoConfigurationSpec.groovy |   24 +
 .../plugins/i18n/I18nAutoConfigurationSpec.groovy  |   31 +
 grails-interceptors/build.gradle                   |    1 +
 grails-logging/build.gradle                        |    2 +
 grails-mail/build.gradle                           |    6 +
 .../plugins/mail/MailAutoConfiguration.groovy      |  118 -
 .../grails/plugins/mail/MailGrailsPlugin.groovy    |   79 +-
 .../plugins/mail/MailAutoConfigurationSpec.groovy  |  150 +
 grails-mimetypes/build.gradle                      |    1 +
 grails-redis/build.gradle                          |    2 +-
 grails-rest-transforms/build.gradle                |    1 +
 grails-scaffolding/build.gradle                    |    7 +
 grails-services/build.gradle                       |    1 +
 grails-spring-security/ldap/plugin/build.gradle    |    4 +
 grails-spring-security/oauth2/plugin/build.gradle  |    4 +-
 grails-spring-security/plugin/build.gradle         |    4 +
 grails-spring-security/rest/core/build.gradle      |    3 +
 grails-spring-security/rest/gorm/build.gradle      |    1 +
 .../rest/grailscache/build.gradle                  |    3 +
 grails-spring-security/rest/memcached/build.gradle |    1 +
 grails-spring-security/rest/redis/build.gradle     |    1 +
 grails-spring-security/ui/plugin/build.gradle      |    4 +
 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 -
 .../functionaltests/ManagedEntityDomain.groovy     |   18 +-
 .../beans-dsl-plugin}/build.gradle                 |   46 +-
 .../groovy/beandsl/example/plugin/Farewell.groovy  |   24 +-
 .../example/plugin/FarewellGrailsPlugin.groovy     |   47 +
 .../groovy/beandsl/example/plugin/Greeting.groovy  |   24 +-
 .../example/plugin/GreetingGrailsPlugin.groovy     |   52 +
 .../FarewellGrailsPluginAutoDiscoverySpec.groovy   |   74 +
 .../GreetingGrailsPluginAutoDiscoverySpec.groovy   |   82 +
 .../beans-dsl}/build.gradle                        |   41 +-
 .../groovy/beandsl/example/ExampleBeans.groovy     |   41 +-
 .../groovy/beandsl/example/FancyGreeter.groovy     |   20 +-
 .../src/main/groovy/beandsl/example/Greeter.groovy |   24 +-
 .../main/groovy/beandsl/example/LoudGreeter.groovy |   26 +-
 .../ExampleBeansAutoConfigurationSpec.groovy       |   74 +
 .../example/ExampleBeansAutoDiscoverySpec.groovy   |   62 +
 .../src/test/groovy/demo/TestControllerSpec.groovy |    7 +
 grails-test-examples/gsp-layout/build.gradle       |    4 +
 .../views/gsp/layout/AbstractGrailsTagTests.groovy |   24 +-
 .../hibernate5/criteria-extension/build.gradle     |    4 +
 .../build.gradle                                   |    2 +
 .../grails-hibernate-groovy-proxy/build.gradle     |    4 +
 .../grails-multiple-datasources/build.gradle       |    2 +
 .../build.gradle                                   |    2 +
 .../functionaltests/ManagedEntityDomain.groovy     |   18 +-
 .../hibernate7/criteria-extension/build.gradle     |    4 +
 .../src/test/groovy/demo/TestControllerSpec.groovy |    7 +
 .../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 +
 grails-test-examples/redis/build.gradle            |    4 +
 .../acl/functional-test-app/build.gradle           |    2 +
 .../acl/integration-test-app/build.gradle          |    2 +
 .../spring-security/cas/test1/build.gradle         |    2 +
 .../core/functional-test-app/build.gradle          |    2 +
 .../core/integration-test-app/build.gradle         |    2 +
 .../misc-functional-test-app/group/build.gradle    |    2 +
 .../misc-functional-test-app/roles/build.gradle    |    2 +
 .../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-suite-base/build.gradle                |    1 +
 .../web/databinding/GrailsWebDataBinderSpec.groovy |  310 +-
 .../commons/DefaultGrailsCodecClassTests.groovy    |   16 +
 .../grails/plugins/CoreGrailsPluginTests.groovy    |   68 +-
 grails-test-suite-web/build.gradle                 |    2 +
 ...ngHelperDomainClassSpecialPropertiesSpec.groovy |  113 +-
 .../groovy/org/grails/web/codecs/CodecSpec.groovy  |   40 +
 .../web/commandobjects/CommandObjectsSpec.groovy   |   29 +
 .../grails/web/servlet/BindDataMethodTests.groovy  | 1441 ++++++++-
 .../mvc/SynchronizerTokensHolderTests.groovy       |  145 +
 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-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                   |    2 +
 .../web/mapping/UrlMappingsAutoConfiguration.java  |  102 -
 .../web/mapping/UrlMappingsGrailsPlugin.groovy     |   63 +-
 .../UrlMappingsAutoConfigurationSpec.groovy        |   84 +
 grails-validation/build.gradle                     |    1 +
 grails-views-core/build.gradle                     |    4 +-
 grails-views-gson/build.gradle                     |    6 +-
 grails-views-markup/build.gradle                   |    3 +-
 grails-web-boot/build.gradle                       |    1 +
 grails-web-common/build.gradle                     |    2 +
 grails-web-core/build.gradle                       |    1 +
 grails-web-databinding/build.gradle                |    1 +
 .../groovy/grails/web/databinding/BindAllowed.java |   23 +-
 .../grails/web/databinding/DataBinder.groovy       |    8 +-
 .../grails/web/databinding/DataBindingUtils.java   |  412 ++-
 .../web/databinding/GrailsWebDataBinder.groovy     |  396 ++-
 .../web/databinding/MissingPropertyClearer.java    |  823 +++++
 .../DataBindingEventMulticastListener.groovy       |    4 +
 .../databinding/DefaultASTDatabindingHelper.java   |  107 +-
 .../web/databinding/DenyByDefaultConfigSpec.groovy |  103 +
 grails-web-mvc/build.gradle                        |    1 +
 .../servlet/mvc/SynchronizerTokensHolder.groovy    |   90 +-
 grails-web-url-mappings/build.gradle               |    2 +
 settings.gradle                                    |    9 +
 threat-model.yaml                                  |    1 -
 379 files changed, 21700 insertions(+), 4267 deletions(-)
 create mode 100644 .agents/skills/gradle-developer/SKILL.md
 create mode 100644 .github/workflows/benchmark.yml
 create mode 100644 .github/workflows/validate-actions.yml
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/AutoConfigurationImportsPlugin.groovy
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GenerateAutoConfigurationImportsTask.groovy
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsValidateActionsPlugin.groovy
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/TestTaskShardingPlugin.groovy
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/ValidateActionsTask.groovy
 create mode 100644 
build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GenerateAutoConfigurationImportsTaskSpec.groovy
 create mode 100644 
build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/TestTaskShardingPluginSpec.groovy
 copy {grails-databinding => grails-beans-dsl}/build.gradle (63%)
 create mode 100644 
grails-beans-dsl/src/main/java/grails/compiler/beans/GrailsBeans.java
 create mode 100644 
grails-beans-dsl/src/main/java/org/grails/compiler/beans/GrailsBeansASTTransformation.java
 create mode 100644 
grails-beans-dsl/src/test/groovy/org/grails/compiler/beans/GrailsBeansASTTransformationSpec.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-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-benchmarks/src/main/groovy/org/apache/grails/benchmarks/interceptors/InterceptorFixture.groovy
 (71%)
 create mode 100644 
grails-benchmarks/src/main/groovy/org/apache/grails/benchmarks/urlmappings/UrlMappingsFixture.groovy
 copy 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecretsPublicKey.java
 => 
grails-benchmarks/src/main/groovy/org/apache/grails/benchmarks/views/ViewTemplateFixture.groovy
 (51%)
 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
 create mode 100644 
grails-bootstrap/src/test/groovy/org/grails/io/watch/DirectoryWatcherSpec.groovy
 delete mode 100644 
grails-cache/src/main/groovy/grails/plugin/cache/GrailsCacheAutoConfiguration.groovy
 rename 
grails-cache/src/test/groovy/grails/plugin/cache/{GrailsCacheAutoConfigurationSpec.groovy
 => CacheAutoConfigurationSpec.groovy} (53%)
 delete mode 100644 
grails-cache/src/test/groovy/grails/plugin/cache/CacheGrailsPluginSpec.groovy
 create mode 100644 
grails-codecs/src/test/groovy/org/grails/plugins/codecs/CodecsConfigurationSpec.groovy
 delete mode 100644 
grails-core/src/main/groovy/org/grails/plugins/core/CoreAutoConfiguration.java
 create mode 100644 
grails-core/src/main/groovy/org/grails/spring/beans/AbstractResourceLocatorPostProcessor.java
 create mode 100644 
grails-core/src/main/groovy/org/grails/spring/context/annotation/GrailsComponentScanPostProcessor.java
 delete mode 100644 
grails-core/src/test/groovy/grails/spring/GrailsPlaceHolderConfigurerCorePluginRuntimeSpec.groovy
 create mode 100644 
grails-core/src/test/groovy/org/grails/plugins/CoreAutoConfigurationSpec.groovy
 create mode 100644 
grails-core/src/test/groovy/org/grails/plugins/CoreGrailsPluginRegistrarSpec.groovy
 create mode 100644 
grails-core/src/test/groovy/org/grails/plugins/SpringBeanPackagesSpec.groovy
 rename 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/GitHubOAuthOperations.java
 => grails-core/src/test/groovy/org/grails/plugins/scan/ScannedComponent.groovy 
(58%)
 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-mongodb/core/src/test/groovy/org/grails/datastore/mapping/mongo/MongoDatastoreLifecycleSpec.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/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/EmbeddedMongoSettingsSpec.groovy
 create mode 100644 
grails-databinding-core/src/main/groovy/grails/databinding/FrameworkPropertyNames.java
 delete mode 100644 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingConfiguration.java
 delete mode 100644 
grails-databinding/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
 create mode 100644 
grails-domain-class/src/main/groovy/org/grails/plugins/domain/DomainClassEnvironmentPostProcessor.groovy
 delete mode 100644 
grails-domain-class/src/main/groovy/org/grails/plugins/domain/GrailsDomainClassAutoConfiguration.groovy
 copy {grails-gsp/grails-sitemesh3 => 
grails-domain-class}/src/main/resources/META-INF/spring.factories (86%)
 create mode 100644 
grails-domain-class/src/test/groovy/org/grails/plugins/domain/AutoTimestampCacheDefaultSpec.groovy
 delete mode 100644 
grails-domain-class/src/test/groovy/org/grails/plugins/domain/DomainClassGrailsPluginSpec.groovy
 create mode 100644 
grails-encoder/src/test/groovy/org/grails/encoder/CodecMetaClassSupportSpec.groovy
 delete mode 100644 
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateController.java
 delete mode 100644 
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateDTO.java
 delete mode 100644 
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateOperation.java
 delete mode 100644 
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubCreateService.java
 delete mode 100644 
grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/github/GitHubRedirectService.java
 delete mode 100644 
grails-forge/grails-forge-api/src/main/resources/META-INF/native-image/org.grails.forge.api/grails-forge-api/native-image.properties
 rename 
grails-forge/{grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubWorkflowRuns.java
 => 
grails-forge-api/src/test/groovy/org/grails/forge/api/GrailsForgeConfigurationSpec.groovy}
 (50%)
 delete mode 100644 
grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/create/github/GitHubApiMockedController.groovy
 delete mode 100644 
grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/create/github/GitHubCreateControllerSpec.groovy
 delete mode 100644 
grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/create/github/GitHubOauthMockedController.groovy
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/AccessToken.java
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/oauth/GitHubOAuthClient.java
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubApiClient.java
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubApiOperations.java
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubRepository.java
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecret.java
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubUser.java
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubWorkflowRun.java
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/securityConfig.rocker.raw
 delete mode 100644 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/util/GitHubUtil.java
 delete mode 100644 
grails-forge/grails-forge-web-netty/src/main/resources/META-INF/native-image/org.grails.forge/grails-forge-web-netty/reflect-config.json
 create mode 100644 
grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageToolchainSpec.groovy
 delete mode 100644 
grails-gsp/grails-sitemesh3/src/main/groovy/org/grails/plugins/sitemesh3/Sitemesh3AutoConfiguration.groovy
 delete mode 100644 
grails-i18n/src/main/groovy/org/grails/plugins/i18n/I18nAutoConfiguration.java
 delete mode 100644 
grails-mail/src/main/groovy/grails/plugins/mail/MailAutoConfiguration.groovy
 create mode 100644 
grails-mail/src/test/groovy/grails/plugins/mail/MailAutoConfigurationSpec.groovy
 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
 copy 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-test-examples/app1/grails-app/domain/functionaltests/ManagedEntityDomain.groovy
 (71%)
 copy {grails-i18n => grails-test-examples/beans-dsl-plugin}/build.gradle (55%)
 copy 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/Farewell.groovy
 (71%)
 create mode 100644 
grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/FarewellGrailsPlugin.groovy
 copy 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/Greeting.groovy
 (71%)
 create mode 100644 
grails-test-examples/beans-dsl-plugin/src/main/groovy/beandsl/example/plugin/GreetingGrailsPlugin.groovy
 create mode 100644 
grails-test-examples/beans-dsl-plugin/src/test/groovy/beandsl/example/plugin/FarewellGrailsPluginAutoDiscoverySpec.groovy
 create mode 100644 
grails-test-examples/beans-dsl-plugin/src/test/groovy/beandsl/example/plugin/GreetingGrailsPluginAutoDiscoverySpec.groovy
 copy {grails-mimetypes => grails-test-examples/beans-dsl}/build.gradle (62%)
 rename 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/client/github/v3/GitHubSecretsPublicKey.java
 => 
grails-test-examples/beans-dsl/src/main/groovy/beandsl/example/ExampleBeans.groovy
 (53%)
 copy 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-test-examples/beans-dsl/src/main/groovy/beandsl/example/FancyGreeter.groovy
 (72%)
 copy 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-test-examples/beans-dsl/src/main/groovy/beandsl/example/Greeter.groovy 
(71%)
 copy 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-test-examples/beans-dsl/src/main/groovy/beandsl/example/LoudGreeter.groovy
 (66%)
 create mode 100644 
grails-test-examples/beans-dsl/src/test/groovy/beandsl/example/ExampleBeansAutoConfigurationSpec.groovy
 create mode 100644 
grails-test-examples/beans-dsl/src/test/groovy/beandsl/example/ExampleBeansAutoDiscoverySpec.groovy
 copy 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-test-examples/hibernate7/app1/grails-app/domain/functionaltests/ManagedEntityDomain.groovy
 (71%)
 delete mode 100644 
grails-url-mappings/src/main/groovy/org/grails/plugins/web/mapping/UrlMappingsAutoConfiguration.java
 copy 
grails-databinding/src/main/groovy/org/grails/plugins/databinding/DataBindingGrailsPlugin.groovy
 => 
grails-web-databinding/src/main/groovy/grails/web/databinding/BindAllowed.java 
(71%)
 create mode 100644 
grails-web-databinding/src/main/groovy/grails/web/databinding/MissingPropertyClearer.java
 create mode 100644 
grails-web-databinding/src/test/groovy/grails/web/databinding/DenyByDefaultConfigSpec.groovy

Reply via email to