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

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


    from 124eaf76c8 Bump actions/cache from 4 to 5
     add 4b3f9b5fb9 Bump actions/upload-artifact from 4 to 6
     add 92edc85665 Merge pull request #15292 from 
apache/dependabot/github_actions/actions/upload-artifact-6
     add 49710de1d7 documentation - removing old coordinates, assume the bom is 
applied, and add rxjava3 references
     add 48e904510f Merge pull request #15288 from jdaugherty/7.0.x
     add 351fda50b9 Add IntelliJ IDEA Enhanced HotSwap to reloading guide
     add 4c9e27ab8c Update 
grails-doc/src/en/guide/gettingStarted/developmentReloading.adoc
     add 6ff705f7a3 Update 
grails-doc/src/en/guide/gettingStarted/developmentReloading.adoc
     add 48967769ee Add Oxford Comma
     add 31a766ca28 Rephrase JRebel plugin mention for clarity
     add 39347a34fe Merge pull request #15287 from apache/intellij-hotswap-debug
     add b184964f0f doc - #15293 - add warning about invokedynamic performance
     add ee433a4ed0 Merge pull request #15296 from jdaugherty/7.0.x
     add e663f8da7a fix: compatibility with Docker 29
     add 3a9cf11a4a Merge pull request #15298 from apache/docker-compat
     add 48ba3b2c79 fix: add app class to `urlMappingsReport` task args
     add add688dceb fix: remove unused `grails.factories` file
     add cb25fc26cd chore: cleanup `ApplicationCommand` and 
`UrlMappingsReportCommand`
     add ffc2974659 fix: guard against multiple task registrations
     add 865a390704 fix: handle missing configurations in buildClasspath setup
     add c9b28bcd62 fix: compile error
     add 3abe0bd566 Merge pull request #15295 from apache/issue-15286
     add b5b0a523c2 Update spring-boot.version to 3.5.9
     add 679a0c30e6 Merge pull request #15303 from apache/spring-boot-3.5.9
     add 7c8eb5549b Exclude logback-core in jakartaeeMigration
     add 3f3b5bad89 Correct branch version for Grails 7 in README
     add 1bf8b09703 Update date formats for data binding documentation
     add 75bc0530de Merge pull request #15308 from 
Ajay9704/update-date-formats-docs
     add b42e806a40 Update grails-publish-plugin version to 0.0.4
     add 0c2db79e20 Add missing application.yml examples to docs
     add a6d3b23a61 Merge pull request #15309 from 
Ajay9704/update-missing-application-yml-docs
     add 7c2a98082e [skip ci] Release v7.0.5
     add f77dfba694 [skip ci] Bump version to 7.0.6-SNAPSHOT
     add ff13ddba5f Merge pull request #15313 from apache/merge-back-7.0.5
     add c5276c68d6 Add instructions for republishing Grails Website to 
release.md
     add d14b57bdaa docs: migrate Java EE links to Jakarta EE
     add ace0ed1f33 Merge pull request #15314 from apache/migrate-javaee-links
     add d584bbc9c3 Issue-15254 Docs - Multiple issues with Tag Library 
documentation
     add 8c02b5d076 Examples are now TagLib examples
     add bf9a8aa9df Update grails-doc/src/en/ref/Tag Libraries/flash.adoc
     add 2ec7f5e105 Update grails-doc/src/en/ref/Tag Libraries/pageScope.adoc
     add 7e03e043d2 Update grails-doc/src/en/ref/Tag 
Libraries/servletContext.adoc
     add 958b3c373a Added better TagLib session example
     add 87f05a3d44 Even better TagLib session example
     add 9ae247fd21 Merge pull request #15304 from 
dauer/issue-15254-docs-issues-tag-library-documentation
     add b7f21b3732 build - allow for mavenLocal() usage without having to 
change commented code in files
     add 8513c56772 Merge pull request #15318 from jdaugherty/7.0.x
     add 3efdbb19d3 build - update IDEA codestyle to add blank line after class 
header to match codestyle validation
     add 12897ede36 15315 - refactor codestyle configuration into a plugin
     add 3cb965013d Merge pull request #15316 from jdaugherty/codestyle-refactor
     add f2e91ff61c Docs - various documentation related chores/cleanups
     add 3cf7d27fc8 Merge branch '7.0.x' into docs-various-chores-links-typos
     add dc50fe638a Merge pull request #15305 from 
dauer/docs-various-chores-links-typos
     add e20c91bef6 fix: improve new app welcome page
     add 0c6eb27769 fix: change the community card
     add 3d18f2ee1e fix: remove unused asset images
     add c6d0a6da0c fix: update asset handling in forge
     add 5d7537a799 test(forge): move assets test to `AssetPipelineSpec`
     add 447e348730 fix(feedback): mention GH discussions
     add 331ea10613 Merge pull request #15317 from apache/app-welcome-page
     add ecc4a6ece6 Add matomo groovydocs 15133 (#15312)
     add e4663d5753 #15321 - docs - fix list items in groovy upgrade notes
     add 32a03dc1bc #15321 - disable invoke dynamic by default
     add 4cda35a8e6 Merge pull request #15322 from apache/invokeDynamicDisable
     add 314fc37eb3 #15302 - fix(breaking) property name resolution when 
generating grails-bom
     add afdbe70f84 #15302 - various versions & pom property fixes * correct 
incorrect keys that had partial matches * map profile properties to have a 
prefix of 'grails-profile' * remove duplicate entries * fix versions adoc to 
match pom values
     add 2cbe5a0cf5 #15302 - update documentation per feedback
     add cb72050f7f Merge pull request #15319 from 
apache/grails-bom-property-name-fix
     add aa103fae63 #15324 - dependencies - Update to Groovy 4.0.30 & support 
changing to a staged version of Groovy
     add 5f903f078a #15324 - build - rework the repository definitions to be 
centrally defined in a repository settings plugin
     add d17aa4961d #14887 - feature - add GRAILS_REPO_URL support for profiles 
& support many repos instead of one.
     add e9f5507c5c #15324 - feature - rework gradle repos selected for 
snapshot builds in grails-forge-cli
     add c08fa9aeb6 #15324 - fix - remove exclusion setting due to 
https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/368
 being fixed to correctly pull in bom overrides
     add 44bbef5bad #15324 - fix - explicitly define groovy in the bom so when 
using the spring dependency management plugin, the correct version is chosen
     add 6e64c6ce3e #15324 - test - always show full stacktraces in forge tests
     add b7f53c6f4c #15324 - fix - exclusions in grails-gsp are correctly being 
applied so groovy-json & spring-mvc are not exposed anymore
     add dbce837993 build - build forge when testing reproducibility
     add 533f7bfd58 fix: add comments to removed dependency exclusions
     add 3c42eaeb62 Merge pull request #15320 from jdaugherty/7.0.x
     add a5e5dc5b33 Update asset-pipeline and WebJars require paths
     add 0635c3ed27 Merge pull request #15328 from apache/asset-pipeline-5.0.28
     add e483c72708 #14887 - fix - create-app command
     add 09a0c5dafc #14887 - fix - do not include snapshots repo unless it's a 
snapshot for grails-shell created apps
     add 07a6484b41 feature - update to asset pipeline 29
     add 44d3bd9569 fix special repos in grails-shell app generation
     add c7e169ad6e [skip ci] share the same concurrency group in release-notes 
& releases to prevent stepping on each workflows / causing release builds to 
fail
     add 9ac2261af8 #14887 - fix indentation
     add 46450a5747 restore correct groupings for grails-bom
     add aade916907 Revise verification instructions due to new profile support 
for GRAILS_REPO_URL
     add d1f7008e3d fix(build): remove duplicate `gradle-spock.version`
     add 6c2f66f4a3 fix(docs): correct path for copying build diffs
     add 9fbba368be Upgrade to Spring Boot 3.5.10
     add da7a04e33e Merge pull request #15331 from apache/spring-boot-3.5.10
     add b391469510 Merge branch '7.0.x' into post-7.0.6-fixes
     add 5cdfde439a Merge pull request #15332 from apache/post-7.0.6-fixes
     add b7c9ed4dcf Upgrade to Gradle 8.14.4 and support Java 25 on Forge
     add 5ea8ebadcd Merge pull request #15333 from apache/gradle-8.14.4
     add 195c8091d3 [skip ci] Release v7.0.6
     add ed4c7d54ff [skip ci] Bump version to 7.0.7-SNAPSHOT
     add 3b4a541c36 Merge pull request #15345 from apache/merge-back-7.0.6
     add c8fb6af583 docs: fix links
     add 0709f688dd Merge pull request #15353 from apache/doc-links
     add 227da5ae52 Adjust CI Java matrix to 17 and 25
     add 1f6559728a Update Groovy version to 3.0.25 in multiple modules
     add 4c25543aff Update generated app Gradle wrapper to 8.14.4
     add 83e16868f1 Update Gradle tooling API to 8.14.4
     add 5e0f28ffb9 Adjust CI Java matrix to 17 and 21
     add f166e3ed8b Sync Java version 17.0.18 across .sdkmanrc, release.yml, 
and Dockerfile
     add 5715c3180f Add cross-reference comments for Gradle version locations
     add ce07dd577c Merge pull request #15355 from 
apache/deps/update-java-gradle-groovy-versions
     add 777e22a397 Remove pull_request_target from release drafter
     add 8acce051d7 Optimize CI workflow to reduce build time
     add 4eb84a4342 Fix flaky tests caused by ThreadLocal pollution in parallel 
execution
     add 1010606a47 Fix database-per-tenant test isolation
     add fe3e25c4d1 Limit CI matrix OS/Java combinations
     add caa9ce2417 Fix command object shared constraint test isolation
     add 07ffedbf6f Fix mime type test isolation by clearing static cache
     add 7f32b71924 Add test isolation fixes for parallel test execution
     add 96ec6523b5 Remove hardcoded test parallelism restriction from 
grails-gsp
     add 636e98b995 Add cleanup method to RespondMethodSpec for test isolation
     add 59dcd50061 Fix WithFormatContentTypeSpec parallel test isolation
     add 3a9df26354 Fix additional Holders.clear() calls that could cause 
parallel test flakiness
     add cb751d6a86 Enable cancel-in-progress for PR workflow runs
     add c6789d1734 Fix URL mapping artefact isolation for parallel test 
execution
     add 83774cf385 Fix MIME type lookup isolation for parallel test execution
     add bf78a4cbae Remove Develocity test retries now that flaky tests are 
fixed
     add fdaf826a6c Fix shared constraint cache isolation for parallel test 
execution
     add 461813e5a7 Add additional test isolation fixes for parallel execution
     add 0853424edc Enable cancel-in-progress for PR runs in all CI workflows
     add d2880650b3 Use @RestoreSystemProperties for cleaner test isolation
     add f1f8aca9ef Add cleanup for HttpServletResponseExtension.@mimeTypes in 
all test files
     add 2a04d423ee Use proper imports instead of inline fully-qualified class 
names
     add 8b1c0eb74b Add cleanup for constraint caches to be good citizens in 
parallel tests
     add 6440ef70eb Rename clearConstraintsMap() to clearConstraintsMapCache() 
for clarity
     add 3850905c68 Use reflection to clear Validateable constraints cache 
instead of public API
     add e6f28c3718 Disable Groovy compilation cache in CI to ensure AST 
transformations are applied
     add 2a1df04505 Fix multi-tenancy test isolation in MongoDB specs for 
parallel execution
     add 0ef534f75d Fix NPE in HttpServletResponseExtension.getMimeTypes() for 
parallel test execution
     add 733cae94a7 Fix CommandObjectsSpec shared constraint test isolation
     add 375f7f3c93 Fix RestfulReverseUrlRenderingTests URL mapping isolation 
for parallel execution
     add e4efb4711d Remove @Isolated annotations and update misleading parallel 
test comments
     add f6b876fddc Fix RespondMethodSpec Windows test isolation issue by 
setting explicit HTML format
     add 9e1503f042 Fix RestfulReverseUrlRenderingTests by re-registering URL 
mappings in setup
     add 5d3717ca08 Fix CommandObjectsSpec by clearing 
ConstraintEvalUtils.defaultConstraintsMap in setup/cleanup
     add 1e82ee8d1a Fix mockArtefact to refresh linkGenerator's 
urlMappingsHolder reference
     add bd6e1e5580 Fix FormTagLibTests to refresh linkGenerator's 
urlMappingsHolder reference
     add 6a7930c34b Fix test isolation for constraint cache and MIME type cache
     add 0bd3006cf7 Fix test isolation for system property manipulation in tests
     add bb193ba83f Fix shared constraint test by ensuring grailsApplication is 
initialized before clearing caches
     add 0f97dc4714 Fix MIME type tests by ensuring grailsApplication is 
initialized before clearing cache
     add 5efd1aba8d Fix RestfulReverseUrlRenderingTests by ensuring 
grailsApplication is initialized before accessing artefacts
     add 76a8df6285 Merge 7.0.x into improve-gh-ci-speed
     add 37c5907efc Fix YamlPropertySourceLoaderSpec by ensuring development 
environment is set before tests
     add ddf492abe2 Update Gradle workflow to use --rerun-tasks flag
     add bef53ffe46 Update comment in getMimeTypes method
     add 7180d65c13 Remove Develocity test distribution configuration
     add 1fe0a7db85 Update test comments for clarity on environment pollution
     add 3ee3b5400b Merge pull request #15335 from apache/improve-gh-ci-speed
     add 2b92500ad4 Update asset pipeline to 5.0.30
     add 5ecbbc489e Merge pull request #15360 from jdaugherty/7.0.x
     add 45b4680c96 [skip ci] Release v7.0.7
     add 417f674d47 chore: cleanup release verification script
     add 1b97a999fc Merge pull request #15366 from apache/post-7.0.7-release
     add 399d3ad4e7 Update Develocity server URLs to develocity.apache.org
     add a88494b4dd Merge pull request #15362 from apache/develocity-apache-org
     add e69afe5d9d test(integration): Add comprehensive integration tests for 
Grails features
     add e4cb761c5d fix: Add Apache License headers and fix failing integration 
tests
     add e8adf0143f test: Review suggestions and stability improvements for 
slow CI
     add 0f21207d5f test(cache): Add comprehensive @Cacheable tests to 
grails-test-examples
     add 6b90174dfc refactor(test-examples): Use explicit params.subMap() for 
data binding
     add b585f97d2a test(integration): Add comprehensive tests for datasources, 
external config, and plugins
     add 4bf8d90c33 test(integration): Implement incomplete test assertions and 
expand coverage
     add 8b288c6a5b test(integration): Add comprehensive tests based on Grails 
documentation
     add b1389e7710 fix: Test stability and correctness improvements
     add ea770fc500 Merge pull request #15348 from 
apache/test/expand-integration-test-coverage
     add 96000603c7 docs: create AGENTS.md for AI LLM crawlers
     add 4023de3b41 Revise and expand AGENTS.md with agent and dev guide
     add 85ecb155bd Add developer skills for AI coding agents
     add ff2c8bd20a Add agent instruction files for major AI coding assistants
     add 2ccfbf1027 Merge branch '7.0.x' into task/add-agents-md-15145
     add 9f5bc19602 Convert agent instruction files to symlinks pointing to 
AGENTS.md
     add d23ec369a7 Add mandatory skill file reading instructions for AI agents
     add ea9a37ec16 Add Claude Code skill symlinks for developer guides
     add 364d631525 Convert GEMINI.md to symlink pointing to AGENTS.md
     add 4d028e2a36 Remove copilot-instructions symlink
     add 89b1567190 Update AGENTS.md with project structure and PR guidelines
     add f9d59169e1 Address matrei's review feedback on AGENTS.md and skills
     add b5116d6b58 Address remaining matrei review comments on 
groovy-developer skill
     add ee2976569b Merge pull request #15340 from 
sanjana2505006/task/add-agents-md-15145
     add 105c12e1b4 Update root-reserve-mb to 4096 in gradle.yml
     add 2f307d3d29 Increase root reserve space to 4 GB in release workflow
     add 6fe1360fca Add standalone workflow for publishing documentation
     add a42aa087f6 Merge pull request #15368 from 
apache/ci/publish-docs-workflow
     add 74a4bdd3f8 Use workflow_dispatch ref instead of manual inputs
     add 6420033e8b Merge pull request #15369 from 
apache/ci/publish-docs-workflow
     add c828b81ee3 Add version input while using branch from workflow dispatch
     add cd67c3f3d2 Merge pull request #15370 from 
apache/ci/publish-docs-workflow
     add a91af5588f Set build-mount-path to /home/runner
     add 45df475255 Merge pull request #15371 from 
apache/ci/publish-docs-workflow
     add 6cce089473 Increase build runner root reserve to 6 GB
     add 0aba2a9f8b Remove build-mount-path from publish-docs workflow
     add 771d483924 Remove maximize-build-space step from workflow
     add 801c628822 Merge branch '7.0.x' into release-7.0.7-docs
     add eda4479a88 Maximize build space in publish-docs workflow
     add d0696e686c Replace maximize-build-space with manual cleanup
     add a5d9f71834 Update build space maximization method in workflow
     add 0047ba6337 Add release-close workflow; rename publish-docs
     add 01764cf338 Merge branch '7.0.x' into release-7.0.7-docs
     add ea12b76202 [skip ci] Bump version to release-7.0.8-SNAPSHOT
     add 207758c8df Fix expected Grails version in unit test
     add aafb7158b8 Update project version to 7.0.8-SNAPSHOT
     add 69e47e3d62 Merge pull request #15372 from 
apache/merge-back-release-7.0.7-docs
     add 80f93d9948 Bump com.gradle.develocity from 4.1.1 to 4.2.2 in 
/grails-forge
     add 2e47155016 Merge pull request #15137 from 
apache/dependabot/gradle/grails-forge/7.0.x/com.gradle.develocity-4.2.2
     add 71ff7bf92f Merge branch '7.0.x' into 
dependabot/github_actions/actions/cache-5

No new revisions were added by this update.

Summary of changes:
 .agents/skills/grails-developer/SKILL.md           | 885 ++++++++++++++++++
 .agents/skills/groovy-developer/SKILL.md           | 521 +++++++++++
 .agents/skills/java-developer/SKILL.md             | 286 ++++++
 .claude/skills/grails-developer/SKILL.md           |   1 +
 .claude/skills/groovy-developer/SKILL.md           |   1 +
 .claude/skills/java-developer/SKILL.md             |   1 +
 .clinerules                                        |   1 +
 .cursorrules                                       |   1 +
 .github/workflows/codeql.yml                       |   2 +-
 .github/workflows/codestyle.yml                    |   8 +-
 .github/workflows/gradle.yml                       | 100 ++-
 .github/workflows/groovy-joint-workflow.yml        |   9 +-
 .github/workflows/rat.yml                          |   4 +-
 .github/workflows/release-close.yml                |  96 ++
 .github/workflows/release-notes.yml                |   8 +-
 .github/workflows/release-publish-docs.yml         |  79 ++
 .github/workflows/release.yml                      |  27 +-
 .idea/codeStyles/Project.xml                       |   6 +
 .sdkmanrc                                          |   7 +-
 .windsurfrules                                     |   1 +
 AGENTS.md                                          | 260 ++++++
 CLAUDE.md                                          |   1 +
 GEMINI.md                                          |   1 +
 INSTALL                                            |   4 +
 README.md                                          |   2 +-
 RELEASE.md                                         |   2 +-
 build-logic/docs-core/build.gradle                 |   8 +-
 .../gradle/tasks/bom/CoordinateHolder.groovy       |   2 +-
 .../tasks/bom/CoordinateVersionHolder.groovy       |  10 +
 .../tasks/bom/ExtractDependenciesTask.groovy       |  24 +-
 .../gradle/tasks/bom/PropertyNameCalculator.groovy |  28 +-
 .../gradle/wrapper/gradle-wrapper.properties       |   4 +-
 build-logic/plugins/build.gradle                   |   8 +
 .../buildsrc/GrailsCodeStyleExtension.groovy       |  53 ++
 .../grails/buildsrc/GrailsCodeStylePlugin.groovy   | 171 ++++
 .../buildsrc/GrailsRepoSettingsPlugin.groovy       | 113 +++
 .../checkstyle/checkstyle-suppressions.xml         |   0
 .../checkstyle/checkstyle.xml                      |   0
 .../codenarc/codenarc.groovy                       |   0
 build-logic/settings.gradle                        |  19 +-
 build.gradle                                       |   2 +-
 buildSrc/build.gradle                              |   2 +-
 buildSrc/settings.gradle                           |  73 +-
 dependencies.gradle                                |  77 +-
 etc/bin/Dockerfile                                 |   3 +-
 etc/bin/test-reproducible-builds.sh                |   5 +
 etc/bin/verify.sh                                  |  49 +-
 gradle.properties                                  |   6 +-
 gradle/code-style-config.gradle                    |  69 --
 gradle/docs-dependencies.gradle                    |  17 +
 gradle/test-config.gradle                          |  23 +-
 gradle/wrapper/gradle-wrapper.properties           |   4 +-
 grails-async/core/build.gradle                     |   2 +-
 grails-async/gpars/build.gradle                    |   2 +-
 grails-async/plugin/build.gradle                   |   2 +-
 grails-async/rxjava/build.gradle                   |   2 +-
 grails-async/rxjava2/build.gradle                  |   2 +-
 grails-async/rxjava3/build.gradle                  |   2 +-
 grails-bom/build.gradle                            |  58 +-
 grails-bootstrap/build.gradle                      |   2 +-
 grails-cache/build.gradle                          |   2 +-
 grails-codecs-core/build.gradle                    |   2 +-
 grails-codecs/build.gradle                         |   2 +-
 grails-common/build.gradle                         |   2 +-
 grails-console/build.gradle                        |   2 +-
 grails-controllers/build.gradle                    |   2 +-
 grails-converters/build.gradle                     |   2 +-
 grails-core/build.gradle                           |   2 +-
 .../grails/dev/commands/ApplicationCommand.groovy  |  41 +-
 .../grails/boot/DevelopmentModeWatchSpec.groovy    |   4 +-
 ...aceHolderConfigurerCorePluginRuntimeSpec.groovy |   2 +
 .../test/groovy/grails/util/GrailsUtilTests.java   |   2 +-
 .../compiler/injection/GrailsASTUtilsTests.groovy  |   9 +-
 .../injection/GrailsArtefactTransformerSpec.groovy |   6 +-
 .../config/NavigableMapSpringProfilesSpec.groovy   |   2 +
 .../config/YamlPropertySourceLoaderSpec.groovy     |   8 +-
 .../org/grails/plugins/GrailsPluginTests.groovy    |   9 +-
 grails-data-docs/stage/build.gradle                |  17 +
 grails-data-graphql/gradle.properties              |   2 +-
 grails-data-graphql/settings.gradle                |   2 +-
 grails-data-hibernate5/boot-plugin/build.gradle    |   2 +-
 grails-data-hibernate5/core/build.gradle           |   2 +-
 .../MultiTenancyBidirectionalManyToManySpec.groovy |   2 +
 .../connections/SchemaMultiTenantSpec.groovy       |   3 +
 .../hibernate/connections/SingleTenantSpec.groovy  |   3 +
 grails-data-hibernate5/dbmigration/README.md       |   4 +-
 grails-data-hibernate5/dbmigration/build.gradle    |  15 +-
 grails-data-hibernate5/docs/build.gradle           |  17 +
 .../asciidoc/gettingStarted/outsideGrails.adoc     |   2 +-
 grails-data-hibernate5/grails-plugin/build.gradle  |   2 +-
 grails-data-mongodb/boot-plugin/build.gradle       |   2 +-
 .../MongoDbGormAutoConfigurationSpec.groovy        |   2 +
 ...ngoDbGormAutoConfigureWithGeoSpacialSpec.groovy |   2 +
 .../src/test/resources/docker-java.properties      |   2 +
 grails-data-mongodb/bson/build.gradle              |   2 +-
 grails-data-mongodb/core/build.gradle              |   2 +-
 .../connections/MongoConnectionSourcesSpec.groovy  |   7 +
 .../gorm/mongo/connections/MultiTenancySpec.groovy |   5 +-
 .../connections/SchemaBasedMultiTenancySpec.groovy |   5 +-
 .../mongo/connections/SingleTenancySpec.groovy     |   5 +-
 .../MongoStaticApiMultiTenancySpec.groovy          |   5 +-
 grails-data-mongodb/docs/build.gradle              |  17 +
 grails-data-mongodb/ext/build.gradle               |   2 +-
 grails-data-mongodb/grails-plugin/build.gradle     |   2 +-
 grails-data-mongodb/gson-templates/build.gradle    |   2 +-
 .../Neo4jAutoConfigurationSpec.groovy              |   2 +
 grails-data-neo4j/docs/build.gradle                |  17 +
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 grails-data-neo4j/gradle.properties                |   2 +-
 .../tests/multitenancy/MultiTenancySpec.groovy     |   4 +
 .../tests/multitenancy/SingleTenancySpec.groovy    |   2 +
 grails-data-neo4j/settings.gradle                  |   4 +-
 grails-data-simple/build.gradle                    |   2 +-
 grails-databinding-core/build.gradle               |   2 +-
 grails-databinding/build.gradle                    |   2 +-
 grails-datamapping-async/build.gradle              |   2 +-
 .../database/DatabasePerTenantSpec.groovy          |   3 +-
 .../MultiTenantServiceTransformSpec.groovy         |   2 +
 .../partitioned/PartitionMultiTenancySpec.groovy   |   3 +-
 .../multitenancy/schema/SchemaPerTenantSpec.groovy |   6 +-
 .../gorm/tests/CurrentTenantTransformSpec.groovy   |   6 +-
 .../grails/gorm/tests/TenantServiceSpec.groovy     |   7 +-
 grails-datamapping-core/build.gradle               |   2 +-
 grails-datamapping-rx/build.gradle                 |   2 +-
 grails-datamapping-support/build.gradle            |   2 +-
 grails-datamapping-tck/build.gradle                |   2 +-
 grails-datamapping-validation/build.gradle         |   2 +-
 grails-datasource/build.gradle                     |   2 +-
 grails-datastore-async/build.gradle                |   2 +-
 grails-datastore-core/build.gradle                 |   2 +-
 grails-datastore-web/build.gradle                  |   2 +-
 grails-doc/build.gradle                            |  19 +-
 grails-doc/src/en/guide/GORM/quickStartGuide.adoc  |   4 +-
 .../en/guide/GORM/quickStartGuide/basicCRUD.adoc   |  16 +-
 grails-doc/src/en/guide/REST/domainResources.adoc  |  15 +
 grails-doc/src/en/guide/REST/hypermedia/hal.adoc   |  13 +
 .../src/en/guide/REST/versioningResources.adoc     |  13 +
 grails-doc/src/en/guide/async/asyncGorm.adoc       |   2 +-
 grails-doc/src/en/guide/async/asyncPromises.adoc   |   8 +-
 grails-doc/src/en/guide/async/events.adoc          |   4 +-
 grails-doc/src/en/guide/async/rxjava.adoc          |   2 +-
 .../guide/cache/cacheUsage/cacheConfiguration.adoc |   2 +-
 grails-doc/src/en/guide/commandLine.adoc           |   5 +-
 .../guide/commandLine/creatingCustomCommands.adoc  |   2 +-
 .../gradleBuild/gradleDependencies.adoc            |   6 +-
 .../guide/conf/dataSource/multipleDatasources.adoc |   2 +-
 grails-doc/src/en/guide/conf/docengine.adoc        |  23 +-
 grails-doc/src/en/guide/conf/environments.adoc     |  27 +
 grails-doc/src/en/guide/contributing.adoc          |   2 +-
 .../guide/gettingStarted/developmentReloading.adoc |  13 +-
 .../guide/plugins/artefactApi/customArtefacts.adoc |   2 +-
 .../src/en/guide/profiles/pluginProfile.adoc       |   2 +-
 .../src/en/guide/profiles/profileProfile.adoc      |   2 +-
 .../src/en/guide/profiles/profileStructure.adoc    |   4 +-
 .../en/guide/profiles/restAPIPluginProfile.adoc    |   2 +-
 .../src/en/guide/profiles/restAPIProfile.adoc      |   2 +-
 .../src/en/guide/profiles/webPluginProfile.adoc    |   2 +-
 grails-doc/src/en/guide/profiles/webProfile.adoc   |   2 +-
 grails-doc/src/en/guide/scaffolding.adoc           |   2 +-
 grails-doc/src/en/guide/security/codecs.adoc       |  10 +
 .../src/en/guide/security/xssPrevention.adoc       |  34 +
 .../spring/propertyPlaceholderConfiguration.adoc   |   9 +
 .../en/guide/testing/unitTesting/installation.adoc |   4 +-
 .../en/guide/theWebLayer/contentNegotiation.adoc   |  42 +
 .../guide/theWebLayer/controllers/dataBinding.adoc |  56 +-
 .../theWebLayer/fields/fieldsInstallation.adoc     |   2 +-
 .../fields/scaffolding/installation/index.adoc     |   2 +-
 .../src/en/guide/theWebLayer/gson/gsonTesting.adoc |   2 +-
 .../guide/theWebLayer/gson/jsonInstallation.adoc   |   6 +-
 .../en/guide/theWebLayer/gson/pluginSupport.adoc   |   8 +-
 grails-doc/src/en/guide/theWebLayer/gsp.adoc       |   2 +-
 .../gsp/GSPBasics/variablesAndScopes.adoc          |   8 +-
 .../gsp/taglibs/taglibVariablesAndScopes.adoc      |   8 +-
 .../gsp/taglibs/usingJSPTagLibraries.adoc          |   2 +-
 .../interceptors/interceptorOrdering.adoc          |   9 +
 .../urlmappings/customizingUrlFormat.adoc          |  11 +
 .../src/en/guide/upgrading/upgrading60x.adoc       | 103 ++-
 grails-doc/src/en/ref/Constraints/nullable.adoc    |  14 +
 grails-doc/src/en/ref/Controllers/withFormat.adoc  |  16 +
 grails-doc/src/en/ref/Domain Classes/save.adoc     |  14 +
 grails-doc/src/en/ref/Plug-ins/dataSource.adoc     |  13 +
 .../src/en/ref/Servlet API/servletContext.adoc     |   2 +-
 .../src/en/ref/Tag Libraries/actionName.adoc       |  13 +-
 .../src/en/ref/Tag Libraries/controllerName.adoc   |  14 +-
 grails-doc/src/en/ref/Tag Libraries/flash.adoc     |  11 +-
 grails-doc/src/en/ref/Tag Libraries/pageScope.adoc |   5 +-
 grails-doc/src/en/ref/Tag Libraries/params.adoc    |  26 +-
 grails-doc/src/en/ref/Tag Libraries/request.adoc   |  16 +-
 grails-doc/src/en/ref/Tag Libraries/response.adoc  |  13 +-
 .../src/en/ref/Tag Libraries/servletContext.adoc   |  20 +-
 grails-doc/src/en/ref/Tag Libraries/session.adoc   |  27 +-
 grails-domain-class/build.gradle                   |   2 +-
 .../grails/persistence/DomainClassTraitSpec.groovy |   6 +
 grails-encoder/build.gradle                        |   2 +-
 grails-events/compat/build.gradle                  |   2 +-
 grails-events/core/build.gradle                    |   2 +-
 grails-events/gpars/build.gradle                   |   2 +-
 grails-events/plugin/build.gradle                  |   2 +-
 grails-events/rxjava/build.gradle                  |   2 +-
 grails-events/rxjava2/build.gradle                 |   2 +-
 grails-events/rxjava3/build.gradle                 |   2 +-
 grails-events/spring/build.gradle                  |   2 +-
 grails-events/transforms/build.gradle              |   2 +-
 grails-fields/build.gradle                         |   2 +-
 grails-forge/buildSrc/build.gradle                 |   1 -
 grails-forge/buildSrc/settings.gradle              |  67 +-
 ...uppressions.xml => checkstyle-suppressions.xml} |   0
 grails-forge/config/checkstyle/checkstyle.xml      |   2 +-
 grails-forge/gradle.properties                     |   5 +-
 grails-forge/gradle/code-style-config.gradle       |  42 +-
 grails-forge/gradle/doc-config.gradle              |  19 +-
 grails-forge/gradle/test-config.gradle             |  10 -
 .../gradle/wrapper/gradle-wrapper.properties       |   4 +-
 .../groovy/org/grails/forge/cli/CommandSpec.groovy |   2 +-
 .../build/gradle/DefaultGradleRepository.java      |  59 +-
 .../forge/build/gradle/GradleRepository.java       |  51 +-
 .../org/grails/forge/build/gradle/VersionType.java |  17 +-
 .../forge/feature/assetPipeline/AssetPipeline.java |  59 +-
 .../build/gradle/templates/buildGradle.rocker.raw  |   5 +
 .../templates/gradleWrapperProperties.rocker.raw   |   3 +-
 .../feature/spring/SpringBootVirtualThreads.java   |   6 +-
 .../java/org/grails/forge/options/JdkVersion.java  |   5 +-
 .../resources/assets/images/advancedgrails.svg     |   6 +-
 .../assets/images/apple-touch-icon-retina.png      | Bin 7038 -> 0 bytes
 .../resources/assets/images/apple-touch-icon.png   | Bin 3077 -> 0 bytes
 .../src/main/resources/assets/images/community.svg |   9 +
 .../main/resources/assets/images/documentation.svg |   4 +-
 .../src/main/resources/assets/images/favicon.ico   | Bin 5558 -> 27198 bytes
 .../assets/images/grails-cupsonly-logo-white.svg   |  26 -
 .../src/main/resources/assets/images/groovy.svg    |   1 +
 .../src/main/resources/assets/images/java.svg      |   1 +
 .../src/main/resources/assets/images/slack.svg     |  18 -
 .../main/resources/assets/images/spring-boot.svg   |  20 +
 .../src/main/resources/assets/images/spring.svg    |   1 +
 .../resources/assets/javascripts/application.js    |   4 +-
 .../main/resources/assets/javascripts/welcome.js   | 116 +++
 .../resources/assets/stylesheets/application.css   |   4 +-
 .../main/resources/assets/stylesheets/welcome.css  |  63 ++
 .../src/main/resources/gsp/index.gsp               | 397 ++++++--
 .../src/main/resources/gsp/main.gsp                | 113 +--
 .../feature/assetPipeline/AssetPipelineSpec.groovy |  42 +-
 .../spring/SpringBootVirtualThreadsSpec.groovy     |   4 +-
 grails-forge/settings.gradle                       |  79 +-
 grails-geb/build.gradle                            |   2 +-
 grails-gradle/buildSrc/settings.gradle             |  64 +-
 grails-gradle/common/build.gradle                  |   2 +-
 grails-gradle/gradle/code-style-config.gradle      |  61 --
 grails-gradle/gradle/docs-config.gradle            |  17 +
 grails-gradle/gradle/test-config.gradle            |   7 -
 .../gradle/wrapper/gradle-wrapper.properties       |   4 +-
 grails-gradle/model/build.gradle                   |   2 +-
 grails-gradle/plugins/build.gradle                 |   8 +-
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   |  44 +-
 .../gradle/plugin/web/GrailsWebGradlePlugin.groovy |  40 +-
 grails-gradle/settings.gradle                      |  70 +-
 grails-gradle/tasks/build.gradle                   |   2 +-
 grails-gsp/core/build.gradle                       |   2 +-
 grails-gsp/grails-layout/build.gradle              |   2 +-
 grails-gsp/grails-sitemesh3/build.gradle           |   2 +-
 grails-gsp/grails-taglib/build.gradle              |   2 +-
 grails-gsp/grails-web-gsp-taglib/build.gradle      |   2 +-
 grails-gsp/grails-web-gsp/build.gradle             |   2 +-
 grails-gsp/grails-web-jsp/build.gradle             |   2 +-
 grails-gsp/grails-web-taglib/build.gradle          |   2 +-
 grails-gsp/plugin/build.gradle                     |   8 +-
 .../mapping/RestfulReverseUrlRenderingTests.groovy |  21 +
 .../web/taglib/AbstractGrailsTagTests.groovy       |   7 +
 .../org/grails/web/taglib/FormTagLibTests.groovy   |  28 +
 grails-i18n/build.gradle                           |   2 +-
 grails-interceptors/build.gradle                   |   2 +-
 .../web/interceptors/UrlMappingMatcherSpec.groovy  |   7 +-
 grails-logging/build.gradle                        |   2 +-
 grails-mimetypes/build.gradle                      |   2 +-
 .../web/mime/HttpServletRequestExtension.groovy    |  14 +-
 .../web/mime/HttpServletResponseExtension.groovy   |   2 +-
 .../groovy/grails/web/mime/MimeUtilitySpec.groovy  |  11 +
 .../web/mime/MimeTypesConfigurationSpec.groovy     |  11 +
 .../grails/web/mime/AcceptHeaderParserSpec.groovy  |   5 +
 .../mvc/RequestAndResponseMimeTypesApiSpec.groovy  |   7 +
 grails-profiles/base/features/geb2/feature.yml     |   2 +-
 grails-profiles/base/profile.yml                   |   2 +
 grails-profiles/base/skeleton/build.gradle         |  19 +-
 .../gradle/wrapper/gradle-wrapper.properties       |   4 +-
 .../gradle/wrapper/gradle-wrapper.properties       |   4 +-
 .../grails-app/assets/images/advancedgrails.svg    |   6 +-
 .../assets/images/apple-touch-icon-retina.png      | Bin 7038 -> 0 bytes
 .../grails-app/assets/images/apple-touch-icon.png  | Bin 3077 -> 0 bytes
 .../grails-app/assets/images/community.svg         |   9 +
 .../grails-app/assets/images/documentation.svg     |   4 +-
 .../skeleton/grails-app/assets/images/favicon.ico  | Bin 5558 -> 27198 bytes
 .../assets/images/grails-cupsonly-logo-white.svg   |  26 -
 .../skeleton/grails-app/assets/images/groovy.svg   |   1 +
 .../web/skeleton/grails-app/assets/images/java.svg |   1 +
 .../skeleton/grails-app/assets/images/slack.svg    |  18 -
 .../grails-app/assets/images/spring-boot.svg       |  20 +
 .../skeleton/grails-app/assets/images/spring.svg   |   1 +
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/javascripts/welcome.js       | 115 +++
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../grails-app/assets/stylesheets/welcome.css      |  63 ++
 .../web/skeleton/grails-app/views/index.gsp        | 397 ++++++--
 .../web/skeleton/grails-app/views/layouts/main.gsp | 113 +--
 grails-rest-transforms/build.gradle                |   2 +-
 .../rest/render/DefaultRendererRegistrySpec.groovy |  11 +
 .../web/rest/render/VndErrorRenderingSpec.groovy   |   8 +
 .../web/rest/render/hal/HalJsonRendererSpec.groovy |  10 +
 .../web/rest/render/html/HtmlRendererSpec.groovy   |  10 +
 .../web/rest/render/json/JsonRendererSpec.groovy   |   2 +
 grails-scaffolding/build.gradle                    |   2 +-
 grails-services/build.gradle                       |   2 +-
 grails-shell-cli/build.gradle                      |   2 +-
 .../grails/cli/profile/ProfileRepoConfig.groovy    |  14 +-
 .../cli/profile/commands/CreateAppCommand.groovy   | 202 ++++-
 .../profile/commands/CreateAppCommandSpec.groovy   |   4 +-
 grails-spring/build.gradle                         |   2 +-
 grails-test-core/build.gradle                      |   2 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../functionaltests/BookController.groovy          |  11 +-
 .../controllers/functionaltests/UrlMappings.groovy |  62 ++
 .../async/AsyncTestController.groovy               | 304 +++++++
 .../binding/AdvancedDataBindingController.groovy   | 306 +++++++
 .../caching/CacheTestController.groovy             | 131 +++
 .../codecs/CodecTestController.groovy              | 281 ++++++
 .../commanddi/CommandDIController.groovy           | 406 +++++++++
 .../contentneg/ContentNegotiationController.groovy | 168 ++++
 .../functionaltests/cors/CorsTestController.groovy | 113 +++
 .../ErrorHandlingTestController.groovy             | 215 +++++
 .../fileupload/FileUploadTestController.groovy     | 241 +++++
 .../functionaltests/flow/FlowController.groovy     | 245 +++++
 .../flow/FlowTargetController.groovy               |  52 ++
 .../functionaltests/i18n/I18nTestController.groovy | 226 +++++
 .../interceptors/ActionExcludeInterceptor.groovy}  |  25 +-
 .../interceptors/AdvancedMatchingController.groovy | 107 +++
 .../AttributeSettingInterceptor.groovy             |  35 +-
 .../interceptors/BlockingInterceptor.groovy        |  46 +-
 .../ConditionalMatchInterceptor.groovy             |  52 ++
 .../interceptors/FirstInterceptor.groovy           |  37 +-
 .../HttpMethodMatchingInterceptor.groovy}          |  23 +-
 .../interceptors/InterceptorTestController.groovy  | 172 ++++
 .../interceptors/MultipleRulesInterceptor.groovy   |  33 +-
 .../NamespaceMatchingInterceptor.groovy}           |  23 +-
 .../interceptors/SecondInterceptor.groovy          |  37 +-
 .../interceptors/SessionInterceptor.groovy         |  33 +-
 .../interceptors/ThirdInterceptor.groovy           |  37 +-
 .../interceptors/TimingInterceptor.groovy          |  35 +-
 .../RequestResponseTestController.groovy           | 270 ++++++
 .../springevents/SpringEventController.groovy      | 148 +++
 .../taglib/TagLibTestController.groovy             | 326 +++++++
 .../urlmappings/UrlMappingsTestController.groovy   | 167 ++++
 .../domain/functionaltests/binding/Address.groovy} |  26 +-
 .../functionaltests/binding/Contributor.groovy}    |  22 +-
 .../domain/functionaltests/binding/Employee.groovy |  64 +-
 .../domain/functionaltests/binding/Project.groovy} |  25 +-
 .../domain/functionaltests/binding/Team.groovy}    |  23 +-
 .../functionaltests/binding/TeamMember.groovy}     |  25 +-
 .../functionaltests/constraints/Appointment.groovy | 109 +++
 .../functionaltests/constraints/PaymentInfo.groovy | 178 ++++
 .../functionaltests/constraints/Product.groovy     |  76 ++
 .../constraints/Registration.groovy                | 158 ++++
 .../functionaltests/events/AuditedEntity.groovy    | 108 +++
 .../functionaltests/events/StatefulEntity.groovy   |  81 ++
 .../functionaltests/events/VetoableEntity.groovy   |  67 ++
 .../domain/functionaltests/gorm/Author.groovy      |  62 ++
 .../domain/functionaltests/gorm/GormBook.groovy    |  70 ++
 .../functionaltests/services/InventoryItem.groovy} |  28 +-
 .../app1/grails-app/i18n/messages.properties       |   9 +
 .../app1/grails-app/i18n/messages_de.properties    |   9 +
 .../app1/grails-app/i18n/messages_fr.properties    |   9 +
 .../caching/CacheTestService.groovy                | 133 +++
 .../commanddi/NotificationService.groovy           |  88 ++
 .../commanddi/PricingService.groovy                |  77 ++
 .../commanddi/ValidationHelperService.groovy       |  80 ++
 .../services/AsyncProcessingService.groovy         | 122 +++
 .../services/InventoryService.groovy               | 204 +++++
 .../functionaltests/services/OrderService.groovy   | 118 +++
 .../springevents/EventListenerService.groovy       | 169 ++++
 .../springevents/EventPublisherService.groovy      |  78 ++
 .../functionaltests/taglib/CustomTagLib.groovy     | 341 +++++++
 .../grails-app/views/contentNegotiation/error.gsp  |  29 +
 .../grails-app/views/contentNegotiation/index.gsp  |  34 +
 .../views/tagLibTest/_simpleTemplate.gsp           |  19 +
 .../grails-app/views/tagLibTest/testAlertTag.gsp   |  20 +
 .../grails-app/views/tagLibTest/testAppInfoTag.gsp |  20 +
 .../grails-app/views/tagLibTest/testBadgeTag.gsp   |  20 +
 .../views/tagLibTest/testBuiltInCheckBox.gsp       |  20 +
 .../views/tagLibTest/testBuiltInCollect.gsp        |  20 +
 .../views/tagLibTest/testBuiltInCookie.gsp         |  20 +
 .../views/tagLibTest/testBuiltInCreateLink.gsp     |  21 +
 .../views/tagLibTest/testBuiltInEach.gsp           |  21 +
 .../views/tagLibTest/testBuiltInFieldValue.gsp     |  20 +
 .../views/tagLibTest/testBuiltInFindAll.gsp        |  20 +
 .../views/tagLibTest/testBuiltInForm.gsp           |  23 +
 .../views/tagLibTest/testBuiltInFormatDate.gsp     |  21 +
 .../views/tagLibTest/testBuiltInFormatNumber.gsp   |  21 +
 .../views/tagLibTest/testBuiltInHeader.gsp         |  20 +
 .../views/tagLibTest/testBuiltInHiddenField.gsp    |  20 +
 .../grails-app/views/tagLibTest/testBuiltInIf.gsp  |  24 +
 .../views/tagLibTest/testBuiltInInclude.gsp        |  20 +
 .../views/tagLibTest/testBuiltInJoin.gsp           |  20 +
 .../views/tagLibTest/testBuiltInLink.gsp           |  22 +
 .../views/tagLibTest/testBuiltInMessage.gsp        |  20 +
 .../views/tagLibTest/testBuiltInPaginate.gsp       |  20 +
 .../views/tagLibTest/testBuiltInPasswordField.gsp  |  20 +
 .../views/tagLibTest/testBuiltInRadio.gsp          |  22 +
 .../views/tagLibTest/testBuiltInRender.gsp         |  20 +
 .../views/tagLibTest/testBuiltInResource.gsp       |  20 +
 .../views/tagLibTest/testBuiltInSelect.gsp         |  20 +
 .../grails-app/views/tagLibTest/testBuiltInSet.gsp |  23 +
 .../views/tagLibTest/testBuiltInSortableColumn.gsp |  26 +
 .../views/tagLibTest/testBuiltInTextArea.gsp       |  20 +
 .../views/tagLibTest/testBuiltInTextField.gsp      |  20 +
 .../views/tagLibTest/testBuiltInUploadForm.gsp     |  23 +
 .../views/tagLibTest/testBuiltInWhile.gsp          |  21 +
 .../views/tagLibTest/testConditionalTags.gsp       |  21 +
 .../views/tagLibTest/testCssClassTag.gsp           |  20 +
 .../views/tagLibTest/testDefinitionListTag.gsp     |  20 +
 .../views/tagLibTest/testEncodingTags.gsp          |  22 +
 .../views/tagLibTest/testFormattedTag.gsp          |  20 +
 .../grails-app/views/tagLibTest/testHelloTag.gsp   |  20 +
 .../grails-app/views/tagLibTest/testIterateTag.gsp |  20 +
 .../grails-app/views/tagLibTest/testJoinTag.gsp    |  20 +
 .../grails-app/views/tagLibTest/testListTag.gsp    |  20 +
 .../grails-app/views/tagLibTest/testNestedTags.gsp |  22 +
 .../grails-app/views/tagLibTest/testPanelTag.gsp   |  20 +
 .../views/tagLibTest/testProgressTag.gsp           |  20 +
 .../grails-app/views/tagLibTest/testRawTag.gsp     |  20 +
 .../grails-app/views/tagLibTest/testRepeatTag.gsp  |  20 +
 .../views/tagLibTest/testRequestInfoTag.gsp        |  20 +
 .../views/tagLibTest/testSessionValueTag.gsp       |  20 +
 .../grails-app/views/tagLibTest/testSetVarTag.gsp  |  20 +
 .../views/tagLibTest/testTagsWithModel.gsp         |  26 +
 .../grails-app/views/tagLibTest/testWrapperTag.gsp |  20 +
 .../functionaltests/async/AsyncPromiseSpec.groovy  | 395 ++++++++
 .../binding/AdvancedDataBindingSpec.groovy         | 451 ++++++++++
 .../functionaltests/caching/CachingSpec.groovy     | 406 +++++++++
 .../codecs/SecurityCodecsSpec.groovy               | 423 +++++++++
 .../commanddi/CommandObjectDISpec.groovy           | 386 ++++++++
 .../constraints/ConstraintValidationSpec.groovy    | 996 +++++++++++++++++++++
 .../contentneg/ContentNegotiationSpec.groovy       | 411 +++++++++
 .../functionaltests/cors/CorsAdvancedSpec.groovy   | 301 +++++++
 .../errorhandling/ErrorHandlingSpec.groovy         | 217 +++++
 .../functionaltests/events/DomainEventsSpec.groovy | 574 ++++++++++++
 .../fileupload/FileUploadSpec.groovy               | 395 ++++++++
 .../flow/FlashChainForwardSpec.groovy              | 338 +++++++
 .../functionaltests/gorm/GormAdvancedSpec.groovy   | 719 +++++++++++++++
 .../i18n/InternationalizationSpec.groovy           | 445 +++++++++
 .../InterceptorAdvancedMatchingSpec.groovy         | 275 ++++++
 .../interceptors/InterceptorOrderingSpec.groovy    | 315 +++++++
 .../requestresponse/RequestResponseSpec.groovy     | 386 ++++++++
 .../services/ServiceIntegrationSpec.groovy         | 379 ++++++++
 .../springevents/SpringEventsSpec.groovy           | 333 +++++++
 .../functionaltests/taglib/TagLibSpec.groovy       | 968 ++++++++++++++++++++
 .../urlmappings/UrlMappingsSpec.groovy             | 352 ++++++++
 .../springevents/CustomApplicationEvent.groovy}    |  26 +-
 .../springevents/PriorityEvent.groovy}             |  24 +-
 .../springevents/UserActionEvent.groovy}           |  26 +-
 .../functionaltests/BookControllerSpec.groovy      |  10 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../services/pubsub/demo/TotalService.groovy       |  12 +-
 .../groovy/pubsub/demo/AsyncEventsSpec.groovy      | 203 +++++
 .../groovy/pubsub/demo/PubSubSpec.groovy           |  37 +-
 .../main/groovy/pubsub/demo/BookSubscriber.groovy  |  16 +-
 grails-test-examples/cache/build.gradle            |   2 +
 .../com/demo/AdvancedCachingController.groovy      | 123 +++
 .../controllers/com/demo/UrlMappings.groovy        |  54 ++
 .../com/demo/AdvancedCachingService.groovy         | 158 ++++
 .../com/demo/AdvancedCachingIntegrationSpec.groovy | 323 +++++++
 .../com/demo/AdvancedCachingServiceSpec.groovy     | 316 +++++++
 .../CrossDatasourceTransactionSpec.groovy          | 284 ++++++
 .../functionaltests/DatasourceSwitchingSpec.groovy | 370 ++++++++
 .../functionaltests/MultipleDataSourcesSpec.groovy |  13 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   2 +-
 .../test/app/ConfigurationPrioritySpec.groovy      | 249 ++++++
 .../test/app/EnvironmentConfigurationSpec.groovy   | 223 +++++
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   2 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   2 +-
 grails-test-examples/gorm/build.gradle             |   5 +-
 .../gorm/AuthorController.groovy}                  |  17 +-
 .../gorm/BookController.groovy}                    |  17 +-
 .../gorm/UrlMappings.groovy}                       |  18 +-
 .../grails-app/domain/gorm/AuditedEntity.groovy    | 148 +++
 .../domain/gorm/Author.groovy}                     |  39 +-
 .../gorm/grails-app/domain/gorm/Book.groovy        |  33 +-
 .../gorm}/grails-app/i18n/messages.properties      |   0
 .../services/gorm/BookDataService.groovy           | 151 ++++
 .../services/gorm/TransactionTestService.groovy    | 187 ++++
 .../gorm/grails-app/views/error.gsp                |  48 +
 .../gorm/grails-app/views/index.gsp                |  32 +
 .../gorm/grails-app/views/notFound.gsp             |  28 +
 .../groovy/gorm/BindingOutsideRequestSpec.groovy   |   5 +
 .../groovy/gorm/FieldsValidationSpec.groovy        | 552 ++++++++++++
 .../groovy/gorm/GormCascadeOperationsSpec.groovy   | 357 ++++++++
 .../groovy/gorm/GormCriteriaQueriesSpec.groovy     | 614 +++++++++++++
 .../groovy/gorm/GormDataServicesSpec.groovy        | 338 +++++++
 .../groovy/gorm/GormEventsSpec.groovy              | 377 ++++++++
 .../groovy/gorm/GormWhereQueryAdvancedSpec.groovy  | 373 ++++++++
 .../groovy/gorm/ScaffoldingFunctionalSpec.groovy   | 293 ++++++
 .../groovy/gorm/TransactionPropagationSpec.groovy  | 268 ++++++
 .../integration-test/groovy/gorm/UserSpec.groovy   |  33 +-
 .../groovy/gorm/ValidationConstraintsSpec.groovy   | 496 ++++++++++
 .../groovy/gorm/pages/AuthorPages.groovy           |  75 ++
 .../groovy/gorm/pages/BookPages.groovy             |  79 ++
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   2 +-
 .../example/grails/layout/TagLibController.groovy  |  95 ++
 .../grails-app/views/tagLib/_partial.gsp           |  21 +
 .../grails-app/views/tagLib/collectTag.gsp         |  29 +
 .../grails-app/views/tagLib/createLinkTag.gsp      |  30 +
 .../gsp-layout/grails-app/views/tagLib/eachTag.gsp |  33 +
 .../gsp-layout/grails-app/views/tagLib/elseTag.gsp |  33 +
 .../grails-app/views/tagLib/encodeTags.gsp         |  30 +
 .../gsp-layout/grails-app/views/tagLib/formTag.gsp |  50 ++
 .../grails-app/views/tagLib/formatTags.gsp         |  30 +
 .../gsp-layout/grails-app/views/tagLib/ifTag.gsp   |  31 +
 .../gsp-layout/grails-app/views/tagLib/index.gsp   |  32 +
 .../gsp-layout/grails-app/views/tagLib/joinTag.gsp |  30 +
 .../gsp-layout/grails-app/views/tagLib/linkTag.gsp |  30 +
 .../grails-app/views/tagLib/renderTag.gsp          |  31 +
 .../gsp-layout/grails-app/views/tagLib/setTag.gsp  |  35 +
 .../integration-test/groovy/GspTagLibSpec.groovy   | 275 ++++++
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   2 +-
 .../gsp-spring-boot/script/.sdkmanrc               |   4 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../controllers/example/BookController.groovy      |   8 +-
 .../groovy/example/DatabasePerTenantSpec.groovy    |   6 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../functional/tests/BookController.groovy         |   8 +-
 .../functional/tests/BookControllerUnitSpec.groovy |  10 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../controllers/example/BookController.groovy      |   8 +-
 .../example/PartitionedMultiTenancySpec.groovy     |   6 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../schemapertenant/BookController.groovy          |   8 +-
 .../schemapertenant/SchemaPerTenantSpec.groovy     |   5 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   2 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   2 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   2 +-
 .../groovy/micronaut/MicronautContextSpec.groovy   |  92 ++
 .../groovy/micronaut/MicronautQualifierSpec.groovy | 106 +++
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../functional/tests/BookController.groovy         |   8 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../examples/mongo/tenant/BookController.groovy    |   8 +-
 .../groovy/examples/mongo/tenant/BookSpec.groovy   |   7 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../functional/tests/AuthorController.groovy       |   8 +-
 .../functional/tests/BookController.groovy         |   8 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 grails-test-examples/plugins/exploded/build.gradle |   3 +
 .../groovy/exploded/PluginDependencySpec.groovy    | 223 +++++
 .../plugins/loadfirst/build.gradle                 |   3 +
 .../groovy/loadfirst/PluginLifecycleSpec.groovy    | 236 +++++
 .../plugins/loadsecond/build.gradle                |   3 +
 .../groovy/loadsecond/PluginLoadOrderSpec.groovy   | 222 +++++
 .../{gorm => scaffolding-fields}/build.gradle      |  33 +-
 .../grails-app/conf/application.yml                | 106 +++
 .../scaffoldingfields/DepartmentController.groovy} |  20 +-
 .../scaffoldingfields/EmployeeController.groovy}   |  20 +-
 .../scaffoldingfields/ProjectController.groovy}    |  20 +-
 .../scaffoldingfields/UrlMappings.groovy}          |  20 +-
 .../domain/scaffoldingfields/Address.groovy        |  32 +-
 .../domain/scaffoldingfields/Department.groovy}    |  22 +-
 .../domain/scaffoldingfields/Employee.groovy       | 129 +++
 .../domain/scaffoldingfields/Project.groovy        |  50 +-
 .../grails-app/i18n/messages.properties            |   0
 .../init/scaffoldingfields/Application.groovy}     |  17 +-
 .../init/scaffoldingfields/BootStrap.groovy        | 114 +++
 .../grails-app/views/_fields/default/_wrapper.gsp  |  38 +
 .../views/_fields/employee/biography/_wrapper.gsp  |  38 +
 .../views/_fields/employee/email/_wrapper.gsp      |  39 +
 .../scaffoldingfields/CrudFunctionalSpec.groovy    | 269 ++++++
 .../scaffoldingfields/CustomTemplatesSpec.groovy   | 171 ++++
 .../groovy/scaffoldingfields/FieldTypesSpec.groovy | 250 ++++++
 .../groovy/scaffoldingfields/PaginationSpec.groovy | 502 +++++++++++
 .../RelationshipsFunctionalSpec.groovy             | 534 +++++++++++
 .../ValidationFunctionalSpec.groovy                | 861 ++++++++++++++++++
 .../scaffoldingfields/pages/DepartmentPages.groovy |  96 ++
 .../scaffoldingfields/pages/EmployeePages.groovy   | 139 +++
 .../scaffoldingfields/pages/ProjectPages.groovy    | 105 +++
 .../pages/ScaffoldCreatePage.groovy                | 147 +++
 .../pages/ScaffoldEditPage.groovy                  | 159 ++++
 .../pages/ScaffoldListPage.groovy                  | 112 +++
 .../pages/ScaffoldShowPage.groovy                  | 106 +++
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 grails-test-suite-base/build.gradle                |   5 +-
 grails-test-suite-uber/build.gradle                |   2 +-
 ...GrailsCompileStaticCompilationErrorsSpec.groovy |   9 +
 .../GrailsTypeCheckedCompilationErrorsSpec.groovy  |   9 +
 .../grails/persistence/EntityTransformTests.groovy |   9 +
 .../groovy/grails/spring/BeanBuilderTests.groovy   |   9 +
 .../test/mixin/ControllerUnitTestMixinTests.groovy |  26 +
 .../grails/test/mixin/RestfulControllerSpec.groovy |  11 +
 .../rest/render/BaseDomainClassRendererSpec.groovy |   8 +
 .../web/codecs/HTMLJSCodecIntegrationSpec.groovy   |   5 +
 .../DefaultGrailsApplicationAttributesTests.groovy |   6 +
 .../web/servlet/FlashScopeWithErrorsTests.groovy   |   5 +
 .../grails/web/util/StreamCharBufferSpec.groovy    |   5 +
 .../org/grails/web/util/WebUtilsTests.groovy       |   5 +
 grails-test-suite-web/build.gradle                 |   2 +-
 .../grails/rest/web/RespondMethodSpec.groovy       |  20 +
 .../org/grails/compiler/web/WithFormatSpec.groovy  |  11 +
 .../rest/render/xml/DefaultXmlRendererSpec.groovy  |   5 +
 ...ngHelperDomainClassSpecialPropertiesSpec.groovy |   9 +
 .../web/binding/JSONBindingToNullSpec.groovy       |  16 +
 .../JsonBindingWithExceptionHandlerSpec.groovy     |  24 +
 .../commandobjects/CommandObjectNoDataSpec.groovy  |  56 ++
 .../CommandObjectNullabilitySpec.groovy            |  26 +
 .../web/commandobjects/CommandObjectsSpec.groovy   |  58 ++
 .../web/controllers/ContentNegotiationSpec.groovy  |  16 +
 .../metaclass/CollectionBindDataMethodSpec.groovy  |  11 +
 .../web/mime/ContentFormatControllerTests.groovy   |  10 +
 .../web/mime/WithFormatContentTypeSpec.groovy      |  16 +
 grails-testing-support-core/build.gradle           |   2 +-
 grails-testing-support-datamapping/build.gradle    |   2 +-
 grails-testing-support-mongodb/build.gradle        |   2 +-
 grails-testing-support-views-gson/build.gradle     |   2 +-
 grails-testing-support-web/build.gradle            |   2 +-
 .../grails/testing/web/UrlMappingsUnitTest.groovy  |  10 +
 grails-url-mappings/build.gradle                   |   2 +-
 grails-validation/build.gradle                     |   2 +-
 .../CommandObjectConstraintGettersSpec.groovy      |  40 +
 .../DefaultASTValidateableHelperSpec.groovy        |   9 +
 .../validation/SerializableValidateableSpec.groovy |  24 +
 .../grails/validation/ValidateableMockSpec.groovy  |  24 +
 .../validation/ValidateableTraitAdHocSpec.groovy   |  33 +
 .../grails/validation/ValidateableTraitSpec.groovy |  33 +
 grails-views-core/build.gradle                     |   2 +-
 grails-views-gson/build.gradle                     |   2 +-
 .../grails/plugin/json/view/api/JsonApiSpec.groovy |  21 +
 grails-views-markup/build.gradle                   |   2 +-
 grails-web-boot/build.gradle                       |   2 +-
 grails-web-common/build.gradle                     |   2 +-
 grails-web-core/build.gradle                       |   2 +-
 grails-web-databinding/build.gradle                |   2 +-
 grails-web-mvc/build.gradle                        |   2 +-
 grails-web-url-mappings/build.gradle               |   2 +-
 .../reporting/UrlMappingsReportCommand.groovy      |  21 +-
 .../resources/META-INF/services/grails.factories   |   1 -
 .../LinkGeneratorWithUrlMappingsSpec.groovy        |  13 +
 .../web/mapping/RestfulUrlMappingSpec.groovy       |   6 +
 .../mapping/UrlMappingsWithHttpMethodSpec.groovy   |   6 +
 .../web/mapping/mvc/EncodePathFromURISpec.groovy   |   5 +
 grails-wrapper/build.gradle                        |   2 +-
 ...pe.java => GrailsReleaseNotFoundException.java} |  29 +-
 .../main/java/grails/init/GrailsReleaseType.java   |   4 +-
 .../src/main/java/grails/init/GrailsUpdater.java   |  82 +-
 .../src/main/java/grails/init/GrailsVersion.java   |  26 +-
 .../main/java/grails/init/GrailsWrapperHome.java   |  31 +-
 .../main/java/grails/init/GrailsWrapperRepo.java   |  54 +-
 .../main/java/grails/init/RootMetadataHandler.java |   2 +-
 settings.gradle                                    |  74 +-
 663 files changed, 36344 insertions(+), 2299 deletions(-)
 create mode 100644 .agents/skills/grails-developer/SKILL.md
 create mode 100644 .agents/skills/groovy-developer/SKILL.md
 create mode 100644 .agents/skills/java-developer/SKILL.md
 create mode 120000 .claude/skills/grails-developer/SKILL.md
 create mode 120000 .claude/skills/groovy-developer/SKILL.md
 create mode 120000 .claude/skills/java-developer/SKILL.md
 create mode 120000 .clinerules
 create mode 120000 .cursorrules
 create mode 100644 .github/workflows/release-close.yml
 create mode 100644 .github/workflows/release-publish-docs.yml
 create mode 120000 .windsurfrules
 create mode 100644 AGENTS.md
 create mode 120000 CLAUDE.md
 create mode 120000 GEMINI.md
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsCodeStyleExtension.groovy
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsCodeStylePlugin.groovy
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsRepoSettingsPlugin.groovy
 rename {etc/config => 
build-logic/plugins/src/main/resources/META-INF/org.apache.grails.buildsrc.codestyle}/checkstyle/checkstyle-suppressions.xml
 (100%)
 rename {etc/config => 
build-logic/plugins/src/main/resources/META-INF/org.apache.grails.buildsrc.codestyle}/checkstyle/checkstyle.xml
 (100%)
 rename {etc/config => 
build-logic/plugins/src/main/resources/META-INF/org.apache.grails.buildsrc.codestyle}/codenarc/codenarc.groovy
 (100%)
 delete mode 100644 gradle/code-style-config.gradle
 create mode 100644 
grails-data-mongodb/boot-plugin/src/test/resources/docker-java.properties
 rename grails-forge/config/checkstyle/{suppressions.xml => 
checkstyle-suppressions.xml} (100%)
 copy grails-test-examples/gorm/grails-app/domain/gorm/Book.groovy => 
grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/VersionType.java
 (81%)
 delete mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/apple-touch-icon-retina.png
 delete mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/apple-touch-icon.png
 create mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/community.svg
 delete mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/grails-cupsonly-logo-white.svg
 create mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/groovy.svg
 create mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/java.svg
 delete mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/slack.svg
 create mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/spring-boot.svg
 create mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/images/spring.svg
 create mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/javascripts/welcome.js
 create mode 100644 
grails-forge/grails-forge-core/src/main/resources/assets/stylesheets/welcome.css
 delete mode 100644 grails-gradle/gradle/code-style-config.gradle
 delete mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/apple-touch-icon-retina.png
 delete mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/apple-touch-icon.png
 create mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/community.svg
 delete mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/grails-cupsonly-logo-white.svg
 create mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/groovy.svg
 create mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/java.svg
 delete mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/slack.svg
 create mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/spring-boot.svg
 create mode 100644 
grails-profiles/web/skeleton/grails-app/assets/images/spring.svg
 create mode 100644 
