Grails 7: Finish Micronaut to Spring Conversion
Full list of failing tests: https://github.com/grails/grails-core/pull/13702/files
There are parts of grails-core are not 100% working. These are identified by failing tests which need to be fixed.
DataBindingConfigurationSpec.groovy Ordering
RespondMethodSpec ContentFormatControllerTests CommandObjectNoDataSpec WithFormatContentTypeSpec GrailsWebDataBinderConfigurationSpec CommandObjectsSpec
| +--- io.micronaut:micronaut-inject:4.5.3
| | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | +--- jakarta.inject:jakarta.inject-api:2.0.1
| | +--- jakarta.annotation:jakarta.annotation-api:2.1.1 -> 3.0.0
| | \--- io.micronaut:micronaut-core:4.5.3
| | \--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| +--- jakarta.inject:jakarta.inject-api:2.0.1
| +--- io.micronaut.spring:micronaut-spring-context:5.7.0
| | +--- io.micronaut.cache:micronaut-cache-core:4.3.0
| | | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.9
| | | | \--- org.reactivestreams:reactive-streams:1.0.4
| | | +--- io.micronaut:micronaut-inject:4.4.0 -> 4.5.3 (*)
| | | +--- io.micronaut:micronaut-aop:4.4.0 -> 4.5.3
| | | | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | | | +--- io.micronaut:micronaut-inject:4.5.3 (*)
| | | | \--- io.micronaut:micronaut-core:4.5.3 (*)
| | | +--- io.micronaut:micronaut-http:4.4.0 -> 4.5.3
| | | | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.9 (*)
| | | | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | | | +--- io.micronaut:micronaut-context:4.5.3
| | | | | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | | | | +--- io.micronaut:micronaut-inject:4.5.3 (*)
| | | | | \--- io.micronaut:micronaut-aop:4.5.3 (*)
| | | | +--- io.micronaut:micronaut-core-reactive:4.5.3
| | | | | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | | | | +--- io.micronaut:micronaut-core:4.5.3 (*)
| | | | | \--- org.reactivestreams:reactive-streams:1.0.4
| | | | \--- io.micronaut:micronaut-context-propagation:4.5.3
| | | | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | | | +--- io.micronaut:micronaut-context:4.5.3 (*)
| | | | +--- io.micronaut:micronaut-inject:4.5.3 (*)
| | | | \--- io.micronaut:micronaut-aop:4.5.3 (*)
| | +--- io.micronaut:micronaut-inject:4.5.0 -> 4.5.3 (*)
| | +--- io.micronaut:micronaut-aop:4.5.0 -> 4.5.3 (*)
| | +--- io.micronaut.spring:micronaut-spring:5.7.0
| | | +--- io.micronaut:micronaut-core-processor:4.5.0
| | | | +--- io.micronaut:micronaut-core-reactive:4.5.0 -> 4.5.3 (*)
| | | | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | | | +--- io.micronaut:micronaut-inject:4.5.0 -> 4.5.3 (*)
| | | | +--- io.micronaut:micronaut-aop:4.5.0 -> 4.5.3 (*)
| | | | +--- org.ow2.asm:asm-tree:9.7
| | | | | \--- org.ow2.asm:asm:9.7
| | | | +--- org.ow2.asm:asm:9.7
| | | | +--- org.ow2.asm:asm-commons:9.7
| | | | | +--- org.ow2.asm:asm:9.7
| | | | | \--- org.ow2.asm:asm-tree:9.7 (*)
| | | | \--- com.github.javaparser:javaparser-symbol-solver-core:3.25.10
| | | | \--- com.github.javaparser:javaparser-core:3.25.10
| | | +--- io.micronaut:micronaut-inject:4.5.0 -> 4.5.3 (*)
| | | +--- org.springframework:spring-framework-bom:6.1.8 (*)
| | | +--- org.springframework:spring-core:6.1.8 -> 6.1.12 (*)
| | | +--- org.springframework:spring-tx:6.1.8 -> 6.1.12
| | | | +--- org.springframework:spring-beans:6.1.12 (*)
| | | | \--- org.springframework:spring-core:6.1.12 (*)
| | | +--- org.springframework:spring-context:6.1.8 -> 6.1.12 (*)
| | | +--- io.micronaut:micronaut-aop:4.5.0 -> 4.5.3 (*)
| | | \--- io.micronaut:micronaut-core-bom:4.5.0 (*)
| | \--- io.micronaut:micronaut-core-bom:4.5.0 (*)
| +--- io.micronaut.cache:micronaut-cache-core:4.3.0 (*)
| +--- io.micronaut:micronaut-runtime:4.5.3
| | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.9 (*)
| | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | +--- io.micronaut:micronaut-aop:4.5.3 (*)
| | +--- io.micronaut:micronaut-discovery-core:4.5.3
| | | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.9 (*)
| | | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | | \--- io.micronaut:micronaut-context:4.5.3 (*)
| | +--- io.micronaut:micronaut-context:4.5.3 (*)
| | +--- io.micronaut:micronaut-context-propagation:4.5.3 (*)
| | +--- io.micronaut:micronaut-core-reactive:4.5.3 (*)
| | +--- io.micronaut:micronaut-http:4.5.3 (*)
| | +--- io.micronaut:micronaut-inject:4.5.3 (*)
| | \--- io.micronaut:micronaut-retry:4.5.3
| | +--- io.projectreactor:reactor-core:3.5.11 -> 3.6.9 (*)
| | +--- org.slf4j:slf4j-api:2.0.13 -> 2.0.16
| | +--- io.micronaut:micronaut-context:4.5.3 (*)
| | \--- io.micronaut:micronaut-core-reactive:4.5.3 (*)
https://github.com/grails/grails-spring-security-core/pull/1021/commits/cfcdbd8cc5df5a6a9a672b89047249b43b49a03f
For the org.grails.spring.context.support.PluginAwareResourceBundleMessageSource related errors, StaticMessageSource is the expected MessageSource type for testing which provides an addMessage method. The bean is set as StaticMessageSource here:
https://github.com/grails/grails-testing-support/blob/4.0.x/grails-testing-support/src/main/groovy/org/grails/testing/GrailsApplicationBuilder.groovy#L170-L189
messageSource(StaticMessageSource)
https://github.com/grails/grails-core/pull/13685
https://github.com/grails/grails-testing-support/pull/431 fixes 28 of the ~52 new failing tests.
I just removed GrailsAutoConfiguration It was registering grailsApplicationPostProcessor after the test grailsApplicationPostProcessor so the TestRuntimeGrailsApplicationPostProcessor was being ignored because it had the same name.
https://github.com/grails/grails-testing-support/pull/435
I am only seeing 9 failing tests? https://github.com/grails/grails-core/actions/runs/11079311377/job/30823450376
That made an massive difference. Down to 3 distinct test failures on https://github.com/grails/grails-core/pull/13702/files, these each get run 3 times on https://github.com/grails/grails-core/actions/runs/11079311377/job/30823450376
The remaining 3 new failing tests:
https://github.com/grails/grails-core/pull/13702/files#diff-6889bb937b05f118cd7a9dc1f21e76edb66bbd53ea8901923d90c284f7f2c4b5
https://github.com/grails/grails-core/pull/13702/files#diff-d7674e06b1294ce8a4fae2ab1606c48dbd1ff7c1eddb037dfd868dcc59f8fa7e
I don't see any @PendingFeature in grails-core anymore. I assume what's left is to setup a demo project with the Spring Starter?
https://github.com/grails/grails-core/pull/13702/files#diff-d7674e06b1294ce8a4fae2ab1606c48dbd1ff7c1eddb037dfd868dcc59f8fa7e is still in the latest code
And these two open tasks
https://github.com/grails/grails-doc/issues/912 https://github.com/grails/grails-core/issues/14017
https://github.com/grails/grails-core/pull/13915 fixes all but 3 of those tests. Those other 3 I didn't think were Micronaut related.
SimpleDataBinderSpec#Test binding to nested properties with dotted path syntaxDataBindingConfigurationSpec#test custom ValueConverter are ordered if defined with @OrderDataBindingConfigurationSpec#test customize data binding for the types which have standard ValueConverters using @Order
Are they?
I thought this ticket was just for the test fixing, but yeah, the doc & functional tests need updated after we release the milestone.
This ticket can close before the grails-doc and grails-functional-tests tickets
https://github.com/grails/grails-core/blob/7.0.x/grails-test-suite-persistence/src/test/groovy/grails/web/databinding/GrailsWebDataBindingListenerSpec.groovy#L19 is the only outstanding test that broke when micronaut was removed, that I am aware of.
After the 2 outstanding pull requests for tests are merged, we can close this ticket.