GeoTools

OSGeo

Showing posts with label stable. Show all posts
Showing posts with label stable. Show all posts

Wednesday, June 10, 2026

GeoTools 35.0 released

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

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

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

Release notes

See Release Notes from 35.0

Bug

GEOT-5824 Cannot store a image mosaic index in a geopackage

GEOT-7625 SSL mode property is passed incorrectly in jdbc-postgis

GEOT-7645 Fallback method getDimensionFromFirstGeo() from PostGIS Dialect doesn't return the coordinate dimension

GEOT-7827 String literal enum value not wrapped in single quotes for SQL

GEOT-7835 Cannot read a GeoPackage with incomplete transaction from a readonly filesystem

GEOT-7840 ImageWorker addBands is not including the original source image

GEOT-7843 String literal enum values not wrapped in single quotes for filter chains

GEOT-7853 DateTimeParser uses 'mm' to select Month precison in long list of 'else if'

GEOT-7854 Support feature types without a CRS in the geometry column

GEOT-7863 MBStyle line-dasharray with zoom-interpolated line-width causes Java2D crash

GEOT-7874 ImageWorker is clipping nodata on rescale operation

GEOT-7876 CircularArc.linearize(...) can emit Infinity/NaN for collinear and near-collinear arcs

GEOT-7877 Fix json nested property access

GEOT-7891 Close the opened HTTP connection if the initialization of the WFSFeatureReader fails

GEOT-7894 NPE on GeoJSonDataStore#getFeatureSource() when schema is set, but typeName is null

GEOT-7899 Allow SimpleFeaturePropertyAccessorFactory to access any attribute in a simple feature

GEOT-7908 GeoTIFFWriter should provide a reference image when building the image output stream

GEOT-7912 Overview decimation bug in heterogeneous CRS mosaic with direct reproject path

Improvement

GEOT-7810 Migrate to ImageN

GEOT-7829 Using external datastore with app-schema

GEOT-7830 Support optional fixed "resolution" in DGGS datastores

GEOT-7849 Make WKTP optional for CSV encoding with WKTStrategy

GEOT-7850 Support common parameters in VectorMosaic for DGGS datastore wrapping delegate params

GEOT-7851 Support BLOB columns in GeoPackages

GEOT-7852 Refactor long list of 'if/else if' construct in GeoPkgDialect

GEOT-7855 Mosaic cleanup should remove wrapper config files and geopackage indexes

GEOT-7856 Errors from the chart plugin disappear.

GEOT-7857 Supporting Numeric zone identifier in DGGS.

GEOT-7858 Speed up GeoPackage setup and tests

GEOT-7859 Migrating to Jackson 3 for serializing geometric objects

GEOT-7865 ImageMosaic Supporting PamDataset stored in TIFFMetadata

GEOT-7871 GeoParquet: Rely on Covering bbox metadata for bbox filtering.

GEOT-7875 Support abs, ceil, floor, round Mapbox math expressions in mbstyle module

GEOT-7887 Register ImageN registry classes via RegistryAllowListProvider SPI for allowlist-based startup

GEOT-7895 Avoid not needed casts for JSON in jdbc-postgis plugin

GEOT-7897 Reduce thread contention while laying out labels

GEOT-7904 Clean up gt-arcgisrest dependencies

GEOT-7909 Improve PAM dataset merge handling for partial or inconsistent PAM inputs

New Feature

GEOT-7834 Update GeoPackage reader to support curved geometry types

GEOT-7847 Add AWS credential chain authentication support for GeoParquet S3 access

GEOT-7881 App-Schema: Add inter-schema support for JDBC joinning feature chaining and nested filtering

GEOT-7883 DefaultEntityResolver

Task

GEOT-6101 Upgrade SOLR dependency to latest stable (10.0.0)

GEOT-7825 Update MSSQL driver from 9.4.0.jre8 to 13.2.1.jre11

GEOT-7826 Update MySQL driver from 9.1.0 to 9.4.0

GEOT-7828 Migrate GeoTools to Jakarta EE 10

GEOT-7832 Migrate to ImageN 0.9.1 including renaming registryFile.jai to registryFile.imagen

GEOT-7833 Parse null valued GeoJSON properties to null instead of some default primitive values