grails-profiles/web/skeleton/grails-app/assets/javascripts/welcome.js
 create mode 100644 
grails-profiles/web/skeleton/grails-app/assets/stylesheets/welcome.css
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/async/AsyncTestController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/binding/AdvancedDataBindingController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/caching/CacheTestController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/codecs/CodecTestController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/commanddi/CommandDIController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/contentneg/ContentNegotiationController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/cors/CorsTestController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/errorhandling/ErrorHandlingTestController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/fileupload/FileUploadTestController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/flow/FlowController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/flow/FlowTargetController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/i18n/I18nTestController.groovy
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/controllers/functionaltests/interceptors/ActionExcludeInterceptor.groovy}
 (63%)
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/AdvancedMatchingController.groovy
 copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java => 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/AttributeSettingInterceptor.groovy
 (52%)
 copy 
grails-test-suite-web/src/test/groovy/org/grails/compiler/web/WithFormatSpec.groovy
 => 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/BlockingInterceptor.groovy
 (51%)
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/ConditionalMatchInterceptor.groovy
 copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java => 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/FirstInterceptor.groovy
 (56%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/controllers/functionaltests/interceptors/HttpMethodMatchingInterceptor.groovy}
 (66%)
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/InterceptorTestController.groovy
 copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java => 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/MultipleRulesInterceptor.groovy
 (62%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/controllers/functionaltests/interceptors/NamespaceMatchingInterceptor.groovy}
 (67%)
 copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java => 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/SecondInterceptor.groovy
 (55%)
 copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java => 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/SessionInterceptor.groovy
 (59%)
 copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java => 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/ThirdInterceptor.groovy
 (56%)
 copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java => 
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/TimingInterceptor.groovy
 (51%)
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/requestresponse/RequestResponseTestController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/springevents/SpringEventController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/taglib/TagLibTestController.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/controllers/functionaltests/urlmappings/UrlMappingsTestController.groovy
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/domain/functionaltests/binding/Address.groovy} (69%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/domain/functionaltests/binding/Contributor.groovy} (76%)
 copy 
