GeoTools

OSGeo

Tuesday, December 19, 2023

GeoTools 29.4 released

 

GeoTools 29.4 released

The GeoTools team is pleased to announce the release of the latest maintenance version of GeoTools 29.4:

This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.23.4 and GeoWebCache 1.23.3. 

We are grateful to Peter Smythe (AfriGIS) for carrying out the release.

Summary of changes

See Release Notes from 29.4

Bug

GEOT-7486 CSS literal single space squashed to empty string

GEOT-7490 WPS Intersection NPE when the Return Value Should be a Point

GEOT-7496 gt-xsd-fes fails to encode PropertyIsBetween

GEOT-7497 gt-wfs-ng ignores maxFeatures on WFS 2.0

GEOT-7507 Vector mosaic store: filtering is not working if it uses a property that's not retrieved by the query

Improvement

GEOT-7491 ShapeFileDataStore should use GeometryFactory of DataStore

GEOT-7498 Upgrade DB2 JDBC driver from 11.5.6.0 to 11.5.9.0

GEOT-7508 Optimize execution of NearestVisitor in Vector Mosaic store

Task

GEOT-7494 Upgrade flatgeobuf to 3.26.2

Wednesday, December 6, 2023

State of GeoTools 30.1

Jody Garnett here to share a presentation from FOSS4G Asia 2023 on the State of GeoTools 30.1.

It has been nine years since our last "State of GeoTools" presentation in FOSS4G 2014 Portland; however this was just a lighting talk and is devoted to recent updates.

I would like to the event organizers, and my employer GeoCat for the opportunity to speak on behalf of the GeoTools project.

Monday, November 27, 2023

GeoTools 30.1 released

 The GeoTools team is pleased to the release of the latest stable version of GeoTools 30.1:

This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.24.1. The release was made by Jody Garnett (GeoCat).

Release notes

See Release Notes from 30.130.0 and 30-RC

Bug

GEOT-7412 Test failure in VRTTest with GDAL installed

GEOT-7415 Error on WFS Transaction with Multisurface features

GEOT-7430 WFSContentDataAccess should download local copy

GEOT-7475 Conversion of GeneralBounds to ReferencedEnvelope fails for envelopes wrapping the dateline

GEOT-7485 ReferencedEnvelope.setFrameFromCenter(Point2D center, Point2D corner) returns wrong coordinates - zoomin/zoomout

GEOT-7486 CSS literal single space squashed to empty string

GEOT-7495 Correct Hints.REPOSITORY reference to org.geotools.api.data.Repository

Tasks

GEOT-7494 Upgrade flatgeobuf to 3.26.2

Improvement

GEOT-7480 SumVisitor NPE When Value from Database is Null

GEOT-7490 WPS Intersection NPE when the Return Value Should be a Point

GEOT-7491 ShapeFileDataStore should use GeometryFactory of DataStore

Monday, October 30, 2023

GeoTools 29.3 released

The GeoTools team is pleased to announce the release of the latest maintenance version of GeoTools 29.3:

This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.23.3 and GeoWebCache 1.23.2. 

We are grateful to Peter Smythe (AfriGIS) for carrying out the release.

Summary of changes

See Release Notes from 29.3

Bug

GEOT-7363 ParseException if returning POLYGON EMPTY

GEOT-7400 ImageWorker rescaleToBytes fails to reserve entry for nodata if it happens to be zero

GEOT-7401 GDAL readers ignore source NoData values

GEOT-7404 Add SQLite Connection Timeout in case of hung GeoPackage connections

GEOT-7406 Vector Mosaic Cache granule connection in memory to avoid redundant initialization and improve granule iterator cleanup

GEOT-7407 Vector Mosaic Cache granuleFeatureType at DataStore and improve granule FeatureType acquisition

GEOT-7412 Test failure in VRTTest with GDAL installed

GEOT-7434 ElasticSearch throws repeated point exceptions on small bbox filters

GEOT-7444 HanaGeographyOnlineTest.testBounds is failing in CI

GEOT-7458 JDBCDataStore: Unique visitor not always compatible with sortBy

Improvement

GEOT-7413 Avoid needless type conversions in InterpolateFunction

GEOT-7414 Speed up style evaluation during rendering, by simplifying its expressions before execution

GEOT-7416 org.geotools.feature.NameImpl.compareTo creates garbage objects

GEOT-7418 Add a configuration parameter to the ElasticSearch plugin to support response greater than 100mb

GEOT-7420 Vector mosaic reader: do not recompute the schema for every feature read

GEOT-7421 Caching WKT parsing results

