This is an automated email from the ASF dual-hosted git repository.
jamesfredley pushed a change to branch dependabot/github_actions/actions/cache-5
in repository https://gitbox.apache.org/repos/asf/grails-core.git
from 124eaf76c8 Bump actions/cache from 4 to 5
add 4b3f9b5fb9 Bump actions/upload-artifact from 4 to 6
add 92edc85665 Merge pull request #15292 from
apache/dependabot/github_actions/actions/upload-artifact-6
add 49710de1d7 documentation - removing old coordinates, assume the bom is
applied, and add rxjava3 references
add 48e904510f Merge pull request #15288 from jdaugherty/7.0.x
add 351fda50b9 Add IntelliJ IDEA Enhanced HotSwap to reloading guide
add 4c9e27ab8c Update
grails-doc/src/en/guide/gettingStarted/developmentReloading.adoc
add 6ff705f7a3 Update
grails-doc/src/en/guide/gettingStarted/developmentReloading.adoc
add 48967769ee Add Oxford Comma
add 31a766ca28 Rephrase JRebel plugin mention for clarity
add 39347a34fe Merge pull request #15287 from apache/intellij-hotswap-debug
add b184964f0f doc - #15293 - add warning about invokedynamic performance
add ee433a4ed0 Merge pull request #15296 from jdaugherty/7.0.x
add e663f8da7a fix: compatibility with Docker 29
add 3a9cf11a4a Merge pull request #15298 from apache/docker-compat
add 48ba3b2c79 fix: add app class to `urlMappingsReport` task args
add add688dceb fix: remove unused `grails.factories` file
add cb25fc26cd chore: cleanup `ApplicationCommand` and
`UrlMappingsReportCommand`
add ffc2974659 fix: guard against multiple task registrations
add 865a390704 fix: handle missing configurations in buildClasspath setup
add c9b28bcd62 fix: compile error
add 3abe0bd566 Merge pull request #15295 from apache/issue-15286
add b5b0a523c2 Update spring-boot.version to 3.5.9
add 679a0c30e6 Merge pull request #15303 from apache/spring-boot-3.5.9
add 7c8eb5549b Exclude logback-core in jakartaeeMigration
add 3f3b5bad89 Correct branch version for Grails 7 in README
add 1bf8b09703 Update date formats for data binding documentation
add 75bc0530de Merge pull request #15308 from
Ajay9704/update-date-formats-docs
add b42e806a40 Update grails-publish-plugin version to 0.0.4
add 0c2db79e20 Add missing application.yml examples to docs
add a6d3b23a61 Merge pull request #15309 from
Ajay9704/update-missing-application-yml-docs
add 7c2a98082e [skip ci] Release v7.0.5
add f77dfba694 [skip ci] Bump version to 7.0.6-SNAPSHOT
add ff13ddba5f Merge pull request #15313 from apache/merge-back-7.0.5
add c5276c68d6 Add instructions for republishing Grails Website to
release.md
add d14b57bdaa docs: migrate Java EE links to Jakarta EE
add ace0ed1f33 Merge pull request #15314 from apache/migrate-javaee-links
add d584bbc9c3 Issue-15254 Docs - Multiple issues with Tag Library
documentation
add 8c02b5d076 Examples are now TagLib examples
add bf9a8aa9df Update grails-doc/src/en/ref/Tag Libraries/flash.adoc
add 2ec7f5e105 Update grails-doc/src/en/ref/Tag Libraries/pageScope.adoc
add 7e03e043d2 Update grails-doc/src/en/ref/Tag
Libraries/servletContext.adoc
add 958b3c373a Added better TagLib session example
add 87f05a3d44 Even better TagLib session example
add 9ae247fd21 Merge pull request #15304 from
dauer/issue-15254-docs-issues-tag-library-documentation
add b7f21b3732 build - allow for mavenLocal() usage without having to
change commented code in files
add 8513c56772 Merge pull request #15318 from jdaugherty/7.0.x
add 3efdbb19d3 build - update IDEA codestyle to add blank line after class
header to match codestyle validation
add 12897ede36 15315 - refactor codestyle configuration into a plugin
add 3cb965013d Merge pull request #15316 from jdaugherty/codestyle-refactor
add f2e91ff61c Docs - various documentation related chores/cleanups
add 3cf7d27fc8 Merge branch '7.0.x' into docs-various-chores-links-typos
add dc50fe638a Merge pull request #15305 from
dauer/docs-various-chores-links-typos
add e20c91bef6 fix: improve new app welcome page
add 0c6eb27769 fix: change the community card
add 3d18f2ee1e fix: remove unused asset images
add c6d0a6da0c fix: update asset handling in forge
add 5d7537a799 test(forge): move assets test to `AssetPipelineSpec`
add 447e348730 fix(feedback): mention GH discussions
add 331ea10613 Merge pull request #15317 from apache/app-welcome-page
add ecc4a6ece6 Add matomo groovydocs 15133 (#15312)
add e4663d5753 #15321 - docs - fix list items in groovy upgrade notes
add 32a03dc1bc #15321 - disable invoke dynamic by default
add 4cda35a8e6 Merge pull request #15322 from apache/invokeDynamicDisable
add 314fc37eb3 #15302 - fix(breaking) property name resolution when
generating grails-bom
add afdbe70f84 #15302 - various versions & pom property fixes * correct
incorrect keys that had partial matches * map profile properties to have a
prefix of 'grails-profile' * remove duplicate entries * fix versions adoc to
match pom values
add 2cbe5a0cf5 #15302 - update documentation per feedback
add cb72050f7f Merge pull request #15319 from
apache/grails-bom-property-name-fix
add aa103fae63 #15324 - dependencies - Update to Groovy 4.0.30 & support
changing to a staged version of Groovy
add 5f903f078a #15324 - build - rework the repository definitions to be
centrally defined in a repository settings plugin
add d17aa4961d #14887 - feature - add GRAILS_REPO_URL support for profiles
& support many repos instead of one.
add e9f5507c5c #15324 - feature - rework gradle repos selected for
snapshot builds in grails-forge-cli
add c08fa9aeb6 #15324 - fix - remove exclusion setting due to
https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/368
being fixed to correctly pull in bom overrides
add 44bbef5bad #15324 - fix - explicitly define groovy in the bom so when
using the spring dependency management plugin, the correct version is chosen
add 6e64c6ce3e #15324 - test - always show full stacktraces in forge tests
add b7f53c6f4c #15324 - fix - exclusions in grails-gsp are correctly being
applied so groovy-json & spring-mvc are not exposed anymore
add dbce837993 build - build forge when testing reproducibility
add 533f7bfd58 fix: add comments to removed dependency exclusions
add 3c42eaeb62 Merge pull request #15320 from jdaugherty/7.0.x
add a5e5dc5b33 Update asset-pipeline and WebJars require paths
add 0635c3ed27 Merge pull request #15328 from apache/asset-pipeline-5.0.28
add e483c72708 #14887 - fix - create-app command
add 09a0c5dafc #14887 - fix - do not include snapshots repo unless it's a
snapshot for grails-shell created apps
add 07a6484b41 feature - update to asset pipeline 29
add 44d3bd9569 fix special repos in grails-shell app generation
add c7e169ad6e [skip ci] share the same concurrency group in release-notes
& releases to prevent stepping on each workflows / causing release builds to
fail
add 9ac2261af8 #14887 - fix indentation
add 46450a5747 restore correct groupings for grails-bom
add aade916907 Revise verification instructions due to new profile support
for GRAILS_REPO_URL
add d1f7008e3d fix(build): remove duplicate `gradle-spock.version`
add 6c2f66f4a3 fix(docs): correct path for copying build diffs
add 9fbba368be Upgrade to Spring Boot 3.5.10
add da7a04e33e Merge pull request #15331 from apache/spring-boot-3.5.10
add b391469510 Merge branch '7.0.x' into post-7.0.6-fixes
add 5cdfde439a Merge pull request #15332 from apache/post-7.0.6-fixes
add b7c9ed4dcf Upgrade to Gradle 8.14.4 and support Java 25 on Forge
add 5ea8ebadcd Merge pull request #15333 from apache/gradle-8.14.4
add 195c8091d3 [skip ci] Release v7.0.6
add ed4c7d54ff [skip ci] Bump version to 7.0.7-SNAPSHOT
add 3b4a541c36 Merge pull request #15345 from apache/merge-back-7.0.6
add c8fb6af583 docs: fix links
add 0709f688dd Merge pull request #15353 from apache/doc-links
add 227da5ae52 Adjust CI Java matrix to 17 and 25
add 1f6559728a Update Groovy version to 3.0.25 in multiple modules
add 4c25543aff Update generated app Gradle wrapper to 8.14.4
add 83e16868f1 Update Gradle tooling API to 8.14.4
add 5e0f28ffb9 Adjust CI Java matrix to 17 and 21
add f166e3ed8b Sync Java version 17.0.18 across .sdkmanrc, release.yml,
and Dockerfile
add 5715c3180f Add cross-reference comments for Gradle version locations
add ce07dd577c Merge pull request #15355 from
apache/deps/update-java-gradle-groovy-versions
add 777e22a397 Remove pull_request_target from release drafter
add 8acce051d7 Optimize CI workflow to reduce build time
add 4eb84a4342 Fix flaky tests caused by ThreadLocal pollution in parallel
execution
add 1010606a47 Fix database-per-tenant test isolation
add fe3e25c4d1 Limit CI matrix OS/Java combinations
add caa9ce2417 Fix command object shared constraint test isolation
add 07ffedbf6f Fix mime type test isolation by clearing static cache
add 7f32b71924 Add test isolation fixes for parallel test execution
add 96ec6523b5 Remove hardcoded test parallelism restriction from
grails-gsp
add 636e98b995 Add cleanup method to RespondMethodSpec for test isolation
add 59dcd50061 Fix WithFormatContentTypeSpec parallel test isolation
add 3a9df26354 Fix additional Holders.clear() calls that could cause
parallel test flakiness
add cb751d6a86 Enable cancel-in-progress for PR workflow runs
add c6789d1734 Fix URL mapping artefact isolation for parallel test
execution
add 83774cf385 Fix MIME type lookup isolation for parallel test execution
add bf78a4cbae Remove Develocity test retries now that flaky tests are
fixed
add fdaf826a6c Fix shared constraint cache isolation for parallel test
execution
add 461813e5a7 Add additional test isolation fixes for parallel execution
add 0853424edc Enable cancel-in-progress for PR runs in all CI workflows
add d2880650b3 Use @RestoreSystemProperties for cleaner test isolation
add f1f8aca9ef Add cleanup for HttpServletResponseExtension.@mimeTypes in
all test files
add 2a04d423ee Use proper imports instead of inline fully-qualified class
names
add 8b1c0eb74b Add cleanup for constraint caches to be good citizens in
parallel tests
add 6440ef70eb Rename clearConstraintsMap() to clearConstraintsMapCache()
for clarity
add 3850905c68 Use reflection to clear Validateable constraints cache
instead of public API
add e6f28c3718 Disable Groovy compilation cache in CI to ensure AST
transformations are applied
add 2a1df04505 Fix multi-tenancy test isolation in MongoDB specs for
parallel execution
add 0ef534f75d Fix NPE in HttpServletResponseExtension.getMimeTypes() for
parallel test execution
add 733cae94a7 Fix CommandObjectsSpec shared constraint test isolation
add 375f7f3c93 Fix RestfulReverseUrlRenderingTests URL mapping isolation
for parallel execution
add e4efb4711d Remove @Isolated annotations and update misleading parallel
test comments
add f6b876fddc Fix RespondMethodSpec Windows test isolation issue by
setting explicit HTML format
add 9e1503f042 Fix RestfulReverseUrlRenderingTests by re-registering URL
mappings in setup
add 5d3717ca08 Fix CommandObjectsSpec by clearing
ConstraintEvalUtils.defaultConstraintsMap in setup/cleanup
add 1e82ee8d1a Fix mockArtefact to refresh linkGenerator's
urlMappingsHolder reference
add bd6e1e5580 Fix FormTagLibTests to refresh linkGenerator's
urlMappingsHolder reference
add 6a7930c34b Fix test isolation for constraint cache and MIME type cache
add 0bd3006cf7 Fix test isolation for system property manipulation in tests
add bb193ba83f Fix shared constraint test by ensuring grailsApplication is
initialized before clearing caches
add 0f97dc4714 Fix MIME type tests by ensuring grailsApplication is
initialized before clearing cache
add 5efd1aba8d Fix RestfulReverseUrlRenderingTests by ensuring
grailsApplication is initialized before accessing artefacts
add 76a8df6285 Merge 7.0.x into improve-gh-ci-speed
add 37c5907efc Fix YamlPropertySourceLoaderSpec by ensuring development
environment is set before tests
add ddf492abe2 Update Gradle workflow to use --rerun-tasks flag
add bef53ffe46 Update comment in getMimeTypes method
add 7180d65c13 Remove Develocity test distribution configuration
add 1fe0a7db85 Update test comments for clarity on environment pollution
add 3ee3b5400b Merge pull request #15335 from apache/improve-gh-ci-speed
add 2b92500ad4 Update asset pipeline to 5.0.30
add 5ecbbc489e Merge pull request #15360 from jdaugherty/7.0.x
add 45b4680c96 [skip ci] Release v7.0.7
add 417f674d47 chore: cleanup release verification script
add 1b97a999fc Merge pull request #15366 from apache/post-7.0.7-release
add 399d3ad4e7 Update Develocity server URLs to develocity.apache.org
add a88494b4dd Merge pull request #15362 from apache/develocity-apache-org
add e69afe5d9d test(integration): Add comprehensive integration tests for
Grails features
add e4cb761c5d fix: Add Apache License headers and fix failing integration
tests
add e8adf0143f test: Review suggestions and stability improvements for
slow CI
add 0f21207d5f test(cache): Add comprehensive @Cacheable tests to
grails-test-examples
add 6b90174dfc refactor(test-examples): Use explicit params.subMap() for
data binding
add b585f97d2a test(integration): Add comprehensive tests for datasources,
external config, and plugins
add 4bf8d90c33 test(integration): Implement incomplete test assertions and
expand coverage
add 8b288c6a5b test(integration): Add comprehensive tests based on Grails
documentation
add b1389e7710 fix: Test stability and correctness improvements
add ea770fc500 Merge pull request #15348 from
apache/test/expand-integration-test-coverage
add 96000603c7 docs: create AGENTS.md for AI LLM crawlers
add 4023de3b41 Revise and expand AGENTS.md with agent and dev guide
add 85ecb155bd Add developer skills for AI coding agents
add ff2c8bd20a Add agent instruction files for major AI coding assistants
add 2ccfbf1027 Merge branch '7.0.x' into task/add-agents-md-15145
add 9f5bc19602 Convert agent instruction files to symlinks pointing to
AGENTS.md
add d23ec369a7 Add mandatory skill file reading instructions for AI agents
add ea9a37ec16 Add Claude Code skill symlinks for developer guides
add 364d631525 Convert GEMINI.md to symlink pointing to AGENTS.md
add 4d028e2a36 Remove copilot-instructions symlink
add 89b1567190 Update AGENTS.md with project structure and PR guidelines
add f9d59169e1 Address matrei's review feedback on AGENTS.md and skills
add b5116d6b58 Address remaining matrei review comments on
groovy-developer skill
add ee2976569b Merge pull request #15340 from
sanjana2505006/task/add-agents-md-15145
add 105c12e1b4 Update root-reserve-mb to 4096 in gradle.yml
add 2f307d3d29 Increase root reserve space to 4 GB in release workflow
add 6fe1360fca Add standalone workflow for publishing documentation
add a42aa087f6 Merge pull request #15368 from
apache/ci/publish-docs-workflow
add 74a4bdd3f8 Use workflow_dispatch ref instead of manual inputs
add 6420033e8b Merge pull request #15369 from
apache/ci/publish-docs-workflow
add c828b81ee3 Add version input while using branch from workflow dispatch
add cd67c3f3d2 Merge pull request #15370 from
apache/ci/publish-docs-workflow
add a91af5588f Set build-mount-path to /home/runner
add 45df475255 Merge pull request #15371 from
apache/ci/publish-docs-workflow
add 6cce089473 Increase build runner root reserve to 6 GB
add 0aba2a9f8b Remove build-mount-path from publish-docs workflow
add 771d483924 Remove maximize-build-space step from workflow
add 801c628822 Merge branch '7.0.x' into release-7.0.7-docs
add eda4479a88 Maximize build space in publish-docs workflow
add d0696e686c Replace maximize-build-space with manual cleanup
add a5d9f71834 Update build space maximization method in workflow
add 0047ba6337 Add release-close workflow; rename publish-docs
add 01764cf338 Merge branch '7.0.x' into release-7.0.7-docs
add ea12b76202 [skip ci] Bump version to release-7.0.8-SNAPSHOT
add 207758c8df Fix expected Grails version in unit test
add aafb7158b8 Update project version to 7.0.8-SNAPSHOT
add 69e47e3d62 Merge pull request #15372 from
apache/merge-back-release-7.0.7-docs
add 80f93d9948 Bump com.gradle.develocity from 4.1.1 to 4.2.2 in
/grails-forge
add 2e47155016 Merge pull request #15137 from
apache/dependabot/gradle/grails-forge/7.0.x/com.gradle.develocity-4.2.2
add 71ff7bf92f Merge branch '7.0.x' into
dependabot/github_actions/actions/cache-5
No new revisions were added by this update.
Summary of changes:
.agents/skills/grails-developer/SKILL.md | 885 ++++++++++++++++++
.agents/skills/groovy-developer/SKILL.md | 521 +++++++++++
.agents/skills/java-developer/SKILL.md | 286 ++++++
.claude/skills/grails-developer/SKILL.md | 1 +
.claude/skills/groovy-developer/SKILL.md | 1 +
.claude/skills/java-developer/SKILL.md | 1 +
.clinerules | 1 +
.cursorrules | 1 +
.github/workflows/codeql.yml | 2 +-
.github/workflows/codestyle.yml | 8 +-
.github/workflows/gradle.yml | 100 ++-
.github/workflows/groovy-joint-workflow.yml | 9 +-
.github/workflows/rat.yml | 4 +-
.github/workflows/release-close.yml | 96 ++
.github/workflows/release-notes.yml | 8 +-
.github/workflows/release-publish-docs.yml | 79 ++
.github/workflows/release.yml | 27 +-
.idea/codeStyles/Project.xml | 6 +
.sdkmanrc | 7 +-
.windsurfrules | 1 +
AGENTS.md | 260 ++++++
CLAUDE.md | 1 +
GEMINI.md | 1 +
INSTALL | 4 +
README.md | 2 +-
RELEASE.md | 2 +-
build-logic/docs-core/build.gradle | 8 +-
.../gradle/tasks/bom/CoordinateHolder.groovy | 2 +-
.../tasks/bom/CoordinateVersionHolder.groovy | 10 +
.../tasks/bom/ExtractDependenciesTask.groovy | 24 +-
.../gradle/tasks/bom/PropertyNameCalculator.groovy | 28 +-
.../gradle/wrapper/gradle-wrapper.properties | 4 +-
build-logic/plugins/build.gradle | 8 +
.../buildsrc/GrailsCodeStyleExtension.groovy | 53 ++
.../grails/buildsrc/GrailsCodeStylePlugin.groovy | 171 ++++
.../buildsrc/GrailsRepoSettingsPlugin.groovy | 113 +++
.../checkstyle/checkstyle-suppressions.xml | 0
.../checkstyle/checkstyle.xml | 0
.../codenarc/codenarc.groovy | 0
build-logic/settings.gradle | 19 +-
build.gradle | 2 +-
buildSrc/build.gradle | 2 +-
buildSrc/settings.gradle | 73 +-
dependencies.gradle | 77 +-
etc/bin/Dockerfile | 3 +-
etc/bin/test-reproducible-builds.sh | 5 +
etc/bin/verify.sh | 49 +-
gradle.properties | 6 +-
gradle/code-style-config.gradle | 69 --
gradle/docs-dependencies.gradle | 17 +
gradle/test-config.gradle | 23 +-
gradle/wrapper/gradle-wrapper.properties | 4 +-
grails-async/core/build.gradle | 2 +-
grails-async/gpars/build.gradle | 2 +-
grails-async/plugin/build.gradle | 2 +-
grails-async/rxjava/build.gradle | 2 +-
grails-async/rxjava2/build.gradle | 2 +-
grails-async/rxjava3/build.gradle | 2 +-
grails-bom/build.gradle | 58 +-
grails-bootstrap/build.gradle | 2 +-
grails-cache/build.gradle | 2 +-
grails-codecs-core/build.gradle | 2 +-
grails-codecs/build.gradle | 2 +-
grails-common/build.gradle | 2 +-
grails-console/build.gradle | 2 +-
grails-controllers/build.gradle | 2 +-
grails-converters/build.gradle | 2 +-
grails-core/build.gradle | 2 +-
.../grails/dev/commands/ApplicationCommand.groovy | 41 +-
.../grails/boot/DevelopmentModeWatchSpec.groovy | 4 +-
...aceHolderConfigurerCorePluginRuntimeSpec.groovy | 2 +
.../test/groovy/grails/util/GrailsUtilTests.java | 2 +-
.../compiler/injection/GrailsASTUtilsTests.groovy | 9 +-
.../injection/GrailsArtefactTransformerSpec.groovy | 6 +-
.../config/NavigableMapSpringProfilesSpec.groovy | 2 +
.../config/YamlPropertySourceLoaderSpec.groovy | 8 +-
.../org/grails/plugins/GrailsPluginTests.groovy | 9 +-
grails-data-docs/stage/build.gradle | 17 +
grails-data-graphql/gradle.properties | 2 +-
grails-data-graphql/settings.gradle | 2 +-
grails-data-hibernate5/boot-plugin/build.gradle | 2 +-
grails-data-hibernate5/core/build.gradle | 2 +-
.../MultiTenancyBidirectionalManyToManySpec.groovy | 2 +
.../connections/SchemaMultiTenantSpec.groovy | 3 +
.../hibernate/connections/SingleTenantSpec.groovy | 3 +
grails-data-hibernate5/dbmigration/README.md | 4 +-
grails-data-hibernate5/dbmigration/build.gradle | 15 +-
grails-data-hibernate5/docs/build.gradle | 17 +
.../asciidoc/gettingStarted/outsideGrails.adoc | 2 +-
grails-data-hibernate5/grails-plugin/build.gradle | 2 +-
grails-data-mongodb/boot-plugin/build.gradle | 2 +-
.../MongoDbGormAutoConfigurationSpec.groovy | 2 +
...ngoDbGormAutoConfigureWithGeoSpacialSpec.groovy | 2 +
.../src/test/resources/docker-java.properties | 2 +
grails-data-mongodb/bson/build.gradle | 2 +-
grails-data-mongodb/core/build.gradle | 2 +-
.../connections/MongoConnectionSourcesSpec.groovy | 7 +
.../gorm/mongo/connections/MultiTenancySpec.groovy | 5 +-
.../connections/SchemaBasedMultiTenancySpec.groovy | 5 +-
.../mongo/connections/SingleTenancySpec.groovy | 5 +-
.../MongoStaticApiMultiTenancySpec.groovy | 5 +-
grails-data-mongodb/docs/build.gradle | 17 +
grails-data-mongodb/ext/build.gradle | 2 +-
grails-data-mongodb/grails-plugin/build.gradle | 2 +-
grails-data-mongodb/gson-templates/build.gradle | 2 +-
.../Neo4jAutoConfigurationSpec.groovy | 2 +
grails-data-neo4j/docs/build.gradle | 17 +
.../grails-app/assets/javascripts/application.js | 2 +-
.../grails-app/assets/javascripts/application.js | 2 +-
grails-data-neo4j/gradle.properties | 2 +-
.../tests/multitenancy/MultiTenancySpec.groovy | 4 +
.../tests/multitenancy/SingleTenancySpec.groovy | 2 +
grails-data-neo4j/settings.gradle | 4 +-
grails-data-simple/build.gradle | 2 +-
grails-databinding-core/build.gradle | 2 +-
grails-databinding/build.gradle | 2 +-
grails-datamapping-async/build.gradle | 2 +-
.../database/DatabasePerTenantSpec.groovy | 3 +-
.../MultiTenantServiceTransformSpec.groovy | 2 +
.../partitioned/PartitionMultiTenancySpec.groovy | 3 +-
.../multitenancy/schema/SchemaPerTenantSpec.groovy | 6 +-
.../gorm/tests/CurrentTenantTransformSpec.groovy | 6 +-
.../grails/gorm/tests/TenantServiceSpec.groovy | 7 +-
grails-datamapping-core/build.gradle | 2 +-
grails-datamapping-rx/build.gradle | 2 +-
grails-datamapping-support/build.gradle | 2 +-
grails-datamapping-tck/build.gradle | 2 +-
grails-datamapping-validation/build.gradle | 2 +-
grails-datasource/build.gradle | 2 +-
grails-datastore-async/build.gradle | 2 +-
grails-datastore-core/build.gradle | 2 +-
grails-datastore-web/build.gradle | 2 +-
grails-doc/build.gradle | 19 +-
grails-doc/src/en/guide/GORM/quickStartGuide.adoc | 4 +-
.../en/guide/GORM/quickStartGuide/basicCRUD.adoc | 16 +-
grails-doc/src/en/guide/REST/domainResources.adoc | 15 +
grails-doc/src/en/guide/REST/hypermedia/hal.adoc | 13 +
.../src/en/guide/REST/versioningResources.adoc | 13 +
grails-doc/src/en/guide/async/asyncGorm.adoc | 2 +-
grails-doc/src/en/guide/async/asyncPromises.adoc | 8 +-
grails-doc/src/en/guide/async/events.adoc | 4 +-
grails-doc/src/en/guide/async/rxjava.adoc | 2 +-
.../guide/cache/cacheUsage/cacheConfiguration.adoc | 2 +-
grails-doc/src/en/guide/commandLine.adoc | 5 +-
.../guide/commandLine/creatingCustomCommands.adoc | 2 +-
.../gradleBuild/gradleDependencies.adoc | 6 +-
.../guide/conf/dataSource/multipleDatasources.adoc | 2 +-
grails-doc/src/en/guide/conf/docengine.adoc | 23 +-
grails-doc/src/en/guide/conf/environments.adoc | 27 +
grails-doc/src/en/guide/contributing.adoc | 2 +-
.../guide/gettingStarted/developmentReloading.adoc | 13 +-
.../guide/plugins/artefactApi/customArtefacts.adoc | 2 +-
.../src/en/guide/profiles/pluginProfile.adoc | 2 +-
.../src/en/guide/profiles/profileProfile.adoc | 2 +-
.../src/en/guide/profiles/profileStructure.adoc | 4 +-
.../en/guide/profiles/restAPIPluginProfile.adoc | 2 +-
.../src/en/guide/profiles/restAPIProfile.adoc | 2 +-
.../src/en/guide/profiles/webPluginProfile.adoc | 2 +-
grails-doc/src/en/guide/profiles/webProfile.adoc | 2 +-
grails-doc/src/en/guide/scaffolding.adoc | 2 +-
grails-doc/src/en/guide/security/codecs.adoc | 10 +
.../src/en/guide/security/xssPrevention.adoc | 34 +
.../spring/propertyPlaceholderConfiguration.adoc | 9 +
.../en/guide/testing/unitTesting/installation.adoc | 4 +-
.../en/guide/theWebLayer/contentNegotiation.adoc | 42 +
.../guide/theWebLayer/controllers/dataBinding.adoc | 56 +-
.../theWebLayer/fields/fieldsInstallation.adoc | 2 +-
.../fields/scaffolding/installation/index.adoc | 2 +-
.../src/en/guide/theWebLayer/gson/gsonTesting.adoc | 2 +-
.../guide/theWebLayer/gson/jsonInstallation.adoc | 6 +-
.../en/guide/theWebLayer/gson/pluginSupport.adoc | 8 +-
grails-doc/src/en/guide/theWebLayer/gsp.adoc | 2 +-
.../gsp/GSPBasics/variablesAndScopes.adoc | 8 +-
.../gsp/taglibs/taglibVariablesAndScopes.adoc | 8 +-
.../gsp/taglibs/usingJSPTagLibraries.adoc | 2 +-
.../interceptors/interceptorOrdering.adoc | 9 +
.../urlmappings/customizingUrlFormat.adoc | 11 +
.../src/en/guide/upgrading/upgrading60x.adoc | 103 ++-
grails-doc/src/en/ref/Constraints/nullable.adoc | 14 +
grails-doc/src/en/ref/Controllers/withFormat.adoc | 16 +
grails-doc/src/en/ref/Domain Classes/save.adoc | 14 +
grails-doc/src/en/ref/Plug-ins/dataSource.adoc | 13 +
.../src/en/ref/Servlet API/servletContext.adoc | 2 +-
.../src/en/ref/Tag Libraries/actionName.adoc | 13 +-
.../src/en/ref/Tag Libraries/controllerName.adoc | 14 +-
grails-doc/src/en/ref/Tag Libraries/flash.adoc | 11 +-
grails-doc/src/en/ref/Tag Libraries/pageScope.adoc | 5 +-
grails-doc/src/en/ref/Tag Libraries/params.adoc | 26 +-
grails-doc/src/en/ref/Tag Libraries/request.adoc | 16 +-
grails-doc/src/en/ref/Tag Libraries/response.adoc | 13 +-
.../src/en/ref/Tag Libraries/servletContext.adoc | 20 +-
grails-doc/src/en/ref/Tag Libraries/session.adoc | 27 +-
grails-domain-class/build.gradle | 2 +-
.../grails/persistence/DomainClassTraitSpec.groovy | 6 +
grails-encoder/build.gradle | 2 +-
grails-events/compat/build.gradle | 2 +-
grails-events/core/build.gradle | 2 +-
grails-events/gpars/build.gradle | 2 +-
grails-events/plugin/build.gradle | 2 +-
grails-events/rxjava/build.gradle | 2 +-
grails-events/rxjava2/build.gradle | 2 +-
grails-events/rxjava3/build.gradle | 2 +-
grails-events/spring/build.gradle | 2 +-
grails-events/transforms/build.gradle | 2 +-
grails-fields/build.gradle | 2 +-
grails-forge/buildSrc/build.gradle | 1 -
grails-forge/buildSrc/settings.gradle | 67 +-
...uppressions.xml => checkstyle-suppressions.xml} | 0
grails-forge/config/checkstyle/checkstyle.xml | 2 +-
grails-forge/gradle.properties | 5 +-
grails-forge/gradle/code-style-config.gradle | 42 +-
grails-forge/gradle/doc-config.gradle | 19 +-
grails-forge/gradle/test-config.gradle | 10 -
.../gradle/wrapper/gradle-wrapper.properties | 4 +-
.../groovy/org/grails/forge/cli/CommandSpec.groovy | 2 +-
.../build/gradle/DefaultGradleRepository.java | 59 +-
.../forge/build/gradle/GradleRepository.java | 51 +-
.../org/grails/forge/build/gradle/VersionType.java | 17 +-
.../forge/feature/assetPipeline/AssetPipeline.java | 59 +-
.../build/gradle/templates/buildGradle.rocker.raw | 5 +
.../templates/gradleWrapperProperties.rocker.raw | 3 +-
.../feature/spring/SpringBootVirtualThreads.java | 6 +-
.../java/org/grails/forge/options/JdkVersion.java | 5 +-
.../resources/assets/images/advancedgrails.svg | 6 +-
.../assets/images/apple-touch-icon-retina.png | Bin 7038 -> 0 bytes
.../resources/assets/images/apple-touch-icon.png | Bin 3077 -> 0 bytes
.../src/main/resources/assets/images/community.svg | 9 +
.../main/resources/assets/images/documentation.svg | 4 +-
.../src/main/resources/assets/images/favicon.ico | Bin 5558 -> 27198 bytes
.../assets/images/grails-cupsonly-logo-white.svg | 26 -
.../src/main/resources/assets/images/groovy.svg | 1 +
.../src/main/resources/assets/images/java.svg | 1 +
.../src/main/resources/assets/images/slack.svg | 18 -
.../main/resources/assets/images/spring-boot.svg | 20 +
.../src/main/resources/assets/images/spring.svg | 1 +
.../resources/assets/javascripts/application.js | 4 +-
.../main/resources/assets/javascripts/welcome.js | 116 +++
.../resources/assets/stylesheets/application.css | 4 +-
.../main/resources/assets/stylesheets/welcome.css | 63 ++
.../src/main/resources/gsp/index.gsp | 397 ++++++--
.../src/main/resources/gsp/main.gsp | 113 +--
.../feature/assetPipeline/AssetPipelineSpec.groovy | 42 +-
.../spring/SpringBootVirtualThreadsSpec.groovy | 4 +-
grails-forge/settings.gradle | 79 +-
grails-geb/build.gradle | 2 +-
grails-gradle/buildSrc/settings.gradle | 64 +-
grails-gradle/common/build.gradle | 2 +-
grails-gradle/gradle/code-style-config.gradle | 61 --
grails-gradle/gradle/docs-config.gradle | 17 +
grails-gradle/gradle/test-config.gradle | 7 -
.../gradle/wrapper/gradle-wrapper.properties | 4 +-
grails-gradle/model/build.gradle | 2 +-
grails-gradle/plugins/build.gradle | 8 +-
.../gradle/plugin/core/GrailsGradlePlugin.groovy | 44 +-
.../gradle/plugin/web/GrailsWebGradlePlugin.groovy | 40 +-
grails-gradle/settings.gradle | 70 +-
grails-gradle/tasks/build.gradle | 2 +-
grails-gsp/core/build.gradle | 2 +-
grails-gsp/grails-layout/build.gradle | 2 +-
grails-gsp/grails-sitemesh3/build.gradle | 2 +-
grails-gsp/grails-taglib/build.gradle | 2 +-
grails-gsp/grails-web-gsp-taglib/build.gradle | 2 +-
grails-gsp/grails-web-gsp/build.gradle | 2 +-
grails-gsp/grails-web-jsp/build.gradle | 2 +-
grails-gsp/grails-web-taglib/build.gradle | 2 +-
grails-gsp/plugin/build.gradle | 8 +-
.../mapping/RestfulReverseUrlRenderingTests.groovy | 21 +
.../web/taglib/AbstractGrailsTagTests.groovy | 7 +
.../org/grails/web/taglib/FormTagLibTests.groovy | 28 +
grails-i18n/build.gradle | 2 +-
grails-interceptors/build.gradle | 2 +-
.../web/interceptors/UrlMappingMatcherSpec.groovy | 7 +-
grails-logging/build.gradle | 2 +-
grails-mimetypes/build.gradle | 2 +-
.../web/mime/HttpServletRequestExtension.groovy | 14 +-
.../web/mime/HttpServletResponseExtension.groovy | 2 +-
.../groovy/grails/web/mime/MimeUtilitySpec.groovy | 11 +
.../web/mime/MimeTypesConfigurationSpec.groovy | 11 +
.../grails/web/mime/AcceptHeaderParserSpec.groovy | 5 +
.../mvc/RequestAndResponseMimeTypesApiSpec.groovy | 7 +
grails-profiles/base/features/geb2/feature.yml | 2 +-
grails-profiles/base/profile.yml | 2 +
grails-profiles/base/skeleton/build.gradle | 19 +-
.../gradle/wrapper/gradle-wrapper.properties | 4 +-
.../gradle/wrapper/gradle-wrapper.properties | 4 +-
.../grails-app/assets/images/advancedgrails.svg | 6 +-
.../assets/images/apple-touch-icon-retina.png | Bin 7038 -> 0 bytes
.../grails-app/assets/images/apple-touch-icon.png | Bin 3077 -> 0 bytes
.../grails-app/assets/images/community.svg | 9 +
.../grails-app/assets/images/documentation.svg | 4 +-
.../skeleton/grails-app/assets/images/favicon.ico | Bin 5558 -> 27198 bytes
.../assets/images/grails-cupsonly-logo-white.svg | 26 -
.../skeleton/grails-app/assets/images/groovy.svg | 1 +
.../web/skeleton/grails-app/assets/images/java.svg | 1 +
.../skeleton/grails-app/assets/images/slack.svg | 18 -
.../grails-app/assets/images/spring-boot.svg | 20 +
.../skeleton/grails-app/assets/images/spring.svg | 1 +
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/javascripts/welcome.js | 115 +++
.../grails-app/assets/stylesheets/application.css | 4 +-
.../grails-app/assets/stylesheets/welcome.css | 63 ++
.../web/skeleton/grails-app/views/index.gsp | 397 ++++++--
.../web/skeleton/grails-app/views/layouts/main.gsp | 113 +--
grails-rest-transforms/build.gradle | 2 +-
.../rest/render/DefaultRendererRegistrySpec.groovy | 11 +
.../web/rest/render/VndErrorRenderingSpec.groovy | 8 +
.../web/rest/render/hal/HalJsonRendererSpec.groovy | 10 +
.../web/rest/render/html/HtmlRendererSpec.groovy | 10 +
.../web/rest/render/json/JsonRendererSpec.groovy | 2 +
grails-scaffolding/build.gradle | 2 +-
grails-services/build.gradle | 2 +-
grails-shell-cli/build.gradle | 2 +-
.../grails/cli/profile/ProfileRepoConfig.groovy | 14 +-
.../cli/profile/commands/CreateAppCommand.groovy | 202 ++++-
.../profile/commands/CreateAppCommandSpec.groovy | 4 +-
grails-spring/build.gradle | 2 +-
grails-test-core/build.gradle | 2 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../functionaltests/BookController.groovy | 11 +-
.../controllers/functionaltests/UrlMappings.groovy | 62 ++
.../async/AsyncTestController.groovy | 304 +++++++
.../binding/AdvancedDataBindingController.groovy | 306 +++++++
.../caching/CacheTestController.groovy | 131 +++
.../codecs/CodecTestController.groovy | 281 ++++++
.../commanddi/CommandDIController.groovy | 406 +++++++++
.../contentneg/ContentNegotiationController.groovy | 168 ++++
.../functionaltests/cors/CorsTestController.groovy | 113 +++
.../ErrorHandlingTestController.groovy | 215 +++++
.../fileupload/FileUploadTestController.groovy | 241 +++++
.../functionaltests/flow/FlowController.groovy | 245 +++++
.../flow/FlowTargetController.groovy | 52 ++
.../functionaltests/i18n/I18nTestController.groovy | 226 +++++
.../interceptors/ActionExcludeInterceptor.groovy} | 25 +-
.../interceptors/AdvancedMatchingController.groovy | 107 +++
.../AttributeSettingInterceptor.groovy | 35 +-
.../interceptors/BlockingInterceptor.groovy | 46 +-
.../ConditionalMatchInterceptor.groovy | 52 ++
.../interceptors/FirstInterceptor.groovy | 37 +-
.../HttpMethodMatchingInterceptor.groovy} | 23 +-
.../interceptors/InterceptorTestController.groovy | 172 ++++
.../interceptors/MultipleRulesInterceptor.groovy | 33 +-
.../NamespaceMatchingInterceptor.groovy} | 23 +-
.../interceptors/SecondInterceptor.groovy | 37 +-
.../interceptors/SessionInterceptor.groovy | 33 +-
.../interceptors/ThirdInterceptor.groovy | 37 +-
.../interceptors/TimingInterceptor.groovy | 35 +-
.../RequestResponseTestController.groovy | 270 ++++++
.../springevents/SpringEventController.groovy | 148 +++
.../taglib/TagLibTestController.groovy | 326 +++++++
.../urlmappings/UrlMappingsTestController.groovy | 167 ++++
.../domain/functionaltests/binding/Address.groovy} | 26 +-
.../functionaltests/binding/Contributor.groovy} | 22 +-
.../domain/functionaltests/binding/Employee.groovy | 64 +-
.../domain/functionaltests/binding/Project.groovy} | 25 +-
.../domain/functionaltests/binding/Team.groovy} | 23 +-
.../functionaltests/binding/TeamMember.groovy} | 25 +-
.../functionaltests/constraints/Appointment.groovy | 109 +++
.../functionaltests/constraints/PaymentInfo.groovy | 178 ++++
.../functionaltests/constraints/Product.groovy | 76 ++
.../constraints/Registration.groovy | 158 ++++
.../functionaltests/events/AuditedEntity.groovy | 108 +++
.../functionaltests/events/StatefulEntity.groovy | 81 ++
.../functionaltests/events/VetoableEntity.groovy | 67 ++
.../domain/functionaltests/gorm/Author.groovy | 62 ++
.../domain/functionaltests/gorm/GormBook.groovy | 70 ++
.../functionaltests/services/InventoryItem.groovy} | 28 +-
.../app1/grails-app/i18n/messages.properties | 9 +
.../app1/grails-app/i18n/messages_de.properties | 9 +
.../app1/grails-app/i18n/messages_fr.properties | 9 +
.../caching/CacheTestService.groovy | 133 +++
.../commanddi/NotificationService.groovy | 88 ++
.../commanddi/PricingService.groovy | 77 ++
.../commanddi/ValidationHelperService.groovy | 80 ++
.../services/AsyncProcessingService.groovy | 122 +++
.../services/InventoryService.groovy | 204 +++++
.../functionaltests/services/OrderService.groovy | 118 +++
.../springevents/EventListenerService.groovy | 169 ++++
.../springevents/EventPublisherService.groovy | 78 ++
.../functionaltests/taglib/CustomTagLib.groovy | 341 +++++++
.../grails-app/views/contentNegotiation/error.gsp | 29 +
.../grails-app/views/contentNegotiation/index.gsp | 34 +
.../views/tagLibTest/_simpleTemplate.gsp | 19 +
.../grails-app/views/tagLibTest/testAlertTag.gsp | 20 +
.../grails-app/views/tagLibTest/testAppInfoTag.gsp | 20 +
.../grails-app/views/tagLibTest/testBadgeTag.gsp | 20 +
.../views/tagLibTest/testBuiltInCheckBox.gsp | 20 +
.../views/tagLibTest/testBuiltInCollect.gsp | 20 +
.../views/tagLibTest/testBuiltInCookie.gsp | 20 +
.../views/tagLibTest/testBuiltInCreateLink.gsp | 21 +
.../views/tagLibTest/testBuiltInEach.gsp | 21 +
.../views/tagLibTest/testBuiltInFieldValue.gsp | 20 +
.../views/tagLibTest/testBuiltInFindAll.gsp | 20 +
.../views/tagLibTest/testBuiltInForm.gsp | 23 +
.../views/tagLibTest/testBuiltInFormatDate.gsp | 21 +
.../views/tagLibTest/testBuiltInFormatNumber.gsp | 21 +
.../views/tagLibTest/testBuiltInHeader.gsp | 20 +
.../views/tagLibTest/testBuiltInHiddenField.gsp | 20 +
.../grails-app/views/tagLibTest/testBuiltInIf.gsp | 24 +
.../views/tagLibTest/testBuiltInInclude.gsp | 20 +
.../views/tagLibTest/testBuiltInJoin.gsp | 20 +
.../views/tagLibTest/testBuiltInLink.gsp | 22 +
.../views/tagLibTest/testBuiltInMessage.gsp | 20 +
.../views/tagLibTest/testBuiltInPaginate.gsp | 20 +
.../views/tagLibTest/testBuiltInPasswordField.gsp | 20 +
.../views/tagLibTest/testBuiltInRadio.gsp | 22 +
.../views/tagLibTest/testBuiltInRender.gsp | 20 +
.../views/tagLibTest/testBuiltInResource.gsp | 20 +
.../views/tagLibTest/testBuiltInSelect.gsp | 20 +
.../grails-app/views/tagLibTest/testBuiltInSet.gsp | 23 +
.../views/tagLibTest/testBuiltInSortableColumn.gsp | 26 +
.../views/tagLibTest/testBuiltInTextArea.gsp | 20 +
.../views/tagLibTest/testBuiltInTextField.gsp | 20 +
.../views/tagLibTest/testBuiltInUploadForm.gsp | 23 +
.../views/tagLibTest/testBuiltInWhile.gsp | 21 +
.../views/tagLibTest/testConditionalTags.gsp | 21 +
.../views/tagLibTest/testCssClassTag.gsp | 20 +
.../views/tagLibTest/testDefinitionListTag.gsp | 20 +
.../views/tagLibTest/testEncodingTags.gsp | 22 +
.../views/tagLibTest/testFormattedTag.gsp | 20 +
.../grails-app/views/tagLibTest/testHelloTag.gsp | 20 +
.../grails-app/views/tagLibTest/testIterateTag.gsp | 20 +
.../grails-app/views/tagLibTest/testJoinTag.gsp | 20 +
.../grails-app/views/tagLibTest/testListTag.gsp | 20 +
.../grails-app/views/tagLibTest/testNestedTags.gsp | 22 +
.../grails-app/views/tagLibTest/testPanelTag.gsp | 20 +
.../views/tagLibTest/testProgressTag.gsp | 20 +
.../grails-app/views/tagLibTest/testRawTag.gsp | 20 +
.../grails-app/views/tagLibTest/testRepeatTag.gsp | 20 +
.../views/tagLibTest/testRequestInfoTag.gsp | 20 +
.../views/tagLibTest/testSessionValueTag.gsp | 20 +
.../grails-app/views/tagLibTest/testSetVarTag.gsp | 20 +
.../views/tagLibTest/testTagsWithModel.gsp | 26 +
.../grails-app/views/tagLibTest/testWrapperTag.gsp | 20 +
.../functionaltests/async/AsyncPromiseSpec.groovy | 395 ++++++++
.../binding/AdvancedDataBindingSpec.groovy | 451 ++++++++++
.../functionaltests/caching/CachingSpec.groovy | 406 +++++++++
.../codecs/SecurityCodecsSpec.groovy | 423 +++++++++
.../commanddi/CommandObjectDISpec.groovy | 386 ++++++++
.../constraints/ConstraintValidationSpec.groovy | 996 +++++++++++++++++++++
.../contentneg/ContentNegotiationSpec.groovy | 411 +++++++++
.../functionaltests/cors/CorsAdvancedSpec.groovy | 301 +++++++
.../errorhandling/ErrorHandlingSpec.groovy | 217 +++++
.../functionaltests/events/DomainEventsSpec.groovy | 574 ++++++++++++
.../fileupload/FileUploadSpec.groovy | 395 ++++++++
.../flow/FlashChainForwardSpec.groovy | 338 +++++++
.../functionaltests/gorm/GormAdvancedSpec.groovy | 719 +++++++++++++++
.../i18n/InternationalizationSpec.groovy | 445 +++++++++
.../InterceptorAdvancedMatchingSpec.groovy | 275 ++++++
.../interceptors/InterceptorOrderingSpec.groovy | 315 +++++++
.../requestresponse/RequestResponseSpec.groovy | 386 ++++++++
.../services/ServiceIntegrationSpec.groovy | 379 ++++++++
.../springevents/SpringEventsSpec.groovy | 333 +++++++
.../functionaltests/taglib/TagLibSpec.groovy | 968 ++++++++++++++++++++
.../urlmappings/UrlMappingsSpec.groovy | 352 ++++++++
.../springevents/CustomApplicationEvent.groovy} | 26 +-
.../springevents/PriorityEvent.groovy} | 24 +-
.../springevents/UserActionEvent.groovy} | 26 +-
.../functionaltests/BookControllerSpec.groovy | 10 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../services/pubsub/demo/TotalService.groovy | 12 +-
.../groovy/pubsub/demo/AsyncEventsSpec.groovy | 203 +++++
.../groovy/pubsub/demo/PubSubSpec.groovy | 37 +-
.../main/groovy/pubsub/demo/BookSubscriber.groovy | 16 +-
grails-test-examples/cache/build.gradle | 2 +
.../com/demo/AdvancedCachingController.groovy | 123 +++
.../controllers/com/demo/UrlMappings.groovy | 54 ++
.../com/demo/AdvancedCachingService.groovy | 158 ++++
.../com/demo/AdvancedCachingIntegrationSpec.groovy | 323 +++++++
.../com/demo/AdvancedCachingServiceSpec.groovy | 316 +++++++
.../CrossDatasourceTransactionSpec.groovy | 284 ++++++
.../functionaltests/DatasourceSwitchingSpec.groovy | 370 ++++++++
.../functionaltests/MultipleDataSourcesSpec.groovy | 13 +-
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 2 +-
.../test/app/ConfigurationPrioritySpec.groovy | 249 ++++++
.../test/app/EnvironmentConfigurationSpec.groovy | 223 +++++
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 2 +-
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 2 +-
grails-test-examples/gorm/build.gradle | 5 +-
.../gorm/AuthorController.groovy} | 17 +-
.../gorm/BookController.groovy} | 17 +-
.../gorm/UrlMappings.groovy} | 18 +-
.../grails-app/domain/gorm/AuditedEntity.groovy | 148 +++
.../domain/gorm/Author.groovy} | 39 +-
.../gorm/grails-app/domain/gorm/Book.groovy | 33 +-
.../gorm}/grails-app/i18n/messages.properties | 0
.../services/gorm/BookDataService.groovy | 151 ++++
.../services/gorm/TransactionTestService.groovy | 187 ++++
.../gorm/grails-app/views/error.gsp | 48 +
.../gorm/grails-app/views/index.gsp | 32 +
.../gorm/grails-app/views/notFound.gsp | 28 +
.../groovy/gorm/BindingOutsideRequestSpec.groovy | 5 +
.../groovy/gorm/FieldsValidationSpec.groovy | 552 ++++++++++++
.../groovy/gorm/GormCascadeOperationsSpec.groovy | 357 ++++++++
.../groovy/gorm/GormCriteriaQueriesSpec.groovy | 614 +++++++++++++
.../groovy/gorm/GormDataServicesSpec.groovy | 338 +++++++
.../groovy/gorm/GormEventsSpec.groovy | 377 ++++++++
.../groovy/gorm/GormWhereQueryAdvancedSpec.groovy | 373 ++++++++
.../groovy/gorm/ScaffoldingFunctionalSpec.groovy | 293 ++++++
.../groovy/gorm/TransactionPropagationSpec.groovy | 268 ++++++
.../integration-test/groovy/gorm/UserSpec.groovy | 33 +-
.../groovy/gorm/ValidationConstraintsSpec.groovy | 496 ++++++++++
.../groovy/gorm/pages/AuthorPages.groovy | 75 ++
.../groovy/gorm/pages/BookPages.groovy | 79 ++
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 2 +-
.../example/grails/layout/TagLibController.groovy | 95 ++
.../grails-app/views/tagLib/_partial.gsp | 21 +
.../grails-app/views/tagLib/collectTag.gsp | 29 +
.../grails-app/views/tagLib/createLinkTag.gsp | 30 +
.../gsp-layout/grails-app/views/tagLib/eachTag.gsp | 33 +
.../gsp-layout/grails-app/views/tagLib/elseTag.gsp | 33 +
.../grails-app/views/tagLib/encodeTags.gsp | 30 +
.../gsp-layout/grails-app/views/tagLib/formTag.gsp | 50 ++
.../grails-app/views/tagLib/formatTags.gsp | 30 +
.../gsp-layout/grails-app/views/tagLib/ifTag.gsp | 31 +
.../gsp-layout/grails-app/views/tagLib/index.gsp | 32 +
.../gsp-layout/grails-app/views/tagLib/joinTag.gsp | 30 +
.../gsp-layout/grails-app/views/tagLib/linkTag.gsp | 30 +
.../grails-app/views/tagLib/renderTag.gsp | 31 +
.../gsp-layout/grails-app/views/tagLib/setTag.gsp | 35 +
.../integration-test/groovy/GspTagLibSpec.groovy | 275 ++++++
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 2 +-
.../gsp-spring-boot/script/.sdkmanrc | 4 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../controllers/example/BookController.groovy | 8 +-
.../groovy/example/DatabasePerTenantSpec.groovy | 6 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../functional/tests/BookController.groovy | 8 +-
.../functional/tests/BookControllerUnitSpec.groovy | 10 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../controllers/example/BookController.groovy | 8 +-
.../example/PartitionedMultiTenancySpec.groovy | 6 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../schemapertenant/BookController.groovy | 8 +-
.../schemapertenant/SchemaPerTenantSpec.groovy | 5 +-
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 2 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 2 +-
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 2 +-
.../groovy/micronaut/MicronautContextSpec.groovy | 92 ++
.../groovy/micronaut/MicronautQualifierSpec.groovy | 106 +++
.../grails-app/assets/javascripts/application.js | 2 +-
.../functional/tests/BookController.groovy | 8 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../examples/mongo/tenant/BookController.groovy | 8 +-
.../groovy/examples/mongo/tenant/BookSpec.groovy | 7 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../grails-app/assets/javascripts/application.js | 2 +-
.../functional/tests/AuthorController.groovy | 8 +-
.../functional/tests/BookController.groovy | 8 +-
.../grails-app/assets/javascripts/application.js | 2 +-
grails-test-examples/plugins/exploded/build.gradle | 3 +
.../groovy/exploded/PluginDependencySpec.groovy | 223 +++++
.../plugins/loadfirst/build.gradle | 3 +
.../groovy/loadfirst/PluginLifecycleSpec.groovy | 236 +++++
.../plugins/loadsecond/build.gradle | 3 +
.../groovy/loadsecond/PluginLoadOrderSpec.groovy | 222 +++++
.../{gorm => scaffolding-fields}/build.gradle | 33 +-
.../grails-app/conf/application.yml | 106 +++
.../scaffoldingfields/DepartmentController.groovy} | 20 +-
.../scaffoldingfields/EmployeeController.groovy} | 20 +-
.../scaffoldingfields/ProjectController.groovy} | 20 +-
.../scaffoldingfields/UrlMappings.groovy} | 20 +-
.../domain/scaffoldingfields/Address.groovy | 32 +-
.../domain/scaffoldingfields/Department.groovy} | 22 +-
.../domain/scaffoldingfields/Employee.groovy | 129 +++
.../domain/scaffoldingfields/Project.groovy | 50 +-
.../grails-app/i18n/messages.properties | 0
.../init/scaffoldingfields/Application.groovy} | 17 +-
.../init/scaffoldingfields/BootStrap.groovy | 114 +++
.../grails-app/views/_fields/default/_wrapper.gsp | 38 +
.../views/_fields/employee/biography/_wrapper.gsp | 38 +
.../views/_fields/employee/email/_wrapper.gsp | 39 +
.../scaffoldingfields/CrudFunctionalSpec.groovy | 269 ++++++
.../scaffoldingfields/CustomTemplatesSpec.groovy | 171 ++++
.../groovy/scaffoldingfields/FieldTypesSpec.groovy | 250 ++++++
.../groovy/scaffoldingfields/PaginationSpec.groovy | 502 +++++++++++
.../RelationshipsFunctionalSpec.groovy | 534 +++++++++++
.../ValidationFunctionalSpec.groovy | 861 ++++++++++++++++++
.../scaffoldingfields/pages/DepartmentPages.groovy | 96 ++
.../scaffoldingfields/pages/EmployeePages.groovy | 139 +++
.../scaffoldingfields/pages/ProjectPages.groovy | 105 +++
.../pages/ScaffoldCreatePage.groovy | 147 +++
.../pages/ScaffoldEditPage.groovy | 159 ++++
.../pages/ScaffoldListPage.groovy | 112 +++
.../pages/ScaffoldShowPage.groovy | 106 +++
.../grails-app/assets/javascripts/application.js | 4 +-
.../grails-app/assets/stylesheets/application.css | 4 +-
.../grails-app/assets/javascripts/application.js | 2 +-
grails-test-suite-base/build.gradle | 5 +-
grails-test-suite-uber/build.gradle | 2 +-
...GrailsCompileStaticCompilationErrorsSpec.groovy | 9 +
.../GrailsTypeCheckedCompilationErrorsSpec.groovy | 9 +
.../grails/persistence/EntityTransformTests.groovy | 9 +
.../groovy/grails/spring/BeanBuilderTests.groovy | 9 +
.../test/mixin/ControllerUnitTestMixinTests.groovy | 26 +
.../grails/test/mixin/RestfulControllerSpec.groovy | 11 +
.../rest/render/BaseDomainClassRendererSpec.groovy | 8 +
.../web/codecs/HTMLJSCodecIntegrationSpec.groovy | 5 +
.../DefaultGrailsApplicationAttributesTests.groovy | 6 +
.../web/servlet/FlashScopeWithErrorsTests.groovy | 5 +
.../grails/web/util/StreamCharBufferSpec.groovy | 5 +
.../org/grails/web/util/WebUtilsTests.groovy | 5 +
grails-test-suite-web/build.gradle | 2 +-
.../grails/rest/web/RespondMethodSpec.groovy | 20 +
.../org/grails/compiler/web/WithFormatSpec.groovy | 11 +
.../rest/render/xml/DefaultXmlRendererSpec.groovy | 5 +
...ngHelperDomainClassSpecialPropertiesSpec.groovy | 9 +
.../web/binding/JSONBindingToNullSpec.groovy | 16 +
.../JsonBindingWithExceptionHandlerSpec.groovy | 24 +
.../commandobjects/CommandObjectNoDataSpec.groovy | 56 ++
.../CommandObjectNullabilitySpec.groovy | 26 +
.../web/commandobjects/CommandObjectsSpec.groovy | 58 ++
.../web/controllers/ContentNegotiationSpec.groovy | 16 +
.../metaclass/CollectionBindDataMethodSpec.groovy | 11 +
.../web/mime/ContentFormatControllerTests.groovy | 10 +
.../web/mime/WithFormatContentTypeSpec.groovy | 16 +
grails-testing-support-core/build.gradle | 2 +-
grails-testing-support-datamapping/build.gradle | 2 +-
grails-testing-support-mongodb/build.gradle | 2 +-
grails-testing-support-views-gson/build.gradle | 2 +-
grails-testing-support-web/build.gradle | 2 +-
.../grails/testing/web/UrlMappingsUnitTest.groovy | 10 +
grails-url-mappings/build.gradle | 2 +-
grails-validation/build.gradle | 2 +-
.../CommandObjectConstraintGettersSpec.groovy | 40 +
.../DefaultASTValidateableHelperSpec.groovy | 9 +
.../validation/SerializableValidateableSpec.groovy | 24 +
.../grails/validation/ValidateableMockSpec.groovy | 24 +
.../validation/ValidateableTraitAdHocSpec.groovy | 33 +
.../grails/validation/ValidateableTraitSpec.groovy | 33 +
grails-views-core/build.gradle | 2 +-
grails-views-gson/build.gradle | 2 +-
.../grails/plugin/json/view/api/JsonApiSpec.groovy | 21 +
grails-views-markup/build.gradle | 2 +-
grails-web-boot/build.gradle | 2 +-
grails-web-common/build.gradle | 2 +-
grails-web-core/build.gradle | 2 +-
grails-web-databinding/build.gradle | 2 +-
grails-web-mvc/build.gradle | 2 +-
grails-web-url-mappings/build.gradle | 2 +-
.../reporting/UrlMappingsReportCommand.groovy | 21 +-
.../resources/META-INF/services/grails.factories | 1 -
.../LinkGeneratorWithUrlMappingsSpec.groovy | 13 +
.../web/mapping/RestfulUrlMappingSpec.groovy | 6 +
.../mapping/UrlMappingsWithHttpMethodSpec.groovy | 6 +
.../web/mapping/mvc/EncodePathFromURISpec.groovy | 5 +
grails-wrapper/build.gradle | 2 +-
...pe.java => GrailsReleaseNotFoundException.java} | 29 +-
.../main/java/grails/init/GrailsReleaseType.java | 4 +-
.../src/main/java/grails/init/GrailsUpdater.java | 82 +-
.../src/main/java/grails/init/GrailsVersion.java | 26 +-
.../main/java/grails/init/GrailsWrapperHome.java | 31 +-
.../main/java/grails/init/GrailsWrapperRepo.java | 54 +-
.../main/java/grails/init/RootMetadataHandler.java | 2 +-
settings.gradle | 74 +-
663 files changed, 36344 insertions(+), 2299 deletions(-)
create mode 100644 .agents/skills/grails-developer/SKILL.md
create mode 100644 .agents/skills/groovy-developer/SKILL.md
create mode 100644 .agents/skills/java-developer/SKILL.md
create mode 120000 .claude/skills/grails-developer/SKILL.md
create mode 120000 .claude/skills/groovy-developer/SKILL.md
create mode 120000 .claude/skills/java-developer/SKILL.md
create mode 120000 .clinerules
create mode 120000 .cursorrules
create mode 100644 .github/workflows/release-close.yml
create mode 100644 .github/workflows/release-publish-docs.yml
create mode 120000 .windsurfrules
create mode 100644 AGENTS.md
create mode 120000 CLAUDE.md
create mode 120000 GEMINI.md
create mode 100644
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsCodeStyleExtension.groovy
create mode 100644
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsCodeStylePlugin.groovy
create mode 100644
build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsRepoSettingsPlugin.groovy
rename {etc/config =>
build-logic/plugins/src/main/resources/META-INF/org.apache.grails.buildsrc.codestyle}/checkstyle/checkstyle-suppressions.xml
(100%)
rename {etc/config =>
build-logic/plugins/src/main/resources/META-INF/org.apache.grails.buildsrc.codestyle}/checkstyle/checkstyle.xml
(100%)
rename {etc/config =>
build-logic/plugins/src/main/resources/META-INF/org.apache.grails.buildsrc.codestyle}/codenarc/codenarc.groovy
(100%)
delete mode 100644 gradle/code-style-config.gradle
create mode 100644
grails-data-mongodb/boot-plugin/src/test/resources/docker-java.properties
rename grails-forge/config/checkstyle/{suppressions.xml =>
checkstyle-suppressions.xml} (100%)
copy grails-test-examples/gorm/grails-app/domain/gorm/Book.groovy =>
grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/VersionType.java
(81%)
delete mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/apple-touch-icon-retina.png
delete mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/apple-touch-icon.png
create mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/community.svg
delete mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/grails-cupsonly-logo-white.svg
create mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/groovy.svg
create mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/java.svg
delete mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/slack.svg
create mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/spring-boot.svg
create mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/images/spring.svg
create mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/javascripts/welcome.js
create mode 100644
grails-forge/grails-forge-core/src/main/resources/assets/stylesheets/welcome.css
delete mode 100644 grails-gradle/gradle/code-style-config.gradle
delete mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/apple-touch-icon-retina.png
delete mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/apple-touch-icon.png
create mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/community.svg
delete mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/grails-cupsonly-logo-white.svg
create mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/groovy.svg
create mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/java.svg
delete mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/slack.svg
create mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/spring-boot.svg
create mode 100644
grails-profiles/web/skeleton/grails-app/assets/images/spring.svg
create mode 100644
grails-profiles/web/skeleton/grails-app/assets/javascripts/welcome.js
create mode 100644
grails-profiles/web/skeleton/grails-app/assets/stylesheets/welcome.css
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/async/AsyncTestController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/binding/AdvancedDataBindingController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/caching/CacheTestController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/codecs/CodecTestController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/commanddi/CommandDIController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/contentneg/ContentNegotiationController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/cors/CorsTestController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/errorhandling/ErrorHandlingTestController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/fileupload/FileUploadTestController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/flow/FlowController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/flow/FlowTargetController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/i18n/I18nTestController.groovy
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/controllers/functionaltests/interceptors/ActionExcludeInterceptor.groovy}
(63%)
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/AdvancedMatchingController.groovy
copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java =>
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/AttributeSettingInterceptor.groovy
(52%)
copy
grails-test-suite-web/src/test/groovy/org/grails/compiler/web/WithFormatSpec.groovy
=>
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/BlockingInterceptor.groovy
(51%)
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/ConditionalMatchInterceptor.groovy
copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java =>
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/FirstInterceptor.groovy
(56%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/controllers/functionaltests/interceptors/HttpMethodMatchingInterceptor.groovy}
(66%)
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/InterceptorTestController.groovy
copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java =>
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/MultipleRulesInterceptor.groovy
(62%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/controllers/functionaltests/interceptors/NamespaceMatchingInterceptor.groovy}
(67%)
copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java =>
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/SecondInterceptor.groovy
(55%)
copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java =>
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/SessionInterceptor.groovy
(59%)
copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java =>
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/ThirdInterceptor.groovy
(56%)
copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java =>
grails-test-examples/app1/grails-app/controllers/functionaltests/interceptors/TimingInterceptor.groovy
(51%)
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/requestresponse/RequestResponseTestController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/springevents/SpringEventController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/taglib/TagLibTestController.groovy
create mode 100644
grails-test-examples/app1/grails-app/controllers/functionaltests/urlmappings/UrlMappingsTestController.groovy
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/domain/functionaltests/binding/Address.groovy} (69%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/domain/functionaltests/binding/Contributor.groovy} (76%)
copy
grails-validation/src/test/groovy/grails/validation/SerializableValidateableSpec.groovy
=>
grails-test-examples/app1/grails-app/domain/functionaltests/binding/Employee.groovy
(52%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/domain/functionaltests/binding/Project.groovy} (72%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/domain/functionaltests/binding/Team.groovy} (77%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/domain/functionaltests/binding/TeamMember.groovy} (73%)
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/constraints/Appointment.groovy
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/constraints/PaymentInfo.groovy
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/constraints/Product.groovy
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/constraints/Registration.groovy
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/events/AuditedEntity.groovy
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/events/StatefulEntity.groovy
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/events/VetoableEntity.groovy
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/gorm/Author.groovy
create mode 100644
grails-test-examples/app1/grails-app/domain/functionaltests/gorm/GormBook.groovy
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/grails-app/domain/functionaltests/services/InventoryItem.groovy} (64%)
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/caching/CacheTestService.groovy
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/commanddi/NotificationService.groovy
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/commanddi/PricingService.groovy
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/commanddi/ValidationHelperService.groovy
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/services/AsyncProcessingService.groovy
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/services/InventoryService.groovy
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/services/OrderService.groovy
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/springevents/EventListenerService.groovy
create mode 100644
grails-test-examples/app1/grails-app/services/functionaltests/springevents/EventPublisherService.groovy
create mode 100644
grails-test-examples/app1/grails-app/taglib/functionaltests/taglib/CustomTagLib.groovy
create mode 100644
grails-test-examples/app1/grails-app/views/contentNegotiation/error.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/contentNegotiation/index.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/_simpleTemplate.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testAlertTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testAppInfoTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBadgeTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInCheckBox.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInCollect.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInCookie.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInCreateLink.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInEach.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInFieldValue.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInFindAll.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInForm.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInFormatDate.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInFormatNumber.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInHeader.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInHiddenField.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInIf.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInInclude.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInJoin.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInLink.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInMessage.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInPaginate.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInPasswordField.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInRadio.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInRender.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInResource.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInSelect.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInSet.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInSortableColumn.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInTextArea.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInTextField.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInUploadForm.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testBuiltInWhile.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testConditionalTags.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testCssClassTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testDefinitionListTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testEncodingTags.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testFormattedTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testHelloTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testIterateTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testJoinTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testListTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testNestedTags.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testPanelTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testProgressTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testRawTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testRepeatTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testRequestInfoTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testSessionValueTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testSetVarTag.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testTagsWithModel.gsp
create mode 100644
grails-test-examples/app1/grails-app/views/tagLibTest/testWrapperTag.gsp
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/async/AsyncPromiseSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/binding/AdvancedDataBindingSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/caching/CachingSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/codecs/SecurityCodecsSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/commanddi/CommandObjectDISpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/constraints/ConstraintValidationSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/contentneg/ContentNegotiationSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/cors/CorsAdvancedSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/errorhandling/ErrorHandlingSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/events/DomainEventsSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/fileupload/FileUploadSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/flow/FlashChainForwardSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/gorm/GormAdvancedSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/i18n/InternationalizationSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/interceptors/InterceptorAdvancedMatchingSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/interceptors/InterceptorOrderingSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/requestresponse/RequestResponseSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/services/ServiceIntegrationSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/springevents/SpringEventsSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/taglib/TagLibSpec.groovy
create mode 100644
grails-test-examples/app1/src/integration-test/groovy/functionaltests/urlmappings/UrlMappingsSpec.groovy
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/src/main/groovy/functionaltests/springevents/CustomApplicationEvent.groovy}
(63%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/src/main/groovy/functionaltests/springevents/PriorityEvent.groovy} (69%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
app1/src/main/groovy/functionaltests/springevents/UserActionEvent.groovy} (62%)
create mode 100644
grails-test-examples/async-events-pubsub-demo/src/integration-test/groovy/pubsub/demo/AsyncEventsSpec.groovy
create mode 100644
grails-test-examples/cache/grails-app/controllers/com/demo/AdvancedCachingController.groovy
create mode 100644
grails-test-examples/cache/grails-app/controllers/com/demo/UrlMappings.groovy
create mode 100644
grails-test-examples/cache/grails-app/services/com/demo/AdvancedCachingService.groovy
create mode 100644
grails-test-examples/cache/src/integration-test/groovy/com/demo/AdvancedCachingIntegrationSpec.groovy
create mode 100644
grails-test-examples/cache/src/test/groovy/com/demo/AdvancedCachingServiceSpec.groovy
create mode 100644
grails-test-examples/datasources/src/integration-test/groovy/functionaltests/CrossDatasourceTransactionSpec.groovy
create mode 100644
grails-test-examples/datasources/src/integration-test/groovy/functionaltests/DatasourceSwitchingSpec.groovy
create mode 100644
grails-test-examples/external-configuration/src/integration-test/groovy/test/app/ConfigurationPrioritySpec.groovy
create mode 100644
grails-test-examples/external-configuration/src/integration-test/groovy/test/app/EnvironmentConfigurationSpec.groovy
copy grails-test-examples/gorm/grails-app/{domain/gorm/Book.groovy =>
controllers/gorm/AuthorController.groovy} (83%)
copy grails-test-examples/gorm/grails-app/{domain/gorm/Book.groovy =>
controllers/gorm/BookController.groovy} (82%)
copy grails-test-examples/gorm/grails-app/{domain/gorm/Book.groovy =>
controllers/gorm/UrlMappings.groovy} (75%)
create mode 100644
grails-test-examples/gorm/grails-app/domain/gorm/AuditedEntity.groovy
copy
grails-test-examples/gorm/{src/integration-test/groovy/gorm/UserSpec.groovy =>
grails-app/domain/gorm/Author.groovy} (57%)
copy {grails-data-graphql/examples/grails-docs-app =>
grails-test-examples/gorm}/grails-app/i18n/messages.properties (100%)
create mode 100644
grails-test-examples/gorm/grails-app/services/gorm/BookDataService.groovy
create mode 100644
grails-test-examples/gorm/grails-app/services/gorm/TransactionTestService.groovy
create mode 100644 grails-test-examples/gorm/grails-app/views/error.gsp
create mode 100644 grails-test-examples/gorm/grails-app/views/index.gsp
create mode 100644 grails-test-examples/gorm/grails-app/views/notFound.gsp
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/FieldsValidationSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormCascadeOperationsSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormCriteriaQueriesSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormDataServicesSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormEventsSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/GormWhereQueryAdvancedSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/ScaffoldingFunctionalSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/TransactionPropagationSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/ValidationConstraintsSpec.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/pages/AuthorPages.groovy
create mode 100644
grails-test-examples/gorm/src/integration-test/groovy/gorm/pages/BookPages.groovy
create mode 100644
grails-test-examples/gsp-layout/grails-app/controllers/org/example/grails/layout/TagLibController.groovy
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/_partial.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/collectTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/createLinkTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/eachTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/elseTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/encodeTags.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/formTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/formatTags.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/ifTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/index.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/joinTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/linkTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/renderTag.gsp
create mode 100644
grails-test-examples/gsp-layout/grails-app/views/tagLib/setTag.gsp
create mode 100644
grails-test-examples/gsp-layout/src/integration-test/groovy/GspTagLibSpec.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautContextSpec.groovy
create mode 100644
grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautQualifierSpec.groovy
create mode 100644
grails-test-examples/plugins/exploded/src/integration-test/groovy/exploded/PluginDependencySpec.groovy
create mode 100644
grails-test-examples/plugins/loadfirst/src/integration-test/groovy/loadfirst/PluginLifecycleSpec.groovy
create mode 100644
grails-test-examples/plugins/loadsecond/src/integration-test/groovy/loadsecond/PluginLoadOrderSpec.groovy
copy grails-test-examples/{gorm => scaffolding-fields}/build.gradle (69%)
create mode 100644
grails-test-examples/scaffolding-fields/grails-app/conf/application.yml
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
scaffolding-fields/grails-app/controllers/scaffoldingfields/DepartmentController.groovy}
(71%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
scaffolding-fields/grails-app/controllers/scaffoldingfields/EmployeeController.groovy}
(72%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
scaffolding-fields/grails-app/controllers/scaffoldingfields/ProjectController.groovy}
(72%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
scaffolding-fields/grails-app/controllers/scaffoldingfields/UrlMappings.groovy}
(73%)
copy grails-core/src/test/groovy/grails/util/GrailsUtilTests.java =>
grails-test-examples/scaffolding-fields/grails-app/domain/scaffoldingfields/Address.groovy
(61%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
scaffolding-fields/grails-app/domain/scaffoldingfields/Department.groovy} (66%)
create mode 100644
grails-test-examples/scaffolding-fields/grails-app/domain/scaffoldingfields/Employee.groovy
copy
build-logic/docs-core/src/main/groovy/org/apache/grails/gradle/tasks/bom/CoordinateVersionHolder.groovy
=>
grails-test-examples/scaffolding-fields/grails-app/domain/scaffoldingfields/Project.groovy
(51%)
copy {grails-data-graphql/examples/grails-docs-app =>
grails-test-examples/scaffolding-fields}/grails-app/i18n/messages.properties
(100%)
copy grails-test-examples/{gorm/grails-app/domain/gorm/Book.groovy =>
scaffolding-fields/grails-app/init/scaffoldingfields/Application.groovy} (74%)
create mode 100644
grails-test-examples/scaffolding-fields/grails-app/init/scaffoldingfields/BootStrap.groovy
create mode 100644
grails-test-examples/scaffolding-fields/grails-app/views/_fields/default/_wrapper.gsp
create mode 100644
grails-test-examples/scaffolding-fields/grails-app/views/_fields/employee/biography/_wrapper.gsp
create mode 100644
grails-test-examples/scaffolding-fields/grails-app/views/_fields/employee/email/_wrapper.gsp
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/CrudFunctionalSpec.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/CustomTemplatesSpec.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/FieldTypesSpec.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/PaginationSpec.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/RelationshipsFunctionalSpec.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/ValidationFunctionalSpec.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/DepartmentPages.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/EmployeePages.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ProjectPages.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ScaffoldCreatePage.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ScaffoldEditPage.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ScaffoldListPage.groovy
create mode 100644
grails-test-examples/scaffolding-fields/src/integration-test/groovy/scaffoldingfields/pages/ScaffoldShowPage.groovy
delete mode 100644
grails-web-url-mappings/src/main/resources/META-INF/services/grails.factories
copy grails-wrapper/src/main/java/grails/init/{GrailsReleaseType.java =>
GrailsReleaseNotFoundException.java} (55%)