As a follow-up to the Spring Framework 4.2 GA announcement and also to my earlier post on Spring Framework 5 system requirements, I’d like to take the opportunity to summarize our core framework plans for next year:
First up will be Spring Framework 4.3 in Q2 2016, as a final feature release in the 4.x series.
As mentioned, this will still be designed for the general Spring 4 system requirements (Java 6+, Servlet 2.5+) and getting prepared for an extended 4.3.x support life until 2019, in particular for users on JDK 6 and 7 but also for applications deployed to older app servers on JDK 8.
A key part of our 4.3 plan is to selectively upgrade our third-party dependency arrangement: e.g. fully embracing JUnit 4.12, the Jackson 2.5+ APIs, the new JasperReports Exporter API… in order to make our corresponding integration classes forward-compatible with future generations of those libraries (through avoiding the use of deprecated types and methods).
Of course, there is also the opportunity to fine-tune recent framework features, in the core configuration model as well as across the various messaging endpoint variants. Check the current 4.3 Backlog on JIRA for a list of candidate improvements. Make sure you’re voicing your opinion on the importance of specific issues through comments and votes on JIRA!
At the same time, we plan towards a Spring Framework 5 generation, with 5.0 GA in Q4 2016. A key step is to require Java 8+, allowing us to apply the Java 8 language level to the entire framework codebase. Currently, we auto-adapt to many Java 8 constructs in your application components but cannot use them ourselves in the core framework codebase yet; in particular, we cannot expose them in core interfaces yet. 5.0 will be an important enabler in that respect.
While Java 8 is the minimum requirement, Spring Framework 5.0 will be built on JDK 9 right from the start, providing comprehensive support for the upcoming generation of the JDK: including the new HTTP client API, concurrency enhancements, etc. We will also track the planned JSR-330 (Dependency Injection for Java) revision and provide early support for EE 8 level specs such as Servlet 4.0 and JMS 2.1 (as far as feasible against the upcoming previews).
Our 5.0 Backlog on JIRA indicates various key steps already. This is still in its early planning stages, but nevertheless, feel free to voice your opinion there as well…