← Back to all sparks
G

GeoTools

DEVOPS
Velocity0.0

Java library providing tools for geospatial data manipulation and rendering

GeoTools is migrating off dead Java imaging infrastructure that the whole GeoServer stack sits on

geospatialjavaimagen-migrationgeoparquetmulti-branch-releasesgeoserver
Current state
GeoTools runs three release branches at once — 33.x for Java 11, 34.x for Java 17, and now 35.0 — with the same GEOT ticket numbers appearing across all of them as fixes get backported. The 34.0 release in October 2025 made Java 17 the stable line; 35.0 in June 2026 is the structural one, migrating the raster core to ImageN, moving to Jakarta EE 10 and Jackson 3, and dropping the H2-based indexes and gt-jdbc-h2 entirely. Cloud-native formats are the other active area: GeoParquet, PMTiles and DGGS support have all arrived within the last year.
Where it's heading
The library is replacing foundations it can no longer maintain. Java Advanced Imaging has been unmaintained for well over a decade, and the move to ImageN — staged across 34.0's JAITools-to-JAI-Ext step and 35.0's full migration — is the exit from that dependency. The same pass removes H2, upgrades every JDBC driver in the tree, and standardises entity resolution across the library. Format work runs alongside it and points at object storage: GeoParquet with AWS credential-chain auth and covering-bbox filtering, PMTiles reading, curved geometries in GeoPackage.
Prediction
With ImageN and Jakarta EE 10 landed in 35.0, expect the 35.x patches to be dominated by fallout from those migrations in the raster and mosaic paths, where the release already shows reprojection and overview-decimation bugs. The 33.x Java 11 branch is receiving only backports and looks close to retirement.

Recent moves

  1. 2mo ago

    GeoTools 35.0 migrates to ImageN and Jakarta EE 10, drops H2

    ⚡ SPARK

    The release that finally moves GeoTools off Java Advanced Imaging, the unmaintained library its raster stack has rested on for decades. Jakarta EE 10, Jackson 3, curved geometries in GeoPackage and GeoParquet covering-bbox filtering arrive in the same pass, alongside the removal of gt-jdbc-h2 and the H2-based NetCDF indexes.

    View source ↗
  2. 2mo ago

    GeoTools 34.4 adds DefaultEntityResolver, fixes WFS connection leak

    A small maintenance release on the Java 17 branch, notable mainly for DefaultEntityResolver — part of the library-wide entity-resolution standardisation that 35.0 finishes. The WFSFeatureReader fix closes an HTTP connection that leaked when initialization failed.

    View source ↗
  3. 5mo ago

    GeoTools 33.5 backports ImageMosaic PamDataset support

    A single-item release on the Java 11 maintenance branch, carrying one ImageMosaic improvement that also appears in 35.0. Typical of how thin the 33.x line has become.

    View source ↗
  4. 6mo ago

    GeoTools 34.2 adds AWS credential chain auth for GeoParquet on S3

    AWS credential-chain authentication for GeoParquet S3 access is the substantive addition, letting deployments read cloud-hosted tables without embedded keys. The rest is a backport set — SSL mode in jdbc-postgis, SQL enum quoting, MBStyle dasharray crashes — that recurs almost line for line in 33.4.

    View source ↗
  5. 7mo ago

    GeoTools 33.4 backports PostGIS and GeoPackage fixes to Java 11

    Six bug fixes and three improvements, nearly all of them the same GEOT tickets shipped in 34.2 a month later. This is the backport channel doing its job rather than independent work.

    View source ↗
  6. 9mo ago

    GeoTools 34.0 makes Java 17 stable and adds a PMTiles datastore

    The Java 17 line becomes the stable release, closing a long-running epic to support JDK 17 alongside 11. The JAITools-to-JAI-Ext migration and the move to ImageN 0.9.0 are the first steps of the imaging replacement that 35.0 completes, while a PMTiles datastore adds reading of Protomaps vector tiles.

    View source ↗