GeoTools

OSGeo

Thursday, December 19, 2019

GeoTools 21.4 Released

GeoTools 21.4 released

The GeoTools team is happy to announce the release of GeoTools 21.4:
This release is a maintenance release provided for production systems. This is the last 21 series maintenance release scheduled, and we encourage migrating to 22 series at this time.

This release is made in conjunction with GeoServer 2.15.4.

This release is made with OpenJDK 8 and is compatible with both Java 8 and Java 11.

Improvements

  • Our release process has changed to using OpenJDK 8 (previous release were made with Oracle JDK 8)
  • Additional DataUtilities isMatch methods to provide a choice of comparing attribute name, or attribute name + data type.
  • CSS Styling now supports text labels when defining color map entries for improved legend generation
  • GridCoverageReaderHelper now respects "Accurate Resolution Computation" parameter
  • AbstractGridCoverageWriter dispose() now releases both output stream and destination   
  • The ECQL and CQL grammar are now aligned, our implementation of CQL supported a prefix comparison operators experiment that was not included in ECQL.

Bug Fixes

  • Improvements to GeoTools Feature Type model
    • ChoiceAttributeType respects min and max value
    • DataUtilities isMatch fixed to correctly compares attribute name and type
  • Expressions using arithmetic operators now work with complex attributes
  • ContendDataStore local transaction support fixed to return correct query results while editing
  • SQL generation fixed when using a function with LIKE expression
  • CSVDatastore fix to respect LatLon stratagy coordinate order
  • Documentation correction for goodnessOfFit behaviour
  • Fix for GRIB2 range check when used with time and custom dimension

  • For more fixes see the release notes: (21.421.321.2 | 21.0 | 21.0 | 21-RC | 21-M0 )

About GeoTools 21 Series

Monday, November 25, 2019

GeoTools 22.1 Released

The GeoTools team is pleased to announce the release of GeoTools 22.1:
GeoTools 22.1 is a stable release and is recommended for new development and production systems. This release is made in conjunction with GeoServer 2.16.1.

Note: Our test cases caught a regression in URL handling using Oracle JDK 8u221, as a result this was made with the earlier Oracle JDK 8u202. We intended to use OpenJDK 8 for subsequent releases of GeoTools.

Update: Jody would like to apologize for accidentally releasing "22.2" while testing out JDK versions above. The maven repository folders have been renamed "22.2-mistake" to avoid causing problems. GeoTools 22.2 is scheduled for January.

Fixes and Improvements

Improvements:
  • CSS styling raster-color-map definitions can now include labels
  • DataUtilities isMatch(attributeDescriptor, attributeDescriptor) now respects both attribute name and type binding. An optional strict parameter can be used to mimic prior behaviour.
  • The ECQL parser can now handle EQ, NEQ, GT, LT, GTE, LTE keywords. This change restores ECQL as a superset of CQL allowing applications to smoothly "upgrade". Please note that these keywords are more typically represented as operators (and were not included in the final OGC CQL definition).
  • The behaviour of GridCoverageReader now correctly respects "accurate resolution computation" parameter. When disabled the prior technique of using an affine transformation to determine resolution is used.
  • grid coverage writers fixed to consistently release destination and output stream when disposed.
Fixes:
  • Arithmetic operations fixed to work with complex attributes (as provided by app-schema and several json datastore).
  • ChoiceAttributeTypeImpl fixed to correctly report min and max values
  • A series of wfs-ng client fixes allow use of WFS 2.0 DescribeFeatureType 
  • Fix correcting bounding box parameters for SolrDataaStore
  • CSVDataStore LatLonStratagy fixed to respect order columns are defined in
  • jdbc-hana implementation fixed to allow queries where SRID is unknown (allowing use of views)
  • ContentDataStore fixed handling of queries during a transaction. This change affects implementations like ShapefileDataStore that do not natively support transaction independence.
  • Fixed failure with GRIB2 files making use of time and custom dimensions

About GeoTools 22 Series




Tuesday, September 24, 2019

GeoTools 21.3 released

GeoTools 21.3 released

The GeoTools team is happy to announce the release of GeoTools 21.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.15.3.

Improvements

  • XS DateTime encoder doesn't support Local DateTime Handling System property
  • Hint to preserve chained affines operations from being merged together
  • Interpolate function performs a number of dynamic expression evaluations, and generates a lot of transient objects, for each call to "evaluate"
  • MongoDB OR filters are not executed on native search engine leading to wrong results on queries.
  • Improve NetCDF coordinateAxis unit management (km conversion)

Bug Fixes

  • Schema cache autoconfiguration fails for empty GeoServer data directory
  • Zoomed in small bbox causes java.lang.ArithmeticException: / by zero
  • Add support for scale/offset value rescaling GeoTiff files
  • tolerate geotiff_coverage as the coverageName
  • If an error happens when creating an App-Schema data store, included data stores are not unregistered correctly.
  • Dateline wrapping heuristic cannot handle large earth objects
  • GML 2 temporal data is not being formatted like GML 3 encoding.
  • gt-epsg-hsql gets dragged in by gt-wmts through gt-tile-client
  • JMapPane doesn't set the background color of the map on startup causing flashing
  • ImageUtilities may setup a partially initialized ImageLayout which may result into an IllegalArgumentException
  • WFSDataStore uses the wrong parameters for DescribeFeatureType operation when using WFS 2.0 strategy
  • Wrong expression encoding for BBOX filters on Solr datastore
  • For more fixes see the release notes: (21.321.2 21.0 21.0 | 21-RC | 21-M0 )

About GeoTools 21 Series

Wednesday, September 18, 2019

GeoTools 22 released