GEOT-7836 Update PostgreSQL JDBC Driver from 42.7.7 to 42.7.8

GEOT-7838 Use SPDX license identifier in pom file

GEOT-7848 Move image mosaic over to GeoPackage

GEOT-7860 Update 'com.google.code.gson' dependency version

GEOT-7861 Update 'commons-jxpath' dependency version

GEOT-7868 Update ElasticSearch client to 9.3.0

GEOT-7878 Update PostgreSQL JDBC version to 42.7.10

GEOT-7879 Update Oracle JDBC driver to 23.26.1.0.0

GEOT-7880 Update MySQL JDBC driver to 9.6.0

GEOT-7886 Remove H2/DB based index and binary index from CoverageMultidim/NetCDF stores.

GEOT-7889 Remove gt-jdbc-h2

GEOT-7890 Upgrade to ImageIO-Ext 2.1.0 and ImageN 0.9.2

GEOT-7896 Update Jackson to 2.21.0

GEOT-7898 QA: Library wide use of GeoTools.getEntityResolver(hints)

GEOT-7901 NetCDF indexer handling of temporary direcrtory

GEOT-7911 Update sqlite-jdbc from 3.51.1.0 to 3.53.1.0

Monday, May 25, 2026

GeoTools 34.4 released

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

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

Please note that while this .4 was initially scheduled to be a maintenance version, it is still a stable version, pending the slightly delayed release of 35.x (for GeoServer 3.0.x)

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

Release notes

See Release Notes from 34.4

Bug

GEOT-7891 Close the opened HTTP connection if the initialization of the WFSFeatureReader fails

GEOT-7894 NPE on GeoJSonDataStore#getFeatureSource() when schema is set, but typeName is null

Improvement

GEOT-7895 Avoid not needed casts for JSON in jdbc-postgis plugin

New Feature

GEOT-7883 DefaultEntityResolver

Task

GEOT-7901 NetCDF indexer handling of temporary direcrtory

Thursday, July 17, 2025

GeoTools 33.2 released

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

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

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

Release notes

See Release Notes from 33.2

Bug

GEOT-7773 GeoJSONParser of gt-arcgisrest sets Id of each feature to "features"

GEOT-7774 PreventLocalEntityResolver prevents access to jar:nested resources

GEOT-7776 Image mosaic property collectors fail with a array access exception when the regex does not match

GEOT-7779 ImageMosaic read in a data hole returns data filled with zeros, should be using nodata instead

GEOT-7780 Contrast enhancement with clip to min/max loses input nodata

GEOT-7785 Bounds computation fails when a null geometry is present on SingleStore datastore

Improvement

GEOT-7765 Improve PropertyIsLike filter to work for numeric columns in postgres

GEOT-7781 Add a priority to property accessors

GEOT-7782 Allow usage of grouping aggregation as a rendering transformation

GEOT-7783 Reduce build times by parallelizing metadata integration tests

New Feature

GEOT-7767 Java UUID type support to geopkg dialect

Task

GEOT-7757 Disallow usage of var in GeoTools source code

GEOT-7775 Singlestore(MemSql) datastore

Monday, May 12, 2025

GeoTools 33.1 Released

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

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

Thanks to Jody Garnett (GeoCat) and Andrea Aime (GeoSolutions) for carrying out the release.

Release notes

Security Considerations

Release is made in conjunction with a security advisory CVE-2025-30220 below:

CVE-2025-30220 XML External Entity (XXE) Processing Vulnerability in XSD schema handling

GEOT-7760 CVE-2025-30220: XXE Processing Vulnerability in XSD schema handling (9.9 Critical)

Bug

GEOT-7715 GeoPackage data column constraint enums with string keys are not supported

GEOT-7720 Coordinates are truncated when encoding geometry

GEOT-7726 NPE in Transformer.getTransformedSortBy for SortBy.NATURAL_ORDER

GEOT-7743 HanaGeographyOnlineTest is failing after database upgrade

GEOT-7745 PagingFeatureCollection doesn't work as expected when used at a STAC collection

Improvement

GEOT-7742 Allow spreading the folders in NETCDF_DATA_DIR into a hierarchy

GEOT-7747 Add Hive partitioning support to GeoParquet DataStore

GEOT-7748 Improve CRS handling in GeoParquet with PROJJSON v0.7 schema support

Task

GEOT-7756 Update outdated http, irc, project and company references

Monday, January 27, 2025

GeoTools 32.2 Released

GeoTools 32.2 released

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

This release is also available from the OSGeo Maven Repositoryand is made in conjunction with GeoServer 2.26.2 and GeoWebCache 1.26.2.

We are grateful to Jody Garnett (GeoCat) for making this release, and everyone who contributed.

Release notes - GeoTools - 32.2

Bug

GEOT-7545 Wrong log level comparison in LogbackLogger#isLoggable

GEOT-7673 TransformFeatureCollection doesn't account for query properties

GEOT-7680 User UUID is not set

GEOT-7687 jsonPointer function converts numeric keys to numbers when used as key accessors

GEOT-7689 Logic filter equality checks incorrectly implemented

GEOT-7690 RasterAsPointCollection used as a rendering transformation does not play well with tiling

GEOT-7691 Contour rendering transformation with tiling and high oversampling might result in in broken contours

GEOT-7692 Allow raster to vector rendering transformations to oversample reads on demand

GEOT-7693 CenterLine process can leave gaps in the skeletonisation

GEOT-7698 GeoTIFF and image mosaic do not handle COGs with masks properly

GEOT-7702 Style doesn't match filter if there are more than one "or-combined" date filter on the same PropertyName (SLD)

GEOT-7706 Style doesn't match filter if there are more than one "or-combined" date filter on the same PropertyName (SLD)

GEOT-7708 Intersection test against curves can fail to return correct results, with PostGIS, due to accuracy issues

GEOT-7711 Incompatible sl4j and logback libraries result in class not found LoggingEventAware

Improvement

GEOT-7234 Implement `#getOptimizedBounds(...)` in SQLServerDialect

GEOT-7703 Allow usage of fullPath in most common mosaic property collectors

Task

GEOT-7677 Upgrade log4j to 2.24.1 and slf4j to 2.0.16

GEOT-7686 Update to Imageio-EXT 1.4.14

GEOT-7694 Update MySQL driver to 9.1.0

GEOT-7696 Apply Palantir Java format on GeoTools

GEOT-7701 Apply Palantir format on arcgis-rest module

GEOT-7704 Replace commons-httpclient with httpcomponents:httpclient

GEOT-7710 Update Logback from 1.3.12 to 1.5.14

Tuesday, November 19, 2024

GeoTools 32.1 released

GeoTools 32.1 released

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

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

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

Release notes

See Release Notes from 32.1

Bug

GEOT-7658 [MongoDB Plugin] The filter splitter may drop part of the filter

GEOT-7663 Rendering one way arrows based on external graphics results in mis-centered arrows

GEOT-7665 PointStackerProcess : first point is not taken into account to calculate Envelope min/max x/y

GEOT-7666 Parsing empty Rotation style element throws a ClassCastException

GEOT-7667 JDBCDataStore getAggregateValue is not JSONPointer aware when splitting the filters

GEOT-7669 ConcurrentModificationException in WMSCapabilities.getLayerList()

GEOT-7672 ElasticsearchDateConverter is not properly setting day of month when parsing Instants like 2024-10-04

GEOT-7674 Shapefile performance/memory usage regression: the DBF file is fully read in memory when reading features

Improvement

GEOT-7637 GetFeatures call of WFSContentComplexFeatureSource should set srs according to query

GEOT-7652 Avoid typename listing when NetCDF indexer file points to a single coverage

GEOT-7653 Cache CoordinateReferenceSystem hashcode, expensive to compute

GEOT-7654 Speed up reprojected rendering of large amounts of points

GEOT-7655 Exception trying to render curved labels with trailing newlines

GEOT-7656 Styles with large number of dynamic external graphics are bogged down by CQL parsing

GEOT-7657 TextSymbolizer rendering generates lots of TextStyle2D objects

GEOT-7659 Optimize font alternatives calculation

GEOT-7660 Rendering: build derived fonts in one shot

GEOT-7662 MBStyles translation of one way styles can be out of center, and upside down

GEOT-7671 Vector mosaic "count" implementation does not account for max features

Task

