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