micronaut-projects / micronaut-aot

Experimental Ahead-of-time optimizations for Micronaut
Apache License 2.0
17 stars 5 forks source link

Micronaut AOT is not compatible with GraalVM 22 #282

Open melix opened 3 months ago

melix commented 3 months ago

Expected Behavior

Micronaut AOT optimized binaries should be compilable with GraalVM 22.

Actual Behaviour

Compilation fails with errors like:

You now have two options to resolve this:

1) If it is intended that objects of type 'io.micronaut.core.async.publisher.PublishersOptimizations' are persisted in the image heap, add 

    '--initialize-at-build-time=io.micronaut.core.async.publisher.PublishersOptimizations'

for all optimizations. These optimizations should be initialized at build time but they have to be explicit now.

e.g I had to add this to a sample app:

graalvmNative {
   binaries.all {
      buildArgs.add("--initialize-at-build-time=io.micronaut.security.authentication.AuthenticationMode")
      buildArgs.add("--initialize-at-build-time=io.micronaut.security.token.jwt.signature.jwks.DefaultJwkSetFetcher\$Optimizations")
      buildArgs.add("--initialize-at-build-time=io.micronaut.security.converters.PrincipalToStringConverter")
      buildArgs.add("--initialize-at-build-time=io.micronaut.core.reflect.ClassUtils\$Optimizations")
      buildArgs.add("--initialize-at-build-time=io.micronaut.core.async.publisher.PublishersOptimizations")
      buildArgs.add("--initialize-at-build-time=com.nimbusds.jose.Requirement")
      buildArgs.add("--initialize-at-build-time=io.micronaut.context.ApplicationContextConfigurer$1")
      buildArgs.add("--initialize-at-build-time=com.example.rest.TypeConverterRegistrarFactory")
      buildArgs.add("--initialize-at-build-time=com.example.rest.PropertySourceLoaderFactory")
      buildArgs.add("--initialize-at-build-time=com.example.rest.HttpResponseFactoryFactory")
      buildArgs.add("--initialize-at-build-time=com.example.rest.HttpRequestFactoryFactory")
      buildArgs.add("--initialize-at-build-time=com.example.rest.BeanIntrospectionReferenceFactory")
      buildArgs.add("--initialize-at-build-time=com.example.rest.BeanConfigurationFactory")
      buildArgs.add("--initialize-at-build-time=com.example.rest.BeanDefinitionReferenceFactory")
      buildArgs.add("--initialize-at-build-time=com.example.rest.PropertyExpressionResolverFactory")
   }
}

Steps To Reproduce

No response

Environment Information

No response

Example Application

No response

Version

4.3.7

sdelamo commented 3 months ago

can we close this due to https://github.com/micronaut-projects/micronaut-aot/pull/283?