grails-validation/src/test/groovy/grails/validation/SerializableValidateableSpec.groovy
 => 
grails-test-examples/app1/grails-app/domain/functionaltests/binding/Employee.groovy
 (52%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/domain/functionaltests/binding/Project.groovy} (72%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/domain/functionaltests/binding/Team.groovy} (77%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/domain/functionaltests/binding/TeamMember.groovy} (73%)
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/constraints/Appointment.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/constraints/PaymentInfo.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/constraints/Product.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/constraints/Registration.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/events/AuditedEntity.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/events/StatefulEntity.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/events/VetoableEntity.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/gorm/Author.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/domain/functionaltests/gorm/GormBook.groovy
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/grails-app/domain/functionaltests/services/InventoryItem.groovy} (64%)
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/caching/CacheTestService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/commanddi/NotificationService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/commanddi/PricingService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/commanddi/ValidationHelperService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/services/AsyncProcessingService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/services/InventoryService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/services/OrderService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/springevents/EventListenerService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/services/functionaltests/springevents/EventPublisherService.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/taglib/functionaltests/taglib/CustomTagLib.groovy
 create mode 100644 
grails-test-examples/app1/grails-app/views/contentNegotiation/error.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/contentNegotiation/index.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/_simpleTemplate.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testAlertTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testAppInfoTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBadgeTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInCheckBox.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInCollect.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInCookie.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInCreateLink.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInEach.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInFieldValue.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInFindAll.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInForm.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInFormatDate.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInFormatNumber.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInHeader.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInHiddenField.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInIf.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInInclude.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInJoin.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInLink.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInMessage.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInPaginate.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInPasswordField.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInRadio.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInRender.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInResource.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInSelect.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInSet.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInSortableColumn.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInTextArea.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInTextField.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInUploadForm.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInWhile.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testConditionalTags.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testCssClassTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testDefinitionListTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testEncodingTags.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testFormattedTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testHelloTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testIterateTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testJoinTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testListTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testNestedTags.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testPanelTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testProgressTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testRawTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testRepeatTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testRequestInfoTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testSessionValueTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testSetVarTag.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testTagsWithModel.gsp
 create mode 100644 
