[GRAALVM 22.3.1 on Macos ARM] After upgrading my example projects to 3.1.0-RC1 I noticed several AOT regressions, for JPA, Flyway, Grapqhl
Going one step further i saw, that the aot-smoketests are not upgraded to 3.1.0-RC1 https://github.com/spring-projects/spring-aot-smoke-tests
When upgrading to RC1 and executing, they also pretty much fail I assume that the Native Hints and newer Library Version habe become incompatible. Upgrading to native plugin 0.9.21 does not help.
Tests that break
./gradlew :boot:flyway:build
./gradlew :data:data-jpa:build
./gradlew :graphql:graphql-webmvc:build
So my question here, will these be fixed for 3.1.0 Final ? And are RCs verified against the AOT Smoketests ?
Thx
Comment From: snicoll
Thanks for the report but this is the wrong place to ask. And even if it was, mixing three different targets in a single issue isn't the way to go.
Please create an issue in the AOT smoke tests repo to request our tests to be tested against 3.1.x (good catch!). The hibernate issue is most probably #35103. For GraphQL, I don't know yet but we can figure out based on the outcome of the smoke tests issue that I requested.
Comment From: wilkinsona
Flyway 9.16.2 appears to have broken its logging detection so it tries to use Log4j2 as its logging API rather than SLF4J. Log4J2, even only its API routed into another logging framework, doesn't work in a native image so this fails. The problem can be worked around by explicitly configuring the logger to use:
package com.example.flyway;
import org.springframework.boot.autoconfigure.flyway.FlywayConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
class FlywayLoggingConfiguration {
@Bean
FlywayConfigurationCustomizer flywayLoggingCustomizer() {
return (configuration) -> configuration.loggers("slf4j");
}
}
I believe it's this change in Flyway that broke detection of SLF4J being available in a native image.
Comment From: wilkinsona
Flyway's detection of SLF4J is broken on the JVM as well. It's less noticeable there as the Log4j2 API works but it's at best a little inefficient as logging will probably end up going Log4j2 API -> SLF4J -> Logback. https://github.com/flyway/flyway/issues/3651 is tracking the problem.
Comment From: philwebb
We're discussed this today and decided we're going to add a property to set logging and default it to SLF4J