You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2026/10/04 18:24:55 UTC

(grails-core) branch 9.0.x updated (d6a3c5532e -> c3b2ea8fcf)

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

jdaugherty pushed a change to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git


    from d6a3c5532e Follow Groovy 6 switch expressions in the GORM query safety check
     add 482e1782cd [skip ci] Release v8.0.0-RC2
     add 1b4f54eebf [skip ci] Bump version to 8.0.0-SNAPSHOT
     add 80a1ff5637 Merge pull request #16487 from apache/merge-back-8.0.0-RC2
     add 7d355e9485 Update Grails 8 Upgrade skill based on application upgrade
     add 2a3994c1de Merge pull request #16493 from apache/skill-updates
     add 47f7c72e82 Compile reloaded classes into the build's own classes directory
     add 5dc78857fa Pass the classes directory with / and fall back when it is not relative
     add 53d3df2484 Merge branch '8.0.x' into fix/bootrun-project-class-dir-8.0.x
     add 3c1a893b79 Point development at the build's own resources directory too, and keep a property the build sets
     add e6bc0c7922 Resolve a relative grails.project.resource.dir against the application
     add 2d85090c0d Find an @Integration spec's application class on its compile classpath
     add 74fbfab3ff Find the application class next to the compile output, wherever the build directory is
     add 6e4f5cf4fc Keep BuildSettings.resourcesDir private, checking each case in the forked JVM
     add 2368184fd4 Document running more than one instance of a checkout
     add 2440d141f5 Merge branch '8.0.x' into fix/bootrun-project-class-dir-8.0.x
     add 52ffa6acf3 Keep the development restart marker in the build's own directory
     add bdb139d9ad Keep a project.target.dir set by hand ahead of the plugin's target directory
     add 938dbb541e Keep each instance's project cache beside its build directory in the guide
     add 03699f59ab Say what each property's fallback breaks when it cannot be passed
     add 1a2c97b09d Merge pull request #16472 from codeconsole/fix/bootrun-project-class-dir-8.0.x
     add 185ab622f5 Restore Hibernate validation error-reset semantics
     add 5288a8d87f Expand setupErrorsProperty test coverage
     add 657556ac8d Merge pull request #16489 from jdaugherty/fix/hibernate-validation-error-reset
     add cf7e8545b9 Keep the MongoClient GORM hands out across a CRaC restore
     add b76d6a873c Open no connection to MongoDB until the datastore starts
     add 335a3d2e1d Start an embedded MongoDB with the context when it is checkpointed on refresh
     add b64b840007 Document checkpointing a GORM for MongoDB application as its context refreshes
     add d1926a446c Declare GORM's MongoClient in a Spring Boot application
     add b91ec8f76d Stop every client GORM owns, and connect no connection until start
     add 4987030acd Note in the upgrade guides that indexes are built when the datastore starts
     add 7f5a9270dc Count driver clients by the events the driver reports as it builds them
     add 70517cf660 Build a connection registered during start() once, not twice
     add f220260869 Keep mock response output lazy after reset
     add 8bd0204061 Cover charset chosen after mock response reset
     add 009584ad92 Merge pull request #16490 from apache/fix/mock-response-reset-stream
     add 75a367057a Type Hibernate 7 comparison values from the property they compare with
     add 815583a772 Type non-Comparable comparison values from the property path too
     add be84c6dd52 Bind non-Comparable comparison values as criteria parameters
     add e175dbaedc Remove the unused HibernateQuery.getJpaCriteriaQuery
     add 040cf8a812 Merge pull request #16479 from apache/fix/h7-user-type-comparisons
     add c6ef10e3bf Keep a Class user-type in the Hibernate 7 mapping as a Class
     add e2d23b1f0b Document the user-type mapping in the Hibernate 7 guide
     add 5287b3a002 Check stored Boolean values in the user-type mapping spec
     add 19b94d6576 Merge pull request #16480 from apache/fix/h7-global-user-type-class
     add 055cc1243f Restore mapped identifiers in GORM ident()
     add 468ee47dfc Respect mapped identifier getters in Hibernate proxies
     add 5003c0c9b2 Guard ident() against unmapped classes and cover its branches
     add 84314f346c Return a proxy's identifier from ident() without loading it
     add 4fc83cdc51 Merge pull request #16485 from apache/fix/composite-ident
     add 9b6adc7f43 Merge branch '8.0.x' into fix/mongodb-checkpoint-on-refresh-8.0.x
     add 89f1986198 Give a background index build a running executor whichever build start() runs
     add e115da9b27 Put off a build requested on a connection added while the datastore is stopped
     add 5a10bbab5b Hash dependency cache keys from fixed-depth paths
     add 99d14daecb Restore subclass command binding in compatibility mode
     add e5bbc7dad7 Keep binding protections for proxies and inherited Validateable subclasses
     add 9fd34ca839 Limit the inherited constraints fallback to Validateable's accessor
     add 3bbecb5dca Merge pull request #16491 from apache/fix/inherited-command-binding
     add ad01b6ea3f Implemented suggested fix for the `TEMPLATE_MODEL` leak identified in PR #16453 review after merge. The fix ensures `TEMPLATE_MODEL` is handled the same way as `MODEL_AND_VIEW` during forwards and includes.
     add 24df4fa2b4 Implemented jamesfredley's non-blocking recommendation from PR #16492:
     add 0089eb135e Read the forwarded response body through TestHttpResponse.body()
     add 0bb1d89134 Merge pull request #16492 from ruthst00/fix/12081-interceptor-model-followup
     add 94027b2e69 Upgrade SiteMesh to 3.3.0
     add 620d549caa Merge pull request #16498 from codeconsole/deps/sitemesh-3.3.0
     add 0e2c9cff99 Keep a property's mapping when a '*' default constraint is configured
     add af8255aaf4 Add MongoDatastore.findUndeclaredIndexes() and dropUndeclaredIndexes()
     add 20f6e3289a Add MongoDatastore.buildIndexAsync(), returning the build's result
     add 3063d81c68 Add MongoDatastore.findMissingIndexes()
     add e7e9f8f7ec Count a unique index over duplicate values as a failed declaration
     add ecbf30a6d7 Keep what is configured on a property that starts from a '*' entry
     add e7f0446d28 Start the datastore in the index specs, as the application context does
     add 5a261296a1 Build and report only the indexes of the classes mapped to a connection
     add cb9e0c4edc Check a reviewed undeclared index again before dropping it
     add a4d30e4b1c Compare text indexes field by field in the missing and undeclared reports
     add dbbb0aab57 Count only a duplicate key as a failed index declaration
     add a9ea86909e Run a synchronous and a background index build one at a time
     add 8e44dec475 Tell a build that stops from a declaration that fails in the index guide
     add 97dfcc7103 Wrap the declaration comparison in the reports as checkstyle requires
     add d71c610fd3 Add a release note for building only the indexes of the classes mapped to a connection
     add 26d47a2a2c Merge branch '8.0.x' into feat/mongodb-undeclared-indexes-8.0.x
     add cd08a7d289 Say a background build has a caller waiting when buildIndexAsync() started it
     add c57d0557b0 Index a class registered at runtime on the collection and database it maps
     add 2c4d2ca19b Index a class registered at runtime only on a connection it is mapped to
     add 83c8061963 Index a class registered at runtime after any build running on its connection
     add d5b93889ec Skip a collection that declares nothing in findMissingIndexes()
     add e6c619ec7b Add a release note for indexing a class registered at runtime where its mapping says
     add 18d09d16fa Start the datastore in the runtime registration spec, as the index specs do
     add 51f6e53106 Merge pull request #16494 from codeconsole/feat/mongodb-undeclared-indexes-8.0.x
     add 28956fc267 Register the GORM for MongoDB Spring Boot auto-configuration where Boot reads it
     add 44eed4de74 Run a spec's shared initializers and stop MongoDB in the springboot example's extension
     add edecc4cf47 Start the springboot example application in its tests
     add 05b24407b5 Merge branch '8.0.x' into fix/mongodb-boot-autoconfiguration-registration-8.0.x
     add a2b567290f Give a spec its datastore before its own shared initializers run
     add 7b8173c8e8 Merge pull request #16496 from codeconsole/fix/mongodb-boot-autoconfiguration-registration-8.0.x
     add 7a8701caa6 Merge branch '8.0.x' into fix/mongodb-checkpoint-on-refresh-8.0.x
     add 175e4c2812 Merge pull request #16495 from codeconsole/fix/mongodb-checkpoint-on-refresh-8.0.x
     add f6c9c5e1c7 Save a multi-tenant instance under the current tenant again
     add 841f6fbfaa Use the right @since for the classes of GORM for Hibernate 7
     add fa7ed617b9 Remove the @author tags from the classes of GORM for Hibernate 7
     add 42f465db52 Merge pull request #16508 from apache/docs/hibernate7-since-8.0
     add fa6cf614e5 Apply @ManagedEntity to Hibernate 7 entities mapped with hibernate or GORM
     add 11403a46dd Rethrow exceptions from the Hibernate 7 withFlushMode callable
     add c9ea2a0c0b Remove the Hibernate 7 Integrator file that Hibernate never reads
     add aeca131fa6 Merge pull request #16502 from apache/fix/hibernate7-mapwith-flushmode-integrator
     add 36f00398bf Apply the GORM session flush mode to the bound Hibernate 7 session
     add 527ccfca9e Merge pull request #16504 from apache/fix/hibernate7-session-flush-mode
     add 0a657b3073 Rethrow TenantNotFoundException from the multi-tenant event listener
     add 1d3161e1cf Merge pull request #16509 from apache/fix/multi-tenant-listener-tenant-not-found
     add 747a786798 Restrict a Hibernate 7 query by the detached criteria passed to add()
     add a59b77b198 Add criteria to the given junction in Hibernate 7 queries
     add 9a86b07199 Compare whole values in Hibernate 7 eq with ignoreCase
     add 6816f847ea Apply the requested lock mode in GrailsHibernateTemplate.lock()
     add 47572a5918 Stop managing liquibase-hibernate7 in the Hibernate 7 BOM
     add 321898b9b6 Test Hibernate 7 eq with ignoreCase through the query API
     add 45769ae883 Merge pull request #16500 from apache/fix/hibernate7-query-template-bom-bugs
     add 03c9e65694 Return joined entities and native query entities from Hibernate 7 queries
     add c90d00bbab Merge pull request #16506 from apache/fix/hibernate7-hql-joined-alias-select
     add 5268168499 Merge remote-tracking branch 'upstream/8.0.x' into fix/multi-tenant-listener-current-tenant
     add ef29ca6787 Check that an update does not move a book to another tenant
     add 9a8ceda9a4 Merge pull request #16511 from apache/fix/multi-tenant-listener-current-tenant
     add 15542ae8e9 Upgrade Asset Pipeline to 5.2.0
     add 542ae8ac9b Merge pull request #16514 from apache/deps/asset-pipeline-5.2.0
     add 9fa482ba91 Implement sqlRestriction for Hibernate 7 criteria queries
     add edc5f687cb Address review feedback on Hibernate 7 sqlRestriction
     add c316b7d52c Register the Hibernate 7 junction sqlRestriction as an extension module
     add dc8462b47b Merge pull request #16505 from apache/fix/hibernate7-sql-restriction
     add a6388e855a Show every container filter in chain order on the welcome page
     add 4bbf14837e Add grails-compile-static Forge feature
     add 55e7e9c293 Skip disabled filter registrations in the welcome page fallback
     add 70470c27f5 Label filters without a readable class name by their registration name
     add 63101a12ac Document the grails-compile-static Forge feature in the guide
     add 61fa27129b List grails-compile-static under Configuration
     add 6eacfd59f6 List each filter map in the order Tomcat applies it, and number none elsewhere
     add b8f8c251f7 Render the welcome page's filter list on Tomcat and on Jetty
     add 4f54d20054 Merge branch '8.0.x' into feat/welcome-filters-compile-static-8.0.x
     add cdc35cb97a Opt each artefact type in on its own in grails-compile-static
     add 7599fa986f Badge a filter map that is not for ordinary requests with its dispatcher types
     add 2b92bc9ae5 Merge pull request #16499 from codeconsole/feat/welcome-filters-compile-static-8.0.x
     add 7ac6568a54 Fix github branch on 7.2.x
     add c446533522 Keep the Close Release job going when post-release fails
     add 2e108db240 Merge pull request #16488 from apache/ci/post-release-manual-fallback
     add 03854b8853 Run every feature of the TCK CrudOperationsSpec
     add 150248d5e7 Merge pull request #16507 from apache/fix/tck-crud-operations-ignore-rest
     add da5527951a Give Hibernate 5 templates the configured flush mode
     add 81c86f01cf Merge pull request #16503 from apache/fix/hibernate-template-flush-mode
     add 788b6a2601 Apply @ManagedEntity to entities mapped with hibernate or GORM
     add 5248f6699b Rethrow exceptions from the withFlushMode callable
     add c4f5871d04 Remove the Integrator file that Hibernate never reads
     add a5d536c32c Merge pull request #16501 from apache/fix/hibernate-mapwith-flushmode-integrator
     add f0d7af0986 Merge branch '7.0.x' into 7.1.x
     add b364fe4952 Merge branch '7.1.x' into 7.2.x
     add df80e8128b Merge branch '7.2.x' into 8.0.x
     add c16730edd9 Merge branch '8.0.x' into 8.1.x
     new c3b2ea8fcf Merge branch '8.1.x' into 9.0.x

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


Summary of changes:
 .github/workflows/end-to-end.yml                   |    3 +-
 .github/workflows/gradle.yml                       |   63 +-
 .github/workflows/groovy-snapshot-canary.yml       |    5 +-
 .github/workflows/release.yml                      |   36 +
 RELEASE.md                                         |    4 +-
 dependencies.gradle                                |   10 +-
 .../controller/support/RequestForwarder.groovy     |    2 +
 .../controller/support/RequestForwarderSpec.groovy |   83 ++
 .../orm/hibernate/AbstractHibernateDatastore.java  |   16 +-
 .../orm/hibernate/GrailsHibernateTemplate.java     |   17 +-
 .../grails/orm/hibernate/HibernateDatastore.java   |   12 +-
 .../org/grails/orm/hibernate/cfg/Mapping.groovy    |    6 +-
 .../compiler/HibernateEntityTransformation.groovy  |    2 +-
 .../proxy/ByteBuddyGroovyInterceptor.java          |    9 +-
 .../hibernate/support/HibernateRuntimeUtils.groovy |   26 +-
 .../org.hibernate.integrator.spi.Integrator        |    1 -
 .../hibernate/mapping/MappingBuilderSpec.groovy    |   25 +
 .../grails/gorm/tests/MappedIdentifierSpec.groovy  |  161 +++
 .../gorm/tests/ValidationErrorResetSpec.groovy     |  151 +++
 .../tests/proxy/ProxyIdentifierAccessSpec.groovy   |  175 ++++
 .../hibernate/DefaultMappingGlobalEntrySpec.groovy |   98 ++
 .../GrailsHibernateTemplateFlushModeSpec.groovy    |   89 ++
 .../orm/hibernate/HibernateDatastoreSpec.groovy    |   70 +-
 .../HibernateEntityTransformationSpec.groovy       |   22 +
 .../support/HibernateRuntimeUtilsErrorsSpec.groovy |  165 +++
 .../grails/orm/HibernateCriteriaBuilder.java       |   31 +-
 .../orm/hibernate/GrailsHibernateTemplate.java     |    3 +-
 .../grails/orm/hibernate/HibernateDatastore.java   |   20 +-
 .../org/grails/orm/hibernate/HibernateSession.java |   38 +-
 .../org/grails/orm/hibernate/cfg/Mapping.groovy    |    6 +-
 .../domainbinding/binder/JoinedSubClassBinder.java |    2 +-
 .../binder/SingleTableSubclassBinder.java          |    2 +-
 .../domainbinding/binder/UnionSubclassBinder.java  |    2 +-
 .../generator/GrailsNativeGenerator.java           |    3 +-
 .../hibernate/HibernateMappingBuilder.groovy       |    2 +-
 .../hibernate/HibernateMappingKeyword.groovy       |    3 +-
 .../util/MultiTenantFilterBinder.java              |    2 +-
 .../util/MultiTenantFilterDefinitionBinder.java    |    2 +-
 .../compiler/HibernateEntityTransformation.groovy  |    2 +-
 .../proxy/ByteBuddyGroovyInterceptor.java          |   12 +-
 .../proxy/ByteBuddyGroovyProxyFactory.java         |    3 +-
 .../hibernate/proxy/GrailsProxyFactoryFactory.java |    3 +-
 .../proxy/GroovyProxyInterceptorLogic.java         |    3 +-
 .../orm/hibernate/proxy/HibernateProxyHandler.java |    3 +-
 .../grails/orm/hibernate/query/AliasRegistry.java  |    3 +-
 .../{HibernateAlias.java => EqualsIgnoreCase.java} |   15 +-
 .../orm/hibernate/query/ExpressionResolver.java    |    3 +-
 .../orm/hibernate/query/GrailsQueryFlushMode.java  |    3 +-
 .../query/GrailsSqlRestrictionFunction.java        |  106 ++
 ...> GrailsSqlRestrictionFunctionContributor.java} |   19 +-
 .../hibernate/query/Hibernate7CountProjection.java |    3 +-
 .../query/HibernateDetachedCriteriaExtension.java  |   67 ++
 .../hibernate/query/HibernatePagedResultList.java  |    3 +-
 .../grails/orm/hibernate/query/HibernateQuery.java |   50 +-
 .../hibernate/query/HibernateQueryExecutor.java    |   19 +-
 .../orm/hibernate/query/HqlListQueryBuilder.java   |    4 +-
 .../orm/hibernate/query/HqlQueryContext.java       |   47 +-
 .../grails/orm/hibernate/query/JoinTracker.java    |    3 +-
 .../hibernate/query/JpaCriteriaQueryCreator.java   |   22 +-
 .../orm/hibernate/query/JpaProjectionAdapter.java  |    3 +-
 .../hibernate/query/JpaProjectionTranslator.java   |    4 +-
 .../orm/hibernate/query/JpaQueryContext.java       |   33 +-
 .../orm/hibernate/query/MutationHqlQuery.java      |    3 +-
 .../orm/hibernate/query/PredicateGenerator.java    |  123 ++-
 .../grails/orm/hibernate/query/SqlRestriction.java |  133 +++
 .../hibernate/support/HibernateRuntimeUtils.groovy |   26 +-
 .../org.hibernate.integrator.spi.Integrator        |    1 -
 .../org.codehaus.groovy.runtime.ExtensionModule    |    3 +
 .../org.hibernate.boot.model.FunctionContributor   |    1 +
 .../mapping/HibernateMappingBuilderSpec.groovy     |    9 +
 .../hibernate/mapping/MappingBuilderSpec.groovy    |   25 +
 .../gorm/tests/HqlSelectResultTypeSpec.groovy      |   87 ++
 .../grails/gorm/tests/MappedIdentifierSpec.groovy  |  161 +++
 .../gorm/tests/SqlRestrictionHibernate7Spec.groovy |  160 +++
 .../gorm/tests/UserTypeComparisonSpec.groovy       |  443 ++++++++
 .../gorm/tests/ValidationErrorResetSpec.groovy     |  151 +++
 .../tests/hibernatequery/HibernateQuerySpec.groovy |   96 +-
 .../JpaCriteriaQueryCreatorSpec.groovy             |   73 +-
 .../hibernatequery/PredicateGeneratorSpec.groovy   |   40 +
 .../tests/proxy/ProxyIdentifierAccessSpec.groovy   |  175 ++++
 .../orm/HibernateCriteriaBuilderDirectSpec.groovy  |   30 +-
 ...bernateCriteriaBuilderSqlRestrictionSpec.groovy |  534 ++++++++++
 .../hibernate/DefaultMappingGlobalEntrySpec.groovy |   98 ++
 .../hibernate/GrailsHibernateTemplateSpec.groovy   |   21 +
 .../orm/hibernate/HibernateDatastoreSpec.groovy    |   43 +-
 .../orm/hibernate/HibernateSessionSpec.groovy      |   67 +-
 .../orm/hibernate/UserTypeMappingSpec.groovy       |  218 ++++
 .../grails/orm/hibernate/cfg/MappingSpec.groovy    |    4 +
 .../HibernateEntityTransformationSpec.groovy       |   21 +-
 .../proxy/ByteBuddyGroovyInterceptorSpec.groovy    |    9 +-
 .../orm/hibernate/query/HqlQueryContextSpec.groovy |   33 +-
 .../orm/hibernate/query/JpaQueryContextSpec.groovy |   43 +
 .../support/HibernateRuntimeUtilsSpec.groovy       |   44 +-
 .../ormdsl/customHibernateTypes.adoc               |   25 +-
 .../docs/src/docs/asciidoc/querying/criteria.adoc  |   22 +-
 .../docs/asciidoc/querying/detachedCriteria.adoc   |   11 +-
 .../MongoDbGormAutoConfiguration.groovy            |  139 ++-
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    0
 .../MongoDbGormAutoConfigurationClientSpec.groovy  |  218 ++++
 .../MongoDbGormAutoConfigurationCloseSpec.groovy   |  103 +-
 ...ongoDbGormAutoConfigurationDiscoverySpec.groovy |   98 ++
 .../datastore/mapping/mongo/IndexBuildResult.java  |   39 +
 .../datastore/mapping/mongo/MissingIndex.java      |   24 +-
 .../datastore/mapping/mongo/MongoDatastore.java    | 1058 ++++++++++++++++----
 .../datastore/mapping/mongo/UndeclaredIndex.java   |   28 +-
 .../MongoConnectionSourceFactory.groovy            |   18 +-
 .../mongo/connections/RestartableMongoClient.java  |  376 +++++++
 .../bootstrap/ConnectsWhenStartedSpec.groovy       |  154 +++
 .../MongoDbDataStoreSpringInitializerSpec.groovy   |   26 +
 .../gorm/mongo/BuildIndexAsyncResultSpec.groovy    |  598 +++++++++++
 .../gorm/mongo/BuildIndexesAsyncSpec.groovy        |   27 +-
 .../mongo/BuildIndexesBackgroundFailureSpec.groovy |    2 +-
 .../BuildIndexesClassificationCostSpec.groovy      |    1 +
 .../BuildIndexesDefaultConstraintsSpec.groovy      |   91 ++
 .../mongo/BuildIndexesFailureSummarySpec.groovy    |   68 +-
 .../gorm/mongo/BuildIndexesHookSpec.groovy         |    1 +
 .../gorm/mongo/BuildIndexesKeyOrderSpec.groovy     |    1 +
 .../gorm/mongo/BuildIndexesLifecycleSpec.groovy    |  138 +++
 .../gorm/mongo/BuildIndexesNameConflictSpec.groovy |    2 +
 .../BuildIndexesPartialClassificationSpec.groovy   |    1 +
 .../mongo/BuildIndexesRecreateSummarySpec.groovy   |    1 +
 .../mongo/BuildIndexesStaleSnapshotSpec.groovy     |    1 +
 .../gorm/mongo/BuildIndexesSummaryLogSpec.groovy   |    1 +
 .../mongo/BuildIndexesUnfinishedSummarySpec.groovy |    3 +-
 .../BuildIndexesUnreadableIndexListSpec.groovy     |    1 +
 .../gorm/mongo/DocumentMappingSpec.groovy          |   18 +-
 .../datastore/gorm/mongo/MissingIndexesSpec.groovy |  350 +++++++
 .../gorm/mongo/UndeclaredIndexesSpec.groovy        |  535 ++++++++++
 .../BuildIndexesPerConnectionSpec.groovy           |  176 +++-
 .../mongo/MongoDatastoreLifecycleSpec.groovy       |  268 ++++-
 .../connections/RestartableMongoClientSpec.groovy  |  293 ++++++
 .../asciidoc/gettingStarted/advancedConfig.adoc    |   15 +-
 .../asciidoc/gettingStarted/embeddedMongo.adoc     |   12 +
 .../docs/asciidoc/gettingStarted/springBoot.adoc   |    2 +
 .../asciidoc/gettingStarted/springDataInterop.adoc |    2 +-
 .../docs/asciidoc/introduction/releaseNotes.adoc   |   12 +-
 .../docs/asciidoc/introduction/upgradeNotes.adoc   |   33 +-
 .../src/docs/asciidoc/querying/queryIndexes.adoc   |  103 +-
 .../mongodb/embedded/EmbeddedMongoInitializer.java |  138 ++-
 .../EmbeddedMongoStartedWithTheContextSpec.groovy  |  258 +++++
 .../SpringDataMongoGormRestoreSpec.groovy          |    8 +-
 .../partitioned/PartitionMultiTenancySpec.groovy   |   39 +
 .../grails/datastore/gorm/GormInstanceApi.groovy   |   31 +-
 .../multitenancy/MultiTenantEventListener.java     |   13 +-
 .../datastore/gorm/GormInstanceApiIdentSpec.groovy |  257 +++++
 .../datastore/gorm/GormInstanceApiSpec.groovy      |    5 +-
 .../MultiTenantEventListenerSpec.groovy            |   62 +-
 .../testing/tck/tests/CrudOperationsSpec.groovy    |    6 +-
 .../tck/tests/ValidationHibernateSpec.groovy       |    7 +-
 .../data/testing/tck/tests/ValidationSpec.groovy   |    8 +-
 .../grails/datastore/mapping/config/Entity.groovy  |    3 +
 .../DefaultMappingConfigurationBuilder.groovy      |   13 +-
 .../DefaultMappingConfigurationBuilderSpec.groovy  |   52 +
 .../guide/gettingStarted/developmentReloading.adoc |   32 +
 grails-doc/src/en/guide/introduction/whatsNew.adoc |   31 +
 .../grailsCompileStatic.adoc                       |    7 +
 .../src/en/guide/upgrading/upgrading80x.adoc       |    9 +
 grails-doc/src/en/ref/Controllers/bindData.adoc    |    2 +
 grails-doc/src/en/ref/Dependency Versions.adoc     |    2 +-
 grails-doc/src/en/ref/Domain Classes/ident.adoc    |   22 +-
 grails-doc/src/en/ref/Domain Classes/load.adoc     |    6 +-
 grails-doc/src/en/ref/Domain Classes/validate.adoc |    4 +
 .../build/gradle/templates/buildGradle.rocker.raw  |   13 +
 .../GrailsCompileStatic.java}                      |   42 +-
 .../src/main/resources/gsp/index.gsp               |  137 ++-
 .../src/main/resources/i18n/messages.properties    |    6 +-
 .../src/main/resources/i18n/messages_cs.properties |    6 +-
 .../src/main/resources/i18n/messages_da.properties |    6 +-
 .../src/main/resources/i18n/messages_de.properties |    6 +-
 .../src/main/resources/i18n/messages_es.properties |    6 +-
 .../src/main/resources/i18n/messages_fr.properties |    6 +-
 .../src/main/resources/i18n/messages_it.properties |    6 +-
 .../src/main/resources/i18n/messages_ja.properties |    6 +-
 .../src/main/resources/i18n/messages_nb.properties |    6 +-
 .../src/main/resources/i18n/messages_nl.properties |    6 +-
 .../src/main/resources/i18n/messages_pl.properties |    6 +-
 .../main/resources/i18n/messages_pt_BR.properties  |    6 +-
 .../main/resources/i18n/messages_pt_PT.properties  |    6 +-
 .../src/main/resources/i18n/messages_ru.properties |    6 +-
 .../src/main/resources/i18n/messages_sk.properties |    6 +-
 .../src/main/resources/i18n/messages_sv.properties |    6 +-
 .../src/main/resources/i18n/messages_th.properties |    6 +-
 .../main/resources/i18n/messages_zh_CN.properties  |    6 +-
 .../main/resources/i18n/messages_zh_TW.properties  |    6 +-
 .../feature/grails/GrailsCompileStaticSpec.groovy  |   72 ++
 .../grails/forge/feature/view/GrailsGspSpec.groovy |   11 +-
 .../org/grails/forge/create/CreateAppSpec.groovy   |   11 +
 .../model/src/main/groovy/grails/io/IOUtils.groovy |   30 +-
 .../main/groovy/grails/util/BuildSettings.groovy   |   52 +-
 .../org/grails/io/support/MainClassFinder.groovy   |   41 +
 .../src/test/groovy/grails/io/IOUtilsSpec.groovy   |   13 +
 .../groovy/grails/util/BuildSettingsPrinter.groovy |   19 +-
 .../groovy/grails/util/BuildSettingsSpec.groovy    |  117 +++
 .../grails/io/support/MainClassFinderSpec.groovy   |  126 +++
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   |   33 +-
 .../core/GrailsProjectOutputDirProvider.groovy     |  153 +++
 .../core/GrailsGradlePluginToolchainSpec.groovy    |   55 +
 .../core/GrailsProjectOutputDirProviderSpec.groovy |  112 +++
 .../test-projects/bootrun-classes-dir/build.gradle |   30 +
 .../gradle.properties                              |    0
 .../grails-app/conf/.keep                          |    0
 .../bootrun-classes-dir/settings.gradle            |    1 +
 .../org/grails/openapi/GrailsModelConverter.groovy |    5 +
 .../groovy/grails/openapi/CommandObjectSpec.groovy |   53 +
 .../skeleton/grails-app/i18n/messages.properties   |    6 +-
 .../grails-app/i18n/messages_cs.properties         |    6 +-
 .../grails-app/i18n/messages_da.properties         |    6 +-
 .../grails-app/i18n/messages_de.properties         |    6 +-
 .../grails-app/i18n/messages_es.properties         |    6 +-
 .../grails-app/i18n/messages_fr.properties         |    6 +-
 .../grails-app/i18n/messages_it.properties         |    6 +-
 .../grails-app/i18n/messages_ja.properties         |    6 +-
 .../grails-app/i18n/messages_nb.properties         |    6 +-
 .../grails-app/i18n/messages_nl.properties         |    6 +-
 .../grails-app/i18n/messages_pl.properties         |    6 +-
 .../grails-app/i18n/messages_pt_BR.properties      |    6 +-
 .../grails-app/i18n/messages_pt_PT.properties      |    6 +-
 .../grails-app/i18n/messages_ru.properties         |    6 +-
 .../grails-app/i18n/messages_sk.properties         |    6 +-
 .../grails-app/i18n/messages_sv.properties         |    6 +-
 .../grails-app/i18n/messages_th.properties         |    6 +-
 .../grails-app/i18n/messages_zh_CN.properties      |    6 +-
 .../grails-app/i18n/messages_zh_TW.properties      |    6 +-
 .../web/skeleton/grails-app/views/index.gsp        |  137 ++-
 .../skills/grails-8-upgrade/SKILL.md               |  278 ++++-
 .../AbstractGrailsMockHttpServletResponse.groovy   |    3 +-
 .../gorm/DirtyCheckBindingController.groovy        |   17 +-
 .../groovy/gorm/DirtyCheckBindingSpec.groovy       |   67 +-
 .../gorm/DirtyCheckBindingController.groovy        |   17 +-
 .../groovy/gorm/DirtyCheckBindingSpec.groovy       |   67 +-
 .../functional/tests/ModelInterceptor.groovy       |    2 +
 .../tests/RenderTemplateController.groovy          |   32 +
 .../tests/ModelInterceptorIntSpec.groovy           |   40 +
 .../src/test/groovy/example/ApplicationSpec.groovy |   96 ++
 .../test/groovy/example/SharedDatastoreSpec.groovy |   64 +-
 .../example/SpringBootStartMongoExtension.groovy   |    4 +-
 .../functional/tests/ModelInterceptor.groovy       |    2 +
 .../tests/RenderTemplateController.groovy          |   32 +
 .../tests/ModelInterceptorIntSpec.groovy           |   40 +
 .../welcome-page-jetty/build.gradle                |   94 ++
 .../grails-app/conf/application.yml                |    2 +-
 .../grails-app/conf/spring/resources.groovy        |   52 +
 .../welcomepagejetty}/UrlMappings.groovy           |    6 +-
 .../init/welcomepagejetty}/Application.groovy      |    6 +-
 .../WelcomePageFiltersJettySpec.groovy             |   94 ++
 .../welcomepagejetty/WelcomePageFilters.groovy     |   49 +-
 .../build.gradle                                   |   46 +-
 .../grails-app/conf/application.yml                |    2 +-
 .../grails-app/conf/spring/resources.groovy        |   60 ++
 .../controllers/welcomepage}/UrlMappings.groovy    |    6 +-
 .../init/welcomepage}/Application.groovy           |    6 +-
 .../welcomepage/WelcomePageFiltersSpec.groovy      |   98 ++
 .../groovy/welcomepage/WelcomePageFilters.groovy   |   85 ++
 .../test/mixin/DomainProxyBindingSpec.groovy       |   92 ++
 .../test/mixin/InheritedCommandBindingSpec.groovy  |  398 ++++++++
 .../GrailsMockHttpServletResponseTests.groovy      |   92 ++
 .../IntegrationTestAstTransformation.groovy        |   27 +-
 .../IntegrationTestApplicationClassSpec.groovy     |  116 +++
 .../grails/web/databinding/DataBindingUtils.java   |   35 +-
 .../web/databinding/BindingIncludeLists.java       |   72 +-
 .../web/databinding/DataBindingUtilsSpec.groovy    |   55 +-
 .../org/grails/web/mapping/UrlMappingUtils.java    |    9 +
 .../grails/web/mapping/UrlMappingUtilsSpec.groovy  |  134 +++
 settings.gradle                                    |    4 +
 264 files changed, 13708 insertions(+), 969 deletions(-)
 delete mode 100644 grails-data-hibernate5/core/src/main/resources/META-INF/org.hibernate.integrator.spi.Integrator
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/MappedIdentifierSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/ValidationErrorResetSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/proxy/ProxyIdentifierAccessSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/DefaultMappingGlobalEntrySpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/GrailsHibernateTemplateFlushModeSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/support/HibernateRuntimeUtilsErrorsSpec.groovy
 copy grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/{HibernateAlias.java => EqualsIgnoreCase.java} (68%)
 create mode 100644 grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsSqlRestrictionFunction.java
 copy grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/{HibernateAlias.java => GrailsSqlRestrictionFunctionContributor.java} (60%)
 create mode 100644 grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateDetachedCriteriaExtension.java
 create mode 100644 grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/SqlRestriction.java
 delete mode 100644 grails-data-hibernate7/core/src/main/resources/META-INF/org.hibernate.integrator.spi.Integrator
 create mode 100644 grails-data-hibernate7/core/src/main/resources/META-INF/services/org.codehaus.groovy.runtime.ExtensionModule
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/HqlSelectResultTypeSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/MappedIdentifierSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/SqlRestrictionHibernate7Spec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/UserTypeComparisonSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/ValidationErrorResetSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/proxy/ProxyIdentifierAccessSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/orm/HibernateCriteriaBuilderSqlRestrictionSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/DefaultMappingGlobalEntrySpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/UserTypeMappingSpec.groovy
 rename grails-data-mongodb/boot-plugin/src/main/resources/META-INF/{services => }/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports (100%)
 create mode 100644 grails-data-mongodb/boot-plugin/src/test/groovy/org/grails/datastore/gorm/mongodb/boot/autoconfigure/MongoDbGormAutoConfigurationClientSpec.groovy
 create mode 100644 grails-data-mongodb/boot-plugin/src/test/groovy/org/grails/datastore/gorm/mongodb/boot/autoconfigure/discovered/MongoDbGormAutoConfigurationDiscoverySpec.groovy
 create mode 100644 grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/IndexBuildResult.java
 copy grails-test-examples/openapi-rest-api/grails-app/domain/openapirest/Book.groovy => grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/MissingIndex.java (58%)
 copy grails-test-examples/app1/src/main/groovy/functionaltests/springevents/CustomApplicationEvent.groovy => grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/UndeclaredIndex.java (56%)
 create mode 100644 grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/connections/RestartableMongoClient.java
 create mode 100644 grails-data-mongodb/core/src/test/groovy/grails/mongodb/bootstrap/ConnectsWhenStartedSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexAsyncResultSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BuildIndexesDefaultConstraintsSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MissingIndexesSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/UndeclaredIndexesSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/mapping/mongo/connections/RestartableMongoClientSpec.groovy
 create mode 100644 grails-data-mongodb/embedded/src/test/groovy/org/grails/datastore/gorm/mongodb/embedded/EmbeddedMongoStartedWithTheContextSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormInstanceApiIdentSpec.groovy
 copy grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/{other/HibernateValidator.java => grails/GrailsCompileStatic.java} (59%)
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/grails/GrailsCompileStaticSpec.groovy
 copy grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/Application.groovy => grails-gradle/model/src/test/groovy/grails/util/BuildSettingsPrinter.groovy (63%)
 create mode 100644 grails-gradle/model/src/test/groovy/grails/util/BuildSettingsSpec.groovy
 create mode 100644 grails-gradle/model/src/test/groovy/org/grails/io/support/MainClassFinderSpec.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsProjectOutputDirProvider.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsProjectOutputDirProviderSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bootrun-classes-dir/build.gradle
 copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => bootrun-classes-dir}/gradle.properties (100%)
 copy grails-gradle/plugins/src/test/resources/test-projects/{boot-run-pid => bootrun-classes-dir}/grails-app/conf/.keep (100%)
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bootrun-classes-dir/settings.gradle
 create mode 100644 grails-test-examples/mongodb/springboot/src/test/groovy/example/ApplicationSpec.groovy
 copy grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MultiplePropertySetterSpec.groovy => grails-test-examples/mongodb/springboot/src/test/groovy/example/SharedDatastoreSpec.groovy (51%)
 create mode 100644 grails-test-examples/welcome-page-jetty/build.gradle
 copy grails-test-examples/{gsp-compile-static => welcome-page-jetty}/grails-app/conf/application.yml (96%)
 create mode 100644 grails-test-examples/welcome-page-jetty/grails-app/conf/spring/resources.groovy
 copy {grails-data-graphql/plugin/grails-app/controllers/org/grails/gorm/graphql/plugin => grails-test-examples/welcome-page-jetty/grails-app/controllers/welcomepagejetty}/UrlMappings.groovy (90%)
 copy grails-test-examples/{app4/grails-app/init/app4 => welcome-page-jetty/grails-app/init/welcomepagejetty}/Application.groovy (97%)
 create mode 100644 grails-test-examples/welcome-page-jetty/src/integration-test/groovy/welcomepagejetty/WelcomePageFiltersJettySpec.groovy
 copy grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/channel/ChannelProcessingFilter.groovy => grails-test-examples/welcome-page-jetty/src/main/groovy/welcomepagejetty/WelcomePageFilters.groovy (53%)
 copy grails-test-examples/{gsp-compile-static => welcome-page}/build.gradle (56%)
 copy grails-test-examples/{gsp-compile-static => welcome-page}/grails-app/conf/application.yml (96%)
 create mode 100644 grails-test-examples/welcome-page/grails-app/conf/spring/resources.groovy
 copy {grails-data-graphql/plugin/grails-app/controllers/org/grails/gorm/graphql/plugin => grails-test-examples/welcome-page/grails-app/controllers/welcomepage}/UrlMappings.groovy (90%)
 copy grails-test-examples/{app5/grails-app/init/app5 => welcome-page/grails-app/init/welcomepage}/Application.groovy (98%)
 create mode 100644 grails-test-examples/welcome-page/src/integration-test/groovy/welcomepage/WelcomePageFiltersSpec.groovy
 create mode 100644 grails-test-examples/welcome-page/src/main/groovy/welcomepage/WelcomePageFilters.groovy
 create mode 100644 grails-test-suite-uber/src/test/groovy/grails/test/mixin/DomainProxyBindingSpec.groovy
 create mode 100644 grails-test-suite-uber/src/test/groovy/grails/test/mixin/InheritedCommandBindingSpec.groovy
 create mode 100644 grails-testing-support-core/src/test/groovy/org/grails/compiler/injection/testing/IntegrationTestApplicationClassSpec.groovy


(grails-core) 01/01: Merge branch '8.1.x' into 9.0.x

Posted by jd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit c3b2ea8fcf3d6104643787d70e00eb3c261e8ad1
Merge: d6a3c5532e c16730edd9
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Sun Oct 4 14:01:30 2026 -0400

    Merge branch '8.1.x' into 9.0.x

 .github/workflows/end-to-end.yml                   |    3 +-
 .github/workflows/gradle.yml                       |   63 +-
 .github/workflows/groovy-snapshot-canary.yml       |    5 +-
 .github/workflows/release.yml                      |   36 +
 RELEASE.md                                         |    4 +-
 dependencies.gradle                                |   10 +-
 .../controller/support/RequestForwarder.groovy     |    2 +
 .../controller/support/RequestForwarderSpec.groovy |   83 ++
 .../orm/hibernate/AbstractHibernateDatastore.java  |   16 +-
 .../orm/hibernate/GrailsHibernateTemplate.java     |   17 +-
 .../grails/orm/hibernate/HibernateDatastore.java   |   12 +-
 .../org/grails/orm/hibernate/cfg/Mapping.groovy    |    6 +-
 .../compiler/HibernateEntityTransformation.groovy  |    2 +-
 .../proxy/ByteBuddyGroovyInterceptor.java          |    9 +-
 .../hibernate/support/HibernateRuntimeUtils.groovy |   26 +-
 .../org.hibernate.integrator.spi.Integrator        |    1 -
 .../hibernate/mapping/MappingBuilderSpec.groovy    |   25 +
 .../grails/gorm/tests/MappedIdentifierSpec.groovy  |  161 +++
 .../gorm/tests/ValidationErrorResetSpec.groovy     |  151 +++
 .../tests/proxy/ProxyIdentifierAccessSpec.groovy   |  175 ++++
 .../hibernate/DefaultMappingGlobalEntrySpec.groovy |   98 ++
 .../GrailsHibernateTemplateFlushModeSpec.groovy    |   89 ++
 .../orm/hibernate/HibernateDatastoreSpec.groovy    |   70 +-
 .../HibernateEntityTransformationSpec.groovy       |   22 +
 .../support/HibernateRuntimeUtilsErrorsSpec.groovy |  165 +++
 .../grails/orm/HibernateCriteriaBuilder.java       |   31 +-
 .../orm/hibernate/GrailsHibernateTemplate.java     |    3 +-
 .../grails/orm/hibernate/HibernateDatastore.java   |   20 +-
 .../org/grails/orm/hibernate/HibernateSession.java |   38 +-
 .../org/grails/orm/hibernate/cfg/Mapping.groovy    |    6 +-
 .../domainbinding/binder/JoinedSubClassBinder.java |    2 +-
 .../binder/SingleTableSubclassBinder.java          |    2 +-
 .../domainbinding/binder/UnionSubclassBinder.java  |    2 +-
 .../generator/GrailsNativeGenerator.java           |    3 +-
 .../hibernate/HibernateMappingBuilder.groovy       |    2 +-
 .../hibernate/HibernateMappingKeyword.groovy       |    3 +-
 .../util/MultiTenantFilterBinder.java              |    2 +-
 .../util/MultiTenantFilterDefinitionBinder.java    |    2 +-
 .../compiler/HibernateEntityTransformation.groovy  |    2 +-
 .../proxy/ByteBuddyGroovyInterceptor.java          |   12 +-
 .../proxy/ByteBuddyGroovyProxyFactory.java         |    3 +-
 .../hibernate/proxy/GrailsProxyFactoryFactory.java |    3 +-
 .../proxy/GroovyProxyInterceptorLogic.java         |    3 +-
 .../orm/hibernate/proxy/HibernateProxyHandler.java |    3 +-
 .../grails/orm/hibernate/query/AliasRegistry.java  |    3 +-
 .../orm/hibernate/query/EqualsIgnoreCase.java      |   20 +-
 .../orm/hibernate/query/ExpressionResolver.java    |    3 +-
 .../orm/hibernate/query/GrailsQueryFlushMode.java  |    3 +-
 .../query/GrailsSqlRestrictionFunction.java        |  106 ++
 .../GrailsSqlRestrictionFunctionContributor.java   |   22 +-
 .../hibernate/query/Hibernate7CountProjection.java |    3 +-
 .../query/HibernateDetachedCriteriaExtension.java  |   67 ++
 .../hibernate/query/HibernatePagedResultList.java  |    3 +-
 .../grails/orm/hibernate/query/HibernateQuery.java |   50 +-
 .../hibernate/query/HibernateQueryExecutor.java    |   19 +-
 .../orm/hibernate/query/HqlListQueryBuilder.java   |    4 +-
 .../orm/hibernate/query/HqlQueryContext.java       |   47 +-
 .../grails/orm/hibernate/query/JoinTracker.java    |    3 +-
 .../hibernate/query/JpaCriteriaQueryCreator.java   |   22 +-
 .../orm/hibernate/query/JpaProjectionAdapter.java  |    3 +-
 .../hibernate/query/JpaProjectionTranslator.java   |    4 +-
 .../orm/hibernate/query/JpaQueryContext.java       |   33 +-
 .../orm/hibernate/query/MutationHqlQuery.java      |    3 +-
 .../orm/hibernate/query/PredicateGenerator.java    |  123 ++-
 .../grails/orm/hibernate/query/SqlRestriction.java |  133 +++
 .../hibernate/support/HibernateRuntimeUtils.groovy |   26 +-
 .../org.hibernate.integrator.spi.Integrator        |    1 -
 .../org.codehaus.groovy.runtime.ExtensionModule    |    3 +
 .../org.hibernate.boot.model.FunctionContributor   |    1 +
 .../mapping/HibernateMappingBuilderSpec.groovy     |    9 +
 .../hibernate/mapping/MappingBuilderSpec.groovy    |   25 +
 .../gorm/tests/HqlSelectResultTypeSpec.groovy      |   87 ++
 .../grails/gorm/tests/MappedIdentifierSpec.groovy  |  161 +++
 .../gorm/tests/SqlRestrictionHibernate7Spec.groovy |  160 +++
 .../gorm/tests/UserTypeComparisonSpec.groovy       |  443 ++++++++
 .../gorm/tests/ValidationErrorResetSpec.groovy     |  151 +++
 .../tests/hibernatequery/HibernateQuerySpec.groovy |   96 +-
 .../JpaCriteriaQueryCreatorSpec.groovy             |   73 +-
 .../hibernatequery/PredicateGeneratorSpec.groovy   |   40 +
 .../tests/proxy/ProxyIdentifierAccessSpec.groovy   |  175 ++++
 .../orm/HibernateCriteriaBuilderDirectSpec.groovy  |   30 +-
 ...bernateCriteriaBuilderSqlRestrictionSpec.groovy |  534 ++++++++++
 .../hibernate/DefaultMappingGlobalEntrySpec.groovy |   98 ++
 .../hibernate/GrailsHibernateTemplateSpec.groovy   |   21 +
 .../orm/hibernate/HibernateDatastoreSpec.groovy    |   43 +-
 .../orm/hibernate/HibernateSessionSpec.groovy      |   67 +-
 .../orm/hibernate/UserTypeMappingSpec.groovy       |  218 ++++
 .../grails/orm/hibernate/cfg/MappingSpec.groovy    |    4 +
 .../HibernateEntityTransformationSpec.groovy       |   21 +-
 .../proxy/ByteBuddyGroovyInterceptorSpec.groovy    |    9 +-
 .../orm/hibernate/query/HqlQueryContextSpec.groovy |   33 +-
 .../orm/hibernate/query/JpaQueryContextSpec.groovy |   43 +
 .../support/HibernateRuntimeUtilsSpec.groovy       |   44 +-
 .../ormdsl/customHibernateTypes.adoc               |   25 +-
 .../docs/src/docs/asciidoc/querying/criteria.adoc  |   22 +-
 .../docs/asciidoc/querying/detachedCriteria.adoc   |   11 +-
 .../MongoDbGormAutoConfiguration.groovy            |  139 ++-
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    0
 .../MongoDbGormAutoConfigurationClientSpec.groovy  |  218 ++++
 .../MongoDbGormAutoConfigurationCloseSpec.groovy   |  103 +-
 ...ongoDbGormAutoConfigurationDiscoverySpec.groovy |   98 ++
 .../datastore/mapping/mongo/IndexBuildResult.java  |   39 +
 .../datastore/mapping/mongo/MissingIndex.java      |   31 +-
 .../datastore/mapping/mongo/MongoDatastore.java    | 1058 ++++++++++++++++----
 .../datastore/mapping/mongo/UndeclaredIndex.java   |   32 +-
 .../MongoConnectionSourceFactory.groovy            |   18 +-
 .../mongo/connections/RestartableMongoClient.java  |  376 +++++++
 .../bootstrap/ConnectsWhenStartedSpec.groovy       |  154 +++
 .../MongoDbDataStoreSpringInitializerSpec.groovy   |   26 +
 .../gorm/mongo/BuildIndexAsyncResultSpec.groovy    |  598 +++++++++++
 .../gorm/mongo/BuildIndexesAsyncSpec.groovy        |   27 +-
 .../mongo/BuildIndexesBackgroundFailureSpec.groovy |    2 +-
 .../BuildIndexesClassificationCostSpec.groovy      |    1 +
 .../BuildIndexesDefaultConstraintsSpec.groovy      |   91 ++
 .../mongo/BuildIndexesFailureSummarySpec.groovy    |   68 +-
 .../gorm/mongo/BuildIndexesHookSpec.groovy         |    1 +
 .../gorm/mongo/BuildIndexesKeyOrderSpec.groovy     |    1 +
 .../gorm/mongo/BuildIndexesLifecycleSpec.groovy    |  138 +++
 .../gorm/mongo/BuildIndexesNameConflictSpec.groovy |    2 +
 .../BuildIndexesPartialClassificationSpec.groovy   |    1 +
 .../mongo/BuildIndexesRecreateSummarySpec.groovy   |    1 +
 .../mongo/BuildIndexesStaleSnapshotSpec.groovy     |    1 +
 .../gorm/mongo/BuildIndexesSummaryLogSpec.groovy   |    1 +
 .../mongo/BuildIndexesUnfinishedSummarySpec.groovy |    3 +-
 .../BuildIndexesUnreadableIndexListSpec.groovy     |    1 +
 .../gorm/mongo/DocumentMappingSpec.groovy          |   18 +-
 .../datastore/gorm/mongo/MissingIndexesSpec.groovy |  350 +++++++
 .../gorm/mongo/UndeclaredIndexesSpec.groovy        |  535 ++++++++++
 .../BuildIndexesPerConnectionSpec.groovy           |  176 +++-
 .../mongo/MongoDatastoreLifecycleSpec.groovy       |  268 ++++-
 .../connections/RestartableMongoClientSpec.groovy  |  293 ++++++
 .../asciidoc/gettingStarted/advancedConfig.adoc    |   15 +-
 .../asciidoc/gettingStarted/embeddedMongo.adoc     |   12 +
 .../docs/asciidoc/gettingStarted/springBoot.adoc   |    2 +
 .../asciidoc/gettingStarted/springDataInterop.adoc |    2 +-
 .../docs/asciidoc/introduction/releaseNotes.adoc   |   12 +-
 .../docs/asciidoc/introduction/upgradeNotes.adoc   |   33 +-
 .../src/docs/asciidoc/querying/queryIndexes.adoc   |  103 +-
 .../mongodb/embedded/EmbeddedMongoInitializer.java |  138 ++-
 .../EmbeddedMongoStartedWithTheContextSpec.groovy  |  258 +++++
 .../SpringDataMongoGormRestoreSpec.groovy          |    8 +-
 .../partitioned/PartitionMultiTenancySpec.groovy   |   39 +
 .../grails/datastore/gorm/GormInstanceApi.groovy   |   31 +-
 .../multitenancy/MultiTenantEventListener.java     |   13 +-
 .../datastore/gorm/GormInstanceApiIdentSpec.groovy |  257 +++++
 .../datastore/gorm/GormInstanceApiSpec.groovy      |    5 +-
 .../MultiTenantEventListenerSpec.groovy            |   62 +-
 .../testing/tck/tests/CrudOperationsSpec.groovy    |    6 +-
 .../tck/tests/ValidationHibernateSpec.groovy       |    7 +-
 .../data/testing/tck/tests/ValidationSpec.groovy   |    8 +-
 .../grails/datastore/mapping/config/Entity.groovy  |    3 +
 .../DefaultMappingConfigurationBuilder.groovy      |   13 +-
 .../DefaultMappingConfigurationBuilderSpec.groovy  |   52 +
 .../guide/gettingStarted/developmentReloading.adoc |   32 +
 grails-doc/src/en/guide/introduction/whatsNew.adoc |   31 +
 .../grailsCompileStatic.adoc                       |    7 +
 .../src/en/guide/upgrading/upgrading80x.adoc       |    9 +
 grails-doc/src/en/ref/Controllers/bindData.adoc    |    2 +
 grails-doc/src/en/ref/Dependency Versions.adoc     |    2 +-
 grails-doc/src/en/ref/Domain Classes/ident.adoc    |   22 +-
 grails-doc/src/en/ref/Domain Classes/load.adoc     |    6 +-
 grails-doc/src/en/ref/Domain Classes/validate.adoc |    4 +
 .../build/gradle/templates/buildGradle.rocker.raw  |   13 +
 .../forge/feature/grails/GrailsCompileStatic.java  |   62 ++
 .../src/main/resources/gsp/index.gsp               |  137 ++-
 .../src/main/resources/i18n/messages.properties    |    6 +-
 .../src/main/resources/i18n/messages_cs.properties |    6 +-
 .../src/main/resources/i18n/messages_da.properties |    6 +-
 .../src/main/resources/i18n/messages_de.properties |    6 +-
 .../src/main/resources/i18n/messages_es.properties |    6 +-
 .../src/main/resources/i18n/messages_fr.properties |    6 +-
 .../src/main/resources/i18n/messages_it.properties |    6 +-
 .../src/main/resources/i18n/messages_ja.properties |    6 +-
 .../src/main/resources/i18n/messages_nb.properties |    6 +-
 .../src/main/resources/i18n/messages_nl.properties |    6 +-
 .../src/main/resources/i18n/messages_pl.properties |    6 +-
 .../main/resources/i18n/messages_pt_BR.properties  |    6 +-
 .../main/resources/i18n/messages_pt_PT.properties  |    6 +-
 .../src/main/resources/i18n/messages_ru.properties |    6 +-
 .../src/main/resources/i18n/messages_sk.properties |    6 +-
 .../src/main/resources/i18n/messages_sv.properties |    6 +-
 .../src/main/resources/i18n/messages_th.properties |    6 +-
 .../main/resources/i18n/messages_zh_CN.properties  |    6 +-
 .../main/resources/i18n/messages_zh_TW.properties  |    6 +-
 .../feature/grails/GrailsCompileStaticSpec.groovy  |   72 ++
 .../grails/forge/feature/view/GrailsGspSpec.groovy |   11 +-
 .../org/grails/forge/create/CreateAppSpec.groovy   |   11 +
 .../model/src/main/groovy/grails/io/IOUtils.groovy |   30 +-
 .../main/groovy/grails/util/BuildSettings.groovy   |   52 +-
 .../org/grails/io/support/MainClassFinder.groovy   |   41 +
 .../src/test/groovy/grails/io/IOUtilsSpec.groovy   |   13 +
 .../groovy/grails/util/BuildSettingsPrinter.groovy |   21 +-
 .../groovy/grails/util/BuildSettingsSpec.groovy    |  117 +++
 .../grails/io/support/MainClassFinderSpec.groovy   |  126 +++
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   |   33 +-
 .../core/GrailsProjectOutputDirProvider.groovy     |  153 +++
 .../core/GrailsGradlePluginToolchainSpec.groovy    |   55 +
 .../core/GrailsProjectOutputDirProviderSpec.groovy |  112 +++
 .../test-projects/bootrun-classes-dir/build.gradle |   30 +
 .../bootrun-classes-dir/gradle.properties          |    1 +
 .../bootrun-classes-dir/grails-app/conf/.keep      |    0
 .../bootrun-classes-dir/settings.gradle            |    1 +
 .../org/grails/openapi/GrailsModelConverter.groovy |    5 +
 .../groovy/grails/openapi/CommandObjectSpec.groovy |   53 +
 .../skeleton/grails-app/i18n/messages.properties   |    6 +-
 .../grails-app/i18n/messages_cs.properties         |    6 +-
 .../grails-app/i18n/messages_da.properties         |    6 +-
 .../grails-app/i18n/messages_de.properties         |    6 +-
 .../grails-app/i18n/messages_es.properties         |    6 +-
 .../grails-app/i18n/messages_fr.properties         |    6 +-
 .../grails-app/i18n/messages_it.properties         |    6 +-
 .../grails-app/i18n/messages_ja.properties         |    6 +-
 .../grails-app/i18n/messages_nb.properties         |    6 +-
 .../grails-app/i18n/messages_nl.properties         |    6 +-
 .../grails-app/i18n/messages_pl.properties         |    6 +-
 .../grails-app/i18n/messages_pt_BR.properties      |    6 +-
 .../grails-app/i18n/messages_pt_PT.properties      |    6 +-
 .../grails-app/i18n/messages_ru.properties         |    6 +-
 .../grails-app/i18n/messages_sk.properties         |    6 +-
 .../grails-app/i18n/messages_sv.properties         |    6 +-
 .../grails-app/i18n/messages_th.properties         |    6 +-
 .../grails-app/i18n/messages_zh_CN.properties      |    6 +-
 .../grails-app/i18n/messages_zh_TW.properties      |    6 +-
 .../web/skeleton/grails-app/views/index.gsp        |  137 ++-
 .../skills/grails-8-upgrade/SKILL.md               |  278 ++++-
 .../AbstractGrailsMockHttpServletResponse.groovy   |    3 +-
 .../gorm/DirtyCheckBindingController.groovy        |   17 +-
 .../groovy/gorm/DirtyCheckBindingSpec.groovy       |   67 +-
 .../gorm/DirtyCheckBindingController.groovy        |   17 +-
 .../groovy/gorm/DirtyCheckBindingSpec.groovy       |   67 +-
 .../functional/tests/ModelInterceptor.groovy       |    2 +
 .../tests/RenderTemplateController.groovy          |   32 +
 .../tests/ModelInterceptorIntSpec.groovy           |   40 +
 .../src/test/groovy/example/ApplicationSpec.groovy |   96 ++
 .../test/groovy/example/SharedDatastoreSpec.groovy |   63 ++
 .../example/SpringBootStartMongoExtension.groovy   |    4 +-
 .../functional/tests/ModelInterceptor.groovy       |    2 +
 .../tests/RenderTemplateController.groovy          |   32 +
 .../tests/ModelInterceptorIntSpec.groovy           |   40 +
 .../welcome-page-jetty/build.gradle                |   94 ++
 .../grails-app/conf/application.yml                |   23 +
 .../grails-app/conf/spring/resources.groovy        |   52 +
 .../welcomepagejetty/UrlMappings.groovy}           |   21 +-
 .../init/welcomepagejetty/Application.groovy}      |   24 +-
 .../WelcomePageFiltersJettySpec.groovy             |   94 ++
 .../welcomepagejetty/WelcomePageFilters.groovy     |   66 ++
 grails-test-examples/welcome-page/build.gradle     |   84 ++
 .../welcome-page/grails-app/conf/application.yml   |   23 +
 .../grails-app/conf/spring/resources.groovy        |   60 ++
 .../controllers/welcomepage/UrlMappings.groovy}    |   21 +-
 .../init/welcomepage/Application.groovy}           |   24 +-
 .../welcomepage/WelcomePageFiltersSpec.groovy      |   98 ++
 .../groovy/welcomepage/WelcomePageFilters.groovy   |   85 ++
 .../test/mixin/DomainProxyBindingSpec.groovy       |   92 ++
 .../test/mixin/InheritedCommandBindingSpec.groovy  |  398 ++++++++
 .../GrailsMockHttpServletResponseTests.groovy      |   92 ++
 .../IntegrationTestAstTransformation.groovy        |   27 +-
 .../IntegrationTestApplicationClassSpec.groovy     |  116 +++
 .../grails/web/databinding/DataBindingUtils.java   |   35 +-
 .../web/databinding/BindingIncludeLists.java       |   72 +-
 .../web/databinding/DataBindingUtilsSpec.groovy    |   55 +-
 .../org/grails/web/mapping/UrlMappingUtils.java    |    9 +
 .../grails/web/mapping/UrlMappingUtilsSpec.groovy  |  134 +++
 settings.gradle                                    |    4 +
 264 files changed, 13938 insertions(+), 943 deletions(-)