GEOT-7425 Add support for extended colorMap in CSS

GEOT-7427 Vector Mosaic add native filtering support when query is exclusively granule or index fields

GEOT-7429 Vector Mosaic add native retyping support when query is exclusively granule or index fields

GEOT-7451 Upgrade org.json:json to 20230618

GEOT-7480 SumVisitor NPE When Value from Database is Null

Sunday, October 15, 2023

GeoTools 30.0 released

The GeoTools team is pleased to announce the release of the latest stable version of GeoTools 30.0:

This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.24.0, GeoWebCache 1.24.0 and MapFish Print v2 2.3.0. We are grateful to Peter Smythe (AfriGIS) and Jody Garnett (GeoCat) for carrying out the release.

org.opengis package removal

One of the biggest changes in this release is the renaming of all "org.opengis" packages into "org.geotools.api" ones, to satisfy a request coming from OGC members that manage the "GeoAPI" project, using the same package space. See blog post from 2011.

GeoTools Timeline

While this is an extensive breakage, we have prepared migration scripts that can help automating the switch, and which have already been used for migration of GeoWebCache and GeoServer, along with MapFish print and GeoFence, with only a small amount of manual changes left to make. In particular, GeoServer was the only project requiring any manual intervention.

In addition to the package rename, we leveraged the occasion to perform some more API clean-ups, including:

  • The core data API has been moved from "org.geotools.data" to "org.geotools.api.data"
  • The ISO geometry interfaces, left without implementation for a few years, have been removed. The few bits that used them has been migrated to JTS geometries.
  • Most of the "org.geotools.metadata" package is gone, as these classes and interfaces had no usage in GeoTools, GeoWebCache or GeoServer.
  • Internationalized error message support has been removed.
  • "org.opengis.geometry.Envelope" has been renamed "org.geotools.api.geometry.Bounds" and some of the confusion related to the proliferation of envelope-related classes has been cleared.

The above-mentioned script is performing refactors to adapt downstream code for the above changes as well.

The detailed list of changes, as well as the migration scripts, can be found in the GeoTools upgrade guide.

Some downstreams projects also started adapting the script to other languages, this ticket contains an example for Scala, from the GeoMesa project.

Remove OpenGIS proposal

This work was performed by Ian Turton (ASTUN Technologies), Jody Garnett (GeoCat) and Andrea Aime (GeoSolutions). A proof-of-concept was performed at the FOSS4G 2023 code sprint, and the vast majority of the work accomplished at the Bolsena Code Sprint 2023. See Remove OpenGIS proposal.

Thanks to Open Source Geospatial Foundation for funding this activity and supporting the ecosystem of affected downstream projects. This activity was proposed as joint-initiative to be addressed with other organizations (notably the Open Geospatial Consortium responsible for GeoAPI, and the Apache Foundation making the request). Only OSGeo was forthcoming with and funding, and sharing the sponsorship opportunity with their members. The ability to respond to sustaining activities like this, that do not attract interest from sponsors, is a clear example of a the role open source software foundations fulfill.

We remind everyone to continue to support OSGeo with your financial contributions (you may also choose to directly support GeoTools in this manner).

We sincerely thank all users and downstream projects who have tested out the migration scripts when the candidate was released as 30-RC. 

Thanks to Mark Prins for early testing of the release candidate and update script: Upgraded some of our projects last week, most of them took me less than 10 mins to produce a PR. All testsuites pass. Only thing I ran into was we had our own "Bounds" object somewhere in our own API and that started conflicting with the upgraded code.

Thanks to Ian Turton for testing: Everything went pretty well in the repos I've tested.  A few `ReferencedEnvelope.creates(` didn't get picked up by the conversion tool but nothing too severe.

The map fish-print-v2 library was updated by Jody Garnett with support from Sébastien Riollet.

The GeoFence project was updated by Andrea Aime with support from the GeoSolutions team.

GeoServer was updated as part of this activity, with a release candidate being tested by the GeoServer community.

GeoNode has tested a release candidate, thanks to Giovanni Allegri for testing.

GeoMesa has tested a release candidate, thanks to Emilio Lahr-Vivaz for testing, and providing a Scala update script shared above.

GeoNetwork has been tested by Jody Garnett, with François Prunayre providing a review.

GeoWave has tested a release candidate, thanks to Grigory Pomadchin for testing.

Support for planetary CRSs, EPSG assumption removal

The new gt-iau-wkt module provides support for planetary CRSs, sourced from the International Astronomical Union. This allows users to manage GIS data over the Moon, Mars, or even the Sun, with well-known, officially supported codes.

In addition to that, many bug fixes occurred in the management of CRSs and their text representations (plain codes, URL, URIs) so that the EPSG authority is no longer assumed to be the only possibility.

The code base has seen this assumption for twenty long years already, and while we made a good effort to eliminate the assumption, it could be still lurking in some places. Please test and let us know.

Allow to exercise control over remote, user-provided graphics and marks

Much of the code dealing with OGC protocols is designed to follow URLs, some of which might originate from user requests or from remote server responses.

The new URLChecker interface, along with its associated SPI interface, allows users to plug in custom checks to confirm whether a particular URL should be followed. Currently, checks are implemented for remote graphics and marks, with more checks to be implemented in the future.

All other changes

See Release Notes from 30.0 and 30-RC

Bug

GEOT-7363 ParseException if returning POLYGON EMPTY

GEOT-7434 ElasticSearch throws repeated point exceptions on small bbox filters

GEOT-7457 Failing to read empty FlatGeobuf

GEOT-7458 JDBCDataStore: Unique visitor not always compatible with sortBy

GEOT-7465 GML2EncodingUtils.toURI fails with the Web Service authority

GEOT-7472 After the org.opengis package removal, gt-api jar is not included in bin download

GEOT-6266 Generating GeoPackage fails when layer name has spaces or dashes

GEOT-7224 Error in pom lines.

GEOT-7266 WMTSCapabilities throws NPE for missing title

GEOT-7267 GML encoding forces URL SRS syntax on one-dimensional CRS

GEOT-7313 gt-geobuf: Failed to decode a SimpleFeature with a property name of "geom"

GEOT-7318 Unit of measure not escaped in DWithin filter

GEOT-7324 NPE on WMTS single tile request on missing GetTile operation in capabilities

GEOT-7325 WMTS multi tile request is not compatible with RESTful servers

GEOT-7338 Child feature ClientProperties are duplicated on Complex features parent container elements from the child feature

GEOT-7344 Child feature ClientProperties are duplicated on no-GML XML element parent container from the child elements

GEOT-7347 Update PMD to version 6.55

GEOT-7357 Rendering problem with polygon marker fills

GEOT-7359 GeoTiffMetadata2CRSAdapter improperly parses custom CRS definitions

GEOT-7366 Document FilterToSQL is not thrad safe

GEOT-7383 Distance element of DWithin filter should have an attribute "uom"

GEOT-7386 Shape://dot is too small to see on screen

GEOT-7389 GeoTIFF writer does not dump custom CRSs correctly

GEOT-7390 Extend GML CRS encoding to support multiple authorities

GEOT-7392 ReprojectFeatureResult.getBounds() does not report target CRS

GEOT-7393 WFS multi-Feature collection encoding fails when collections don't share the same CRS

GEOT-7397 PostGIS online tests fail on recent postgresql due to double comparison issue

GEOT-7404 Add SQLite Connection Timeout in case of hung GeoPackage connections

GEOT-7442 Make ErrorProne run on Windows

GEOT-7444 HanaGeographyOnlineTest.testBounds is failing in CI

Improvement

GEOT-7429 Vector Mosaic add native retyping support when query is exclusively granule or index fields

GEOT-7451 Upgrade org.json:json to 20230618

GEOT-7352 Add false easting and northing support in Robinson projection

GEOT-7354 Add support for standard parallel in equirectangular projection

GEOT-7360 DWITHIN support for mongo DB

GEOT-7361 Support non EPSG authorities in DataUtilities type spec, and property data store

GEOT-7368 Expose IAU authority in both axis orders

GEOT-7387 Improve URL checking

GEOT-7398 Support other CRS authorities in PostGIS

GEOT-7413 Avoid needless type conversions in InterpolateFunction

GEOT-7414 Speed up style evaluation during rendering, by simplifying its expressions before execution

GEOT-7416 org.geotools.feature.NameImpl.compareTo creates garbage objects

GEOT-7418 Add a configuration parameter to the ElasticSearch plugin to support response greater than 100mb

GEOT-7421 Caching WKT parsing results

GEOT-7425 Add support for extended colorMap in CSS

GEOT-7431 Support custom HTTP headers for WFS-Client (and underlying HTTP-Client)

GEOT-7435 ESRI Shapefile read gzipped input files

New Feature

GEOT-6512 Control remote HTTP requests sent by GeoTools

GEOT-7287 Refactor to remove org.opengis interfaces

Task

GEOT-7317 Upgrade snakeyaml from 1.32 to to 2.0

GEOT-7336 Update to ErrorProne 2.18

GEOT-7341 Update Spotbugs to 4.7.3

GEOT-7349 Further support for Saxon

GEOT-7355 New CRS plugin providing IAU CRSs for planetary mapping

GEOT-7364 Bump sqlite-jdbc from 3.34.0 to 3.41.2.2

GEOT-7373 Bump hsqldb from 2.7.1 to 2.7.2

GEOT-7374 Upgrade Jackson to 2.15.2

GEOT-7375 Upgrade guava from 30.1.1 to 32.0.0

GEOT-7376 Upgrade postgresql from 42.4.3 to 42.6.0

GEOT-7378 Upgrade commons-lang3 from 3.8.1 to 3.12.0

GEOT-7379 Upgrade commons-io from 2.10.0 to 2.12.0

GEOT-7394 Upgrade httpclient from 4.5.13 to 4.5.14

GEOT-7396 Upgrade wiremock to 2.35.0

GEOT-7437 Avoid use of yield keyword for JDK 17 compatibility

GEOT-7440 Update maven plugin versions

GEOT-7443 Remove JDK 11 profile and rename associated JDK 11 Test

GEOT-7445 Revert maven javadoc plugin upgrade

Friday, September 22, 2023

GeoTools 30-RC released

  The GeoTools team is pleased to share the availability GeoTools 30-RC :

org.opengis package removal

The main novelty in this release is the renaming of all "org.opengis" packages into "org.geotools.api" ones, to satisfy a request coming from OGC members that manage the "GeoAPI" project, using the same package space.

While this is an extensive breakage, we have prepared migration scripts that can help automating the switch, and which have been used for migration of GeoWebCache and GeoServer, along with MapFish print and GeoFence, with only a small amount of manual changes left to make.  In particular, GeoServer was the only project requiring any manual intervention.

In addition to the package rename, we leveraged the occasion to perform some more API clean-ups, including:
  • The core data API has been moved from "org.geotools.data" to "org.geotools.api.data"
  • The ISO geometry interfaces, left without implementation for a few years, have been removed. The few bits that used them has been migrated to JTS geometries.
  • Most of the "org.geotools.metadata" package is gone, as these classes and interfaces had no usage in GeoTools, GeoWebCache or GeoServer.
  • Internationalized error message support has been removed.
  • "org.opengis.geometry.Envelope" has been renamed "org.geotools.api.geometry.Bounds" and some of the confusion related to the proliferation of envelope-related classes has been cleared.
The above-mentioned script is performing refactors to adapt downstream code for the above changes as well.
The detailed list of changes, as well as the migration scripts, can be found in the GeoTools upgrade guide.

Some downstreams projects also started adapting the script to other languages, this ticket contains an example for Scala, from the GeoMesa project.

We urge all users to test out the migration scripts as soon as possible and report eventual issues before 30.0 is released, roughly in two weeks from this announcement.

Support for planetary CRSs, EPSG assumption removal

The new gt-iau-wkt module provides support for planetary CRSs, sourced from the International Astronomical Union. This allows to manage GIS data over the Moon, Mars, or even the Sun, with well known, officially supported codes.

In addition to that, many bug fixes occurred in the management of CRSs and their text representations (plain codes, URL, URIs) so that the EPSG authority is no longer assumed to be the only possibility.
The code base has seen this assumption for twenty years long, and while we made a good effort to eliminate the assumption, it could be still lurking in some places. Please test and let us know.

Allow to exercise control over remote, user-provided graphics and marks 

Much of the code dealing with OGC protocols is designed to follow URLs, some of which might be originating from user requests or from remote server responses.

The new URLChecker interface, along with its associated SPI interface, allows to plug-in custom checks to confirm a particular URL should be followed. Currently checks are implemented for remote graphics and marks, with more checks to be implemented in the future.

All other changes


Bug

GEOT-6266 Generating GeoPackage fails when layer name has spaces or dashes

GEOT-7224 Error in pom <project> lines.

GEOT-7266 WMTSCapabilities throws NPE for missing title

GEOT-7267 GML encoding forces URL SRS syntax on one-dimensional CRS

GEOT-7313 gt-geobuf: Failed to decode a SimpleFeature with a property name of "geom"

GEOT-7318 Unit of measure not escaped in DWithin filter

GEOT-7324 NPE on WMTS single tile request on missing GetTile operation in capabilities

GEOT-7325 WMTS multi tile request is not compatible with RESTful servers

GEOT-7338 Child feature ClientProperties are duplicated on Complex features parent container elements from the child feature

