You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by ja...@apache.org on 2026/06/17 20:48:16 UTC
(grails-core) branch 8.0.x-hibernate7 updated (fdb1f74cfd -> e1d416f451)
This is an automated email from the ASF dual-hosted git repository.
jamesfredley pushed a change to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git
from fdb1f74cfd Merge pull request #15731 from apache/test/h7-functional-coverage
add b0e0990395 Make SiteMesh 3 the default GSP layout, mutually exclusive with grails-layout
add 769e97167b Merge branch 'deps/sitemesh3-3.3.0-snapshot' into feat/sitemesh3-default-layout
add d561d7defa Undo revert
add 97840681ee Merge branch '8.0.x' into feat/sitemesh3-default-layout
add a553b4724a Model the GSP layout choice as a one-of option to fix the forge UI glitch
add 021059d03e Run CI test apps against SiteMesh 3 by default
add 920c12c901 Fix empty SiteMesh 3 output for undecorated GSP responses
add 81d9147c89 Fix SiteMesh 3 applyLayout for embedded/nested field rendering
add 6178aeb3f9 Drop redundant grails-layout from starter-web test apps
add 8a1fbcbcd1 Don't apply a SiteMesh 3 layout to template/partial renders
add 8b5db5286b Default test apps to SiteMesh 3, opt into SiteMesh 2 via flag
add 692ee12d9f Apply gspLayout option in the project generation endpoints
add 852d1321aa Drop redundant user-agent param from the GitHub create endpoint
add db817ebd2d Fix if/else spacing in the SiteMesh test-app build files
add 51d5e88310 Make SiteMesh 3 the silent forge default, SiteMesh 2 a selectable feature
add bb94c8c27d Merge branch '8.0.x' into feat/sitemesh3-default-layout
add a61691ec37 Re-enable the gsp-sitemesh3 test example
add 6e83b250f1 Fix SiteMesh 3 layout chaining, error-page decoration and JSP rendering
add e7390ac489 Drop SiteMesh 3 plugin workarounds superseded by the updated starter
add 53ee6ca353 Fix stale SiteMesh toggle in the hibernate7 test examples
add 3589ba6d0f Don't mis-slice head content around title-prefixed elements
add 751a937153 Match SiteMesh 2's default layout config and application fallback
add 159f812597 Run the jetty and scaffolding examples against SiteMesh 3 by default
add 8e6a989fce Publish grails-gsp-spring-boot and re-enable its example
add 7040b864f8 Support the full applyLayout attribute surface under SiteMesh 3
add c7a29df896 Merge remote-tracking branch 'apache/8.0.x' into feat/sitemesh3-default-layout
add 14da8e4b11 Apply the published-module build conventions to grails-gsp-spring-boot
add 5e636fdcd5 Leave the view resolver unwrapped when the SiteMesh 3 beans are absent
add 536da4d477 Defer to SiteMesh 2's layout resolver instead of double-wrapping it
add cb6edf7630 Merge branch '8.0.x' into feat/sitemesh3-default-layout
add abbda50fc8 Disable CORS so forge-ui can start easily locally
add 8ae337f600 Merge branch '8.0.x' into feat/sitemesh3-default-layout
add c27b930c00 Make domain properties nullable by default (Grails 8)
add 5216696361 Merge branch '8.0.x' into nullable-by-default
add d92c416190 Document nullable-by-default: upgrade guide, constraints guide, IDE metadata
add 180306bd04 Merge branch '8.0.x' into nullable-by-default
add b112a97d43 Address review feedback on the nullable-by-default config wiring
add 8a0b1bd2f8 Merge branch '8.0.x' into nullable-by-default
add 2657f33509 Merge pull request #15721 from codeconsole/nullable-by-default
add 6de6f5da77 Merge branch '8.0.x' into feat/sitemesh3-default-layout
add 3381711083 Add a CI lane that runs the test suite against SiteMesh 2
add 2e5d8dbd91 feat(deps): Bump Micronaut platform 5.0.0-M2 to 5.0.0 (GA)
add d3ac8fafb1 Merge branch 'deps/spring-boot-4.0.6' into deps/micronaut-5.0.0
add b81f2fb8f7 ci: Skip Micronaut island on Java 21 jobs in gradle.yml
add 9bdf78439f fix(deps): Bump micronaut-serde-jackson 2.11.0 to 2.16.2
add a2ac447dc9 ci: Propagate -PskipMicronautProjects to Forge Java 21 jobs
add 228f9a52ce refactor(deps): Remove Micronaut HTTP client from grails-data-graphql tests
add d6bfccbc7a ci: Add publishMicronaut job on JDK 25, skip island on the JDK 21 publish
add 79b8260986 ci(release): Split publish flow into JDK 21 + JDK 25 (Micronaut island)
add e7552a729e ci(release): Dockerfile + verify scripts learn the dual-JDK flow
add 72a3c0a514 docs(release): Document the dual-JDK reproducibility flow
add 92f8cf0ad3 fix(deps): Address PR #15677 review feedback
add cb750435a9 test(forge): Cover the grails-micronaut JDK 25 guard
add 0b7ce1bd06 build(deps): Auto-toggle the Grails-Micronaut island by build JDK
add 62075a2a08 docs(deps): Sync gradle.properties island comment with JDK auto-detection
add 40d0bc62fe Merge remote-tracking branch 'origin/8.0.x' into deps/micronaut-5.0.0
add 69ec0a5c39 Merge branch '8.0.x' into deps/micronaut-5.0.0
add 65c29d55de Merge remote-tracking branch 'origin/8.0.x' into deps/micronaut-5.0.0
add 3580d3dd36 Merge branch '8.0.x' into deps/micronaut-5.0.0
add c54d35e9d3 test(graphql): use Spring RestClient JSON converters in GraphQLSpec
add f49f4203a1 Merge branch '8.0.x' into deps/micronaut-5.0.0
add db90e5c316 Merge branch '8.0.x' into deps/micronaut-5.0.0
add 2f88bd8834 Merge branch '8.0.x' into deps/micronaut-5.0.0
add 805c9fec35 fix(deps): align grails-hibernate7-micronaut-bom Groovy override to 5.0.6
add 35ad3b0713 Merge pull request #15677 from apache/deps/micronaut-5.0.0
add d7667d5be2 Merge branch '8.0.x' into feat/sitemesh3-default-layout
add 831f3fc29b Merge pull request #15713 from codeconsole/feat/sitemesh3-default-layout
add e1d416f451 Merge branch '8.0.x' into 8.0.x-hibernate7
No new revisions were added by this update.
Summary of changes:
.github/workflows/gradle.yml | 70 +++++++++
.github/workflows/release-publish-docs.yml | 4 +
.github/workflows/release.yml | 76 ++++++++++
.github/workflows/{coverage.yml => sitemesh2.yml} | 120 ++++++++-------
.sdkmanrc | 8 +-
RELEASE.md | 23 +++
dependencies.gradle | 4 +-
etc/bin/Dockerfile | 26 +++-
etc/bin/test-reproducible-builds.sh | 44 ++++--
etc/bin/verify-reproducible.sh | 29 +++-
gradle.properties | 11 +-
gradle/publish-root-config.gradle | 1 +
grails-bom/micronaut/build.gradle | 8 +-
.../src/main/groovy/grails/config/Settings.groovy | 5 +
.../grails/validation/ConstraintEvalUtils.groovy | 8 +
.../META-INF/spring-configuration-metadata.json | 6 +
.../docs/src/main/docs/guide/otherNotes.adoc | 8 +
grails-data-graphql/plugin/build.gradle | 21 +--
.../gorm/graphql/plugin/testing/GraphQLSpec.groovy | 93 +++++++-----
.../graphql/plugin/testing/GraphQLSpecSpec.groovy | 162 +++++++++++++++++++++
.../SaveWithExistingValidationErrorSpec.groovy | 1 +
.../grails/gorm/tests/entities/Contract.groovy | 4 +
.../tests/validation/CascadeValidationSpec.groovy | 3 +
.../test/mixin/hibernate/HibernateSpecSpec.groovy | 2 +-
.../SaveWithExistingValidationErrorSpec.groovy | 1 +
.../grails/gorm/tests/entities/Contract.groovy | 4 +
.../tests/validation/CascadeValidationSpec.groovy | 3 +
.../test/mixin/hibernate/HibernateSpecSpec.groovy | 2 +-
.../src/test/groovy/grails/gorm/tests/Plant.groovy | 4 +
.../MongoDbDataStoreSpringInitializerSpec.groovy | 2 +-
.../gorm/mongo/FindOrCreateWhereSpec.groovy | 1 +
.../grails/gorm/tests/CircularCascadeSpec.groovy | 8 +
.../domains/ClassWithListArgBeforeValidate.groovy | 2 +-
.../domains/ClassWithNoArgBeforeValidate.groovy | 2 +-
.../ClassWithOverloadedBeforeValidate.groovy | 2 +-
.../eval/DefaultConstraintEvaluator.java | 15 +-
.../registry/DefaultValidatorRegistry.groovy | 3 +-
.../gorm/validation/NullableByDefaultSpec.groovy | 121 +++++++++++++++
.../PersistentEntityValidatorSpec.groovy | 2 +
.../connections/ConnectionSourceSettings.groovy | 6 +
grails-dependencies/starter-web/build.gradle | 2 +-
.../src/en/guide/upgrading/upgrading80x.adoc | 44 ++++++
.../src/en/guide/validation/constraints.adoc | 2 +-
grails-doc/src/en/ref/Constraints/nullable.adoc | 21 ++-
grails-doc/src/en/ref/Tags - GSP/applyLayout.adoc | 5 +-
.../DefaultConstraintEvaluatorFactoryBean.groovy | 4 +-
.../grails/plugin/formfields/mock/Author.groovy | 2 +-
.../grails/plugin/formfields/mock/Person.groovy | 5 +-
.../EntityValidatorDomainPropertySpec.groovy | 2 +
.../grails/forge/feature/sitemesh3/Sitemesh3.java | 41 ++++--
.../org/grails/forge/feature/view/GrailsGsp.java | 7 -
.../Sitemesh3.java => view/GrailsLayout.java} | 33 ++---
.../{web/GrailsWeb.java => view/GspLayout.java} | 39 +++--
...lientSpec.groovy => GrailsMicronautSpec.groovy} | 26 +++-
.../grails/forge/feature/view/GspLayoutSpec.groovy | 68 +++++++++
grails-forge/grails-forge-web-netty/build.gradle | 4 +-
.../plugins/sitemesh3/Sitemesh3GrailsPlugin.groovy | 40 ++---
.../plugins/web/taglib/RenderSitemeshTagLib.groovy | 155 +++++++++++++++++++-
.../sitemesh3/CaptureAwareContentProcessor.java | 8 +
.../sitemesh3/GrailsSiteMeshViewContext.java | 14 +-
.../sitemesh3/GrailsSiteMeshViewResolver.java | 3 +
...railsSiteMeshViewResolverBeanPostProcessor.java | 30 ++++
.../sitemesh3/Sitemesh3AutoConfiguration.java | 2 +-
.../plugins/sitemesh3/Sitemesh3CapturedPage.java | 26 +++-
.../Sitemesh3EnvironmentPostProcessor.java | 70 ---------
.../plugins/sitemesh3/Sitemesh3LayoutFinder.java | 20 ++-
.../sitemesh3/Sitemesh3RenderViewMutator.java | 49 +++++++
.../src/main/resources/META-INF/spring.factories | 2 -
...ework.boot.env.EnvironmentPostProcessor.imports | 1 -
.../sitemesh3/GrailsSiteMeshViewContextSpec.groovy | 40 +++++
...iteMeshViewResolverBeanPostProcessorSpec.groovy | 39 +++++
.../GrailsSiteMeshViewResolverSpec.groovy | 22 +++
.../sitemesh3/Sitemesh3CapturedPageSpec.groovy | 77 ++++++++++
.../Sitemesh3EnvironmentPostProcessorSpec.groovy | 71 ---------
.../sitemesh3/Sitemesh3LayoutFinderSpec.groovy | 63 +++++++-
.../Sitemesh3RenderViewMutatorSpec.groovy | 73 ++++++++++
.../grails/web/taglib/ValidationTagLibSpec.groovy | 7 +
grails-gsp/spring-boot/build.gradle | 10 +-
grails-profiles/web/profile.yml | 2 +-
grails-test-examples/app1/build.gradle | 7 +-
.../app1/grails-app/conf/application.yml | 6 +
.../grails-app/domain/functionaltests/Book.groovy | 1 +
grails-test-examples/app2/build.gradle | 7 +-
grails-test-examples/app3/build.gradle | 7 +-
.../async-events-pubsub-demo/build.gradle | 7 +-
grails-test-examples/cache/build.gradle | 7 +-
grails-test-examples/config-report/build.gradle | 6 +-
grails-test-examples/database-cleanup/build.gradle | 1 -
grails-test-examples/datasources/build.gradle | 7 +-
grails-test-examples/demo33/build.gradle | 7 +-
.../demo33/grails-app/domain/demo/Car.groovy | 1 +
grails-test-examples/exploded/build.gradle | 6 +-
.../external-configuration/build.gradle | 7 +-
grails-test-examples/geb-context-path/build.gradle | 7 +-
grails-test-examples/geb-gebconfig/build.gradle | 7 +-
grails-test-examples/geb/build.gradle | 7 +-
grails-test-examples/gorm/build.gradle | 7 +-
.../gorm/grails-app/conf/application.yml | 3 +
.../graphql/grails-docs-app/build.gradle | 5 +-
.../grails-multi-datastore-app/build.gradle | 5 +-
.../groovy/myapp/BarIntegrationSpec.groovy | 2 +-
.../groovy/myapp/FooIntegrationSpec.groovy | 2 +-
.../graphql/grails-tenant-app/build.gradle | 5 +-
.../grails/tenant/app/UserIntegrationSpec.groovy | 8 +-
.../graphql/grails-test-app/build.gradle | 5 +-
.../test/app/ArguedFieldIntegrationSpec.groovy | 6 +-
.../grails/test/app/ArtistIntegrationSpec.groovy | 2 +-
.../grails/test/app/AuthorIntegrationSpec.groovy | 14 +-
.../grails/test/app/BookIntegrationSpec.groovy | 2 +-
.../grails/test/app/CommentIntegrationSpec.groovy | 20 +--
.../app/GrailsTeamMemberIntegrationSpec.groovy | 4 +-
.../test/app/InheritanceIntegrationSpec.groovy | 2 +-
.../test/app/NumberLengthIntegrationSpec.groovy | 10 +-
.../grails/test/app/PaymentIntegrationSpec.groovy | 24 +--
.../grails/test/app/PostIntegrationSpec.groovy | 20 +--
.../test/app/RestrictedIntegrationSpec.groovy | 12 +-
.../test/app/SimpleCompositeIntegrationSpec.groovy | 10 +-
.../test/app/SoftDeleteIntegrationSpec.groovy | 12 +-
.../grails/test/app/TagIntegrationSpec.groovy | 16 +-
.../grails/test/app/TypeTestIntegrationSpec.groovy | 4 +-
.../grails/test/app/UserIntegrationSpec.groovy | 24 +--
.../grails/test/app/UserRoleIntegrationSpec.groovy | 26 ++--
.../grails/layout/EndToEndController.groovy | 29 ++++
.../grails-app/views/endToEnd/_content.gsp} | 1 +
.../grails-app/views/endToEnd/_document.gsp} | 6 +-
.../grails-app/views/endToEnd/actionContent.gsp} | 1 +
.../grails-app/views/endToEnd/modelContent.gsp} | 1 +
.../grails-app/views/endToEnd/parseContent.gsp} | 11 +-
.../grails-app/views/endToEnd/templateContent.gsp} | 1 +
.../views/endToEnd/templateDocument.gsp} | 1 +
.../grails-app/views/endToEnd/urlContent.gsp} | 1 +
.../grails-app/views/layouts/model.gsp} | 8 +-
.../integration-test/groovy/EndToEndSpec.groovy | 61 ++++++++
.../grails-database-per-tenant/build.gradle | 7 +-
.../hibernate5/grails-hibernate/build.gradle | 7 +-
.../grails-app/domain/functional/tests/Book.groovy | 2 +-
.../domain/functional/tests/Business.groovy | 3 +
.../grails-app/conf/application.yml | 8 +-
.../grails-partitioned-multi-tenancy/build.gradle | 7 +-
.../grails-schema-per-tenant/build.gradle | 7 +-
.../hibernate5/issue450/build.gradle | 7 +-
.../grails-database-per-tenant/build.gradle | 7 +-
.../hibernate7/grails-hibernate/build.gradle | 7 +-
.../grails-app/domain/functional/tests/Book.groovy | 2 +-
.../domain/functional/tests/Business.groovy | 3 +
.../grails-app/conf/application.yml | 8 +-
.../grails-partitioned-multi-tenancy/build.gradle | 7 +-
.../grails-schema-per-tenant/build.gradle | 7 +-
.../hibernate7/issue450/build.gradle | 7 +-
grails-test-examples/hyphenated/build.gradle | 7 +-
grails-test-examples/issue-11102/build.gradle | 7 +-
.../issue-698-domain-save-npe/build.gradle | 7 +-
.../grails-app/conf/application.yml | 6 +
grails-test-examples/issue-views-182/build.gradle | 7 +-
grails-test-examples/jetty/build.gradle | 6 +-
grails-test-examples/mongodb/base/build.gradle | 7 +-
.../mongodb/base/grails-app/conf/application.yml | 6 +
.../mongodb/database-per-tenant/build.gradle | 7 +-
.../mongodb/gson-templates/build.gradle | 7 +-
.../mongodb/hibernate5/build.gradle | 7 +-
grails-test-examples/namespaces/build.gradle | 7 +-
grails-test-examples/plugins/exploded/build.gradle | 6 +-
.../plugins/issue11005/build.gradle | 7 +-
.../plugins/loadafter/build.gradle | 7 +-
.../plugins/loadfirst/build.gradle | 7 +-
.../plugins/loadsecond/build.gradle | 7 +-
.../scaffolding-fields/build.gradle | 1 -
.../grails-app/conf/application.yml | 6 +
grails-test-examples/scaffolding/build.gradle | 6 +-
.../scaffolding/grails-app/conf/application.yml | 6 +
grails-test-examples/test-phases/build.gradle | 1 -
.../views-functional-tests/build.gradle | 7 +-
.../grails-app/conf/application.yml | 6 +
grails-test-suite-uber/build.gradle | 7 +-
.../mixin/CascadeValidationForEmbeddedSpec.groovy | 2 +-
.../mixin/DomainClassDeepValidationSpec.groovy | 4 +-
.../mixin/RestfulControllerSubclassSpec.groovy | 4 +
.../test/mixin/cascade/CascadeCircularSpec.groovy | 1 +
.../validation/DomainConstraintGettersSpec.groovy | 11 ++
.../grails/web/metaclass/ChainMethodTests.groovy | 4 +
.../web/servlet/FlashScopeWithErrorsTests.groovy | 4 +
.../grails/rest/web/RespondMethodSpec.groovy | 2 +-
.../web/converters/JSONConverterTests.groovy | 5 +
.../plugin/json/view/JsonViewHelperSpec.groovy | 4 +
settings.gradle | 36 +++--
185 files changed, 2111 insertions(+), 730 deletions(-)
copy .github/workflows/{coverage.yml => sitemesh2.yml} (51%)
create mode 100644 grails-data-graphql/plugin/src/test/groovy/org/grails/gorm/graphql/plugin/testing/GraphQLSpecSpec.groovy
create mode 100644 grails-datamapping-validation/src/test/groovy/grails/gorm/validation/NullableByDefaultSpec.groovy
copy grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/{sitemesh3/Sitemesh3.java => view/GrailsLayout.java} (68%)
copy grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/{web/GrailsWeb.java => view/GspLayout.java} (62%)
copy grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/micronaut/{MicronautHttpClientSpec.groovy => GrailsMicronautSpec.groovy} (58%)
create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/view/GspLayoutSpec.groovy
delete mode 100644 grails-gsp/grails-sitemesh3/src/main/java/org/grails/plugins/sitemesh3/Sitemesh3EnvironmentPostProcessor.java
create mode 100644 grails-gsp/grails-sitemesh3/src/main/java/org/grails/plugins/sitemesh3/Sitemesh3RenderViewMutator.java
delete mode 100644 grails-gsp/grails-sitemesh3/src/main/resources/META-INF/spring.factories
delete mode 100644 grails-gsp/grails-sitemesh3/src/main/resources/META-INF/spring/org.springframework.boot.env.EnvironmentPostProcessor.imports
create mode 100644 grails-gsp/grails-sitemesh3/src/test/groovy/org/grails/plugins/sitemesh3/Sitemesh3CapturedPageSpec.groovy
delete mode 100644 grails-gsp/grails-sitemesh3/src/test/groovy/org/grails/plugins/sitemesh3/Sitemesh3EnvironmentPostProcessorSpec.groovy
create mode 100644 grails-gsp/grails-sitemesh3/src/test/groovy/org/grails/plugins/sitemesh3/Sitemesh3RenderViewMutatorSpec.groovy
copy grails-test-examples/{demo33/grails-app/views/test/foo.gsp => gsp-sitemesh3/grails-app/views/endToEnd/_content.gsp} (95%)
copy grails-test-examples/{gsp-layout/grails-app/views/endToEnd/titleInSubtemplate.gsp => gsp-sitemesh3/grails-app/views/endToEnd/_document.gsp} (90%)
copy grails-test-examples/{demo33/grails-app/views/test/foo.gsp => gsp-sitemesh3/grails-app/views/endToEnd/actionContent.gsp} (89%)
copy grails-test-examples/{demo33/grails-app/views/test/foo.gsp => gsp-sitemesh3/grails-app/views/endToEnd/modelContent.gsp} (89%)
copy grails-test-examples/{gsp-layout/grails-app/views/endToEnd/multilineTitle.gsp => gsp-sitemesh3/grails-app/views/endToEnd/parseContent.gsp} (86%)
copy grails-test-examples/{demo33/grails-app/views/test/foo.gsp => gsp-sitemesh3/grails-app/views/endToEnd/templateContent.gsp} (90%)
copy grails-test-examples/{demo33/grails-app/views/test/foo.gsp => gsp-sitemesh3/grails-app/views/endToEnd/templateDocument.gsp} (94%)
copy grails-test-examples/{demo33/grails-app/views/test/foo.gsp => gsp-sitemesh3/grails-app/views/endToEnd/urlContent.gsp} (90%)
copy grails-test-examples/{app1/grails-app/views/forwarding/forwardedView.gsp => gsp-sitemesh3/grails-app/views/layouts/model.gsp} (86%)