Faster Java Releases: A Challenge for the Spring Framework Project

Maintainers of the Spring Framework project should prepare themselves for some challenges when Oracle's plan to speed up the cadence of JDK releases begins next year, says one of project's co-founders.

"We have some very interesting changes coming our way in the very core of the Java ecosystem," Juergen Hoeller told attendees at the second annual SpringOne Platform developer conference in San Francisco. "We will actually get a new JDK generation every half year. We really need to let that sink in."

Hoeller, who co-founded the Spring Framework open source project and has been serving as the project lead and release manager for the core framework since 2003, warned attendees that, even though the faster release cadence will involve a lot of minor changes, because they are shipped as major releases, the bytecode level will be raised in ever JDK iteration.

"A new JDK generation every half year means a new bytecode level, which means tooling needs to be ready to handle a new JDK version," he said, "a new bytecode level, every half year. This can be quite a challenge, and quite disruptive to the Java ecosystem. Many tools are based on bytecode generation, possessing libraries such as ASM, CGLib, ByteBuddy. They historically have not needed to evolve to leniently embrace new JDK generations. They have evolved to be designed for a particular set of JDK versions only, and they had to be updated every single time."

"So we'll have to change our minds a little," he added. "We'll have to design our infrastructure, our bytecode processing, in such a way that a new JDK generation is a totally normal thing."

Hoeller underscored the fact that Oracle will provide a feature release every six months, update releases every quarter, and a long-term support release every three years.

"Not all of these JDK releases are long term support releases," he said, "and long term support is something we really care about. In production, we only really want to use generations of the JDK and JVM that have a long-term support attached, and we're only going to get the long-term support release every three years, according to the current plan. This may change, it's all evolving, but from the current perspective, JDK 9 is not a long-term support branch. JDK 10 won't be either. It's only JDK 11 planned for September of next year, that will be the next long-term support release. So JDK 8 is the current support release, and JDK 11 is the next."

"From a Spring Framework perspective, we are totally ready to adapt to the runtime environment," he added. "So if you take a Spring Framework 5.0x application, run it on JDK 9 it's going to adapt fine, it's already running fine on the JDK 10, and it will run fine on JDK 11. So JDK 8 is great, JDK 9 is fine in terms of adoption, but be ready to embrace JDK 10, and in particular 11 as soon as they come along, if you choose to move beyond the JDK baseline."

The Spring Framework continues to be one of the most popular programming and configuration models for building modern Java-based enterprise applications on any type of deployment platform. The story goes that Hoeller was inspired by SpringSource founder Rod Johnson's book "Expert One-on-One Java EE Design and Development" (Wrox Press, October 2002).

"The [Spring] Framework was never really designed to live on an island," Hoeller said. "It was always a very integrated affair, embracing new generations, embracing relevant infrastructure and the JVM ecosystem."

About the Author

John K. Waters is the editor in chief of a number of sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].