GEOT-7661 Fix spelling of geoemtry (geometry) in several places

GEOT-7685 Inclusion of CQL2 in release dependences occluded Jackson jars from release

Thursday, September 26, 2024

GeoTools 32.0 released

GeoTools 32.0 released

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

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

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

Security Considerations

This release of GeoTools addresses several security considerations:
  • CVE-2024-46991 (High 7.8)

Release notes

See Release Notes from 32.0

Bug

GEOT-7127 Error in read empty DBF

GEOT-7528 GeoPackage: Timestamp is not written correctly

GEOT-7537 GeoPackage TIMESTAMP must be DATETIME according to the GeoPackage spec

GEOT-7539 The latest tutorials link is broken in https://docs.geotools.org/

GEOT-7540 startIndex parameter is not passed in WFS store request

GEOT-7569 throw error while adding feature to FlatGeobuf featureStore

GEOT-7579 FlatGeobuf handle java.util.Date and iso correctness

GEOT-7589 Fix the JsonArrayDelegation for Postgres to support searching in root level array

GEOT-7590 Patterns containing "&" are broken when using LikeFilter

GEOT-7596 Reduce change of white line artifacts when performing high subsampling on read

GEOT-7611 WMS Client throws an ArrayIndexOutOfBoundsException when parsing attribution logoUrl element in invalid capabilities XML

GEOT-7626 ReferencedEnvelope CRS compatibility check is not recognizing equivalent ProjectedCRS. (identity transformation between source and target CRS)

GEOT-7642 some modules rely on transitive version of units-api

Improvement

GEOT-7422 Update java units "indriya" to version 2.2

GEOT-7546 Add AUTO code (97004) for Geostationary satellite projection

GEOT-7548 Renovate arcgisrest with dependency updates and code formatting

GEOT-7550 Try harder to reproject envelopes with projections having a complex valid area

GEOT-7557 Provide the ability for downstream applications (e.g. GeoServer) to append additional querystring parameters e.g. AuthKey to every request made by the HTTPClient

GEOT-7558 GeoPackage extension output contains field types that are not supported by GDAL

GEOT-7561 Proposal: Individual contributor clarification

GEOT-7565 Upgrade ImageIO-Ext to 1.4.10

GEOT-7571 Support updates for PostgreSQL json/jsonb columns

GEOT-7576 Make SchemaCache use the HttpClient from the GeoTools hints

GEOT-7586 GeoPackage output contains invalid field types when publishing content from other JDBCDataStore

GEOT-7614 support for postgres reWriteBatchedInserts

GEOT-7617 Add a max and a min merge mode for image mosaics

GEOT-7633 Move ZoomContext/ZoomContextFinder class set from YSLD to main

GEOT-7640 Improve the polygon label function for rectangular geometries, and automatically compute a sane tolerance

GEOT-7643 Add support for vector tile specific vendor options in SLD/CSS

GEOT-7647 Allow programmatic registration and de-registration of data stores factories

New Feature

GEOT-7544 MemoryMappedRandomAccessFile for NetCDF Reading

GEOT-7585 Adding css-uniqueRoleName

GEOT-7606 Support fast extent estimation in HANA provider

GEOT-7618 Create an unsupported graticules module

Task

GEOT-7547 Upgrade to NetCDF 5.5.3

GEOT-7566 Upgrade commons-io from 2.12.0 to 2.16.1

GEOT-7567 Upgrade guava from 32.0.0 to 33.2.0

GEOT-7573 Upgrade PostgreSQL driver from 42.7.2 to 42.7.3

GEOT-7574 Upgrade commons-text from 1.10.0 to 1.12.0

GEOT-7577 Upgrade jackson from 2.15.2 to 2.17.1

GEOT-7578 Upgrade snakeyaml from 2.0 to 2.2

GEOT-7588 Maven javadoc build fix for Java 11.0.22 and newer aggregate build

GEOT-7599 Update MySQL CI matrix (drop 5.7, add 8.4)

GEOT-7610 Bump EasyMock to 5.3.0

GEOT-7615 Update Jackson 2 libs from 2.17.1 to 2.17.2

GEOT-7622 Upgrade guava from 33.2.0 to 33.2.1

