-
Notifications
You must be signed in to change notification settings - Fork 41.7k
Description
Hello. I'm trying to build a Spring Boot 4.0.0 project using Spring Data JPA and want to compile it to a native binary.
The first thing I notice is that Spring Boot 4.0.0 uses hibernate 7.1.8.Final, for which there is no version of org.hibernate.orm:hibernate-maven-plugin in maven central. This means I have to upgrade the hibernate version in my project (I tried both 7.1.9.Final & 7.1.10.Final).
Here is the example project I'm using:
springboot4.zip
After I get past that, I get lots of errors when doing ./mvnw package:
[ERROR] An exception occurred while trying to class file: /Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/classes/org/acme/repository/FruitRepository.class
org.hibernate.bytecode.enhance.spi.EnhancementException: Failed to enhance class org.acme.repository.FruitRepository
at org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl.enhance (EnhancerImpl.java:148)
at org.hibernate.orm.tooling.maven.HibernateEnhancerMojo.enhanceClass (HibernateEnhancerMojo.java:235)
at org.hibernate.orm.tooling.maven.HibernateEnhancerMojo.performEnhancement (HibernateEnhancerMojo.java:223)
at org.hibernate.orm.tooling.maven.HibernateEnhancerMojo.execute (HibernateEnhancerMojo.java:99)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke (Method.java:565)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: net.bytebuddy.pool.TypePool$Resolution$NoSuchTypeException: Cannot resolve type description for org.springframework.data.jpa.repository.JpaRepository
at net.bytebuddy.pool.TypePool$Resolution$Illegal.resolve (TypePool.java:169)
at net.bytebuddy.pool.TypePool$Default$LazyTypeDescription$TokenizedGenericType.toErasure (TypePool.java:7387)
at net.bytebuddy.pool.TypePool$Default$LazyTypeDescription$TokenizedGenericType.asErasure (TypePool.java:7401)
at org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl.alreadyEnhanced (EnhancerImpl.java:668)
at org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl.doEnhance (EnhancerImpl.java:174)
at org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl.lambda$enhance$1 (EnhancerImpl.java:137)
at org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState.rewrite (ByteBuddyState.java:175)
at org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl.enhance (EnhancerImpl.java:137)
at org.hibernate.orm.tooling.maven.HibernateEnhancerMojo.enhanceClass (HibernateEnhancerMojo.java:235)
at org.hibernate.orm.tooling.maven.HibernateEnhancerMojo.performEnhancement (HibernateEnhancerMojo.java:223)
at org.hibernate.orm.tooling.maven.HibernateEnhancerMojo.execute (HibernateEnhancerMojo.java:99)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke (Method.java:565)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
The only way to get around those errors is to add
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>to the hibernate-maven-plugin configuration.
Then once past that, after compiling to native image and running the application I'm getting this:
ERROR 31201 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.RuntimeException: java.lang.ExceptionInInitializerError] with root cause
java.lang.IllegalArgumentException: Invalid logger interface org.hibernate.engine.internal.NaturalIdLogging (implementation not found)
at org.jboss.logging.Logger.doGetMessageLogger(Logger.java:2630) ~[springboot4:3.6.1.Final]
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2536) ~[springboot4:3.6.1.Final]
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2521) ~[springboot4:3.6.1.Final]
at org.hibernate.engine.internal.NaturalIdLogging.<clinit>(NaturalIdLogging.java:36) ~[na:na]
at org.hibernate.engine.internal.NaturalIdResolutionsImpl.cacheResolutionFromLoad(NaturalIdResolutionsImpl.java:72) ~[na:na]
at org.hibernate.sql.results.graph.entity.internal.EntityInitializerImpl.registerNaturalIdResolution(EntityInitializerImpl.java:1633) ~[na:na]
at org.hibernate.sql.results.graph.entity.internal.EntityInitializerImpl.initializeEntityInstance(EntityInitializerImpl.java:1584) ~[na:na]
at org.hibernate.sql.results.graph.entity.internal.EntityInitializerImpl.initializeInstance(EntityInitializerImpl.java:1464) ~[na:na]
at org.hibernate.sql.results.graph.entity.internal.EntityInitializerImpl.initializeInstance(EntityInitializerImpl.java:98) ~[na:na]
at org.hibernate.sql.results.internal.StandardRowReader.coordinateInitializers(StandardRowReader.java:239) ~[na:na]
at org.hibernate.sql.results.internal.StandardRowReader.readRow(StandardRowReader.java:136) ~[na:na]
at org.hibernate.sql.results.spi.ListResultsConsumer.read(ListResultsConsumer.java:245) ~[springboot4:7.1.9.Final]
at org.hibernate.sql.results.spi.ListResultsConsumer.readRows(ListResultsConsumer.java:235) ~[springboot4:7.1.9.Final]
at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:166) ~[springboot4:7.1.9.Final]
at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33) ~[springboot4:7.1.9.Final]
at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:201) ~[na:na]
at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:100) ~[na:na]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.executeQuery(JdbcSelectExecutor.java:64) ~[springboot4:7.1.9.Final]
at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:138) ~[springboot4:7.1.9.Final]
at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$1(ConcreteSqmSelectQueryPlan.java:146) ~[na:na]
at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:455) ~[na:na]
at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:388) ~[na:na]
at org.hibernate.query.sqm.internal.SqmQueryImpl.doList(SqmQueryImpl.java:386) ~[na:na]
at org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:154) ~[springboot4:7.1.9.Final]
at org.hibernate.query.Query.getResultList(Query.java:121) ~[springboot4:7.1.9.Final]
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:414) ~[springboot4:4.0.0]
at java.base@25/java.lang.reflect.Method.invoke(Method.java:565) ~[springboot4:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) ~[na:na]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:278) ~[na:na]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:169) ~[springboot4:4.0.0]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) ~[springboot4:4.0.0]
at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:545) ~[springboot4:4.0.0]
at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:290) ~[springboot4:4.0.0]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:708) ~[springboot4:4.0.0]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[na:na]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:171) ~[na:na]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:146) ~[na:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[na:na]
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:69) ~[na:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[na:na]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:370) ~[springboot4:7.0.1]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) ~[springboot4:7.0.1]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[na:na]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:135) ~[na:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[na:na]
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:166) ~[na:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[na:na]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:222) ~[na:na]
at jdk.proxy4/jdk.proxy4.$Proxy/s8244dec2.findAll(Unknown Source) ~[na:na]
at org.acme.rest.FruitController.getAll(FruitController.java:31) ~[springboot4:na]
at java.base@25/java.lang.reflect.Method.invoke(Method.java:565) ~[springboot4:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) ~[na:na]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:715) ~[na:na]
at org.acme.rest.FruitController$$SpringCGLIB$$0.getAll(<generated>) ~[springboot4:na]
at java.base@25/java.lang.reflect.Method.invoke(Method.java:565) ~[springboot4:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:258) ~[springboot4:7.0.1]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190) ~[springboot4:7.0.1]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[springboot4:7.0.1]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934) ~[springboot4:7.0.1]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853) ~[springboot4:7.0.1]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86) ~[springboot4:7.0.1]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[springboot4:7.0.1]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[springboot4:7.0.1]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1003) ~[springboot4:7.0.1]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:892) ~[springboot4:7.0.1]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[springboot4:6.1]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[springboot4:7.0.1]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[springboot4:6.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[na:na]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[springboot4:11.0.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[na:na]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[springboot4:7.0.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[springboot4:7.0.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[na:na]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[springboot4:7.0.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[springboot4:7.0.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[na:na]
at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:110) ~[springboot4:7.0.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[springboot4:7.0.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[na:na]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[springboot4:7.0.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[springboot4:7.0.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[na:na]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[na:na]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[na:na]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) ~[springboot4:11.0.14]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[na:na]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[springboot4:11.0.14]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[na:na]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[na:na]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[na:na]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[springboot4:11.0.14]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) ~[na:na]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1778) ~[na:na]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[springboot4:11.0.14]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[na:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[na:na]
at java.base@25/java.lang.Thread.runWith(Thread.java:1487) ~[springboot4:na]
at java.base@25/java.lang.Thread.run(Thread.java:1474) ~[springboot4:na]
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:832) ~[springboot4:na]
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:808) ~[springboot4:na]
In case you want it, here is the output from the native build log:
[INFO] --- native:0.11.3:compile (default-cli) @ springboot4 ---
[INFO] Found GraalVM installation from GRAALVM_HOME variable.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.5.21]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.5.21]: Configuration directory is ch.qos.logback/logback-classic/1.4.9
[INFO] [graalvm reachability metadata repository for com.zaxxer:HikariCP:7.0.2]: Configuration directory is com.zaxxer/HikariCP/6.0.0
[INFO] [graalvm reachability metadata repository for org.apache.tomcat.embed:tomcat-embed-core:11.0.14]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.apache.tomcat.embed:tomcat-embed-core:11.0.14]: Configuration directory is org.apache.tomcat.embed/tomcat-embed-core/10.0.20
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:9.0.1.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:9.0.1.Final]: Latest version not found!
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:9.0.1.Final]: missing.
[INFO] [graalvm reachability metadata repository for org.hibernate.validator:hibernate-validator:9.0.1.Final]: Configuration directory is org.hibernate.validator/hibernate-validator/7.0.4.Final
[INFO] [graalvm reachability metadata repository for org.hdrhistogram:HdrHistogram:2.2.2]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.hdrhistogram:HdrHistogram:2.2.2]: Configuration directory is org.hdrhistogram/HdrHistogram/2.1.12
[INFO] [graalvm reachability metadata repository for org.postgresql:postgresql:42.7.8]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.postgresql:postgresql:42.7.8]: Configuration directory is org.postgresql/postgresql/42.7.3
[INFO] [graalvm reachability metadata repository for org.hibernate.orm:hibernate-core:7.1.9.Final]: Configuration directory is org.hibernate.orm/hibernate-core/7.1.0.Final
[INFO] [graalvm reachability metadata repository for org.glassfish.jaxb:jaxb-runtime:4.0.6]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.glassfish.jaxb:jaxb-runtime:4.0.6]: Configuration directory is org.glassfish.jaxb/jaxb-runtime/3.0.2
[INFO] [graalvm reachability metadata repository for javax.cache:cache-api:1.1.1]: Configuration directory is javax.cache/cache-api/1.1.1
[INFO] [graalvm reachability metadata repository for org.jboss.logging:jboss-logging:3.6.1.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.jboss.logging:jboss-logging:3.6.1.Final]: Configuration directory is org.jboss.logging/jboss-logging/3.5.0.Final
[INFO] [graalvm reachability metadata repository for com.github.ben-manes.caffeine:caffeine:3.2.3]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for com.github.ben-manes.caffeine:caffeine:3.2.3]: Configuration directory is com.github.ben-manes.caffeine/caffeine/3.1.2
[INFO] [graalvm reachability metadata repository for commons-logging:commons-logging:1.3.5]: Configuration directory is commons-logging/commons-logging/1.2
[WARNING] No jdk toolchain configuration found
[INFO] Executing: /Users/edeandre/.sdkman/candidates/java/25-graalce/bin/native-image -cp /Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/classes:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/4.0.0/spring-boot-starter-data-jpa-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter/4.0.0/spring-boot-starter-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-logging/4.0.0/spring-boot-starter-logging-4.0.0.jar:/Users/edeandre/.m2/repository/ch/qos/logback/logback-classic/1.5.21/logback-classic-1.5.21.jar:/Users/edeandre/.m2/repository/ch/qos/logback/logback-core/1.5.21/logback-core-1.5.21.jar:/Users/edeandre/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.25.2/log4j-to-slf4j-2.25.2.jar:/Users/edeandre/.m2/repository/org/apache/logging/log4j/log4j-api/2.25.2/log4j-api-2.25.2.jar:/Users/edeandre/.m2/repository/org/slf4j/jul-to-slf4j/2.0.17/jul-to-slf4j-2.0.17.jar:/Users/edeandre/.m2/repository/jakarta/annotation/jakarta.annotation-api/3.0.0/jakarta.annotation-api-3.0.0.jar:/Users/edeandre/.m2/repository/org/yaml/snakeyaml/2.5/snakeyaml-2.5.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/4.0.0/spring-boot-starter-jdbc-4.0.0.jar:/Users/edeandre/.m2/repository/com/zaxxer/HikariCP/7.0.2/HikariCP-7.0.2.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-data-jpa/4.0.0/spring-boot-data-jpa-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-data-commons/4.0.0/spring-boot-data-commons-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-persistence/4.0.0/spring-boot-persistence-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/data/spring-data-commons/4.0.0/spring-data-commons-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-hibernate/4.0.0/spring-boot-hibernate-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-jpa/4.0.0/spring-boot-jpa-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/spring-orm/7.0.1/spring-orm-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/data/spring-data-jpa/4.0.0/spring-data-jpa-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/spring-context/7.0.1/spring-context-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-aop/7.0.1/spring-aop-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-tx/7.0.1/spring-tx-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-beans/7.0.1/spring-beans-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-aspects/7.0.1/spring-aspects-7.0.1.jar:/Users/edeandre/.m2/repository/org/aspectj/aspectjweaver/1.9.25/aspectjweaver-1.9.25.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-jdbc/4.0.0/spring-boot-jdbc-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot/4.0.0/spring-boot-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-sql/4.0.0/spring-boot-sql-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-transaction/4.0.0/spring-boot-transaction-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/spring-jdbc/7.0.1/spring-jdbc-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-webmvc/4.0.0/spring-boot-starter-webmvc-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-jackson/4.0.0/spring-boot-starter-jackson-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-jackson/4.0.0/spring-boot-jackson-4.0.0.jar:/Users/edeandre/.m2/repository/tools/jackson/core/jackson-databind/3.0.2/jackson-databind-3.0.2.jar:/Users/edeandre/.m2/repository/tools/jackson/core/jackson-core/3.0.2/jackson-core-3.0.2.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/4.0.0/spring-boot-starter-tomcat-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat-runtime/4.0.0/spring-boot-starter-tomcat-runtime-4.0.0.jar:/Users/edeandre/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/11.0.14/tomcat-embed-core-11.0.14.jar:/Users/edeandre/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/11.0.14/tomcat-embed-websocket-11.0.14.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-tomcat/4.0.0/spring-boot-tomcat-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-http-converter/4.0.0/spring-boot-http-converter-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/spring-web/7.0.1/spring-web-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-webmvc/4.0.0/spring-boot-webmvc-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-servlet/4.0.0/spring-boot-servlet-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/spring-webmvc/7.0.1/spring-webmvc-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/spring-expression/7.0.1/spring-expression-7.0.1.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-validation/4.0.0/spring-boot-starter-validation-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-validation/4.0.0/spring-boot-validation-4.0.0.jar:/Users/edeandre/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/11.0.14/tomcat-embed-el-11.0.14.jar:/Users/edeandre/.m2/repository/org/hibernate/validator/hibernate-validator/9.0.1.Final/hibernate-validator-9.0.1.Final.jar:/Users/edeandre/.m2/repository/jakarta/validation/jakarta.validation-api/3.1.1/jakarta.validation-api-3.1.1.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/4.0.0/spring-boot-starter-actuator-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-starter-micrometer-metrics/4.0.0/spring-boot-starter-micrometer-metrics-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-micrometer-metrics/4.0.0/spring-boot-micrometer-metrics-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-micrometer-observation/4.0.0/spring-boot-micrometer-observation-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/4.0.0/spring-boot-actuator-autoconfigure-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-actuator/4.0.0/spring-boot-actuator-4.0.0.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-health/4.0.0/spring-boot-health-4.0.0.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-observation/1.16.0/micrometer-observation-1.16.0.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-commons/1.16.0/micrometer-commons-1.16.0.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-jakarta9/1.16.0/micrometer-jakarta9-1.16.0.jar:/Users/edeandre/.m2/repository/io/micrometer/micrometer-core/1.16.0/micrometer-core-1.16.0.jar:/Users/edeandre/.m2/repository/org/hdrhistogram/HdrHistogram/2.2.2/HdrHistogram-2.2.2.jar:/Users/edeandre/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/Users/edeandre/.m2/repository/org/postgresql/postgresql/42.7.8/postgresql-42.7.8.jar:/Users/edeandre/.m2/repository/org/checkerframework/checker-qual/3.49.5/checker-qual-3.49.5.jar:/Users/edeandre/.m2/repository/org/hibernate/orm/hibernate-jcache/7.1.9.Final/hibernate-jcache-7.1.9.Final.jar:/Users/edeandre/.m2/repository/org/hibernate/orm/hibernate-core/7.1.9.Final/hibernate-core-7.1.9.Final.jar:/Users/edeandre/.m2/repository/jakarta/persistence/jakarta.persistence-api/3.2.0/jakarta.persistence-api-3.2.0.jar:/Users/edeandre/.m2/repository/jakarta/transaction/jakarta.transaction-api/2.0.1/jakarta.transaction-api-2.0.1.jar:/Users/edeandre/.m2/repository/org/hibernate/models/hibernate-models/1.0.1/hibernate-models-1.0.1.jar:/Users/edeandre/.m2/repository/com/fasterxml/classmate/1.7.1/classmate-1.7.1.jar:/Users/edeandre/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/4.0.4/jakarta.xml.bind-api-4.0.4.jar:/Users/edeandre/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.4/jakarta.activation-api-2.1.4.jar:/Users/edeandre/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.6/jaxb-runtime-4.0.6.jar:/Users/edeandre/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.6/jaxb-core-4.0.6.jar:/Users/edeandre/.m2/repository/org/eclipse/angus/angus-activation/2.0.3/angus-activation-2.0.3.jar:/Users/edeandre/.m2/repository/org/glassfish/jaxb/txw2/4.0.6/txw2-4.0.6.jar:/Users/edeandre/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar:/Users/edeandre/.m2/repository/org/antlr/antlr4-runtime/4.13.2/antlr4-runtime-4.13.2.jar:/Users/edeandre/.m2/repository/javax/cache/cache-api/1.1.1/cache-api-1.1.1.jar:/Users/edeandre/.m2/repository/org/jboss/logging/jboss-logging/3.6.1.Final/jboss-logging-3.6.1.Final.jar:/Users/edeandre/.m2/repository/com/github/ben-manes/caffeine/caffeine/3.2.3/caffeine-3.2.3.jar:/Users/edeandre/.m2/repository/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar:/Users/edeandre/.m2/repository/com/google/errorprone/error_prone_annotations/2.43.0/error_prone_annotations-2.43.0.jar:/Users/edeandre/.m2/repository/com/github/ben-manes/caffeine/jcache/3.2.3/jcache-3.2.3.jar:/Users/edeandre/.m2/repository/org/osgi/org.osgi.service.component.annotations/1.5.1/org.osgi.service.component.annotations-1.5.1.jar:/Users/edeandre/.m2/repository/org/osgi/osgi.annotation/8.1.0/osgi.annotation-8.1.0.jar:/Users/edeandre/.m2/repository/org/osgi/org.osgi.namespace.extender/1.0.1/org.osgi.namespace.extender-1.0.1.jar:/Users/edeandre/.m2/repository/org/osgi/org.osgi.util.function/1.0.0/org.osgi.util.function-1.0.0.jar:/Users/edeandre/.m2/repository/org/osgi/org.osgi.util.promise/1.0.0/org.osgi.util.promise-1.0.0.jar:/Users/edeandre/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/Users/edeandre/.m2/repository/com/typesafe/config/1.4.5/config-1.4.5.jar:/Users/edeandre/.m2/repository/org/springframework/spring-core/7.0.1/spring-core-7.0.1.jar:/Users/edeandre/.m2/repository/commons-logging/commons-logging/1.3.5/commons-logging-1.3.5.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-web-server/4.0.0/spring-boot-web-server-4.0.0.jar:/Users/edeandre/.m2/repository/net/bytebuddy/byte-buddy/1.17.8/byte-buddy-1.17.8.jar:/Users/edeandre/.m2/repository/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar:/Users/edeandre/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.20/jackson-annotations-2.20.jar:/Users/edeandre/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/4.0.0/spring-boot-autoconfigure-4.0.0.jar --no-fallback -o /Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/springboot4 -H:ConfigurationFileDirectories=/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/commons-logging/commons-logging/1.2,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.hdrhistogram/HdrHistogram/2.1.12,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/com.github.ben-manes.caffeine/caffeine/3.1.2,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.postgresql/postgresql/42.7.3,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.hibernate.orm/hibernate-core/7.1.0.Final,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.glassfish.jaxb/jaxb-runtime/3.0.2,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/com.zaxxer/HikariCP/6.0.0,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.jboss.logging/jboss-logging/3.5.0.Final,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.apache.tomcat.embed/tomcat-embed-core/10.0.20,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/javax.cache/cache-api/1.1.1,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/ch.qos.logback/logback-classic/1.4.9,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.hibernate.validator/hibernate-validator/7.0.4.Final,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/commons-logging/commons-logging/1.2,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.hdrhistogram/HdrHistogram/2.1.12,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/com.github.ben-manes.caffeine/caffeine/3.1.2,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.postgresql/postgresql/42.7.3,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.hibernate.orm/hibernate-core/7.1.0.Final,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.glassfish.jaxb/jaxb-runtime/3.0.2,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/com.zaxxer/HikariCP/6.0.0,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.jboss.logging/jboss-logging/3.5.0.Final,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.apache.tomcat.embed/tomcat-embed-core/10.0.20,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/javax.cache/cache-api/1.1.1,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/ch.qos.logback/logback-classic/1.4.9,/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/graalvm-reachability-metadata/7d0f9cacce06812db936b5981e5a8015c3d57f39/org.hibernate.validator/hibernate-validator/7.0.4.Final
Warning: The option '-H:ServiceLoaderFeatureExcludeServices=org.hibernate.bytecode.spi.BytecodeProvider' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active experimental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
Warning: Option 'DynamicProxyConfigurationResources' is deprecated and might be removed in a future release: This can be caused by a proxy-config.json file in your META-INF directory. Consider including proxy configuration in the reflection section of reachability-metadata.md instead.. Please refer to the GraalVM release notes.
Warning: Option 'DynamicProxyConfigurationResources' is deprecated and might be removed in a future release: This can be caused by a proxy-config.json file in your META-INF directory. Consider including proxy configuration in the reflection section of reachability-metadata.md instead.. Please refer to the GraalVM release notes.
Warning: Option 'DynamicProxyConfigurationResources' is deprecated and might be removed in a future release: This can be caused by a proxy-config.json file in your META-INF directory. Consider including proxy configuration in the reflection section of reachability-metadata.md instead.. Please refer to the GraalVM release notes.
Warning: Option 'DynamicProxyConfigurationResources' is deprecated and might be removed in a future release: This can be caused by a proxy-config.json file in your META-INF directory. Consider including proxy configuration in the reflection section of reachability-metadata.md instead.. Please refer to the GraalVM release notes.
========================================================================================================================
GraalVM Native Image: Generating 'springboot4' (executable)...
========================================================================================================================
[1/8] Initializing... (4.7s @ 0.39GB)
Java version: 25+37, vendor version: GraalVM CE 25+37.1
Graal compiler: optimization level: 2, target machine: armv8.1-a
C compiler: cc (apple, arm64, 17.0.0)
Garbage collector: Serial GC (max heap size: 80% of RAM)
3 user-specific feature(s):
- com.oracle.svm.thirdparty.gson.GsonFeature
- org.eclipse.angus.activation.nativeimage.AngusActivationFeature
- org.springframework.aot.nativex.feature.PreComputeFieldFeature
------------------------------------------------------------------------------------------------------------------------
1 experimental option(s) unlocked:
- '-H:ServiceLoaderFeatureExcludeServices' (origin(s): 'META-INF/native-image/org.springframework/spring-orm/native-image.properties' in 'file:///Users/edeandre/.m2/repository/org/springframework/spring-orm/7.0.1/spring-orm-7.0.1.jar')
------------------------------------------------------------------------------------------------------------------------
Build resources:
- 25.72GB of memory (37.4% of system memory, using available memory)
- 16 thread(s) (100.0% of 16 available processor(s), determined at start)
SLF4J(W): No SLF4J providers were found.
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.
[2/8] Performing analysis... [******] (12.5s @ 4.61GB)
37,343 types, 52,063 fields, and 177,044 methods found reachable
12,857 types, 4,459 fields, and 19,314 methods registered for reflection
62 types, 62 fields, and 55 methods registered for JNI access
0 downcalls and 0 upcalls registered for foreign access
5 native libraries: -framework CoreServices, -framework Foundation, dl, pthread, z
[3/8] Building universe... (3.8s @ 5.15GB)
[4/8] Parsing methods... [*] (1.4s @ 4.97GB)
[5/8] Inlining methods... [***] (1.1s @ 5.04GB)
[6/8] Compiling methods... [****] (13.7s @ 3.70GB)
[7/8] Laying out methods... [***] (10.4s @ 4.89GB)
[8/8] Creating image... [***] (6.0s @ 2.34GB)
80.73MB (52.99%) for code area: 119,997 compilation units
69.99MB (45.94%) for image heap: 652,266 objects and 530 resources
1.64MB ( 1.07%) for other data
152.36MB in total image size, 152.36MB in total file size
------------------------------------------------------------------------------------------------------------------------
Top 10 origins of code area: Top 10 object types in image heap:
18.52MB hibernate-core-7.1.9.Final.jar 22.85MB byte[] for code metadata
15.60MB java.base 10.34MB byte[] for java.lang.String
4.19MB tomcat-embed-core-11.0.14.jar 7.47MB com.oracle.svm.core.hub.DynamicHubCompanion
3.80MB java.xml 6.14MB java.lang.String
3.29MB jdk.proxy4 5.92MB java.lang.Class
2.90MB java.desktop 1.82MB byte[] for reflection metadata
2.82MB svm.jar (Native Image) 1.34MB c.o.svm.core.hub.DynamicHub$ReflectionMetadata
2.39MB spring-data-jpa-4.0.0.jar 1.25MB java.lang.reflect.Method
1.88MB postgresql-42.7.8.jar 1.15MB java.lang.String[]
1.86MB jackson-databind-3.0.2.jar 1.13MB byte[] for general heap data
22.71MB for 170 more packages 10.59MB for 6320 more object types
------------------------------------------------------------------------------------------------------------------------
Recommendations:
FUTR: Use '--future-defaults=all' to prepare for future releases.
AWT: Use the tracing agent to collect metadata for AWT.
HEAP: Set max heap for improved and more predictable memory usage.
CPU: Enable more CPU features with '-march=native' for improved performance.
------------------------------------------------------------------------------------------------------------------------
4.3s (7.8% of total time) in 708 GCs | Peak RSS: 6.94GB | CPU load: 8.30
------------------------------------------------------------------------------------------------------------------------
Build artifacts:
/Users/edeandre/workspaces/quarkus/benchmarking/spring-quarkus-perf-comparison/springboot4/target/springboot4 (executable)
========================================================================================================================