The GeoTools team is pleased to announce the release of GeoTools 22.0:
This stable release is recommended for new development and production systems. This release is made in conjunction with GeoServer 2.16.0.

This release includes a various major changes.

Module Updates
  • JDBC Hana module moved to supported
  • Added PostGIS raster unsupported module
  • OGR unsupported module has been updated and returned to the build after it was moved to unsupported for the 20 series (OGR is still an unsupported module, but is once again built by default).
  • VPF unsupported module updated and returned to the build.
  • SWT unsupported module removed from the build for incompatibility with Java 11.
  • Oracle EPSG unsupported module removed from build for depreciated dependencies.
  • Unsupported Excel module removed from GeoTools for lack of support.
  • Unsupported App-Schema web service module removed from GeoTools for lack of support.

Assorted improvements

Other highlights from our issue tracker release-notes:
  • Upgrade to imageio-ext 1.3 with GDAL 2.x bindings
  • Make gt-swing able to load resources from OSGI bundles
  • Expose PostgreSQL driver SSL mode
  • Add support for TWKB transfer in PostGIS datastore
  • SimpleFeatureIO doesn't allow to encode big string attributes (bigger then 65535 bytes)
  • Improve coordinateAxis unit management
  • XS DateTime encoder doesn't support Local DateTime Handling System property
  • GeoTools cannot open the GDA94 -> GDA2020 grid shift files
  • MongoDB file schema generation uses only the first object from the collection
There is also a large set of bug fixes. For more information see the 22.0 release notes as well as the 22-RC release notes.

Wednesday, August 21, 2019

GeoTools 22 Release Candidate Available

The GeoTools team is pleased to announce the release of GeoTools 22-RC:
This release candidate is also available from our Maven repository, and is made in conjunction with GeoServer 2.16-RC.

This release includes a various major changes.

Please Test this Release Candidate

A release candidate is your chance to both try out new features and contribute to the project with valuable feedback when we need it most.

Please test this release and let us know of any regression before we release GeoTools 22.0 final, in the second half of September.

Module Updates
  • JDBC Hana module moved to supported
  • Added PostGIS raster unsupported module
  • OGR unsupported module has been updated and returned to the build after it was moved to unsupported for the 20 series (OGR is still an unsupported module, but is once again built by default).
  • VPF unsupported module updated and returned to the build.
  • SWT unsupported module removed from the build for incompatibility with Java 11.
  • Oracle EPSG unsupported module removed from build for depreciated dependencies.
  • Unsupported Excel module removed from GeoTools for lack of support.
  • Unsupported App-Schema web service module removed from GeoTools for lack of support.

Assorted improvements

Other highlights from our issue tracker release-notes:
  • Upgrade to imageio-ext 1.3 with GDAL 2.x bindings
  • Make gt-swing able to load resources from OSGI bundles
  • Expose PostgreSQL driver SSL mode
  • Add support for TWKB transfer in PostGIS datastore
  • SimpleFeatureIO doesn't allow to encode big string attributes (bigger then 65535 bytes)
  • Improve coordinateAxis unit management
  • XS DateTime encoder doesn't support Local DateTime Handling System property
  • GeoTools cannot open the GDA94 -> GDA2020 grid shift files
  • MongoDB file schema generation uses only the first object from the collection
There is also a large set of bug fixes. For more information see the 22-RC release notes.

Friday, July 26, 2019

GeoTools 20.5 released

The GeoTools team is happy to announce the release of GeoTools 20.5:
This release is a maintenance release and is a recommend update for production systems.

This release is made in conjunction with GeoServer 2.14.5.

Improvements

  • Update EPSG database to v9.6 (Andrea)
  • Updating GT to jai-ext-1.1.11  (Daniele)

Fixes

  • GEOT-5859: Remove httpclient dependency. 
  • GEOT-6321: Remove broken app-schema web service module
  • GEOT-6319: S3-geotiff: time-out properties 
  • GEOT-6327: tolerate geotiff_coverage as the coverageName
  • GEOT-6334: Dateline wrapping heuristic cannot handle large earth
  • GEOT-6333: Preserving chained affines Hints 
  • GEOT-6328 Allow MongoDB data store schema builder to user all DB
  • GEOT-6332: If an error happens when creating an App-Schema data store, 
  • GEOT-6329: MongoDB schema inferrer only uses first item on inner 
  • GEOT-6330: XS DateTime encoder doesn't support Local DateTime Handling 
  • GEOT-6339: Interpolate function performs a number of dynamic expression
  • GEOT-6342: use background color when first rendering map
  • GEOS-9284: Fix rescale to bytes with float nodata
  • For more details see release notes (20.520.420.3 | 20.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.

Friday, June 28, 2019

GeoTools 21.2 Released

GeoTools 21.2 released

The GeoTools team is happy to announce the release of GeoTools 21.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.15.2.

Improvements

  • Improve entity validation in external DTD
  • Allow turning off dateline wrapping heuristic by using a projection parameter
  • Optional densification of points in ProjectionHandler

Bug Fixes

  • GeoTools maven repo in FAQ page still pointing to opengeo
  • Math filter functions are not null safe
  • GeoTIFF reader won't use source subsampling if overviews are disabled
  • Can't create default value for com.vividsolutions.jts.geom.Geometry
  • Exceptions in WarpBuilder are not captured by StreamingRenderer if densification is enabled
  • FootprintBehavior attaches a ROI to blank images when no input is found, even if the footprint behavior is "NONE"
  • wfs-ng maxFeatures applied before Filters on WFS requests with MapServer
  • MongoDB file schema generation uses only the first object from the collection.
  • For more fixes see the release notes: (21.2 21.0 21.0 | 21-RC | 21-M0 )

About GeoTools 21 Series

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: