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

sbglasius pushed a change to branch micronaut-fixes
in repository https://gitbox.apache.org/repos/asf/grails-core.git


 discard 0ea0544cca prevent duplicate loading of micronaut beans & fix bootJar 
task
     add 57d468e955 test: fix flaky `PerTestRecordingSpec`
     add b79d7a5fb3 Merge pull request #15242 from apache/fix-recording-test
     add 5bdf163cce fix(deps): update geb to 8.0.1
     add 471af067fc fix(deps): update selenium to 4.38.0
     add 03855dfc33 Merge pull request #15241 from 
apache/update-geb-and-selenium
     add 7f7598f5ab Update asset pipeline and WebJars integration
     add 3c140ad8ac Upgrade to Asset Pipeline 5.0.21
     add 9fce3fe244 Merge pull request #15244 from 
apache/use-webjar-locator-feature
     add efbb814d70 Revert adding contextPath between 5.2.X and 5.3.X
     add 1636d90aeb Add test but I have an error with previous test 
"@Issue('11673')"
     add 7b27d17438 Remove previous test for "@Issue('11673')"
     add d23e7eaf9d Undo the last commit and add a potential fix for 
@Issue('11673')
     add 53eb5f95b6 Fixed whitespace issues causing codeNarc errlrs
     add 6a1019390e Merge pull request #15227 from Noirtam/issues_15132
     add 897023415e Update spring-boot.version to 3.5.8
     add b0fc4c0020 Merge pull request #15247 from apache/spring-boot-3.5.8
     add 1cde2d4518 test: fix more flakiness in `PerTestRecordingSpec` (#15248)
     add 21f32a75ba [skip ci] post 7.0.3 release adjustments (#15250)
     add c6cc7084f1 fix: compatibility with Docker 29 (#15249)
     add b9c7304e3a [skip ci] Release v7.0.3
     add 84ac125259 [skip ci] Bump version to 7.0.4-SNAPSHOT
     add 8ea6074f9a Merge pull request #15253 from apache/merge-back-7.0.3
     add 829fb8d0ed Revise Grails Forge deployment instructions
     add 155df09bbf Merge pull request #15255 from 
apache/update-forge-release-docs
     add 4fa35846c6 Update deployment rules with workflow links
     add 0db8b580ed Merge pull request #15256 from 
apache/forge-release-details-workflow
     add a442297b38 Add manual steps for release workflow
     add 5fbc32b5cf Merge pull request #15257 from 
apache/two-manual-final-release-steps
     add 1b2d9075b9 Update jakartaee-migration plugin version to 1.0.0 and 
example in docs
     add 94c0db4edc fix - adopt provider syntax for pomCustomization
     add 156eb909c8 Merge pull request #15260 from jdaugherty/7.0.x
     add d68f5726c2 deps - update to grails publish 0.0.3
     add 4c8c911d01 Merge pull request #15262 from jdaugherty/7.0.x
     add 9ef55e0268 deps - update asset-pipeline to v5.0.22
     add 83471a24c5 Merge pull request #15263 from jdaugherty/7.0.x
     add 2c9a17985e Include staging repo for grails-publish when a snapshot
     add 0dbcd01765 Merge pull request #15264 from jdaugherty/7.0.x
     add d73c03b464 webjars-locator-core dependency is now provided implicitly 
by asset-pipeline
     add 365ffd0836 Merge pull request #15265 from 
apache/remove-webjars-locator-core-dep
     add da5bd43547 [skip ci] Release v7.0.4
     add 6893a4aa7e [skip ci] Bump version to 7.0.5-SNAPSHOT
     add cd415774f7 Merge pull request #15268 from apache/merge-back-7.0.4
     add 3354d5ac15 docs(geb): [skip ci] fix GebConfig example (#15267)
     add 09ee1b436e Update jakartaeeMigration configuration in docs
     add 796cd2f1bc [skip ci] post 7.0.4 release updates (#15272)
     add ee768570e3 removing `java-config.gradle` in favor of plugin
     add 7953e132bf remove source of duplicate sourceset inclusion in source 
jars
     add c8a6efa67c use SharedPropertiesPlugin where possible and avoid manual 
loading of gradle.properties files
     add 957ff564ab remove manual gradle.properties lookup from buildSrcs
     add f5794ee49c Add missing license headers
     add 883ecc7afe reformatting code
     add f9466f6e0a feedback - switch to register() for implicit typing
     add 2921aa25ec feedback - formatting & various clean-up
     add 068553ee8d feedback - replace java-library with groovy where groovy 
source is used instead of java
     add 1234616443 Revert "feedback - replace java-library with groovy where 
groovy source is used instead of java"
     add ec896d5f6d feedback - update comment to reflect the version is 
matching the bom version
     add 018415ba96 feedback - remove java-library from grails plugins
     add e121dee3ea feedback - remove java plugin from wrapper
     add 712a1c0d00 Merge pull request #15269 from apache/gradle-centralization
     add cd1dd95255 Moving to a shared author/developer list
     add 60dbe6dbf1 Map github usernames to historical contributors to generate 
a authorship information in our pom files
     add 2a5c060cb8 Add plugin repos for build-logic project so snapshots can 
be found
     add bf4cf701f1 Adjust repos so publish plugin's snapshot version can be 
found
     add b4d6141e98 Exclude .mailmap from rat audits
     add fe2b6dc91a Add repos so publish can be found for forge
     add ee928fa354 sort founder section
     add 8a6fe53806 Mapping Iván López git user
     add 3354c2c651 feedback - rename developer list creator
     add 507bd81ab0 feedback - remove self-evident comment
     add d184690c2b feedback - rename pomDeveloper method
     add 79ceeebc52 Merge pull request #15274 from apache/authorship-changes
     add d0df328e87 change HashMap to LinkedHashMap to maintain result map order
     add 4b22f2bef2 Merge pull request #15284 from 
luizfiliperm/maintain-map-return-order
     add 0351d03f5f fix: remove groovy and java-library from `grails-layout`
     add 82bd3e9a52 Merge pull request #15283 from matrei/minor-build-cleanup
     add e3cda3a521 Issue 14379 Remove dependency to tomcat-embed-logging-log4j
     add c868f7273b Removed tomcat-embed-logging-log4j dependency fron GraphQL
     add 05db61ef1a Added the Grails Bom to example
     add c7fbf67b25 Merge pull request #15275 from 
dauer/issue-14379-remove-dependency-to-tomcat-embed-logging-log4j
     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 fed50d0f2c #15378 - Update asset pipeline to 5.0.32
     add 4ca9b1ebce Merge pull request #15379 from jdaugherty/7.0.x
     add 1f7594c2c4 #15376 - remove .mailmap
     new 32ac3863a5 prevent duplicate loading of micronaut beans & fix bootJar 
task

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

 * -- * -- B -- O -- O -- O   (0ea0544cca)
            \
             N -- N -- N   refs/heads/micronaut-fixes (32ac3863a5)

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

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

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


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/scripts/releaseDistributions.sh            |  12 +-
 .github/scripts/releaseJarFiles.sh                 |   7 +-
 .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                      |  93 +-
 .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                                         |  18 +-
 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                   |  20 +-
 .../apache/grails/buildsrc/CompilePlugin.groovy    | 135 +++
 .../org/apache/grails/buildsrc/GradleUtils.groovy  |  38 +-
 ...tils.groovy => GrailsCodeStyleExtension.groovy} |  39 +-
 .../grails/buildsrc/GrailsCodeStylePlugin.groovy   | 171 ++++
 .../buildsrc/GrailsRepoSettingsPlugin.groovy       | 113 +++
 .../apache/grails/buildsrc/PublishPlugin.groovy    | 155 +++-
 .../grails/buildsrc/SharedPropertyPlugin.groovy    |  77 ++
 .../checkstyle/checkstyle-suppressions.xml         |   0
 .../checkstyle/checkstyle.xml                      |   0
 .../codenarc/codenarc.groovy                       |   0
 build-logic/settings.gradle                        |  51 +-
 build.gradle                                       |   4 +-
 buildSrc/build.gradle                              |  49 +-
 .../gorm/Book.groovy => buildSrc/settings.gradle   |  24 +-
 dependencies.gradle                                |  83 +-
 etc/bin/Dockerfile                                 |   3 +-
 etc/bin/test-reproducible-builds.sh                |   5 +
 etc/bin/verify.sh                                  |  51 +-
 gradle.properties                                  |   6 +-
 gradle/code-style-config.gradle                    |  69 --
 gradle/docs-dependencies.gradle                    |  17 +
 gradle/java-config.gradle                          |  72 --
 gradle/rat-root-config.gradle                      |   1 +
 gradle/test-config.gradle                          |  23 +-
 gradle/wrapper/gradle-wrapper.properties           |   4 +-
 grails-async/core/build.gradle                     |   6 +-
 grails-async/gpars/build.gradle                    |   6 +-
 grails-async/plugin/build.gradle                   |   6 +-
 grails-async/rxjava/build.gradle                   |   6 +-
 grails-async/rxjava2/build.gradle                  |   6 +-
 grails-async/rxjava3/build.gradle                  |   6 +-
 grails-bom/build.gradle                            |  59 +-
 grails-bootstrap/build.gradle                      |   6 +-
 grails-cache/build.gradle                          |   7 +-
 grails-codecs-core/build.gradle                    |   6 +-
 grails-codecs/build.gradle                         |   6 +-
 grails-common/build.gradle                         |   6 +-
 grails-console/build.gradle                        |   6 +-
 grails-controllers/build.gradle                    |   6 +-
 grails-converters/build.gradle                     |   6 +-
 grails-core/build.gradle                           |   6 +-
 .../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/core/build.gradle              |   1 -
 .../examples/spring-boot-app/build.gradle          |   1 -
 grails-data-graphql/gradle.properties              |   2 +-
 grails-data-graphql/settings.gradle                |   2 +-
 grails-data-hibernate5/boot-plugin/build.gradle    |  11 +-
 grails-data-hibernate5/core/build.gradle           |  11 +-
 .../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    |  22 +-
 grails-data-hibernate5/docs/build.gradle           |  17 +
 .../asciidoc/gettingStarted/outsideGrails.adoc     |  21 +-
 grails-data-hibernate5/grails-plugin/build.gradle  |  11 +-
 grails-data-mongodb/boot-plugin/build.gradle       |  10 +-
 .../MongoDbGormAutoConfigurationSpec.groovy        |   2 +
 ...ngoDbGormAutoConfigureWithGeoSpacialSpec.groovy |   2 +
 .../src/test/resources/docker-java.properties      |   2 +
 grails-data-mongodb/bson/build.gradle              |  10 +-
 grails-data-mongodb/core/build.gradle              |  10 +-
 .../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               |  10 +-
 grails-data-mongodb/grails-plugin/build.gradle     |  10 +-
 grails-data-mongodb/gson-templates/build.gradle    |   6 +-
 .../Neo4jAutoConfigurationSpec.groovy              |   2 +
 grails-data-neo4j/docs/build.gradle                |  17 +
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 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                    |  13 +-
 grails-databinding-core/build.gradle               |   6 +-
 grails-databinding/build.gradle                    |   6 +-
 grails-datamapping-async/build.gradle              |  13 +-
 grails-datamapping-core-test/build.gradle          |  11 +-
 .../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               |  13 +-
 grails-datamapping-rx/build.gradle                 |  13 +-
 grails-datamapping-support/build.gradle            |  13 +-
 grails-datamapping-tck/build.gradle                |  13 +-
 grails-datamapping-validation/build.gradle         |  13 +-
 grails-datasource/build.gradle                     |   6 +-
 grails-datastore-async/build.gradle                |  13 +-
 grails-datastore-core/build.gradle                 |  13 +-
 grails-datastore-web/build.gradle                  |  13 +-
 grails-dependencies/assets/build.gradle            |   8 +-
 grails-dependencies/starter-web/build.gradle       |   8 +-
 grails-dependencies/test/build.gradle              |   8 +-
 grails-doc/build.gradle                            |  20 +-
 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       | 109 ++-
 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                   |   6 +-
 .../grails/persistence/DomainClassTraitSpec.groovy |   6 +
 grails-encoder/build.gradle                        |   6 +-
 grails-events/compat/build.gradle                  |   6 +-
 grails-events/core/build.gradle                    |   6 +-
 grails-events/gpars/build.gradle                   |   6 +-
 grails-events/plugin/build.gradle                  |   6 +-
 grails-events/rxjava/build.gradle                  |   6 +-
 grails-events/rxjava2/build.gradle                 |   6 +-
 grails-events/rxjava3/build.gradle                 |   6 +-
 grails-events/spring/build.gradle                  |   6 +-
 grails-events/transforms/build.gradle              |   6 +-
 grails-fields/build.gradle                         |   7 +-
 grails-forge/build.gradle                          |  11 +-
 grails-forge/buildSrc/build.gradle                 |  55 +-
 .../buildSrc/settings.gradle                       |  24 +-
 ...uppressions.xml => checkstyle-suppressions.xml} |   0
 grails-forge/config/checkstyle/checkstyle.xml      |   2 +-
 grails-forge/gradle.properties                     |   8 +-
 grails-forge/gradle/code-style-config.gradle       |  42 +-
 grails-forge/gradle/doc-config.gradle              |  19 +-
 grails-forge/gradle/java-config.gradle             |  77 --
 grails-forge/gradle/test-config.gradle             |  10 -
 .../gradle/wrapper/gradle-wrapper.properties       |   4 +-
 grails-forge/grails-cli-shadow/build.gradle        |   6 +-
 grails-forge/grails-cli/build.gradle               |   6 +-
 .../grails-forge-analytics-postgres/build.gradle   |   1 +
 grails-forge/grails-forge-api/build.gradle         |   3 +-
 grails-forge/grails-forge-cli/build.gradle         |   3 +-
 .../groovy/org/grails/forge/cli/CommandSpec.groovy |   2 +-
 grails-forge/grails-forge-core/build.gradle        |   7 +-
 .../build/gradle/DefaultGradleRepository.java      |  59 +-
 .../forge/build/gradle/GradleRepository.java       |  47 +-
 .../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   |   6 +-
 .../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/grails-forge-web-netty/build.gradle   |   1 +
 grails-forge/settings.gradle                       |  79 +-
 grails-forge/test-core/build.gradle                |   3 +-
 grails-geb/README.md                               |   5 +-
 grails-geb/build.gradle                            |  13 +-
 .../testFixtures/resources/docker-java.properties  |   2 +
 grails-gradle/bom/build.gradle                     |   2 +-
 grails-gradle/build.gradle                         |   7 +-
 grails-gradle/buildSrc/build.gradle                |  38 +-
 .../buildSrc/settings.gradle                       |  22 +-
 grails-gradle/common/build.gradle                  |   7 +-
 grails-gradle/gradle/code-style-config.gradle      |  61 --
 grails-gradle/gradle/docs-config.gradle            |  17 +
 grails-gradle/gradle/java-config.gradle            |  85 --
 grails-gradle/gradle/test-config.gradle            |   7 -
 .../gradle/wrapper/gradle-wrapper.properties       |   4 +-
 grails-gradle/model/build.gradle                   |   7 +-
 grails-gradle/plugins/build.gradle                 |  12 +-
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   |  44 +-
 .../gradle/plugin/web/GrailsWebGradlePlugin.groovy |  40 +-
 grails-gradle/settings.gradle                      |  70 +-
 grails-gradle/tasks/build.gradle                   |   6 +-
 grails-gsp/core/build.gradle                       |   7 +-
 grails-gsp/grails-layout/build.gradle              |   8 +-
 grails-gsp/grails-sitemesh3/build.gradle           |   7 +-
 grails-gsp/grails-taglib/build.gradle              |   7 +-
 grails-gsp/grails-web-gsp-taglib/build.gradle      |   7 +-
 grails-gsp/grails-web-gsp/build.gradle             |   7 +-
 grails-gsp/grails-web-jsp/build.gradle             |   7 +-
 grails-gsp/grails-web-taglib/build.gradle          |   7 +-
 grails-gsp/plugin/build.gradle                     |  13 +-
 .../mapping/RestfulReverseUrlRenderingTests.groovy |  21 +
 .../web/taglib/AbstractGrailsTagTests.groovy       |   7 +
 .../org/grails/web/taglib/FormTagLibTests.groovy   |  28 +
 grails-gsp/spring-boot/build.gradle                |   5 +-
 grails-i18n/build.gradle                           |   6 +-
 grails-interceptors/build.gradle                   |   6 +-
 .../web/interceptors/UrlMappingMatcherSpec.groovy  |   7 +-
 grails-logging/build.gradle                        |   6 +-
 grails-micronaut/build.gradle                      |   4 +-
 grails-mimetypes/build.gradle                      |   6 +-
 .../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  |   6 +-
 .../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                |   6 +-
 .../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                    |   7 +-
 grails-services/build.gradle                       |   6 +-
 grails-shell-cli/build.gradle                      |   6 +-
 .../grails/cli/profile/ProfileRepoConfig.groovy    |  14 +-
 .../cli/profile/commands/CreateAppCommand.groovy   | 202 ++++-
 .../profile/commands/CreateAppCommandSpec.groovy   |   4 +-
 grails-spring/build.gradle                         |   6 +-
 grails-test-core/build.gradle                      |   6 +-
 grails-test-examples/app1/build.gradle             |   7 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../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        |  37 +-
 .../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  |  24 +-
 .../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     |  24 +-
 .../springevents/PriorityEvent.groovy              |  22 +-
 .../springevents/UserActionEvent.groovy            |  24 +-
 .../functionaltests/BookControllerSpec.groovy      |  10 +-
 grails-test-examples/app2/build.gradle             |   5 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 grails-test-examples/app3/build.gradle             |   6 +-
 .../async-events-pubsub-demo/build.gradle          |   6 +-
 .../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            |   7 +-
 .../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 +++++++
 grails-test-examples/datasources/build.gradle      |   5 +-
 .../CrossDatasourceTransactionSpec.groovy          | 284 ++++++
 .../functionaltests/DatasourceSwitchingSpec.groovy | 370 ++++++++
 .../functionaltests/MultipleDataSourcesSpec.groovy |  13 +-
 grails-test-examples/demo33/build.gradle           |   5 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   8 +-
 grails-test-examples/exploded/build.gradle         |   5 +-
 .../external-configuration/build.gradle            |   5 +-
 .../test/app/ConfigurationPrioritySpec.groovy      | 249 ++++++
 .../test/app/EnvironmentConfigurationSpec.groovy   | 223 +++++
 grails-test-examples/geb-gebconfig/build.gradle    |   8 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   8 +-
 grails-test-examples/geb/build.gradle              |   7 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   8 +-
 .../org/demo/spock/PerTestRecordingSpec.groovy     |  48 +-
 grails-test-examples/gorm/build.gradle             |  11 +-
 .../gorm/AuthorController.groovy}                  |  17 +-
 .../gorm/BookController.groovy}                    |  17 +-
 .../grails-app/controllers/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-test-examples/gsp-layout/build.gradle       |   6 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   8 +-
 .../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-test-examples/gsp-sitemesh3/build.gradle    |   6 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   8 +-
 .../gsp-spring-boot/script/.sdkmanrc               |   4 +-
 .../hibernate5/grails-data-service/build.gradle    |   3 +-
 .../grails-database-per-tenant/build.gradle        |   3 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../controllers/example/BookController.groovy      |   8 +-
 .../groovy/example/DatabasePerTenantSpec.groovy    |   6 +-
 .../grails-hibernate-groovy-proxy/build.gradle     |   3 +-
 .../hibernate5/grails-hibernate/build.gradle       |   3 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../functional/tests/BookController.groovy         |   8 +-
 .../functional/tests/BookControllerUnitSpec.groovy |  10 +-
 .../grails-multiple-datasources/build.gradle       |   3 +-
 .../grails-partitioned-multi-tenancy/build.gradle  |   3 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../controllers/example/BookController.groovy      |   8 +-
 .../example/PartitionedMultiTenancySpec.groovy     |   6 +-
 .../grails-schema-per-tenant/build.gradle          |   3 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../schemapertenant/BookController.groovy          |   8 +-
 .../schemapertenant/SchemaPerTenantSpec.groovy     |   5 +-
 .../hibernate5/issue450/build.gradle               |   3 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   8 +-
 .../hibernate5/spring-boot-hibernate/build.gradle  |   3 +-
 .../hibernate5/standalone-hibernate/build.gradle   |   3 +-
 grails-test-examples/hyphenated/build.gradle       |   5 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 grails-test-examples/issue-11102/build.gradle      |   5 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   8 +-
 grails-test-examples/issue-11767/build.gradle      |   5 +-
 grails-test-examples/issue-15228/build.gradle      |   6 +-
 .../issue-698-domain-save-npe/build.gradle         |   5 +-
 grails-test-examples/issue-views-182/build.gradle  |   5 +-
 grails-test-examples/micronaut/build.gradle        |   5 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   8 +-
 .../groovy/micronaut/MicronautContextSpec.groovy   |  92 ++
 .../groovy/micronaut/MicronautQualifierSpec.groovy | 106 +++
 grails-test-examples/mongodb/base/build.gradle     |   5 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../functional/tests/BookController.groovy         |   8 +-
 .../mongodb/database-per-tenant/build.gradle       |   5 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../examples/mongo/tenant/BookController.groovy    |   8 +-
 .../groovy/examples/mongo/tenant/BookSpec.groovy   |   7 +-
 .../mongodb/gson-templates/build.gradle            |   5 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../mongodb/hibernate5/build.gradle                |   5 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 .../functional/tests/AuthorController.groovy       |   8 +-
 .../functional/tests/BookController.groovy         |   8 +-
 .../mongodb/springboot/build.gradle                |   5 +-
 .../mongodb/test-data-service/build.gradle         |   5 +-
 grails-test-examples/namespaces/build.gradle       |   5 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 grails-test-examples/plugins/exploded/build.gradle |   8 +-
 .../groovy/exploded/PluginDependencySpec.groovy    | 223 +++++
 .../plugins/issue-11767/build.gradle               |   5 +-
 .../plugins/issue11005/build.gradle                |   5 +-
 .../plugins/loadafter/build.gradle                 |   5 +-
 .../plugins/loadfirst/build.gradle                 |   8 +-
 .../groovy/loadfirst/PluginLifecycleSpec.groovy    | 236 +++++
 .../plugins/loadsecond/build.gradle                |   8 +-
 .../groovy/loadsecond/PluginLoadOrderSpec.groovy   | 222 +++++
 .../build.gradle                                   |  29 +-
 .../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-test-examples/scaffolding/build.gradle      |   3 +-
 .../grails-app/assets/javascripts/application.js   |   4 +-
 .../grails-app/assets/stylesheets/application.css  |   6 +-
 .../views-functional-tests-plugin/build.gradle     |   3 +-
 .../views-functional-tests/build.gradle            |   6 +-
 .../grails-app/assets/javascripts/application.js   |   2 +-
 .../grails-app/assets/stylesheets/application.css  |   4 +-
 grails-test-suite-base/build.gradle                |   9 +-
 grails-test-suite-persistence/build.gradle         |   4 +-
 grails-test-suite-uber/build.gradle                |   9 +-
 ...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                 |   6 +-
 .../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           |  10 +-
 grails-testing-support-datamapping/build.gradle    |   6 +-
 grails-testing-support-mongodb/build.gradle        |   8 +-
 grails-testing-support-views-gson/build.gradle     |   6 +-
 grails-testing-support-web/build.gradle            |   7 +-
 .../grails/testing/web/UrlMappingsUnitTest.groovy  |  10 +
 grails-url-mappings/build.gradle                   |   6 +-
 grails-validation/build.gradle                     |   6 +-
 .../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                     |   7 +-
 grails-views-gson/build.gradle                     |   7 +-
 .../grails/plugin/json/view/api/JsonApiSpec.groovy |  21 +
 grails-views-markup/build.gradle                   |   7 +-
 grails-web-boot/build.gradle                       |   6 +-
 grails-web-common/build.gradle                     |   6 +-
 grails-web-core/build.gradle                       |   6 +-
 grails-web-databinding/build.gradle                |   6 +-
 grails-web-mvc/build.gradle                        |   6 +-
 grails-web-url-mappings/build.gradle               |   6 +-
 .../grails/web/mapping/ResponseRedirector.groovy   |   8 +-
 .../mvc/UrlMappingsInfoHandlerAdapter.groovy       |   2 +-
 .../reporting/UrlMappingsReportCommand.groovy      |  21 +-
 .../resources/META-INF/services/grails.factories   |   1 -
 .../web/mapping/RedirectNonAbsoluteURISpec.groovy  |  22 +
 .../LinkGeneratorWithUrlMappingsSpec.groovy        |  13 +
 .../web/mapping/RestfulUrlMappingSpec.groovy       |   6 +
 .../mapping/UrlMappingsWithHttpMethodSpec.groovy   |   6 +
 .../web/mapping/mvc/EncodePathFromURISpec.groovy   |   5 +
 grails-wrapper/build.gradle                        |  12 +-
 ...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 +-
 757 files changed, 37392 insertions(+), 3093 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/CompilePlugin.groovy
 copy 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/{GradleUtils.groovy
 => GrailsCodeStyleExtension.groovy} (50%)
 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
 create mode 100644 
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SharedPropertyPlugin.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%)
 copy grails-test-examples/gorm/grails-app/domain/gorm/Book.groovy => 
