chore: Merge 7.1.x into 8.0.x#15521
Conversation
Add for removal and also to the adapter and the adapter bean.
Add for removal.
This is useful as it runs in the same context as setup() but only runs once. This gives you access to objects not yet initialized in setupSpec().
Update docs and usages to the preferred `updatable` property name. Cheap to keep backwards compatibility, so no urgent need to remove.
Add for removal.
Add for removal.
Add for removal.
Add for removal.
Add for removal.
Add for removal.
Add for removal.
Add for removal.
Add for removal.
Add since.
Add for removal.
Add for removal.
Add for removal.
Add for removal.
Add for removal.
…or locale compatibility Some locales (e.g., Norwegian nb-NO) use Unicode minus U+2212 instead of ASCII hyphen-minus U+002D when formatting negative numbers. This causes issues in HTML number input fields that expect standard ASCII minus. Normalize DecimalFormatSymbols.minusSign to ASCII '-' in FormatTagLib, ValidationTagLib, and FormFieldsTagLib before formatting numbers. Fixes #15178 Assisted-by: Claude Code <Claude@Claude.ai>
Add Geb integration tests in gsp-layout test example to verify that g:formatNumber renders negative numbers with ASCII minus (U+002D) instead of Unicode minus (U+2212) when using Norwegian locale (nb_NO). New files: - formatLocaleNumber.gsp view with locale-specific number formatting - formatLocaleNumber() controller action providing negative test values - 4 Geb specs in GspTagLibSpec for int, long, BigDecimal, and positive Relates to #15178 Assisted-by: Claude Code <Claude@Claude.ai>
Address review feedback on PR #15475 by narrowing the fix scope: - Revert changes to FormatTagLib (display tag, not input-specific) - Revert changes to ValidationTagLib (not input-specific) - Revert functional tests that tested g:formatNumber with locale - Keep fix only in FormFieldsTagLib.getNumberFormatter() which is explicitly input-specific (called from renderNumericInput) - Add data-driven Spock test covering nb_NO, nn_NO, sv_SE, fi_FI, and en_US locales in DefaultInputRenderingSpec The fix now only normalizes Unicode minus (U+2212) to ASCII minus (U+002D) when formatting values for HTML <input type="number"> elements via the f:field tag, which is the correct and isolated location per WHATWG spec requirements. Fixes #15178 Assisted-by: Claude Code <Claude@Claude.ai>
Add for removal.
Was already removed in core but seems to have lived on in converters. Add for removal.
Only used internally and not published in 7.0.x. Will be published for external use in 7.1.x.
Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 6 to 7. - [Release notes](https://github.com/release-drafter/release-drafter/releases) - [Commits](release-drafter/release-drafter@v6...v7) --- updated-dependencies: - dependency-name: release-drafter/release-drafter dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.5.0 to 2.6.1. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](softprops/action-gh-release@v2.5.0...v2.6.1) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: 2.6.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
chore: merge 7.0.9->7.0.x; bump to 7.0.10-SNAPSHOT
…rops/action-gh-release-2.6.1 chore(deps): bump softprops/action-gh-release from 2.5.0 to 2.6.1
…se-drafter/release-drafter-7 chore(deps): bump release-drafter/release-drafter from 6 to 7
- Use Ersatz for Http Client tests - XML formatting and parsing options - JSON formatting and parsing options - Use `assert*` lingo instead of `expect*`
fix: normalize Unicode minus sign in GSP number formatting for locale compatibility
Add for removal to previously deprecated methods and classes
…g-support new module `grails-testing-support-http-client`
And some cleanup.
Enable running single tests with Gradle `--tests` flag
# Conflicts: # gradle.properties # grails-core/src/test/groovy/grails/util/GrailsUtilTests.java
chore: Merge 7.0.x into 7.1.x
There was a problem hiding this comment.
Pull request overview
Merges the latest 7.1.x changes into 8.0.x, including a new HTTP client testing support module, deprecation metadata updates, and multiple test/doc migrations to keep branches aligned.
Changes:
- Introduces
grails-testing-support-http-clientwith JSON/XML assertion utilities and multipart helpers plus accompanying tests/docs. - Migrates many functional/integration tests away from Micronaut
HttpClientto the newHttpClientSupporttrait. - Applies a broad set of deprecation annotations / metadata updates, plus doc renames and minor build/CI adjustments.
Reviewed changes
Copilot reviewed 136 out of 161 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| grails-validation/src/main/groovy/grails/validation/ConstrainedDelegate.groovy | Adds since metadata to a deprecated API. |
| grails-testing-support-http-client/src/test/groovy/org/apache/grails/testing/http/client/utils/XmlUtilsSpec.groovy | Adds test coverage for new XML utilities. |
| grails-testing-support-http-client/src/test/groovy/org/apache/grails/testing/http/client/utils/JsonUtilsSpec.groovy | Adds test coverage for new JSON utilities. |
| grails-testing-support-http-client/src/test/groovy/org/apache/grails/testing/http/client/MultipartBodySpec.groovy | Adds test coverage for multipart builder. |
| grails-testing-support-http-client/src/main/groovy/org/apache/grails/testing/http/client/utils/XmlUtils.groovy | Adds secure XML parsing + XML rendering helpers. |
| grails-testing-support-http-client/src/main/groovy/org/apache/grails/testing/http/client/utils/JsonUtils.groovy | Adds JSON parsing + assertion helpers used in HTTP testing. |
| grails-testing-support-http-client/src/main/groovy/org/apache/grails/testing/http/client/MultipartBody.groovy | Adds multipart/form-data request body builder. |
| grails-testing-support-http-client/build.gradle | Adds build config and dependencies for new module. |
| grails-testing-support-http-client/README.md | Documents new HTTP client testing support module. |
| grails-testing-support-dbcleanup-core/src/main/groovy/org/apache/grails/testing/cleanup/core/DatabaseCleanup.groovy | Makes @DatabaseCleanup inheritable. |
| grails-testing-support-core/src/main/groovy/grails/testing/spock/OnceBefore.groovy | Removes deprecated marker from collected annotation. |
| grails-test-suite-web/src/test/groovy/org/grails/web/binding/JSONBindingToNullSpec.groovy | Migrates away from grails.web.JSONBuilder to Groovy JsonBuilder. |
| grails-test-suite-uber/build.gradle | Refactors test task setup and adds testAll. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/api/NamespacedBookSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/VehicleSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/TestGsonControllerSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/TestGmlControllerSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/TestControllerSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/TeamSpec.groovy | Migrates functional test to HttpClientSupport and updates HAL assertions. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/ProxySpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/ProjectSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/ProductSpec.groovy | Migrates functional test to HttpClientSupport and simplifies payload creation. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/PersonInheritanceSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/ObjectTemplateSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/ModelInterceptorIntSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/InheritanceSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/HttpClientSpec.groovy | Removes legacy Micronaut HTTP client test base class. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/EmbeddedSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/CustomerSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/CircularSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/BulletinSpec.groovy | Migrates functional test to HttpClientSupport. |
| grails-test-examples/views-functional-tests/src/integration-test/groovy/functional/tests/BookSpec.groovy | Migrates functional test to HttpClientSupport and updates assertions for errors/links. |
| grails-test-examples/views-functional-tests/build.gradle | Switches functional test deps to new http-client testing module. |
| grails-test-examples/micronaut/src/integration-test/groovy/micronaut/MicronautDeclarativeClientSpec.groovy | Updates Ersatz server usage and removes some Micronaut HttpClient tests. |
| grails-test-examples/micronaut/build.gradle | Adds Ersatz Groovy + new http-client testing support for integration tests. |
| grails-test-examples/issue-views-182/src/integration-test/groovy/views182/HttpClientCommonSpec.groovy | Removes legacy Micronaut HTTP client base for issue example tests. |
| grails-test-examples/issue-views-182/src/integration-test/groovy/views182/CustomErrorSpec.groovy | Migrates issue example test to HttpClientSupport. |
| grails-test-examples/issue-views-182/build.gradle | Updates deps to use new http-client testing module. |
| grails-test-examples/issue-15228/src/integration-test/groovy/issue11767/app/GsonViewRespondSpec.groovy | Migrates issue example test to HttpClientSupport. |
| grails-test-examples/issue-15228/build.gradle | Updates deps to use new http-client testing module. |
| grails-test-examples/issue-11767/src/integration-test/groovy/issue11767/app/ConfigLoadingSpec.groovy | Migrates issue example test to HttpClientSupport. |
| grails-test-examples/issue-11767/build.gradle | Updates deps to use new http-client testing module. |
| grails-test-examples/issue-11102/src/integration-test/groovy/issue11102/TestControllerSpec.groovy | Migrates issue example test to HttpClientSupport. |
| grails-test-examples/issue-11102/src/integration-test/groovy/issue11102/HttpClientCommonSpec.groovy | Removes legacy Micronaut HTTP client base for issue example tests. |
| grails-test-examples/issue-11102/build.gradle | Updates deps to use new http-client testing module. |
| grails-test-examples/hibernate5/issue450/src/integration-test/groovy/example/BookControllerSpec.groovy | Migrates integration test to HttpClientSupport. |
| grails-test-examples/hibernate5/issue450/build.gradle | Updates integration test deps to use new http-client testing module. |
| grails-test-examples/hibernate5/grails-multiple-datasources/src/integration-test/groovy/functionaltests/MultiDataSourceWithSessionSpec.groovy | Migrates integration test to HttpClientSupport. |
| grails-test-examples/hibernate5/grails-multiple-datasources/build.gradle | Updates integration test deps to use new http-client testing module. |
| grails-test-examples/demo33/src/integration-test/groovy/demo/JsonControllerSpec.groovy | Migrates demo integration test to HttpClientSupport. |
| grails-test-examples/demo33/build.gradle | Adds integration test dependency on http-client testing module. |
| grails-test-examples/cache/src/integration-test/groovy/com/demo/AdvancedCachingIntegrationSpec.groovy | Migrates caching integration tests to HttpClientSupport. |
| grails-test-examples/cache/build.gradle | Updates integration test deps to use new http-client testing module. |
| grails-test-examples/async-events-pubsub-demo/src/integration-test/groovy/pubsub/demo/TaskControllerSpec.groovy | Migrates integration test to HttpClientSupport. |
| grails-test-examples/async-events-pubsub-demo/build.gradle | Updates integration test deps to use new http-client testing module. |
| grails-test-examples/app1/src/integration-test/groovy/functionaltests/springevents/SpringEventsSpec.groovy | Migrates integration tests to HttpClientSupport. |
| grails-test-examples/app1/src/integration-test/groovy/functionaltests/interceptors/InterceptorOrderingSpec.groovy | Migrates integration tests to HttpClientSupport. |
| grails-test-examples/app1/src/integration-test/groovy/functionaltests/interceptors/InterceptorAdvancedMatchingSpec.groovy | Migrates integration tests to HttpClientSupport. |
| grails-test-examples/app1/src/integration-test/groovy/functionaltests/errorhandling/ErrorHandlingSpec.groovy | Migrates integration tests to HttpClientSupport and adjusts error assertions. |
| grails-test-examples/app1/src/integration-test/groovy/functionaltests/caching/CachingSpec.groovy | Migrates integration tests to HttpClientSupport and simplifies JSON parsing. |
| grails-test-examples/app1/src/integration-test/groovy/functionaltests/BookRestfulControllerSpec.groovy | Migrates integration tests to HttpClientSupport. |
| grails-test-examples/app1/src/integration-test/groovy/functionaltests/AtResourceSpec.groovy | Migrates integration tests to HttpClientSupport. |
| grails-test-examples/app1/build.gradle | Updates integration test deps to use new http-client testing module. |
| grails-shell-cli/src/main/groovy/org/grails/cli/compiler/grape/AetherGrapeEngineFactory.java | Marks deprecated engine factory for removal. |
| grails-shell-cli/src/main/groovy/org/grails/cli/compiler/grape/AetherGrapeEngine.java | Marks deprecated engine for removal. |
| grails-gsp/plugin/src/main/groovy/org/grails/plugins/web/taglib/FormTagLib.groovy | Marks deprecated tag closure for removal. |
| grails-gsp/plugin/src/main/groovy/org/grails/plugins/web/taglib/ApplicationTagLib.groovy | Deprecates tag and adjusts metadata access. |
| grails-gsp/grails-taglib/src/test/groovy/org/grails/core/gsp/DefaultGrailsTagLibClassSpec.groovy | Adds regression tests for tag discovery (compileStatic). |
| grails-gsp/grails-taglib/src/main/groovy/org/grails/core/gsp/DefaultGrailsTagLibClass.java | Adjusts tag discovery to include Closure fields for compiled taglibs. |
| grails-gradle/model/src/main/groovy/grails/util/Metadata.groovy | Adds deprecation metadata for legacy accessors. |
| grails-fields/src/test/groovy/grails/plugin/formfields/DefaultInputRenderingSpec.groovy | Adds locale regression coverage for ASCII minus formatting. |
| grails-fields/src/main/groovy/grails/plugin/formfields/PropertyPathAccessor.groovy | Marks deprecated accessor for removal. |
| grails-fields/src/main/groovy/grails/plugin/formfields/DelegatingBeanPropertyAccessorImpl.groovy | Marks deprecated accessor for removal. |
| grails-fields/src/main/groovy/grails/plugin/formfields/BeanPropertyAccessorImpl.groovy | Marks deprecated beanClass field for removal. |
| grails-fields/src/main/groovy/grails/plugin/formfields/BeanPropertyAccessor.groovy | Marks deprecated API for removal. |
| grails-fields/grails-app/taglib/grails/plugin/formfields/FormFieldsTagLib.groovy | Deprecates input tag and normalizes minus sign in number formatting. |
| grails-events/compat/src/main/groovy/reactor/spring/context/annotation/Selector.groovy | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/reactor/spring/context/annotation/Consumer.groovy | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/reactor/fn/Consumer.java | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/reactor/bus/selector/Selector.java | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/reactor/bus/registry/Subscription.groovy | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/reactor/bus/registry/Registration.groovy | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/reactor/bus/EventBus.groovy | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/reactor/bus/Event.java | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/reactor/bus/Bus.java | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/grails/events/Events.groovy | Deprecation metadata updates for compat APIs. |
| grails-events/compat/src/main/groovy/grails/artefact/Service.groovy | Deprecation metadata updates for compat APIs. |
| grails-domain-class/src/main/groovy/org/grails/plugins/domain/support/ConstraintEvaluatorAdapter.java | Marks adapter for removal. |
| grails-domain-class/src/main/groovy/org/grails/plugins/domain/GrailsDomainClassAutoConfiguration.groovy | Deprecates bean exposure for adapter. |
| grails-doc/src/en/ref/Database Mapping/updatable.adoc | Renames/updates doc entry from updateable → updatable. |
| grails-doc/src/en/ref/Database Mapping/insertable.adoc | Updates doc references to updatable. |
| grails-doc/src/en/guide/reference.adoc | Updates include target for renamed doc. |
| grails-doc/src/en/guide/index.adoc | Updates guide reference anchor and include for renamed doc. |
| grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/dirty/checking/DirtyCheckingSupport.groovy | Marks legacy overload for removal. |
| grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/core/AbstractSession.java | Updates dirty checking to use non-deprecated API. |
| grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/config/Entity.groovy | Marks legacy datasource constants for removal. |
| grails-datamapping-validation/src/main/groovy/grails/gorm/validation/Constrained.groovy | Adds since metadata to deprecated API. |
| grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/query/NamedQueriesBuilder.groovy | Deprecates named query builder for removal. |
| grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/query/NamedCriteriaProxy.groovy | Marks named criteria proxy for removal. |
| grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormEntity.groovy | Marks named-query accessors for removal. |
| grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormEnhancer.groovy | Deprecates named-query helpers for removal. |
| grails-data-mongodb/core/src/main/groovy/org/grails/datastore/gorm/mongo/api/MongoStaticApi.groovy | Marks deprecated API for removal. |
| grails-data-mongodb/core/src/main/groovy/grails/mongodb/api/MongoInstanceOperations.groovy | Marks deprecated interface for removal. |
| grails-data-mongodb/core/src/main/groovy/grails/mongodb/MongoEntity.groovy | Marks deprecated API for removal. |
| grails-data-hibernate5/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy | Adds test coverage for updatable mapping alias. |
| grails-data-hibernate5/core/src/main/groovy/org/grails/orm/hibernate/cfg/PropertyConfig.groovy | Keeps backwards-compat deprecations and adds TODO note. |
| grails-core/src/main/groovy/org/grails/compiler/injection/MixinTransformation.java | Adds deprecation metadata for removal. |
| grails-core/src/main/groovy/org/grails/compiler/injection/ArtefactTypeAstTransformation.java | Marks legacy method for removal. |
| grails-core/src/main/groovy/grails/validation/ConstraintsEvaluator.java | Adds deprecation metadata for removal. |
| grails-core/src/main/groovy/grails/util/MixinTargetAware.groovy | Adds deprecation metadata for removal. |
| grails-core/src/main/groovy/grails/util/Mixin.java | Adds deprecation metadata for removal. |
| grails-core/src/main/groovy/grails/core/GrailsApplication.java | Marks legacy constants for removal. |
| grails-converters/src/main/groovy/grails/web/JSONBuilder.groovy | Marks deprecated JSONBuilder for removal. |
| gradle.properties | Adds openTest4jVersion used by new module. |
| .github/workflows/release.yml | Bumps GH release action version. |
| .github/workflows/release-notes.yml | Bumps release-drafter action major version. |
| .github/workflows/groovy-joint-workflow.yml | Adds workflow flag for Geb waiting. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| @Unroll | ||
| void '#beanType beans can load plugin config values'(String beanType, String expectedResponseValue) { | ||
| void '#beanType beans can load plugin config values'(String expectedResponseValue) { |
There was a problem hiding this comment.
beanType is referenced in the feature method name and in the where: table, but the method signature no longer declares a beanType parameter. This should be fixed by either restoring the beanType parameter in the method signature (and using it), or removing beanType from the method name and where: block.
| 'Plugin Groovy Micronaut' || 'Plugin Groovy Micronaut Bean - my.value2: this is value 2 from plugin.yml' | ||
| 'Plugin Java Micronaut' || 'Plugin Java Micronaut Bean - my.value2: this is value 2 from plugin.yml' | ||
| 'App Groovy Micronaut' || 'App Groovy Micronaut Bean - my.value2: this is value 2 from plugin.yml' | ||
| beanType || expectedResponseValue |
There was a problem hiding this comment.
beanType is referenced in the feature method name and in the where: table, but the method signature no longer declares a beanType parameter. This should be fixed by either restoring the beanType parameter in the method signature (and using it), or removing beanType from the method name and where: block.
| throwTagError('Tag ["meta"] missing required attribute ["name"]') | ||
| } | ||
| return Metadata.current[attrs.name] | ||
| return Metadata.current.getOrDefault(attrs.name, null) |
There was a problem hiding this comment.
Metadata.current is a grails.util.Metadata instance (not a Map), so getOrDefault(...) is unlikely to exist and can raise a runtime MissingMethodException. Prefer the previous bracket access (Metadata.current[attrs.name]), or call a Metadata API (for example getProperty(...)) that is guaranteed to exist.
| return Metadata.current.getOrDefault(attrs.name, null) | |
| return Metadata.current[attrs.name] |
|
|
||
| then: | ||
| def e = thrown(SAXParseException) | ||
| e.message.contains('External Entity') |
There was a problem hiding this comment.
This assertion is brittle across JDK/vendors/parsers because SAXParseException.message wording varies widely. Consider asserting on a more stable signal (e.g., that parsing fails with SAXParseException, and/or that the resulting document does not contain the injected secret, and/or that the exception references the blocked entity name ext/systemId) rather than matching a specific phrase.
| e.message.contains('External Entity') | |
| e.systemId == uri |
|
|
||
| [[ref-database-mapping-updateable]] | ||
| [[ref-database-mapping-updatable]] | ||
| ==== updateable |
There was a problem hiding this comment.
The anchor and include were updated to updatable, but the rendered section title still says updateable. This creates an inconsistency in the docs TOC/search and should be updated to ==== updatable to match the renamed file and anchor.
| ==== updateable | |
| ==== updatable |
Summary
7.1.xinto8.0.xto keep branches in syncIncoming changes from 7.1.x
New modules:
grails-testing-support-http-client- new HTTP client testing support moduleFixes:
@CompileStaticsupport for tag libs (GSP layout tags from @CompileStatic TagLib classes are not discoverable as bare method calls #15506)DatabaseCleanupannotation inheritance fixDeprecations (7.1.x preparing for 8.0.x removals):
grails.web.JSONBuilderArtefactTypeAstTransformationmethodGrailsApplicationconstantsAetherGrapeEngineGrailsConfigUtils.executeGrailsBootstrapsMetadata.getandgetPropertyConstrained.isDisplayEntity.ALL_DATA_SOURCES,DEFAULT_DATA_SOURCEFormFieldsTagLib.input,FormTagLib.actionSubmit,ApplicationTagLib.createLinkToBeanPropertyAccessor.getBeanClass()Build/CI:
--testsflagTest improvements:
grails-testing-support-http-clientTeamSpecenabled in CIDefaultGrailsTagLibClasstest coverage addedDocs:
updateable.adoctoupdatable.adoc