GEOT-7344 Child feature ClientProperties are duplicated on no-GML XML element parent container from the child elements

GEOT-7357 Rendering problem with polygon marker fills

GEOT-7359 GeoTiffMetadata2CRSAdapter improperly parses custom CRS definitions

GEOT-7366 Document FilterToSQL is not thrad safe

GEOT-7383 Distance element of DWithin filter should have an attribute "uom"

GEOT-7386 Shape://dot is too small to see on screen

GEOT-7389 GeoTIFF writer does not dump custom CRSs correctly

GEOT-7390 Extend GML CRS encoding to support multiple authorities

GEOT-7392 ReprojectFeatureResult.getBounds() does not report target CRS

GEOT-7393 WFS multi-Feature collection encoding fails when collections don't share the same CRS

GEOT-7397 PostGIS online tests fail on recent postgresql due to double comparison issue

GEOT-7404 Add SQLite Connection Timeout in case of hung GeoPackage connections

GEOT-7442 Make ErrorProne run on Windows

GEOT-7444 HanaGeographyOnlineTest.testBounds is failing in CI

Improvement

GEOT-7352 Add false easting and northing support in Robinson projection

GEOT-7354 Add support for standard parallel in equirectangular projection

GEOT-7360 DWITHIN support for mongo DB

GEOT-7361 Support non EPSG authorities in DataUtilities type spec, and property data store

GEOT-7368 Expose IAU authority in both axis orders

GEOT-7387 Improve URL checking

GEOT-7398 Support other CRS authorities in PostGIS

GEOT-7413 Avoid needless type conversions in InterpolateFunction

GEOT-7414 Speed up style evaluation during rendering, by simplifying its expressions before execution

GEOT-7416 org.geotools.feature.NameImpl.compareTo creates garbage objects

GEOT-7418 Add a configuration parameter to the ElasticSearch plugin to support response greater than 100mb

GEOT-7421 Caching WKT parsing results

GEOT-7425 Add support for extended colorMap in CSS

GEOT-7431 Support custom HTTP headers for WFS-Client (and underlying HTTP-Client)

GEOT-7435 ESRI Shapefile read gzipped input files

New Feature

GEOT-6512 Control remote HTTP requests sent by GeoTools

GEOT-7287 Refactor to remove org.opengis interfaces

Task

GEOT-7317 Upgrade snakeyaml from 1.32 to to 2.0

GEOT-7336 Update to ErrorProne 2.18

GEOT-7341 Update Spotbugs to 4.7.3

GEOT-7347 Update PMD to version 6.55

GEOT-7349 Further support for Saxon

GEOT-7355 New CRS plugin providing IAU CRSs for planetary mapping

GEOT-7364 Bump sqlite-jdbc from 3.34.0 to 3.41.2.2

GEOT-7373 Bump hsqldb from 2.7.1 to 2.7.2

GEOT-7374 Upgrade Jackson to 2.15.2

GEOT-7375 Upgrade guava from 30.1.1 to 32.0.0

GEOT-7376 Upgrade postgresql from 42.4.3 to 42.6.0

GEOT-7378 Upgrade commons-lang3 from 3.8.1 to 3.12.0

GEOT-7379 Upgrade commons-io from 2.10.0 to 2.12.0

GEOT-7394 Upgrade httpclient from 4.5.13 to 4.5.14

GEOT-7396 Upgrade wiremock to 2.35.0

GEOT-7437 Avoid use of yield keyword for JDK 17 compatibility

GEOT-7440 Update maven plugin versions

GEOT-7443 Remove JDK 11 profile and rename associated JDK 11 Test

GEOT-7445 Revert maven javadoc plugin upgrade

Wednesday, August 30, 2023

GeoTools 28.5 Released

 The GeoTools team are pleased to announce the release of the latest stable version of GeoTools 28.5 

 geotools-28.5-bin.zip     

geotools-28.5-doc.zip     

geotools-28.5-userguide.zip     

geotools-28.5-project.zip

This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.22.5. We are grateful to Peter Smythe (AfriGIS) for carrying out the release.

Improvements and fixes in this release:

Bugs Fixed

GEOT-7335 geojson-store fails StackOverflowError when empty features FeatureCollection

GEOT-7386 Shape://dot is too small to see on screen

GEOT-7400 ImageWorker rescaleToBytes fails to reserve entry for nodata if it happens to be zero

GEOT-7401 GDAL readers ignore source NoData values

GEOT-7404 Add SQLite Connection Timeout in case of hung GeoPackage connections

