This is an automated email from the ASF dual-hosted git repository. jamesfredley pushed a commit to branch 8.0.x in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit f9b2f712c54c13c16ef8efd593d31ebffdbfd413 Merge: 9dc73d31aa 3b1aac5004 Author: James Fredley <[email protected]> AuthorDate: Wed Jan 28 22:14:28 2026 -0500 Merge branch '7.1.x' into 8.0.x .github/workflows/codeql.yml | 2 +- .github/workflows/codestyle.yml | 2 +- .github/workflows/gradle.yml | 52 ++- .github/workflows/groovy-joint-workflow.yml | 2 +- .github/workflows/rat.yml | 2 +- .github/workflows/release-notes.yml | 6 +- build-logic/docs-core/build.gradle | 8 +- build.gradle | 2 +- dependencies.gradle | 4 +- gradle/test-config.gradle | 23 +- .../codegen/model/AbstractMemberDefinition.groovy | 225 +++++++++ .../codegen/model/DomainFieldModifier.groovy | 391 ++++++++++++++++ .../grails/codegen/model/FieldDefinition.groovy | 156 +++++++ .../grails/codegen/model/PropertyDefinition.groovy | 119 +++++ .../codegen/model/DomainFieldModifierSpec.groovy | 502 +++++++++++++++++++++ .../codegen/model/FieldDefinitionSpec.groovy | 162 +++++++ .../codegen/model/PropertyDefinitionSpec.groovy | 364 +++++++++++++++ .../grails/boot/DevelopmentModeWatchSpec.groovy | 4 +- ...aceHolderConfigurerCorePluginRuntimeSpec.groovy | 2 + .../compiler/injection/GrailsASTUtilsTests.groovy | 9 +- .../injection/GrailsArtefactTransformerSpec.groovy | 6 +- .../config/NavigableMapSpringProfilesSpec.groovy | 2 + .../config/YamlPropertySourceLoaderSpec.groovy | 8 +- .../org/grails/plugins/GrailsPluginTests.groovy | 9 +- .../MultiTenancyBidirectionalManyToManySpec.groovy | 2 + .../connections/SchemaMultiTenantSpec.groovy | 3 + .../hibernate/connections/SingleTenantSpec.groovy | 3 + grails-data-hibernate5/dbmigration/build.gradle | 13 - .../MongoDbGormAutoConfigurationSpec.groovy | 2 + ...ngoDbGormAutoConfigureWithGeoSpacialSpec.groovy | 2 + .../connections/MongoConnectionSourcesSpec.groovy | 7 + .../gorm/mongo/connections/MultiTenancySpec.groovy | 5 +- .../connections/SchemaBasedMultiTenancySpec.groovy | 5 +- .../mongo/connections/SingleTenancySpec.groovy | 5 +- .../MongoStaticApiMultiTenancySpec.groovy | 5 +- .../Neo4jAutoConfigurationSpec.groovy | 2 + .../tests/multitenancy/MultiTenancySpec.groovy | 4 + .../tests/multitenancy/SingleTenancySpec.groovy | 2 + .../database/DatabasePerTenantSpec.groovy | 3 +- .../MultiTenantServiceTransformSpec.groovy | 2 + .../partitioned/PartitionMultiTenancySpec.groovy | 3 +- .../multitenancy/schema/SchemaPerTenantSpec.groovy | 6 +- .../gorm/tests/CurrentTenantTransformSpec.groovy | 6 +- .../grails/gorm/tests/TenantServiceSpec.groovy | 7 +- .../grails/gorm/validation/Constrained.groovy | 10 +- .../validation/DefaultConstrainedProperty.groovy | 51 ++- .../grails/gorm/validation/DisplayType.groovy | 81 ++++ .../grails/gorm/validation/DisplayTypeSpec.groovy | 151 +++++++ grails-doc/src/en/ref/Constraints.adoc | 51 ++- .../grails/persistence/DomainClassTraitSpec.groovy | 6 + .../plugin/formfields/FormFieldsTagLib.groovy | 20 +- .../scaffolding/model/DomainModelService.groovy | 1 + .../model/DomainModelServiceImpl.groovy | 58 ++- .../scaffolding/model/property/Constrained.groovy | 20 + .../model/DomainModelServiceSpec.groovy | 6 +- grails-forge/buildSrc/build.gradle | 1 - grails-forge/gradle/test-config.gradle | 10 - grails-forge/grails-forge-cli/build.gradle | 5 + .../forge/cli/command/AddPropertyCommand.java | 181 ++++++++ grails-gradle/gradle/test-config.gradle | 7 - grails-gsp/plugin/build.gradle | 2 - .../mapping/RestfulReverseUrlRenderingTests.groovy | 21 + .../web/taglib/AbstractGrailsTagTests.groovy | 7 + .../org/grails/web/taglib/FormTagLibTests.groovy | 28 ++ .../web/interceptors/UrlMappingMatcherSpec.groovy | 7 +- .../web/mime/HttpServletRequestExtension.groovy | 14 +- .../web/mime/HttpServletResponseExtension.groovy | 2 +- .../groovy/grails/web/mime/MimeUtilitySpec.groovy | 11 + .../web/mime/MimeTypesConfigurationSpec.groovy | 11 + .../grails/web/mime/AcceptHeaderParserSpec.groovy | 5 + .../mvc/RequestAndResponseMimeTypesApiSpec.groovy | 7 + grails-profiles/base/commands/add-property.groovy | 132 ++++++ .../rest/render/DefaultRendererRegistrySpec.groovy | 11 + .../web/rest/render/VndErrorRenderingSpec.groovy | 8 + .../web/rest/render/hal/HalJsonRendererSpec.groovy | 10 + .../web/rest/render/html/HtmlRendererSpec.groovy | 10 + .../web/rest/render/json/JsonRendererSpec.groovy | 2 + .../profile/commands/CreateAppCommandSpec.groovy | 4 +- .../groovy/gorm/BindingOutsideRequestSpec.groovy | 5 + .../groovy/example/DatabasePerTenantSpec.groovy | 6 +- .../example/PartitionedMultiTenancySpec.groovy | 6 +- .../schemapertenant/SchemaPerTenantSpec.groovy | 5 +- .../groovy/examples/mongo/tenant/BookSpec.groovy | 7 +- grails-test-suite-uber/build.gradle | 2 +- ...GrailsCompileStaticCompilationErrorsSpec.groovy | 9 + .../GrailsTypeCheckedCompilationErrorsSpec.groovy | 9 + .../grails/persistence/EntityTransformTests.groovy | 9 + .../groovy/grails/spring/BeanBuilderTests.groovy | 9 + .../test/mixin/ControllerUnitTestMixinTests.groovy | 26 ++ .../grails/test/mixin/RestfulControllerSpec.groovy | 11 + .../rest/render/BaseDomainClassRendererSpec.groovy | 8 + .../web/codecs/HTMLJSCodecIntegrationSpec.groovy | 5 + .../DefaultGrailsApplicationAttributesTests.groovy | 6 + .../web/servlet/FlashScopeWithErrorsTests.groovy | 5 + .../grails/web/util/StreamCharBufferSpec.groovy | 5 + .../org/grails/web/util/WebUtilsTests.groovy | 5 + grails-test-suite-web/build.gradle | 2 +- .../grails/rest/web/RespondMethodSpec.groovy | 20 + .../org/grails/compiler/web/WithFormatSpec.groovy | 11 + .../rest/render/xml/DefaultXmlRendererSpec.groovy | 5 + ...ngHelperDomainClassSpecialPropertiesSpec.groovy | 9 + .../web/binding/JSONBindingToNullSpec.groovy | 16 + .../JsonBindingWithExceptionHandlerSpec.groovy | 24 + .../commandobjects/CommandObjectNoDataSpec.groovy | 6 + .../CommandObjectNullabilitySpec.groovy | 26 ++ .../web/commandobjects/CommandObjectsSpec.groovy | 6 + .../web/controllers/ContentNegotiationSpec.groovy | 16 + .../metaclass/CollectionBindDataMethodSpec.groovy | 11 + .../web/mime/ContentFormatControllerTests.groovy | 10 + .../web/mime/WithFormatContentTypeSpec.groovy | 16 + .../grails/testing/web/UrlMappingsUnitTest.groovy | 10 + .../grails/validation/ConstrainedDelegate.groovy | 7 + .../CommandObjectConstraintGettersSpec.groovy | 40 ++ .../DefaultASTValidateableHelperSpec.groovy | 9 + .../validation/SerializableValidateableSpec.groovy | 24 + .../grails/validation/ValidateableMockSpec.groovy | 24 + .../grails/plugin/json/view/api/JsonApiSpec.groovy | 21 + .../groovy/grails/web/mapping/UrlMappingData.java | 10 + .../grails/web/mapping/DefaultUrlMappingData.java | 8 + .../org/grails/web/mapping/RegexUrlMapping.java | 24 +- .../UrlMappingsWithGreedyExtensionSpec.groovy | 203 +++++++++ .../LinkGeneratorWithUrlMappingsSpec.groovy | 13 + .../web/mapping/RestfulUrlMappingSpec.groovy | 6 + .../mapping/UrlMappingsWithHttpMethodSpec.groovy | 6 + .../web/mapping/mvc/EncodePathFromURISpec.groovy | 5 + 125 files changed, 3683 insertions(+), 143 deletions(-)