GEOT-7623 Upgrade commons-lang3 from 3.14.0 to 3.15.0

GEOT-7624 Upgrade junit from 4.13.1 to 4.13.2

GEOT-7639 Upgrade to JTS 1.20.0

GEOT-7648 Update to ImageIO-Ext 1.14.13

GEOT-7650 Update to JAI-EXT 1.1.27

Friday, July 19, 2024

GeoTools 31.3 released

 

GeoTools 31.3 released

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

This release is also available from the  OSGeo Maven Repository and is made in conjunction with GeoServer 2.25.3 

We are grateful to Ian Turton for carrying out the release on behalf of the team.

Summary of changes

See the full release notes from 31.3.

Release notes

Bug

GEOT-7127 Error in read empty DBF

GEOT-7589 Fix the JsonArrayDelegation for Postgres to support searching in root level array

GEOT-7590 Patterns containing "&" are broken when using LikeFilter

GEOT-7596 Reduce change of white line artifacts when performing high subsampling on read

Task

GEOT-7599 Update MySQL CI matrix (drop 5.7, add 8.4)

GEOT-7615 Update Jackson 2 libs from 2.17.1 to 2.17.2

Tuesday, June 18, 2024

GeoTools 31.2 Released

GeoTools 31.2 released

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

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

This is an unscheduled release provided to help teams address CVE-2024-36404. Details of this issue will be made available at the end of the month. This is in keeping with our coordinated vulnerability disclosure policy allowing projects sufficient time to upgrade.

We are grateful to Jody Garnett (GeoCat) for carrying out the release on behalf of the GeoCat Live product team.

Security considerations

This update is considered essential to address the following:

  • CVE-2024-36404 Remote Code Execution (RCE) vulnerability in evaluating XPath expressions (Critical 9.8)

Summary of changes

See Release Notes from 31.2.

Release notes

Bug

GEOT-7537 GeoPackage TIMESTAMP must be DATETIME according to the GeoPackage spec

GEOT-7580 Fix missing builder clear writing FlatGeobuf data

GEOT-7587 Improve handling of XPath expressions

Improvement

GEOT-7558 GeoPackage extension output contains field types that are not supported by GDAL

GEOT-7586 GeoPackage output contains invalid field types when publishing content from other JDBCDataStore

Task

GEOT-7582 Upgrade to ImageIO-EXT 1.4.11

GEOT-7588 Maven javadoc build fix for Java 11.0.22 and newer aggregate build

GEOT-7597 Upgrade to ImageIO-EXT 1.4.12

Thursday, May 23, 2024

GeoTools 31.1 Released

 GeoTools 31.1 released

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

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

Thanks to Jody Garnett (GeoCat) for making this release.

Update 2024-07-1: CVE-2024-36404 patch geotools-31.1-patches.zip

Summary of changes

See Release Notes from 31.1.

Release notes

Bug

GEOT-7532 GDALTestCase superfluous reports on missing test.zip

GEOT-7540 startIndex parameter is not passed in WFS store request

GEOT-7553 Vector mosaic store does not optimize filters using the default geometry name

GEOT-7568 GraphicLegendBuilder do not handle the symbols

GEOT-7570 Small features that cross the dateline may be interpreted as preflipped

Improvement

GEOT-7549 Update links to Java SE in generated javadocs

GEOT-7551 Vector mosaic: delegate count to granule stores

GEOT-7552 Improve flatgeobuf ability to quickly perform count/bounds

GEOT-7555 geojson-core is always using default date formatter

GEOT-7557 Provide the ability for downstream applications (e.g. GeoServer) to append additional querystring parameters e.g. AuthKey to every request made by the HTTPClient

GEOT-7563 Allow to recompute an image mosaic summary Raster Attribute Table

GEOT-7565 Upgrade ImageIO-Ext to 1.4.10

Task

GEOT-7566 Upgrade commons-io from 2.12.0 to 2.16.1

GEOT-7567 Upgrade guava from 32.0.0 to 33.2.0

GEOT-7573 Upgrade PostgreSQL driver from 42.7.2 to 42.7.3

GEOT-7574 Upgrade commons-text from 1.10.0 to 1.12.0

GEOT-7577 Upgrade jackson from 2.15.2 to 2.17.1

GEOT-7578 Upgrade snakeyaml from 2.0 to 2.2

Wednesday, January 24, 2024

GeoTools 30.2 Released

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

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

Update 2024-07-1: CVE-2024-36404 patch geotools-30.2-patches.zip

Release notes

See Release Notes from 30.230.130.0 and 30-RC

Bug

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

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

GEOT-7503 GeoTiffIIOMetadataDecoder doesn't support inf/-inf

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

GEOT-7510 GridCoverage Rendering's equality check on CRSs is not recognizing equal ProjectedCRS.

GEOT-7511 Regression in polygon marker fill

GEOT-7517 Cannot render rasters reprojecting from WGS84 to orthographic projection

GEOT-7518 SLD: Localized tag does not support namespace

GEOT-7519 SLD: i18n of rule title and abstract are lost when using the StyleBuilder

Improvement

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

Monday, January 24, 2022

GeoTools 26.2 Released

The GeoTools team is pleased to share the availability  GeoTools 26.2 

This release is also available from the  OSGeo Maven Repository and is made in conjunction with GeoServer 2.21.2
Update: Initial release was accidentially compiled with Java 11, and has been recompiled using Java 8 on Feburary 22, 2020.

Source code

The active GeoTools branches (main, 26.x and 25.x) now include a .gitattributes file specifying how linefeeds are handled for our repository. With this change you are no longer required to set global core.autocrlf=input to prevent conflict with other developers when editing text files.
A number of files with inconsistent line endings were cleaned up as part of this activity.
Use git reset as outlined below if encounter difficulty updating your checkout:
git pull --rebase
git reset --hard

Fixes and improvements

  • Release notes now attached to GitHub tag, no longer stored in Jira as this required a credentials to access
  • Rendering pre-process Mark Factories Hint available allowing improved performance
  • YSLD support for rule vendor options
For more information see the 26.2 Release Notes.

About GeoTools 26 Series

For more information see the release notes ( 26.2 | 26.1 | 26.0 | 26-RC).
  • main is now the default branch, repository now inclues .gitattributes file for consistent linefeed handling.
  • GML support improved with support for surface, multi curves, curved polygons and arcs with more than three control points
  • Krovak North Orientated, used for EPSG:5514

Sunday, July 18, 2021

GeoTools 25.2 Released

  The GeoTools team is pleased to announce the release GeoTools 25.2

GeoTools 25.2 is published to repo.osgeo.org for direct build integration. This release is made in conjunction with GeoServer 2.19.2.
Update 2024-07-1: CVE-2024-36404 patch geotools-25.2-patches.zip

Repackaged Downloads

The above GeoTools downloads have been repackaged to include html readme and license files, as part of this update some license files have been updated to reflect components used by the GeoTools library.

In addition the geotools-25.2-bin.zip release above has been repackaged with the following folder structure:
  • lib - geotools library, extensions and plugins
  • optional - plugins requiring additional configuration such as gt-epsg-postgresql and gt-epsg-wkt
  • licenses
  • src - tutorial Quickstart sample code
Using this setup geotools is now ready to try out of the box:

java -cp "lib/*" org.geotools.util.factory.GeoTools

And the Quickstart tutorial can be tried in a few lines of code:

mkdir bin
javac -cp "lib/*" -d bin src/org/geotools/tutorial/quickstart/Quickstart.java 
java -cp "lib/*:bin" org.geotools.tutorial.quickstart.Quickstart

These changes are intended to make it easier to try out GeoTools.

Release notes

From our issue tracker release notes:

Bug

GEOT-6921 GeoTools primary key finder always query the table gt_pk_metadata even if it doesn't exists

GEOT-6916 "WGS 84 / UPS South (N,E)" is rendered with flipped axis

GEOT-6912 Special characters in shp file name are not correctly encoded

GEOT-6899 Resource (CPU/Heap) starvation building shapefile spatial index

GEOT-6898 Read only GeoPackages fail when using the new GPKG application id

GEOT-6894 WMTS fails when initial url contains query parameters

GEOT-6172 Missing jars (units etc.) in geotools-20.0-bin.zip

GEOT-2972 Character set from CPG files

Improvement

GEOT-6938 Image mosaic: avoid sorting on CRS when doing a "dry run" check after finding no granules in the target area

