AFAIK, quite a lot of Groovy users are still using Java 8 because their company 
have no plan to upgrade systems to run on Java 9+. It is especially common for 
bank systems I have been working on for years, so it's better to continue 
supporting Java 8 in Groovy 5 releases.

Cheers,
Daniel Sun

On 2022/05/11 01:05:37 Paul King wrote:
> Hi folks,
> 
> We still have a few things on our TODO list to improve Groovy 4, like
> performance and some regressions, but we also need to start planning
> for Groovy 5. I am happy for broad ranging discussions on Groovy 5 to
> begin, so feel free to comment, but I don't expect many of us will
> have time to act on big items straight away. As always, Apache
> "do-ocracy" wins the day for starting progress on such items!
> 
> For now, I mostly just want to tackle one aspect right now - the
> minimum JDK version for our runtime. We kept that at JDK 8 for Groovy
> 4 but I think we need to bump to at least JDK11 for Groovy 5.
> 
> We have a VMPlugin mechanism which allows us to make use of features
> in newer JDKs without bumping up the minimum version and we'd still
> continue with that approach. However, there are many API changes in
> the JDK for JDK9+ changes related to JPMS and elsewhere. Pushing all
> of those changes through the VMPlugin mechanism would blow out the
> associated interface(s) substantially and limit certain choices.
> Bumping to JDK11 provides a nice compromise on keeping just the more
> critical functionality in the VMPlugin hierarchy and allows us to
> start removing our usage of deprecated JDK APIs and moving to their
> replacements in other places in the codebase. (As a concrete example,
> groovy-console uses the deprecated modelToView method from TextUI
> which is replaced with modelToView2D in JDK9+. It is a lot cleaner
> just moving to the new APIs than pushing that through the VMPlugin
> mechanism).
> 
> Some other projects have moving straight to JDK17 on their roadmaps. I
> am not proposing we do that as yet but I'm interested in others'
> views. Groovy has typically tried to keep the minimum version as low
> as possible only jumping to when functionality dictated it as
> necessary. Offering users features similar to what Java provides but
> on earlier JDK versions has been one of Groovy's selling points for
> many users. Further Groovy 5 roadmap discussions may make the case
> stronger for JDK minimum greater than 11, but for now I was proposing
> we take the first small step and cross other bridges when we get to
> them.
> 
> A related but orthogonal discussion we need to have is when to phase
> out our (optional) use of the SecurityManager-related APIs (related to
> JEP-411). If we keep the minimum for Groovy 5 as JDK11, then I would
> suggest Groovy 6 is the version for removal. Having said that, we
> could consider parts of the codebase like groovysh as candidates for
> removing the security manager in Groovy 5 - though the Java team
> haven't proposed their replacement for our System.exit interception as
> of yet. So, for Groovy 5 timeframes, we might need additional ways to
> opt out of calls into the security related APIs for those using the
> latest JDKs. Again, I'm interested in others' thoughts here.
> 
> Cheers, Paul.
> 

Reply via email to