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%)