With JDK 14 GA coming up in March and the final release candidate just in time for our Spring Framework 5.2.4 release, let's aim for general runtime compatibility as well as being able to run the Spring Framework master build on JDK 14. If there are any limitations, e.g. with JDK 14 bytecode level in certain scenarios, those should get documented.

Comment From: dreis2211

Gradle doesn't support JDK 14 yet: see https://github.com/gradle/gradle/issues/10248

Comment From: jhoeller

A Groovy 3.0 upgrade seems to be necessary for full JDK 14 compatibility but since it's just at 3.0 RC3 at the moment, we'll probably only apply the upgrade to our build in the Spring Framework 5.3 timeframe. It's binary compatible anyway, so applications can choose to upgrade to Groovy 3.0 on their own.

Comment From: jhoeller

Looks like everything is ready for JDK 14 on our end, except for the Groovy version issue in our build. We might need a test runtime override for the time being there, or possibly a full Groovy 3.0 upgrade for our build as long as we can guarantee binary compatibility with Groovy 2.5.9 at runtime.

Comment From: jhoeller

As per #24474, we automatically switch to Groovy 3.0 in case of a customJavaHome specified for the build, allowing our new JDK 14 CI build to pass without modifications. Since no known issues remain for the time being, we are ready to claim JDK 14 compatibility as of the upcoming Spring Framework 5.2.4.