GEOT-7406 Vector Mosaic Cache granule connection in memory to avoid redundant initialization and improve granule iterator cleanup

GEOT-7407 Vector Mosaic Cache granuleFeatureType at DataStore and improve granule FeatureType acquisition

Improvements

GEOT-7381 FlatGeobufDataStore missing optimization for feature id queries

GEOT-7387 Improve URL checking

GEOT-7418 Add a configuration parameter to the ElasticSearch plugin to support response greater than 100mb

GEOT-7425 Add support for extended colorMap in CSS

GEOT-7427 Vector Mosaic add native filtering support when query is exclusively granule or index fields

New Features

GEOT-7380 GeoTIFF user-defined coordinate reference system via citation ESRI PE String = <wkt>

Tasks

GEOT-7382 maven integration tests failing when running with fresh local repository

GEOT-7394 Upgrade httpclient from 4.5.13 to 4.5.14

GEOT-7396 Upgrade wiremock to 2.35.0

Thursday, July 20, 2023

GeoTools 29.2 Released

 The GeoTools team are pleased to announce the release of the latest stable version of GeoTools 29.2 

    geotools-29.2-bin.zip
    geotools-29.2-doc.zip
    geotools-29.2-userguide.zip
    geotools-29.2-project.zip

This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.23.2. We are grateful to Ian Turton (Astun Technology Ltd) for carrying out the release.

Improvements and fixes in this release:

Bugs Fixed

GEOT-7266 WMTSCapabilities throws NPE for missing title

GEOT-7335 geojson-store fails with StackOverflowError when parsing an empty FeatureCollection

GEOT-7345 WFS Capabilities from local file

GEOT-7365 Problems with requesting Features from a WFS Version 2.0.0 and using a HTTP proxy

GEOT-7367 Missing null-check in GeoPackage spatial index creation

GEOT-7386 Shape://dot is too small to see on screen

Improvements

GEOT-7360 DWITHIN support for mongo DB

GEOT-7362 Multithreaded HTTP client: authentication not sent if connection pooling activated

GEOT-7381 FlatGeobufDataStore missing optimization for feature id queries

GEOT-7387 Improve URL checking

New Features

GEOT-6512 Control remote HTTP requests sent by GeoTools

GEOT-7380 GeoTIFF user-defined coordinate reference system via citation ESRI PE String =

Tasks

GEOT-7364 Upgrade sqlite-jdbc from 3.34.0 to 3.41.2.2

GEOT-7373 Upgrade hsqldb from 2.7.1 to 2.7.2

GEOT-7374 Upgrade Jackson to 2.15.2

GEOT-7375 Upgrade guava from 30.1.1 to 32.0.0

GEOT-7376 Upgrade postgresql from 42.4.3 to 42.6.0

GEOT-7378 Upgrade commons-lang3 from 3.8.1 to 3.12.0

GEOT-7394 Upgrade httpclient from 4.5.13 to 4.5.14

GEOT-7396 Upgrade wiremock to 2.35.0

 

Tuesday, July 11, 2023

Construction Ahead: Refactoring org.opengis to org.geotools.api

In the next release of GeoTools 30.0 there are some breaking API changes to look forward to:
  • org.opengis package is renamed to org.geotools.api package
  • This release will include update instructions, and a migration script, to fix your code.
This is a breaking change, the formal change control proposal is here.

Why is this changing

The GeoAPI Implementation Specification is a Java standard (Interfaces and Classes) provided by the Open Geospatial Consortium for interoperability between Java projects and libraries.

GeoTools worked on a pre-release of these interfaces in the hopes of collaborating with other projects. In GeoTools 2.7 these interfaces were folded back into the gt-opengis module due to lack of collaboration opportunities and funding.

The GeoTools library use of the org.opengis package has caused disruption for the OGC and Apache software foundations and they have asked the Open Source GeoSpatial Foundation for this matter to be addressed (see osgeo/todo#142).

Cross-project initiative and timeframe

A cross-project OpenGIS Harmonization initiative has been setup at osgeo.org, to collaboration between the above software foundations, and the affected projects from all walks of life.

The GeoTools library is coordinating our activities with a change proposal covering the following timeline:
  • 2023 April: Open Standards and Open Source Software Code Sprint: initiatve promotion
  • 2023 June: FOSS4G Code Sprint: Design and Planning
  • 2023 August: Bolsena Code Sprint: GeoTools Refactor and API Change
  • 2023 September: GeoTools 30-RC: Public release-candidate for testing and feedback
  • 2023 October: GeoTools 30.0: Public release of API Change
  • 2023 Q4: Last Friday of the month drop-in sprint to assist downstream projects with migration

What you can expect

You can expect to run a script and recompile / re-release your code:

ant -f remove-opengis.xml

At the end of this process you may need to re-run code formatted, or clean up unused imports.

For projects that have not yet made the upgrade to Java 11 additional work will be required to establishing a supported build environment.

Participation and Support

This activity is disruptive, and the best way to control the risk for you and your project team is to participate both in the upcoming Bolsena Code Sprint, and in testing the GeoTools 30.0-RC release candidate in early September.

To be successful this transition requires your participation and support, both with GeoTools, and also the downstream projects that will be disrupted.
If you are in position to offer financial assistance, this activity is covered by OSGeo sponsorship program. Your support is visible not only here but on the OSGeo website and marketting materials also.

OSGeo identified this activity as a priority in their 2023 budget. The OGC asked us to create a ticket (opengeospaital/ideas#120) for their June board meeting but have not reported back. Apache Software Foundation as a policy does not financially support activities.

Sunday, June 18, 2023

GeoTools 28.4 Released

The GeoTools team is pleased to share the availability GeoTools 28.4:
This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.22.4.

Release notes - GeoTools - 28.4

Bug

GEOT-7266 WMTSCapabilities throws NPE for missing title

GEOT-7345 WFS Capabilities from local file

GEOT-7365 Problems with requesting Features from a WFS Version 2.0.0 and using a HTTP proxy

GEOT-7367 Missing null-check in GeoPackage spatial index creation

Improvement

GEOT-7360 DWITHIN support for mongo DB

GEOT-7362 Multithreaded HTTP client: authentication not sent if connection pooling activated

Task

GEOT-7364 Bump sqlite-jdbc from 3.34.0 to 3.41.2.2

GEOT-7373 Bump hsqldb from 2.7.1 to 2.7.2

GEOT-7374 Upgrade Jackson to 2.15.2

GEOT-7375 Upgrade guava from 30.1.1 to 32.0.0

GEOT-7376 Upgrade postgresql from 42.4.3 to 42.6.0

GEOT-7378 Upgrade commons-lang3 from 3.8.1 to 3.12.0

Wish

GEOT-7332 Relicensing to LPGPL 2.1-or-later

Friday, May 26, 2023

GeoTools 29.1 Released

 The GeoTools team are pleased to announce the release of the latest stable version of GeoTools 29.1 

    geotools-29.1-bin.zip
    geotools-29.1-doc.zip
    geotools-29.1-userguide.zip
    geotools-29.1-project.zip

Improvements and fixes in this release

Bug

  • GEOT-7325 WMTS multi tile request is not compatible with RESTful servers
  • GEOT-7333 The result of linearization after creating circulararc is wrong
  • GEOT-7338 Child feature ClientProperties are duplicated on Complex features parent container elements from the child feature
  • GEOT-7340 Avoid PAMParser init causing ImageMosaic to fail
  • GEOT-7344 Child feature ClientProperties are duplicated on no-GML XML element parent container from the child elements

Thursday, May 4, 2023

GeoTools 27.5 Released

The GeoTools team is pleased to share the availability GeoTools 27.5:

This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.22.3 and GeoWebCache 1.22.2.

Improvements and fixes in this release

Bug

GEOT-7316 Child feature ClientProperties are replicated on GML parent container elements: gml:featureMember and wfs:member

GEOT-7318 Unit of measure not escaped in DWithin filter

GEOT-7325 WMTS multi tile request is not compatible with RESTful servers

GEOT-7327 TransformFeatureSource needs to transform FID filters too

GEOT-7331 ContentFeatureSource reprojection requirement check fails to resolve to false with two WGS84 CRS instances.

GEOT-7333 The result of linearization after creating circulararc is wrong

GEOT-7338 Child feature ClientProperties are duplicated on Complex features parent container elements from the child feature

GEOT-7340 Avoid PAMParser init causing ImageMosaic to fail

GEOT-7344 Child feature ClientProperties are duplicated on no-GML XML element parent container from the child elements

Task

GEOT-7310 Update Oracle JDBC driver to 19.18.0.0

GEOT-7317 Upgrade snakeyaml from 1.32 to to 2.0

GeoTools 28.3 Released


The GeoTools team is pleased to share the availability GeoTools 28.3:
This release is also available from the OSGeo Maven Repository and is made in conjunction with GeoServer 2.22.3 and GeoWebCache 1.22.2.

Improvements and fixes in this release

Bug

GEOT-7238 WFSContentComplexFeatureSource.getFeatures(Filter) creates a wrong Query

GEOT-7239 WFSContentDataAccess will fail when using HTTP POST

GEOT-7316 Child feature ClientProperties are replicated on GML parent container elements: gml:featureMember and wfs:member

GEOT-7318 Unit of measure not escaped in DWithin filter

GEOT-7324 NPE on WMTS single tile request on missing GetTile operation in capabilities

GEOT-7325 WMTS multi tile request is not compatible with RESTful servers

GEOT-7327 TransformFeatureSource needs to transform FID filters too

GEOT-7331 ContentFeatureSource reprojection requirement check fails to resolve to false with two WGS84 CRS instances.

GEOT-7333 The result of linearization after creating circulararc is wrong

GEOT-7338 Child feature ClientProperties are duplicated on Complex features parent container elements from the child feature

GEOT-7340 Avoid PAMParser init causing ImageMosaic to fail

GEOT-7344 Child feature ClientProperties are duplicated on no-GML XML element parent container from the child elements

Improvement

GEOT-7253 Create an ordinary WFSFactoryParam<String> of WFSDataStoreFactory:SCHEMA_CACHE_LOCATION

GEOT-7312 Add support for editable description in GeoServer customize feature type table

Task

GEOT-7310 Update Oracle JDBC driver to 19.18.0.0

GEOT-7317 Upgrade snakeyaml from 1.32 to to 2.0

Tuesday, March 14, 2023

GeoTools 29-RC1 released

 The GeoTools team is pleased to share the availability GeoTools 29-RC1 :

Improvements and fixes in this release

Bug

GEOT-6324 WFS-NG online tests don't extend OnlineTestCase
GEOT-7077 ClientProperty of a top element not showing
GEOT-7148 Bug in JoiningJDBCFeatureSource / FilterToSQL creates invalid SQL
GEOT-7208 Missing YSLD support for channel name expressions
GEOT-7210 YSLD styles does not parse/encode layer name
GEOT-7238 WFSContentComplexFeatureSource.getFeatures(Filter) creates a wrong Query
GEOT-7239 WFSContentDataAccess will fail when using HTTP POST
GEOT-7242 Simplification fails for geographic shapes in HANA
GEOT-7244 Constructor GridGeometry2D(Rectangle, Rectangle2D) looses CRS
GEOT-7246 GeoJSON writer throws NPE if no geometry is present in the feature being written
GEOT-7261 WFSContentComplexFeatureSource.getBounds will end up in StackOverflowException
GEOT-7268 GeoTools can create GML output that is not valid XML
GEOT-7292 Xml packages accessible from more than one module
GEOT-7293 java.sql package used in different modules
GEOT-7295 HANA plugin attempts to create polygons consisting of 2 points only
GEOT-7298 H2GIS doesn't return the proper srid for an existing table
GEOT-7316 Child feature ClientProperties are replicated on GML parent container elements: gml:featureMember and wfs:member

Improvement

GEOT-6914 AbstractWfsDataStoreOnlineTest bases service availability on the result of URL.openStream
GEOT-7209 Integrate H2GIS module and upgrade H2 database
GEOT-7220 Support datetime2 and datetimeoffset in JDBC SQL Server plugin
GEOT-7230 Implement a HINT parameter as part of the HANA plug-in
GEOT-7253 Create an ordinary WFSFactoryParam of WFSDataStoreFactory:SCHEMA_CACHE_LOCATION
GEOT-7259 Avoid Class.forName in CommonFactoryFinder.getFeatureFactory
GEOT-7260 Fixing omissions from GEOT-6324
GEOT-7265 GeoTools doc generation with external links for index page on 28.x branch
GEOT-7277 Expose assets as a selectable property in STACDataStore
GEOT-7279 Allow image mosaic to grab a subset of the feature properties in memory
GEOT-7286 Let SQLDialect decide whether to apply hints on virtual tables
GEOT-7294 Geometry simplification cannot be disabled in HANA plugin
GEOT-7314 Add OGC authority so that GeoTools can parse URIs such as "http://www.opengis.net/def/crs/OGC/1.3/CRS84"

Task

GEOT-7240 Remove deprecated constructor from WFSFeatureReader
GEOT-7276 Remove deprecated from gt-wmts
GEOT-7283 Update Batik to 1.16
GEOT-7288 upgrade javax.measure version to 2.1.3
GEOT-7290 Visual difference for ReprojectGoogleMercatorLargerThanWorld test on aarch64
GEOT-7310 Update Oracle JDBC driver to 19.18.0.0