MMS • RSS
The SpringOne Platform conference got underway in Washington DC this week with a flurry of new releases and annoucements. During the Tuesday morning keynote Juergen Hoeller, principal engineer at Pivotal and co-founder of the Spring Framework, talked about Java 8, the new Java release cadence, and the support in Spring Framework 5.1 for Java 11, which was released yesterday.
Citing a survey from last year, Hoeller stated that:
Java 8 is by far the most established platform version that we ever had in the history of Java. It has an even stronger base adoption than Java 6 had. However there is a somewhat disruptive new Java release cadence coming our way.
In light of the new release cadence, Hoeller spent some time talking about how Spring will support the different Java versions. Spring Framework 4.3 will be supported on Java versions up to Java 8. Spring Framework 5.0 had initial support for Java 9, and Spring Framework 5.1 requires JDK 8 and officially supports Java 11. During his keynote Hoeller made it clear that no previous version of the Spring Framework will officially support Java 11 or higher versions.
In addition, internal use of reflection is optimised for improved startup time and less heap memory consumption, and the core container introduces functional bean definition refinements for both Java and Kotlin.
We spent a lot of fine tuning time on the functional bean APIs both for Java and Kotlin. We have a new retrieval API, and many optimisations in terms of fine tuning our use of reflection and aggressive caching of our internal metadata in order to improve start-up times and to reduce GC pressure.
Pivotol is also spending time on Graal compatibility, the new polyglot JIT compiler and runtime, which Hoeller described as a “really interesting research effort from Oracle.”
Through pre-compilation we can deliver a binary that starts up so much faster than a traditional JVM… we’ve already prepared Spring 5.1 for many of the constraints as they are understood right now, and we intend to deliver a full Graal compatibility story as part of Spring Framework 5.2
The web application stack has also received some more attention, with a more human-friendly debug log experience from the endpoints down to the core container. It features a DSL-style builder for functional web endpoints and extends the WebFlux HTTP/2 support offering to the Netty runtime.
In terms of consequences of the new release cadence for Spring, Hoeller stated that:
Java 8 is going to be with us as a baseline for the foreseeable future. The entire ecosystem is, or is about to be, baselined on Java 8. Java 8 has a support commitment until 2023 and higher from many stakeholders out there in the industry. So from the perspective of a conservative organisation Java 8 is a fine baseline to stay on.
Java 11, which shipped yesterday, is the next Java long term support release, and Hoeller positioned it as an alternative to Java 8. As with Java 8, it also comes with a long term support commitment from multiple vendors including Oracle, Azul, Red Hat, IBM and SAP, to 2023 and beyond.
After that the next long term support release will be Java 17 in September 2021. “Frankly, I expect there to be a limited audience for non LTS Java releases. Practically speaking, I expect people to stay on either versions 8 or 11 until 17,” Hoeller said.
InfoQ is filming all the sessions at SpringOne again this year, and all videos will be made available on the site over the coming months. To receive notifications as the sessions are published, follow the SpringOne Platform 2018 topic.