GeoTools

OSGeo

Wednesday, October 15, 2025

GeoTools 34.0 Release

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

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

This is a major update:

  • The library now requires Java 17, ending support for Java 11
  • Upgrade from Java Advanced Imaging Library 1.1.3 to Eclipse ImageN 0.9.0.
  • Library now provides a maven bill-of-materials import for both library modules and third-party-dependences making it considerably easier for downstream projects to synchronize dependences when upgrading GeoTools
  • For more information please see upgrade instructions in the user manual

Thanks to Jody Garnett (GeoCat) for making this release, Gabriel Roldan (Camptocamp) for all the build improvements, and Andrea Aime (GeoServer) for working so hard on the Eclipse ImageN migration.

These major library updates were undertaken as part of the GeoServer 3 activities, and we would like to the crowdfunding sponsors their financial support.

Release notes

Improvement

GEOT-7763 Migrate use JAITools to JAI-Ext

GEOT-7821 Add PMTiles DataStore module for reading Protomaps vector tiles

GEOT-7823 Migrate to ImageN 0.9.0 and ImageIO Ext 2.0.0

GEOT-7747 Add Hive partitioning support to GeoParquet DataStore

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

GEOT-7764 Migrate GeoTools to Java 17

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

GEOT-7781 Add a priority to property accessors

GEOT-7783 Reduce build times by parallelizing metadata integration tests

GEOT-7800 Add PlateCarree support ProjectionHandler for better wrapping on dateline

GEOT-7803 s3-geotiff: broken for custom server (such as minio) - region must be configured

GEOT-7804 Support System Property SKIP_EXTERNAL_FILES_LOOKUP on ImageMosaic too

GEOT-7814 Upgrade codebase to Java 17 language features

GEOT-7815 Code changes for GSIP 234 - Advertise and Enforce Attribute Restrictions

New Feature

GEOT-7767 Java UUID type support to geopkg dialect

GEOT-7777 Add a downstream QA build

GEOT-7784 Add support for min/max scale denominator in FeatureTypeStyle

GEOT-7792 Add Thin Plate Spline 2D Transformation Support

Bug

GEOT-7069 Java 17 - IllegalAccessError with JAI RasterAccessor

GEOT-7816 Quality Degradation in Scanned Map Rendering (GeoServer 2.25.3 onward)

GEOT-7516 gt-tpk-30.0 do not support "GB2312" charset of tpk file

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

GEOT-7750 WMTSCapabilities: Legend URLs in Styles not processed

GEOT-7761 SerializableRenderedImage usage removal

GEOT-7762 Remove usage of JAI ScrollingImagePanel

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

GEOT-7787 Boolean attributes don't get stored as a true boolean in geopackages

GEOT-7801 Can't read files of type "Polygon Measure" as opposed to "3D polygon Measure"

Task

GEOT-7438 Create source=17 build for github actions

GEOT-7439 Update code formatter for JDK 17 compatibility

GEOT-7819 GeoTools ImageN update for JAI to ImageN Rename of classes and constants

GEOT-7766 Migrate ZonalStats to JAI-Ext API

GEOT-6772 License in pom.xml files does not specify the LGPL version and URL redirects to the wrong one

GEOT-7757 Disallow usage of var in GeoTools source code

GEOT-7758 Upgrade ErrorProne to 2.31.0

GEOT-7768 Remove unecessary javac lint suppressions

GEOT-7769 Update to PMD 7.14 and enable unecessary suppression rule

GEOT-7775 Singlestore(MemSql) datastore

GEOT-7796 Support native Bands selection on GDAL plugin

GEOT-7797 add support to Skip duplicates in ImageMosaic loading

GEOT-7813 Upgrade Oracle JDBC driver to Java 17, release 23.9.0.25.07

GEOT-7817 Update to ImageN 0.4.0 and ImageIO-Ext 2.0.0-M0

GEOT-7818 coverage-multidim slowed down build with additional / invalid unidata repository