GeoTools

OSGeo

Friday, March 22, 2019

GeoTools 20.3 released

The GeoTools team is happy to announce the release of GeoTools 20.3:
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.3.

Improvements

  • SimpleFeatureIO doesn't allow to encode big string attributes (bigger then 65535 bytes)

Fixes

  • Some Oracle fixes, including supporting table or attribute names with more than 30 chars in Oracle 12, SDONN tests function failing, and speeding up test runs
  • Various fixes encoding filters into Filter Encoding (Filter 2.0 spec), which affect WFS 2.0 client behavior
  • Fixed label placement when labels have line breaks and descenders
  • Keep math operator priority correctly when encoding filters down to SQL
  • For more details see release notes (20.320.2 | 20.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.

Sunday, March 3, 2019

GeoTools 21.0 Released

The GeoTools is pleased to announce the release of GeoTools 21.0 our first release with both Java 11 and Java 8 compatibility:
This is a stable release of GeoTools made in conjunction with GeoServer 2.15 and GeoWebCache 1.15.

Release highlights:
  • Works with both Java 11 and Java 8
  • The image processing operations from JAI-EXT are turned on by default (enabling NODATA support for raster data)
  • The combination of app-schema with PostGIS DataStore provides improved OR performance with complex subqueries
  • A new command line tool is available to migrate NetCDF H2 indexes to a centralized database
  • PostGIS DataStore supports NEAREST spatial predicate
  • Improved parsing of NetCDF units
  • Equal area function for vector data classification
  • CSS Styling has improved its Flat mode making better use of nested rules
  • Release notes (21.0 | 21-RC | 21-M0 )
This release works with both Java 11 and Java 8, downstream projects are advised that some imports will need to be fixed when upgrading as classes were repackaged for Java 11 compatibility.

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

This release completes our participation in the OSGeo Java 2018 Code Sprint. 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.

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;
}

Internally GeoTools library includes a MANIFEST.MF entries in each jar providing automatic module names:

DependencyUpgradeAutomatic Module Name
gt-opengisgt-opengisorg.geotools.opengis
gt-metadatagt-metadataorg.geotools.metadata
gt-api(removed)
gt-referencinggt-referencingorg.geotools.referencing
gt-maingt-mainorg.geotools.main
gt-xmlgt-xmlorg.geotools.xml
gt-xmlgt-xmlorg.geotools.xml
gt-maingt-mainorg.geotools.data
gt-jdbcgt-jdbcorg.geotools.jdbc


GeoTools Library Restructure

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.

ModulePackage

gt-apiorg.geotools.decorate
gt-metadataorg.geotools.util.decorate

gt-apiorg.geotools.data
gt-mainorg.geotools.data
gt-apiorg.geotools.data.simple
gt-mainorg.geotools.data.simple
gt-apiorg.geotools.decorate
gt-mainorg.geotools.util.decorate

gt-apiorg.geotools.factory
gt-mainorg.geotools.factory
gt-apiorg.geotools.feature
gt-mainorg.geotools.feature
gt-apiorg.geotools.filter
gt-mainorg.geotools.filter
gt-apiorg.geotools.filter.expression
gt-mainorg.geotools.filter.expression

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, or for the complete list the spreadsheet used to coordinate code-sprint activities. 

Over 400 classes moved! 

Java Roadmap Compatibility

The GeoTools library can now be built with Java 11 or Java 8, due to a technical limitation with the core java class libraries our releases will be built with Java 8 for the widest compatibility.

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



Java 11 Provider
License
Linux
macOS
Solaris
Windows
Free Updates
Oracle JDK
Binary Code License
x
x
x
x
2019 March
Oracle OpenJDK
GPL
x
x
x
2019 March
RedHat OpenJDK
GPL
x
2024 October
Adopt OpenJDK
GPL
x
x
x
2022 September

While Oracle JDK 8 has reached end-of-life the open source community has responded with extensive Java 8 support options. RedHat has made a public commitment to contribute fixes to the upstream Java 8 codebase, while a range of organizations are making Java 8 builds available for Windows and macOS users.

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

Existing OpenJDK users remain unaffected and can upgrade to Java 11 when ready. If you have been using the public distribution of Oracle JDK 8 we recommend switching to OpenJDK 8 at this time, and planning your migration to Java 11 in the next two years.

About GeoTools 21
GeoTools 21 series:

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.

Highligths:

  • 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.

Improvements

  • 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

Fixes

  • 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.

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:

Sunday, December 23, 2018

GeoTools 19.4 released

The GeoTools team is pleased to announce the release of GeoTools 19.4:
This release is the last community sponsored maintenance release for the 19.x series and as such users and downstream projects should consider moving to the 20.x series.

This release is made in conjunction with GeoServer 2.13.4 and GeoWebCache 1.13.4.

Highlights from our issue tracker release-notes:

Tasks and Improvements:
  • Relaxed FilterDOMParser behavior vs like expressions, allowing generic expressions instead of PropertyName
Bug Fixes:
  • Failing bound computation in Oracle store fixed
  • GeoPackage raster to use JAI tile cache in mosaic operations (with significant speedups if there is a reprojection operation following the read), and properly exposing number of overviews and resolutions available (used for example by GeoServer WCS download limits)
  • Better support for filter reprojection on complex feature stores
  • Corrected envelope reprojection error from mercator to other CRS when working over small areas (e.g., tens of meters wide)
See release notes for this and previous 19.x releases for more details (19.3 19.2 19.1 19.0 19-RC1 19-beta).