GEOT-6918 Implement NowFunction

GEOT-6917 Add support for timeUnit on dateDifference function

GEOT-6902 Improve NetCDF datasets access performances with caching

GEOT-6900 Shapefile quadtree build performance

GEOT-6891 GeoTIFF Writer should unwrap an outputStreamAdapter to get the underlying ImageOutputStream

GEOT-6877 Upgrade to imageio-ext 1.3.6 (tiff 32 bit with deflate/lzw support)

About GeoTools 25 Series 

For more information see the release notes ( 25.225.125.025-RC ).
  • Repackaged downloads with html readme and license files and ready-to-use bin download
  • New gt-http module, allowing gt-wms and gt-wps-client to use your choice of http library
  • Massive code-cleanup with PMD integrated into our build chain
  • Quality of life improvements with increased use of variable arguments, abd revised Map<String?> datastore connection parameters.

Wednesday, January 20, 2021

GeoTools 24.2 released

   The GeoTools team is pleased to share the availability of GeoTools 24.2 :

This release is published to the osgeo maven repository, and is made in conjunction with  GeoServer 2.18.2. This is a stable release and is a recommended upgrade for all users of the GeoTools library.

We would like to thank everyone who contributed to this release. The large number of fixes this release are in part to participation in a bug fix sprint organized by GeoSolutions.

Improvements and Fixes

From our issue tracker release-notes :
  • Support for ImageIO-ext based COG readers landed in this release, both for stand-alone GeoTiff and image mosaics (make sure to have the necessary dependencies in the classpath)
  • Ability to limit oversampling while reprojecting rasters, when accurate resolution computation is enabled (on by default)
  • MySQL 8 spatial functions are now supported
  • A bunch of dependencies have been upgraded, including the MySQL JDBC driver, sqlite JDBC (used by GeoPackage), Batik, Apache HTTP components, Guava
  • Other assorted but fixes to shapefile readers, PostGIS datastore, WMTS cascading, the CSS module, and more, check the release-notes for full details.

About GeoTools 24 Series

For more information see the release notes (24.224.1 | 24.0 | 24-RC ).

Tuesday, July 21, 2020

GeoTools 23.2 Released

The GeoTools team is pleased to share the availability of   GeoTools 23.2 :
This release is published to the osgeo maven repository, and is made in conjunction with  GeoServer 2.17.2 . This is a stable release and is a recommended upgrade for all users of the GeoTools library.

We would like to thank everyone who contributed to this release. The large number of fixes this release are in part to participation in a bug fix sprint organized by GeoSolutions.

Improvements and Fixes

Public service announcement:
  • The ogr-bridj module has been removed, it had not been released for sometime.
From our issue tracker  release-notes :
  • New! ImageMosaic can now be used with SQL Server index
  • New! PostgreSQL translate jsonPointer function directly SQL
  • GeoPackage support for long integers, and raster tables with special characters in the name
  • Rendering fix when using high oversample combined with reprojection and rendering transformations
  • Rendering fix for composition when when of the layers has a null image
  • WMTS scale fix when requesting tiles
  • WKB FootprintLoader fix when being used by multiple concurrent requests
  • Fix wfs client to avoid duplicate SRS entries for WFS 2.0.0 Layer
  • Fix 16 bits colormap to RGB expansion results for better PNG24 bit encoding
  • WMTS client fix replacing {style} placeholder in getCapabilties document, also more forgiving when parsing ContactInfo and Internationalized Strings.
  • DecoratingFeatureCollection now delegates visitors to wrapped FeatureCollection
  • Shapefile write fails now handles MULTIPOLYGON EMPTY geometries
  • WrappingProjectionHandler::accumulate method fixed to support mixed Geometry typed GeometryCollection
  • WFS-NG GetFeature GET request URL encoding no longer assumed to be UTF-8.
  • Image mosaic STACK merge mode restored
  • Addressed a performance issue with the URL converter "data:" protocol converter accepts any schema without validation
  • Updated versions forEMF, PostgreSQL JDBC Driver, and MongoDB Driver.

About GeoTools 23 Series

GeoTools 23: For more information see the release notes ( 23.2 | 23.1 | 23.0 |  23-RC )

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: