Skip to content
This repository has been archived by the owner on Feb 23, 2023. It is now read-only.

Releases: spring-attic/spring-native

0.11.0-RC1

19 Nov 14:09
Compare
Choose a tag to compare
0.11.0-RC1 Pre-release
Pre-release

This release, among a lot of bug fixes and improvements, bring back testing with the new AOT engine and leverages Spring Boot 2.6.0, see the reference documentation for more details.

⭐ New Features

  • Infer reflection configuration for TestContextBootstrapper implementations #1270
  • Dynamically replace DITEL with AotDependencyInjectionTestExecutionListener #1264
  • Provide more context when InitDestroyMethodsDiscoverer fails to discover a defined method #1263
  • Extract SpringTestHints from the existing SpringBootTestHints #1249
  • Optimize reflection hints and inference #1246
  • Add infrastructure to contribute native reflection configuration for generated code #1239
  • Limit use of MergedContextConfiguration at runtime #1232
  • Enhance constructor resolution with use of SpEL #1229
  • Introduce native hints for AssertJ #1223
  • Revise scope of SpringBootTestHints #1221
  • Support AOT-based autowiring for test class instances #1169
  • Add support for FactoryBean that specify the target type using FactoryBean.OBJECT_TYPE_ATTRIBUTE #1155
  • AOT engine does not process Actuator child context #1146
  • Refine default access attribute defined on @TypeHint #1123
  • Improve transactional proxy detection to generate needed proxy hints #933
  • Add AOT processing for ApplicationContexts used in tests #911

⭐ Compatibility

  • Fix session-redis-webflux unit tests on native #1283
  • Fix caches actuator endpoint #1200
  • Migrate remaining ComponentProcessor to BeanFactoryNativeConfigurationProcessor #1130

🐞 Bug Fixes

  • Running native tests using "mvn -Pnative test" fails with "No processor found" #1282
  • Native reflection configuration for fields are not detected when the bean type is a cglib proxy #1273
  • Gradle plugin adds generated sources JAR to end of the test classpath #1272
  • BeanInstanceExecutableSupplier does not detect factory method when target type is set to the type it produces #1269
  • NativeConfigurationRegistry registers reflection configuration against the cglib proxy rather than user class #1267
  • AotDependencyInjectionTestExecutionListener fails to run with vanilla Boot tests #1258
  • LinkedHashSet.() method not found #1257
  • Calls to beanFactory.getType() can return null and are not properly guarded #1255
  • Skip Maven AOT test generation when there is no test #1253
  • PrimaryDefaultValidatorPostProcessor triggered at different time with AOT leads to incomplete Validator bean definition #1243
  • Filter ContextCustomizerFactory implementations that are only necessary at build time #1242
  • NullPointerException at ConfigurationPropertiesNativeConfigurationProcessor #1240
  • Reflection hints are missing for loading test contexts #1235
  • Refine support for custom application class #1226
  • List of inner bean definition as property values are not supported #1219
  • NPE harvesting property with no write method #1218
  • TestExecutionListeners are not loaded in native image #1217
  • Invoke BeanDefinitionRegistryPostProcessors at build time #1213

📔 Documentation

  • Bring back native testing documentation #1288
  • Document expectations of the AOT engine #1278
  • Document --exclude-config native-image option #1230

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 2.6.0 #1197
  • Upgrade to Spring Cloud 2021.0.0-RC1 #1277

❤️ Contributors

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

0.11.0-M2

03 Nov 11:51
Compare
Choose a tag to compare
0.11.0-M2 Pre-release
Pre-release

Introduces GraalVM 21.3 and Java 17 support.

Please note that this second milestone does not support testing yet, and should be used with Spring Boot 2.6.0-RC1 and Spring Cloud 2021.0.0-M3, see the reference documentation for more details.

⭐ New Features

  • Contribute resources from AOT test bootstrap generation #1192
  • Add support for multiple BootstrapWriterContext #1188
  • Support Aware callbacks for bean registration #1187
  • Run JVM tests with AOT generated context #1186
  • Enable HTTP and HTTPS when web client beans are detected #1185
  • Add hints for HealthContributors #1184
  • Transition SpringDataComponentProcessor to BeanFactoryNativeConfigurationProcessor #1164
  • Detect Spring-related test classes and trigger contexts generation #1163
  • Add AOT infrastructure for tests #1162
  • Add support for writing multiple contexts using the generator #1161
  • Distinguish between invoked and queried reflection methods #1156
  • Add support for writing Map parameter type #1153
  • Apply fallback for Classes defined as FQN #1140
  • Add support for lazy bean initialization #1131
  • Leverage conditional configuration #1021

⭐ Compatibility

  • Add a workaround for NoClassDefFoundError: sun.management.Util with Java 17 #1198
  • RabbitMQ : Missing proxy for SimpleMessageListenerContainer #1179
  • Add support for mapping annotations on interfaces #1175
  • Add BeforeConvertCallback for DataJdbcHints. #1166
  • Refine static resources hints #1160
  • @Controller annotated class causes "Class proxy missing at runtime, hint required at build time" #1003
  • Have better out of the box support for logback #895

🐞 Bug Fixes

  • Fix data-mongodb sample failure #1191
  • Missing hints for health indicators #1183
  • Nested namespaces for ConfigurationProperties are not available in native image #1181
  • Hint missing for Actuator endpoint filters #1173
  • Handle null parameter value #1149
  • Externally managed private methods are not handled properly as they contain the fqn of the declaring class #1135
  • Revisit generated sources contribution in Gradle plugin #922

📔 Documentation

  • Update documentation/samples to exclude micrometer-core when metrics are not needed #1157

🔨 Dependency Upgrades

  • Upgrade to GraalVM 21.3.0 #852
  • Upgrade to native build tools 0.9.5 #1031
  • Upgrade to Native Build Tools 0.9.7.1 #1206
  • Upgrade to Spring Boot 2.6.0-RC1 #1128
  • Upgrade to Spring Cloud 2021.0.0-M3 #1165

❤️ Contributors

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

0.10.5

28 Oct 18:49
Compare
Choose a tag to compare

🐞 Bug Fixes

  • Static resources don't work in native image anymore #1174
  • Detected an instance of Random/SplittableRandom error in spring-websocket sample #1034

📔 Documentation

  • Add dedicated documentation when dependency management is required #1190

🔨 Dependency Upgrades

  • Upgrade to Native Build Tools 0.9.4 #1196
  • Upgrade to Spring Boot 2.5.6 #1194
  • Upgrade to Spring Cloud 2020.0.4 #1195

0.11.0-M1

05 Oct 13:41
Compare
Choose a tag to compare
0.11.0-M1 Pre-release
Pre-release

This first milestone is an opportunity for the team to receive feedback on the new Ahead-Of-Time Engine. The AOT engine generates at build time an optimized equivalent of the ApplicationContext, leading to faster build time and lower runtime memory footprint.

We expect this new approach to provide better compatibility, so please provide feedback if you see regressions on supported libraries.

Please note that this first milestone does not support testing yet, and should be used with Spring Boot 2.6.0-M3 and Spring Cloud 2021.0.0-M2, see the reference documentation for more details.

⭐ New Features

  • Bring back native-agent mode #1125
  • No need for FunctionalSpringApplication anymore #1120
  • Modifying SpringApplication on the fly #1099
  • Handle init callbacks #1059
  • Generate reflection metadata for Configuration Properties sub-namespace #1052
  • Handle destroy callback #1048
  • Allow to build samples only in JVM AOT mode without native #1043
  • Introduce contract for identifying the need for reflection and resources in native images #1028
  • Generate reflection and resources entries for bean definitions automatically #1023
  • Update AOT remote debug option in maven plugin #1011
  • Replace NativeListener by proper AOT implementation #988
  • Add support for PropertyValue #980
  • Leverage Gradle debug options for codeGenDebugPort #978
  • Add codeGenDebugPort property to debug Spring AOT plugins #972
  • Support for Gradle toolchains in Spring AOT Gradle plugin #958
  • Remove the need for SpringAotApplication #943
  • Configure properly Spring AOT log level defined in the plugin #942
  • Remove reflection config for classes instantiated programmatically in StaticSpringFactories #931

⭐ Compatibility

  • Please add type hints for Reactor's Traces class #1098
  • Update reflection config for the data-rest sample. #1086
  • Fix hints for r2dbc and guard hint processor against ClassNotFoundException. #1044
  • Spring Cloud Square #891
  • Failed to add additional Message Converters from child context #816
  • Runtime exception when setting @EnableMongoAuditing #445

⭐ Optimizations

  • Allow BeanUtils#instantiateClass inlining #834

🐞 Bug Fixes

  • InitDestroyBeanPostProcessor should not handle AutoCloseable explicitly #1124
  • Reflection hint declared on bean definition type are not usable on bean implementation #1121
  • Lifecycle methods hints are not defined properly if the method is defined in a parent #1108
  • Append context initializers in aot mode #1100
  • Wrong org.springframework.boot version is being resolved #1095
  • EventListener registration does not work with package private annotated types #1089
  • ImportAware links are being called inconsistently #1079
  • Spring AOT Plugin crashes in project with module-info.java #1066
  • Building a sample with --aot-only does not detect an application startup failure #1054
  • spring.main.web-application-type is not detected consistently #1053
  • Fix native hint trigger for reactive-/auditing configuration. #1039
  • Creator detection does not take collection and array types into account #1036
  • Unable to detect constructor with multiple matches #1035
  • Runtime exception causes HTTP 404 status in native 0.11 #1029
  • Reflection metadata is not considered for inner bean definitions #1026
  • Differentiate main and application classes #1024
  • Redirect logs from AOT processing #1020
  • Avoid ambiguous calls to BeanDefinitionRegistrar#instanceSupplier #1018
  • AOT generates ambiguous calls to constructors #1017
  • Bean definitions with several constructors and constructor arguments cannot be instantiated #1015
  • Lifecycle of bean instantiation is not the same as regular runtime context #1014
  • Retain FactoryMethod metadata link in generated BeanDefinition #1001
  • Fix broken gradle bootBuildImage #1000
  • Add reflection configuration for Actuator endpoints #999
  • Populate correctly the environment in BootstrapCodeGenerator #992
  • Pass the AOT options from the plugin to BootstrapCodeGeneratorRunner #989
  • Add scoped beans support #981
  • Add ByteBuddy to the classpath of maven code generation process #971
  • ConditionsEvaluator should tolerate a null BeanRegistry #953
  • Fix maven plugin test-generate in 0.11.x #951
  • Fix non-static nested classes support #925
  • AOT plugin picks up dependencies from Gradle buildSrc #627

📔 Documentation

  • "Freeze GraalVM Version" section in documentation uses an older, incompatible version of GraalVM #1129
  • Add note on Config Client support. #1107
  • Update Spring Cloud support docs. #1081

🔨 Dependency Upgrades

  • Upgrade to ASM 9.2 #1092
  • Upgrade to Spring Boot 2.6.0-M3 #853
  • Upgrade to Spring Cloud 2021.0.0-M2 #1127

❤️ Contributors

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

Read more

0.10.4

28 Sep 08:38
Compare
Choose a tag to compare

⭐ Compatibility

  • Hateoas compatibility issue for DTOs decorated with @Relation #1037
  • Add MariaDB hints #1025
  • Add more support with Spring for Apache Kafka #921
  • Support for @EntityListeners #869

🐞 Bug Fixes

  • Fix AOT NPE with hateoas-starter and void controller methods #1038
  • Allow Netty reflection to fix RSS memory usage with Java 11 #739

📔 Documentation

  • Improve the tracing agent documentation #1047

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 2.5.5 #1074

❤️ Contributors

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

0.10.3

20 Aug 09:21
Compare
Choose a tag to compare

The native build tools configuration with Gradle has changed, check the related documentation to update your project when upgrading.

⭐ Compatibility

  • Refine web hints #974
  • setConnectionTimeout on RestTemplateBuilder is not Working #954

🐞 Bug Fixes

  • Project not building any-more with spring-aot-maven-plugin 0.10.2 #967

📔 Documentation

  • Update nativeBuild/nativeTest configuration in samples and docs #948
  • Fix Gradle task name in sample README #946

🔨 Dependency Upgrades

  • Upgrade to native build tools 0.9.3 #917
  • Upgrade to Spring Boot 2.5.4 #977

❤️ Contributors

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

0.10.2

30 Jul 21:05
Compare
Choose a tag to compare

⭐ New Features

  • Add configuration for Spring Data custom converters. #904
  • Allow TypeSystem to scan dependencies. #899
  • Enable exclusion of certain reflection entries during build #897
  • Add support for configurable main class in aot plugins #896
  • Avoid confusing message when using logback.xml #877

⭐ Compatibility

  • Add more Spring Integration native hints #894
  • native test run for petclinic-jdbc does not respect test profile #888
  • Spring Data Audit Not Working Even After 0.10.1 #882
  • Actuator @Endpoint registered @Bean is not available #881
  • @Scheduled method on class registered @Bean never gets called #880
  • Aspect on Repository not called #868
  • Update IntegrationHints.java #865
  • Tomcat logs into stdout #864
  • Proxies for @Validated components not prepared #861
  • Runtime exception when setting @EnableR2dbcAuditing #860
  • Proxy entries for annotations on interface not created #854
  • Add support for Spring Hateoas #333

🪲 Bug Fixes

  • Gradle plugin fails with unknown 'bootJar' task in multi-modules projects #940
  • Use target class version for proxy #932
  • Remove remaining suspicious static fields from Spring AOT #879
  • Gradle AOT plugin needs test task to pass to build native image #873
  • Spring Boot 2.5 + (Reactive) Web + Spring Native builds but fails to run on Cloud Foundry #870

📔 Documentation

  • Document how to customize Logback configuration programmatically #889
  • Fix typo #883

🔨 Dependency Upgrades

  • Upgrade to GraalVM 21.2.0 #664
  • Upgrade to native build tools 0.9.1 #871
  • Upgrade to Spring Boot 2.5.3 #906
  • Upgrade to Wavefront 2.2.0 #886

❤️ Contributors

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

0.10.1

28 Jun 08:37
Compare
Choose a tag to compare

⭐ New Features

  • Automatically register class proxy hint for typical platform abstractions (async, transactions etc.) #826

⭐ Compatibility

  • Automatic nested condition handling doesn't work when conditions are at the method level #855
  • Hibernate validator emits warning #849
  • RequestPart hint missing #844
  • Create proper hints for AOP #841
  • Introduce proper hints for AOP #840
  • More advanced spring.factories key processing to address test issues #839
  • Added hint to support spring-integration-jdbc dependency. #831
  • Compatibility issues between aspectj and spring-native #649

⭐ Optimizations

  • HateoasHints should distinguish between interface and class proxies when computing method return types #824
  • Filter duplicate AotProxyDescriptor to create proxies only once. #822

🪲 Bug Fixes

  • Missing startup and mappings actuator endpoints #851
  • Ignore AOT code generated in Eclipse with Maven #825
  • Spring Native 0.10.0 bootBuildImage error, MongoDB DefaultDbRefResolver can't be loaded #823
  • Adding type hint with AccessBits.RESOURCE in NativeConfiguration#computeHints does not work #813
  • Problem occurs when adding to gradle plugin #800

📔 Documentation

  • Fixed Buildpack URL link #858
  • Update native image limitation page link #856
  • Adding Micrometer to supported projects #815

🔨 Dependency Upgrades

  • Upgrade to Spring Boot 2.5.2 #862

❤️ Contributors

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

0.10.0

14 Jun 12:37
Compare
Choose a tag to compare

Upgrade notes:

  • @ProxyHint has been renamed @JdkProxyHint.
  • The new Maven plugin coordinates are org.graalvm.buildtools:native-maven-plugin:0.9.0.

⭐ New Features

  • Add substitution for Spring Data MongoDB LazyLoadingProxies #811
  • Refine TypeProcessor - allow scanning TypeSystem without repeating filters. #797
  • Polish Maven Plugin parameters names #760
  • Handle Spring Boot layertools #708
  • Add some FailureAnalyzer for more hints to let end-users to know what should be done in case of Native errors #684
  • Try to solve the duplicated classpath issue and map Spring AOT to process-classes phase #675
  • build.sh should perform a native compilation on Gradle samples #599
  • Automatically configure via Spring AOT #529
  • Create proxies at build time #356
  • Support running JUnit 5 tests as native image #22

⭐ Compatibility

  • Exception when using spring.profiles.active #798
  • Add support for spring-cloud-sleuth-zipkin #780
  • Add support for AbstractClientHttpRequestFactoryWrapper in Spring Boot RestTemplate handling #779
  • Refine Spring HATEOAS hints. #772
  • Add support for @ConfigurationPropertiesScan #716
  • Support Spring Cloud Stream #693
  • Add initial Spring Session support #576
  • Add devtools support #532
  • Add Spring integration support #469
  • GraalJSEngineFactory was unintentionally initialized at build time error #398

🪲 Bug Fixes

  • Dependency injection from library #782
  • Activate verify by default with Maven and skip valid invocations on super method #770
  • Duplicate error when running gradle aotTestClasses #757
  • spring-data-mongo custom repository bean creation failure #744
  • Application not detected as started when spring-aot-maven-plugin is active #740
  • Missing the auto-configuration of CoroutineSortingRepository #643

📔 Documentation

  • Add Gradle build tools plugin documentation #814
  • Document properly Gradle tasks in Spring AOT refdoc #758
  • Document how to explicitly set GraalVM version with Buildpacks #755
  • Document -H:Log=registerResource:3 #746
  • Document how to use pack to create a container image from an executable JAR #738
  • Document how to generate a native image from Spring Boot executable JAR #736

🔨 Dependency Upgrades

  • Upgrade to GraalVM 21.1.0 #578
  • Upgrade to Spring Boot 2.5.1 #616
  • Upgrade to Spring Cloud 2020.0.3 #786

❤️ Contributors

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

0.9.2

16 Apr 10:50
Compare
Choose a tag to compare

⭐ New Features

  • Nested classes in custom Condition implementations are not registered in the image #719
  • AOT plugin doesn't seem to generate reflective metadata to access autowired fields #682
  • Please support serialization-config.json #668
  • Domain types in controller return types missed when nested in generics #655
  • Proxy config not quite right if mixing typeNames and types in proxyhint #629

⭐ Compatibility

  • Fix and improve maintainability of Hibernate Validator support #732
  • Add missing Thymeleaf expression language hints #725
  • Hint for Kafka Consumer Proxies #697
  • Hibernate EnumType needs additional TypeHint #692
  • ClassNotFoundException on Apache Commons Pool at runtime #688
  • Add support for Avro serialization in Kafka #687
  • spring-boot-starter-thymeleaf: Missing Type Hint? #679
  • Add Quartz job scheduling engine support #670
  • Please update the resource pattern config to load all Spring Batch schema SQL DDL instead of just h2. #669
  • Add Hints for the Spring Cloud Task project. #667
  • AutowireCapableBeanFactory is not injecting beans via setters with @Autowired(required =false) #666
  • Web Server Still Starts with CommandLineRunner and spring.main.web-application-type=none #663
  • JPA custom query throws null #660
  • NoSuchMethodException: org.springframework.kafka.support.serializer.JsonSerializer.() #659
  • Vanilla project created from start.spring.io fails to start #657
  • Simple native Kotlin function app fails to start in Docker - Could not resolve matching constructor #652
  • Actuator prometheus endpoint not get registered #423
  • Add support for Spring Data REST #192

🪲 Bug Fixes

  • Regression: Unable to find class file for javax/servlet/http/HttpServlet #730
  • TypeSystem is reused across AOT processing runs #729
  • AOT does not filter ConditionalOnBean with multiple candidates #718
  • Add support for @RequestBody in WebComponentProcessor and update web samples accordingly #683
  • Compilation Error: org.springframework.cloud.sleuth.autoconfig._FactoryProvider issue #673
  • AOT plugin does not recognize static inner classes #671
  • Fix Spring Data custom repository fragment lookup. #661
  • failOnMissingSelectorHint missing in Maven plugin #654
  • Custom Spring Data Elasticsearch repository fragment implementation not found when running in native #639
  • Including Discovery Client Causes Failures For Native Application Images (Buildpack) #631

📔 Documentation

  • Improve Spring AOT debugging documentation #714
  • Improve guidelines for spring boot custom starters #710
  • Document RootBeanDefinition functional patterns #685
  • Document how to run/debug a Gradle application in IDEA #676

🔨 Dependency Upgrades

  • Upgrade GraalVM to 21.0.0.2 #737
  • Upgrade to Spring Boot 2.4.5 #715

❤️ Contributors

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