Monday, January 28, 2019

GeoTools 21-RC release ready for testing

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


  • Works with Java 11
  • Features JAI-EXT being turned on by default, thus enabling NODATA support for raster data
  • Better OR performance with complex subqueries on app-schema with PostGIS datasources
  • A new command line tool is available to migrate NetCDF H2 indexes to a centralized database
  • NEAREST spatial predicate support for PostGIS
  • Improved parsing of NetCDF units
  • Equal area function for vector data classification
  • CSS improved its Flat mode making better use of nested rules

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-RC and GeoWebCache 1.15-RC.

Thanks to individuals and organizations which took part in the code sprint: BoundlessGeoSolutionsGeoCatAstun Technology, and CCRi. Additional thanks to our sponsors whose financial support helps make these activities possible: silver sponsor Gaia3D, bronze sponsors atolosgeo: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 Compatibility

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 Licensexxxx2019 January
Oracle OpenJDKGPLxreference only
Oracle OpenJDKBinary Code Licensexxreference 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 Licensexxxx2019 March
Oracle OpenJDKGPLxxx2019 March
RedHat OpenJDKGPLx2024 October
Adopt OpenJDKGPLxxx2022 September

About GeoTools 21

GeoTools 21 series:

Friday, January 18, 2019

GeoTools 20.2 Released

The GeoTools team is happy to announce the release of GeoTools 20.2:
This release is a stable release and is recommend for new development and production systems.

This release is made in conjunction with GeoServer 2.14.2.


  • Add the possibility to specify the target CRS for the ReprojectingFilterVisitor
  • Allow FilterDOMParser to handle filters with expression in the "value" element
  • Do not set ROIs in image mosaic when not strictly necessary


  • CSVDataStore doesn't clean up temp file when writing out
  • GeoTIFF reader attaches nodata to the coverage, but not to the underlying image
  • ImageMosaic harvesting does not scale up
  • Reproject filter tries to reproject non geometry properties
  • BBox function crashes when passed GML
  • GeoPackage reader fails to report the number of overviews available
  • Complex MongoDB generated properties are not correctly handled in SLDs
  • For more details see release notes (20.220.1 | 20.0 | 20-RC)

About GeoTools 20 Series

  • JTS Upgrade to version 1.16 and Migrate to JSR-363, see update instructions for details.
  • Channel selection name allows expression
  • Jiffle map algebra
  • PostGIS store improvements optimized to encode additional functions directly into SQL, support for array data types, and geometries with measure.

Wednesday, January 2, 2019

GeoTools Java 11 Code Sprint Results

With the recent GeoTools 21-M0 Milestone release available for everyone to try out ... we can finally report back on our success at the OSGeo Java 2018 Code Sprint.