Monday, December 31, 2018

GeoTools 21-M0 Milestone Released

GeoTools project is closing out 2018 with a GeoTools 21-M0 milestone release featuring Java 11 compatibility:
This milestone release is a preview of GeoTools 21 giving everyone a chance to help test Java 11 compatibility.

This release works with both Java 8 and Java 9, downstream projects are advised that some imports will need to be fixed when upgrading as classes were repackaged on the way to Java 11 compatibility.

We have worked very hard for this release to work with both Java 8 and Java 11. By making a milestone release available at this time we are offering GeoTools users and downstream projects the option of migrating to Java 11 when they are ready.

Java 2018 Code Sprint

This release completes our participation in the OSGeo Java 2018 Code Sprint, and is made in conjunction with GeoServer 2.15-M0 and GeoWebCache 1.15-M0.

Thanks to individuals and organizations which took part in the code sprint: Boundless, GeoSolutions, GeoCatAstun Technology, and CCRi. Additional thanks to our sponsors whose financial support helps make these activities possible: silver sponsor Gaia3D, bronze sponsors atol, osgeo:uk, and Astun Technology.

Library Restructure and Upgrading

As part of this work many GeoTools dependencies were updated, and the library was repackaged for use as Java 11 modules. The most significant change is the removal of the gt-api module with its classes being distributed across the other modules.

A key technical requirement for Java 11 compatibility is avoiding having two modules making use of the same package. To avoid this "split-package" error some classes have been moved to different packages.

For additional details see the upgrade instructions in our user guide.

About Java 11 Compatibility

The GeoTools library is now available for use on the module path, see our Java 11 Quickstart for an example:

module org.geotools.tutorial.quickstart {
   requires java.desktop;
   requires org.geotools.main;
   requires org.geotools.shapefile;
   requires org.geotools.swing;
   requires org.geotools.render;

Java Roadmap Compatility

We are pleased to announce that the GeoTools library can now be built with Java 8 or Java 11! Due to a technical limitation with the core java class libraries our releases will be built with Java 8 for the widest compatibility.

Our initial concern with Oracle JDK 8 reaching its end-of-life in January 2019 has been alleviated by recent industry developments. Extensive Java 8 support options are now available, with RedHat making a public commitment to contribute fixes to the Java 8 codebase, and a range of organizations committed to making Java 8 builds available on a range of platforms.

Java 8 ProviderLicenseLinuxmacOSSolarisWindowsFree Updates
Oracle JDKBinary Code Licenexxxx2019 January
Oracle OpenJDKGPLxreference only
Oracle OpenJDKBinary Code Licenexxreference only
RedHat OpenJDKGPLx2023 June
Adopt OpenJDKGPLxxx2023 September

Oracle has contributed a wide range of technologies to the OpenJDK project which now leads Java 11 roadmap going forward. 

Java 11 ProviderLicenseLinuxmacOSSolarisWindowsFree Updates
Oracle JDKBinary Code Licenexxxx2019 March
Oracle OpenJDKGPLxxx2019 March
RedHat OpenJDKGPLx2024 October
Adopt OpenJDKGPLxxx2022 September

About GeoTools 21

GeoTools 21 series: