tl;dr:
We’d like to drop JDK 11, preferably in our next feature release (midPoint 4.6).
Current LTS (4.4.x) will not be affected.
If you think it is not a good idea, let us know why.
And now the whole story:
It feels just like yesterday when we were stuck with JDK 8, but since then, the tempo of JDK releases has got on par with other respectable software (like midPoint ;-)). For some time we used JDK 8 as the baseline, but also supported JDK 11 which was the LTS release for JDK. We actually continue in the trend of recommending the last LTS release for JDK for running your midPoint installations. Newer JDK is generally better, typically more performant, etc. In any case, there will be times when JDK 11 will not be supported and even security patches will be available only for paying customers (be it Oracle or some other vendors in the field).
So today, JDK 8 has been out of the question for some time now, JDK 11 is the minimum supported version and JDK 17 – the most recent LTS – is the recommended version. While we support JDK 11, any features available in later versions are effectively not available to us – the developers (programmers, coders, software engineers, whatever we call ourselves). We know that we need to be a bit conservative with midPoint code, but at the same time, we don’t want our code to look prehistoric eventually.
So our not so long-term plan is to drop the support for JDK 11.
Don’t worry, of course, JDK 11 will be supported for the LTS branch, that is midPoint 4.4.x, during the whole supporting cycle.
But if you have any other serious reason why JDK 11 absolutely MUST stay with us for our feature versions, please let us know before we make this decision. Even then, it will be a mere postponement, as we will most likely not support JDK 11 for our next LTS cycle, which would be a real blocker for us. If no important reasons are found we will drop JDK 11 support as soon as the next release, which is 4.6, planned for the autumn of this year.
JDK LTS versions came 3 years apart (11 to 17), but in an interesting twist, Oracle decided to shorten the LTS release cycle to 2 years (we’re totally sure it took inspiration from other industry leaders who release the LTS with a two-year cadence ;-)), so it seems likely our next LTS version will again support two LTS JDK versions – JDK 17 and JDK 21. If any problems appear, the support for JDK 21 may come after the initial release due to quite a short time between JDK and our LTS, but that’s just a detail at this moment.
The road to the LTS is a long one yet, so let’s return to the core message. We would like to drop JDK 11 in the next feature version and leave only JDK 17 as an officially supported version. JDK 17 is good. It’s an LTS. But still – let us know if it is NOT OK with you.