Spring Graalvm Native Versions Save

Spring Native is now superseded by Spring Boot 3 official native support

0.12.2

1 year ago

:star: Compatibility

  • Add PerConnectionLRUFactory for MySQL JDBC driver #1684

:lady_beetle: Bug Fixes

  • @Order doesnt work with native build #1694

:notebook_with_decorative_cover: Documentation

  • Add note to docs that mentions that the project is superseded #1742

:hammer: Dependency Upgrades

  • Fix Spring Boot 2.7.6+ compatiblity #1740

:heart: Contributors

We'd like to thank all the contributors who worked on this release!

0.12.1

1 year ago

:star: New Features

  • Add hint for Sleuth R2dbcTransactionManager instrumentation #1663

:star: Compatibility

  • Add R2DBC PostgreSQL support #1626
  • Add support for EntityGraph #1619
  • Missing reflection entries for com.zaxxer.hikari.HikariDataSource #1599

:lady_beetle: Bug Fixes

  • InitializationHint for build time initialization of class not recognized #1660
  • Regression in (Simple)ClientHttpRequestFactory concerning Nativehints #1636
  • Do not set native image system property in NativeListener #1625
  • jdbc-tx tests don't work with GraalVM 22.1 #1584
  • AOP do not support '*' on class field with execution pointcut designator #1580

:notebook_with_decorative_cover: Documentation

  • Document how to use an alternative native image toolkit #1623

:hammer: Dependency Upgrades

  • Upgrade to Native Build Tools 0.9.13 #1638
  • Upgrade to Spring Boot 2.7.1 #1637

:heart: Contributors

We'd like to thank all the contributors who worked on this release!

0.12.0

1 year ago

:star: Compatibility

  • Fix session-redis-webflux and session-without-security samples with GraalVM 22.1 #1588
  • Update Batch schemas #1573

:lady_beetle: Bug Fixes

  • Devtools developmentOnly dependency breaks AOT generation with Gradle #1579
  • The filename or extension is too long #1567

:notebook_with_decorative_cover: Documentation

  • Fixes the broken link and outdated plugin name #1583

:hammer: Dependency Upgrades

  • Update GraalVM to 22.1.0 #1621
  • Upgrade to Spring Boot 2.7.0 #1541
  • Upgrade to Spring Cloud 2021.0.3 #1606

:heart: Contributors

We'd like to thank all the contributors who worked on this release!

0.11.5

2 years ago

:star: Compatibility

:hammer: Dependency Upgrades

  • Upgrade to Spring Boot 2.6.7 #1605

0.11.4

2 years ago

:star: Compatibility

  • Support native hints on application class for native tests #1572
  • Native-tests are broken with GraalVM 22.1 #1561
  • webmvc-kotlin fails with GraalVM 22.1 #1556
  • webflux-kotlin fails with GraalVM 22.1 #1555
  • session-redis-webflux fails with GraalVM 22.1 #1554
  • events fails with GraalVM 22.1 #1551
  • data-r2dbc-kotlin fails with GraalVM 22.1 #1549
  • commandlinerunner-log4j2 fails with GraalVM 22.1 #1547
  • cloud-function-netty fails with GraalVM 22.1 #1546
  • grpc sample fails with GraalVM 22.1 #1543
  • GraalVM for Apple Silicon: management.metrics.distribution error #1538
  • Add Jackson PropertyNamingStrategies hint #1537
  • Spring Native 0.11.3 + Latest Spring Data JPA and Sleuth Zipkin breaks during Bootstrap #1524
  • Spring Security - AuthenticationFailureBadCredentialsEvent has no suitable constructor #1521
  • Spring security method missing hint #1518

:lady_beetle: Bug Fixes

  • Spring Aot Maven Plugin does not work with Maven Compiler Plugin > 3.8.1 #1559
  • Reloading a Gradle project in IntelliJ causes the generated AOT sources to be deleted #1552
  • Ambiguous check only applied to constructors #1530
  • Excutable with factory method is not detected if argument value has unresolved generics #1527
  • @ConfigurationProperties with @Validated on a record - native build still fails even in 0.11.3 #1522
  • ASM visitors should use SpringAsmInfo.ASM_VERSION rather than hard-coded ASM version #1515
  • Class com.ecwid.consul.v1.kv.model.GetValue is instantiated reflectively but was never registered #1430

:notebook_with_decorative_cover: Documentation

  • Remove programmatic Logback configuration documentation #1533

:hammer: Dependency Upgrades

  • Upgrade to Native Build Tools 0.9.11 #1499
  • Upgrade to Spring Boot 2.6.6 #1566

:heart: Contributors

We'd like to thank all the contributors who worked on this release!

0.11.3

2 years ago

:star: New Features

  • Refine Spring Data repositories triggers #1504
  • Add suport for ManagedList and ManagedSet #1483
  • Support "args" param in "@SpringBootTest" #1447

:star: Compatibility

  • Update FunctionHints with additional hints required by s-c-function #1497
  • Add missing hints for HdrHistogram #1484
  • spring-aot-test: Include test with multiple Extend or Nested #1474
  • JPA : antlr error with @ElementCollection @OrderBy #1473
  • Refine support for kotlinx.serialization when reflection is involved #1410
  • ErrorAttributes serialization exception #1084

:lady_beetle: Bug Fixes

  • Allow using custom text banner #1501
  • Cannot find DefaultPersistenceUnitManager #1500
  • Regression on Spring Data Elasticsearch #1492
  • Refine implicit @ConfigurationProperties handling with records #1491
  • Support @SpringBootConfiguration #1490
  • SimpleMongoRepository - No suitable constructor found #1487
  • Inner bean definition's beanClass may not be resolved and generated with Object rather than the target type #1481
  • Circular depends-on relationship with Flyway and Liquibase #1480
  • gradle generateAot task failed Cannot subclass primitive, array or final types class java.lang.String #969

:notebook_with_decorative_cover: Documentation

  • Document Spring Boot substitutions #1475

:hammer: Dependency Upgrades

  • Upgrade to GraalVM 22.0 #1448
  • Upgrade to native build tools 0.9.10 #1495
  • Upgrade to Spring Boot 2.6.4 #1489
  • Upgrade to Spring Cloud 2021.0.1 #1512

:heart: Contributors

We'd like to thank all the contributors who worked on this release!

0.10.6

2 years ago

:star: Compatibility

  • Backport #1388 to fix Netty native build failure #1444
  • New sample for Spring Cloud Stream RabbitMQ Binder #1207
  • Native reflection configuration for brave.kafka.clients.TracingProducer is missing #1138

:lady_beetle: Bug Fixes

  • Fix DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor error #1468
  • Invalid root directory #1209

:notebook_with_decorative_cover: Documentation

  • Corrected incorrect docker image name that is generated under asciidoc #1225

:hammer: Dependency Upgrades

  • Upgrade to GraalVM 21.3.0 #1472
  • Upgrade to Spring Boot 2.5.9 #1443

:heart: Contributors

We'd like to thank all the contributors who worked on this release!

0.11.2

2 years ago

:star: New Features

  • Skip Maven AOT test sources generation when tests are skipped #1461
  • Sort the factories in "spring.factories" #1424
  • Fix factory name with spaces in "spring.factories" #1421
  • Properly disable devtools in AOT mode #1419
  • Provide meaningful error message when logback.xml is detected #1415
  • Provide a way to execute tests with regular code path (not AOT one) #1356
  • Allow to not invoke the test aot task with Gradle #1338

:star: Compatibility

  • data-jpa sample native image won't start with @EnableJpaRepositories #1405
  • Throw AnnotationException show that has no persistent id property #1397
  • Add Coroutines reflection inference #769

:star: Optimizations

  • Review Spring Security hints for servlet #1392

:lady_beetle: Bug Fixes

  • Prepend AOT jar to classpath for bootJar Gradle task #1466
  • dependsOn attribute lost in AOT generated bean registration #1458
  • StackOverflowError when scanning hints for ConfigurationProperties with cross references #1420
  • RefreshScope beans are created albeit the feature being disabled explicitly #1413
  • ConstructorArgumentValues should only be assigned when indexed argument values are present #1403
  • ResolvableType - java.lang.IllegalArgumentException: Mismatched number of generics specified #1401
  • NPE during AOT generation when @ConfigurationProperties contains generic property #1396
  • Refine TypeModelProcessor class filtering and error handling #1376
  • Regression in ClientHttpRequestFactoryHints #1370
  • Runtime dependencies imported in ContextBootstrapInitializer code cause IDE compilation issues #1093

:notebook_with_decorative_cover: Documentation

  • Improve AOT and build setup documentation structure #1467
  • Document that running application is broken in IDEA when delegated to Gradle #1465
  • java.lang.IllegalStateException: Multiple privileged packages #1414
  • Document that -parameters javac flag is mandatory with native #1412
  • Document that beans defined in a profile aren't picked at runtime unless the profile is enabled when AOT runs #1411
  • Improve Windows support documentation #1319

:hammer: Dependency Upgrades

  • Upgrade GRPC to 1.43.2 and protobuf to 3.19.2 #1433
  • Upgrade to Kotlin 1.6.10 #1437
  • Upgrade to Spring Boot 2.6.3 #1441

:heart: Contributors

We'd like to thank all the contributors who worked on this release!

0.11.1

2 years ago

:star: New Features

  • "AOT mode enabled" logs printed in Spring-native 0.11.0.jar cannot be masked #1390
  • Provide more context when a bean definition could not be processed #1385

:star: Compatibility

  • Netty native build failure #1388
  • Please add a @TypeHint for JwtDecoder.class for Spring Security's hints #1377
  • Refine @EnableJpaRepositories support #1368

:star: Optimizations

  • Remove method reflection config from WebMvcHints #1393
  • Avoid java.lang.Object declared method reflection entries #1391

:lady_beetle: Bug Fixes

  • @EventListener annotations on @Configuration classes seems to fail compilation #1373
  • FunctionTypeProcessor is not registered properly in META-INF/spring.factories #1363
  • MockitoPostProcessor should be disabled in AOT since not supported yet #1343

:notebook_with_decorative_cover: Documentation

  • Fix gradle bootRun AOT documentation #1394
  • Gradle nativeBuild does not with Bellsoft Liberica NIK SDK #1381

:hammer: Dependency Upgrades

  • Upgrade to Spring Boot 2.6.2 #1387

:heart: Contributors

We'd like to thank all the contributors who worked on this release!

0.11.0

2 years ago

Upgrading from Spring Native 0.10

  • GraalVM 21.3, Spring Boot 2.6 and Spring Cloud 2021.0 should be used as baselines.
  • Java 8 is not supported anymore on GraalVM side, so it is not supported anymore on Spring Native side as well. But you will likely be able to compile most Java 8 applications with the Java 11 flavor of GraalVM.
  • Please read the updated AOT engine documentation to understand how it behaves.
  • Less hints are now required, for example those with import selector or condition trigger should be updated to use other ones.
  • Hints with a trigger are now taken in account if the specified class is reachable by GraalVM static analysis, not just with a classpath check, except for annotations where the classpath check is still used.
  • Native Build Tools configuration has evolved since the version used in now 0.9.8.
  • Maven plugin now requires <extensions>true</extensions> and a dependency on org.junit.platform:unit-platform-launcher, see this documentation for more details.
  • Gradle plugin is now automatically imported and configured when using the AOT plugin, so by default no need for additional configuration anymore.
  • AccessBits is now deprecated and TypeAccess[] is used instead to specify @TypeHint access.
  • @TypeHint access default is now AUTO_DETECT so field and methods reflection are not configured for classes by default anymore.
  • NativeConfiguration SPI has been reworked to not use anymore the now deprecated TypeSystem.
  • Extension points are now using META-INF/spring.factories instead of service loader to be discovered.
  • ComponentProcessor extension point has been removed and should be replaced by BeanFactoryNativeConfigurationProcessor or BeanNativeConfigurationProcessor.
  • Spring libraries using child application context (like Spring Cloud LoadBalancer) are not supported yet with the new AOT engine.
  • Spring Cloud Bootstrap is no longer supported.
  • FunctionalSpringApplication is no longer supported.
  • While building a project that contains Spring Cloud Config Client, it is necessary to make sure that the configuration data source that it connects to (such as, Spring Cloud Config Server, Consul, Zookeeper, Vault, etc.) is available. For example, if you retrieve configuration data from Spring Cloud Config Server, make sure you have its instance running and available at the port indicated in the Config Client setup. This is necessary because the application context is being optimized at build time and requires the target environment to be resolved.
  • Spring Cloud Function reflection configuration is now inferred so related hints can be removed.
  • Spring AOT is now a forked process, in order to debug it, follow related documentation.

Changelog

In addition to the 0.11.0 changelog below, make sure to check 0.11.0-M1, 0.11.0-M2 and 0.11.0-RC1 ones to get a complete overview of the changes since Spring Native 0.10.

:star: New Features

  • Provide implementation of BeanFactoryNativeConfigurationProcessor for function types #1351
  • Provide an SPI to exclude a bean definition to be written #1349
  • Avoid creating reflection entries for java and primitive types. #1346
  • Do not apply AOT plugin on POM projects #1344
  • Use Flag renamed to TypeAccess instead of AccessBits in @TypeHint #1317
  • Add logging to BeanDefinitionRegistrar #1306
  • Use NativeConfigurationRegistry in NativeConfiguration #1279
  • Add support for non Spring Boot tests #1170
  • Restore Spring Integration support #1134
  • Add support for Spring Data MongoDB (lazy loading) DocumentReference annotation. #875

:star: Compatibility

  • Register reflection configuration for JPA AttributeConverter implementations #1347
  • Method signature types for methods of javax.persistence.AttributeConverter no longer included in configuration. #1329
  • Regression on OAuth2 client and resource server with WebFlux #1291
  • RestController with Annotations at the Service Interface is not working in native Mode #955
  • Infer @AotProxyHint for @Scope beans #928
  • Add preliminary Spring Batch support #203

:star: Optimizations

:lady_beetle: Bug Fixes

  • Wrong test context can be inferred in a native mage leading to a ClassCastException #1353
  • Bean post processors should not be registered at build-time #1345
  • Fix MergedContextConfiguration cache key for runtime contexts #1341
  • Refine HateoasHints to generate a more focused reflection configuration #1340
  • Prevent printing "AOT mode disabled" during test code generation #1332
  • Missing hint for org.hibernate.cfg.beanvalidation.TypeSafeActivator #1331
  • Spring Data Repository with unresolved generics cannot be injected anymore #1324
  • StackOverflow in ProtectedAccessAnalyzer.analyze(...) #1323
  • Populate properly AotOptions in GenerateTestBootstrapCommand #1321
  • Only @Component are considered for method security processing #1314
  • AOT test code gen fails when same name test classes exist in different package #1313
  • Generate Avro types for all @KafkaListener-annotated beans #1310
  • Only @Component are considered for JPA configuration processing #1297
  • Fail to inject to a parameterized type with FactoryBean #1292
  • Adding two methods with the same name lead to duplicated method names in generated code #1266
  • Regex characters are not escaped properly for pattern resources #1193

:notebook_with_decorative_cover: Documentation

  • Add Javadoc for classes used for adding native configurations #1361
  • Revisit Spring AOT section #1358
  • Update documentation for Bellsoft Liberica NIK usage #1357
  • Refine Logback XML support documentation #1303
  • Update support section of the reference guide #1287

:hammer: Dependency Upgrades

  • Upgrade to Native Build Tools 0.9.8 #1290
  • Upgrade to Spring Boot 2.6.1 #1301
  • Upgrade to Spring Cloud 2021.0.0 #1342

:heart: Contributors

We'd like to thank all the contributors who worked on this release!