buildSrc/settings.gradle (80%)
 delete mode 100644 gradle/code-style-config.gradle
 delete mode 100644 gradle/java-config.gradle
 create mode 100644 
grails-data-mongodb/boot-plugin/src/test/resources/docker-java.properties
 copy grails-test-examples/gorm/grails-app/domain/gorm/Book.groovy => 
grails-forge/buildSrc/settings.gradle (79%)
 rename grails-forge/config/checkstyle/{suppressions.xml => 
checkstyle-suppressions.xml} (100%)
 delete mode 100644 grails-forge/gradle/java-config.gradle
 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
 create mode 100644 grails-geb/src/testFixtures/resources/docker-java.properties
 copy grails-test-examples/gorm/grails-app/domain/gorm/Book.groovy => 
grails-gradle/buildSrc/settings.gradle (79%)
 delete mode 100644 grails-gradle/gradle/code-style-config.gradle
 delete mode 100644 grails-gradle/gradle/java-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 
build-logic/docs-core/src/main/groovy/org/apache/grails/gradle/tasks/bom/CoordinateVersionHolder.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 buildSrc/src/main/groovy/grails/doc/macros/HiddenMacro.groovy => 
grails-test-examples/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 buildSrc/src/main/groovy/grails/doc/macros/HiddenMacro.groovy => 
grails-test-examples/app1/src/main/groovy/functionaltests/springevents/CustomApplicationEvent.groovy
 (63%)
 copy buildSrc/src/main/groovy/grails/doc/macros/HiddenMacro.groovy => 
grails-test-examples/app1/src/main/groovy/functionaltests/springevents/PriorityEvent.groovy
 (69%)
 copy buildSrc/src/main/groovy/grails/doc/macros/HiddenMacro.groovy => 
grails-test-examples/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%)
 rename buildSrc/src/main/groovy/grails/doc/macros/HiddenMacro.groovy => 
grails-test-examples/gorm/grails-app/controllers/gorm/UrlMappings.groovy (72%)
 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/{namespaces => scaffolding-fields}/build.gradle (75%)
 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