[Geoserver-devel] Should we switch to Java 11 as the minimum version?

Hi all,
recently I’ve been wondering multiple times if we should just switch to Java 11
as the minimum supported versions.

Reasons/benefits:

  • I believe most deployments are on Java 11 anyways

  • It simplifies our build, one less JDK to handle (we now try to support Java 8, 11 and 17)

  • google-java-format recent versions require Java 11, errorprone shows some misbehaviors on Java 8 and requires special setup

  • Among our dependencies, Wicket 9 also requires Java 11, not sure what else.

  • Can can start using some new API introduced after Java 11, like “var” for type inference, some handy new methods in Optional, a variety of new methods in streams, and support for creating maps, sets and lists with a single call (e…g Map.of(key, value)).
    Disadvantages:

  • Java 8 is supported up until 2026 while Java 11 (so far at least) up until October 2024. Switching now, we’d still get 3.5 years of support ahead of us.
    I’m afraid that we’ll have to get used to short LTSs anyways, Oracle is proposing to go down to 2 years for LTSs:

https://www.infoq.com/news/2021/10/oracle-java-two-year-lts/

Cheers
Andrea

···

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 333 8128928

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Hi Andrea,
I’m assuming you are suggesting this for the upcoming GeoServer 2.22.x and GeoTools 28.x branches?
If my math is right, this means that we will have until:

  • September 2022 2.21.x stable supporting Java 8
  • February 2023 2.21.x maintenance supporting Java 8
    Taking into account that we will need to vouch for backports, we will only be able to use Java 11 at 100% for development around January 2023.

I would say +1 to drop JDK 1.8 support, but I wonder if we should review our release schedule if indeed Oracle switch to a 2 years LTS.

Kind regards,
Nuno Oliveira

···

Regards,

Nuno Oliveira

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Nuno Miguel Carvalho Oliveira
@nmcoliveira
Technical Lead / Project Manager

GeoSolutions Group
phone: +39 0584 962313
fax: +39 0584 1660272

https://www.geosolutionsgroup.com/
http://twitter.com/geosolutions_it

Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.

Hi Andrea,
I’m assuming you are suggesting this for the upcoming GeoServer 2.22.x and GeoTools 28.x branches?

I did not have a specific target in mind. The code builds with Java 11 today, so Java 8 can be dropped at any point in time.

If my math is right, this means that we will have until:

  • September 2022 2.21.x stable supporting Java 8
  • February 2023 2.21.x maintenance supporting Java 8
    Taking into account that we will need to vouch for backports, we will only be able to use Java 11 at 100% for development around January 2023.

Right, before that we’ll only be able to use it for non-backportable changes, or
have to rewrite a few bits to make them compatible with Java 8.
This would really favour a switch sooner rather than later though, so, Java 11 as the minimum already in GeoServer 2.21.
But… just thinking out loud really, let’s hear opinions.

I would say +1 to drop JDK 1.8 support, but I wonder if we should review our release schedule if indeed Oracle switch to a 2 years LTS.

What do you have in mind?

Cheers
Andrea

···

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 333 8128928

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

I am neutral on this; geocat can make the change for our customers to Java 11 (but are presently using Java 8).

It seems odd to limit the geotools build if their is no technical reason feature we wish to take advantage of. The key language feature I am looking forward to is inline classes (for efficient coordinates lists), sadly Java 14 records just implement equals/hashcode.

···


Jody Garnett

There is also the new HTTP client (there is still use of the EOL apache httpclient 3.x in some places) and new String and Collection methods would probably make it possible to reduce the number of dependencies as well.
Dropping Java 8 as a runtime makes it possible to upgrade the EE modules to supported/maintained (Jakarta) versions

···

Disclaimer;
This message is just a reflection of what I thought at the time of sending. The message may contain information that is not intended for you or that you don’t understand.