grails-test-examples/app1/grails-app/views/tagLibTest/testWrapperTag.gsp
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/async/AsyncPromiseSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/binding/AdvancedDataBindingSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/caching/CachingSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/codecs/SecurityCodecsSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/commanddi/CommandObjectDISpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/constraints/ConstraintValidationSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/contentneg/ContentNegotiationSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/cors/CorsAdvancedSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/errorhandling/ErrorHandlingSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/events/DomainEventsSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/fileupload/FileUploadSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/flow/FlashChainForwardSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/gorm/GormAdvancedSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/i18n/InternationalizationSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/interceptors/InterceptorAdvancedMatchingSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/interceptors/InterceptorOrderingSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/requestresponse/RequestResponseSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/services/ServiceIntegrationSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/springevents/SpringEventsSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/taglib/TagLibSpec.groovy
 create mode 100644 
grails-test-examples/app1/src/integration-test/groovy/functionaltests/urlmappings/UrlMappingsSpec.groovy
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/src/main/groovy/functionaltests/springevents/CustomApplicationEvent.groovy}
 (63%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/src/main/groovy/functionaltests/springevents/PriorityEvent.groovy} (69%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
app1/src/main/groovy/functionaltests/springevents/UserActionEvent.groovy} (62%)
 create mode 100644 
grails-test-examples/async-events-pubsub-demo/src/integration-test/groovy/pubsub/demo/AsyncEventsSpec.groovy
 create mode 100644 
grails-test-examples/cache/grails-app/controllers/com/demo/AdvancedCachingController.groovy
 create mode 100644 
grails-test-examples/cache/grails-app/controllers/com/demo/UrlMappings.groovy
 create mode 100644 
grails-test-examples/cache/grails-app/services/com/demo/AdvancedCachingService.groovy
 create mode 100644 
grails-test-examples/cache/src/integration-test/groovy/com/demo/AdvancedCachingIntegrationSpec.groovy
 create mode 100644 
grails-test-examples/cache/src/test/groovy/com/demo/AdvancedCachingServiceSpec.groovy
 create mode 100644 
grails-test-examples/datasources/src/integration-test/groovy/functionaltests/CrossDatasourceTransactionSpec.groovy
 create mode 100644 
grails-test-examples/datasources/src/integration-test/groovy/functionaltests/DatasourceSwitchingSpec.groovy
 create mode 100644 
grails-test-examples/external-configuration/src/integration-test/groovy/test/app/ConfigurationPrioritySpec.groovy
 create mode 100644 
grails-test-examples/external-configuration/src/integration-test/groovy/test/app/EnvironmentConfigurationSpec.groovy
 copy grails-test-examples/gorm/grails-app/{domain/gorm/Book.groovy => 
controllers/gorm/AuthorController.groovy} (83%)
 copy grails-test-examples/gorm/grails-app/{domain/gorm/Book.groovy => 
controllers/gorm/BookController.groovy} (82%)
 copy grails-test-examples/gorm/grails-app/{domain/gorm/Book.groovy => 
controllers/gorm/UrlMappings.groovy} (75%)
 create mode 100644 
grails-test-examples/gorm/grails-app/domain/gorm/AuditedEntity.groovy
 copy 
grails-test-examples/gorm/{src/integration-test/groovy/gorm/UserSpec.groovy => 
grails-app/domain/gorm/Author.groovy} (57%)
 copy {grails-data-graphql/examples/grails-docs-app => 
grails-test-examples/gorm}/grails-app/i18n/messages.properties (100%)
 create mode 100644 
grails-test-examples/gorm/grails-app/services/gorm/BookDataService.groovy
 create mode 100644 
grails-test-examples/gorm/grails-app/services/gorm/TransactionTestService.groovy
 create mode 100644 grails-test-examples/gorm/grails-app/views/error.gsp
 create mode 100644 grails-test-examples/gorm/grails-app/views/index.gsp
 create mode 100644 grails-test-examples/gorm/grails-app/views/notFound.gsp
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/FieldsValidationSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormCascadeOperationsSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormCriteriaQueriesSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormDataServicesSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormEventsSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormWhereQueryAdvancedSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/ScaffoldingFunctionalSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/TransactionPropagationSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/ValidationConstraintsSpec.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/pages/AuthorPages.groovy
 create mode 100644 
grails-test-examples/gorm/src/integration-test/groovy/gorm/pages/BookPages.groovy
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/controllers/org/example/grails/layout/TagLibController.groovy
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/_partial.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/collectTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/createLinkTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/eachTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/elseTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/encodeTags.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/formTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/formatTags.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/ifTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/index.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/joinTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/linkTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/renderTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/grails-app/views/tagLib/setTag.gsp
 create mode 100644 
grails-test-examples/gsp-layout/src/integration-test/groovy/GspTagLibSpec.groovy
 create mode 100644 
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautContextSpec.groovy
 create mode 100644 
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautQualifierSpec.groovy
 create mode 100644 
grails-test-examples/plugins/exploded/src/integration-test/groovy/exploded/PluginDependencySpec.groovy
 create mode 100644 
grails-test-examples/plugins/loadfirst/src/integration-test/groovy/loadfirst/PluginLifecycleSpec.groovy
 create mode 100644 
grails-test-examples/plugins/loadsecond/src/integration-test/groovy/loadsecond/PluginLoadOrderSpec.groovy
 copy grails-test-examples/{gorm => scaffolding-fields}/build.gradle (69%)
 create mode 100644 
grails-test-examples/scaffolding-fields/grails-app/conf/application.yml
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
scaffolding-fields/grails-app/controllers/scaffoldingfields/DepartmentController.groovy}
 (71%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
scaffolding-fields/grails-app/controllers/scaffoldingfields/EmployeeController.groovy}
 (72%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
scaffolding-fields/grails-app/controllers/scaffoldingfields/ProjectController.groovy}
 (72%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
scaffolding-fields/grails-app/controllers/scaffoldingfields/UrlMappings.groovy} 
(73%)
 copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java => 
grails-test-examples/scaffolding-fields/grails-app/domain/scaffoldingfields/Address.groovy
 (61%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
scaffolding-fields/grails-app/domain/scaffoldingfields/Department.groovy} (66%)
 create mode 100644 
grails-test-examples/scaffolding-fields/grails-app/domain/scaffoldingfields/Employee.groovy
 copy 
build-logic/docs-core/src/main/groovy/org/apache/grails/gradle/tasks/bom/CoordinateVersionHolder.groovy
 => 
grails-test-examples/scaffolding-fields/grails-app/domain/scaffoldingfields/Project.groovy
 (51%)
 copy {grails-data-graphql/examples/grails-docs-app => 
grails-test-examples/scaffolding-fields}/grails-app/i18n/messages.properties 
(100%)
 copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy => 
scaffolding-fields/grails-app/init/scaffoldingfields/Application.groovy} (74%)
 create mode 100644 
grails-test-examples/scaffolding-fields/grails-app/init/scaffoldingfields/BootStrap.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/grails-app/views/_fields/default/_wrapper.gsp
 create mode 100644 
grails-test-examples/scaffolding-fields/grails-app/views/_fields/employee/biography/_wrapper.gsp
 create mode 100644 
grails-test-examples/scaffolding-fields/grails-app/views/_fields/employee/email/_wrapper.gsp
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/CrudFunctionalSpec.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/CustomTemplatesSpec.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/FieldTypesSpec.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/PaginationSpec.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/RelationshipsFunctionalSpec.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/ValidationFunctionalSpec.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/DepartmentPages.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/EmployeePages.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ProjectPages.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ScaffoldCreatePage.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ScaffoldEditPage.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ScaffoldListPage.groovy
 create mode 100644 
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ScaffoldShowPage.groovy
 delete mode 100644 
grails-web-url-mappings/src/main/resources/META-INF/services/grails.factories
 copy grails-wrapper/src/main/java/grails/init/{GrailsReleaseType.java => 
GrailsReleaseNotFoundException.java} (55%)

Reply via email to