Monday, May 30, 2022

GeoTools 27.0 Released

The GeoTools team is pleased to share the availability GeoTools 27.0 

Improvements and fixes in this release

New Feature

  • GEOT-7104 Clarify GeoTools.init() workflow and logging setup and configuration
  • GEOT-7100 Migrate Log4JLoggerFactory to reload4J library
  • GEOT-7099 Introduce LogbackLoggerFactory for integration with SLF4J API
  • GEOT-7054 Like Query Support for GeoPackage
  • GEOT-7053 TransformFeatureCollection visitor delegation can result in infinite recursion
  • GEOT-7050 VSI Virtual File System support
  • GEOT-7019 Add AppSchema support for GeoPackage
  • GEOT-6988 Add process to provide a centre line to label irregular polygons
  • GEOT-6875 Add DataStore plugin for Informix

Improvement

  • GEOT-7131 Clarify ImageMosaic documentation with an example
  • GEOT-7129 Allow StreamingParser to set the entity resolver
  • GEOT-7132 Disable external entities in PullParser
  • GEOT-7123 GridCoverageRenderer should crop coverages to valid projection area also in the “paint a coverage” path
  • GEOT-7119 Clean up GeoHashGridProcessParameters, make it work properly with tiling
  • GEOT-7118 Allow GeoHashGridProcess to default the grid aggregation definition
  • GEOT-7111 Allows UniqueVisitor to select multiple features’ attributes
  • GEOT-7102 ElasticSearch plugin move aggregation creation from view parameters to Rendering Transformation parameter
  • GEOT-7098 Harden use of regular expressions in Filters and Functions
  • GEOT-7091 ClippingFeatureCollection won’t handle input feature types with generic Geometry columns
  • GEOT-7089 CQL-JSON needs to be updated to support the current state of CQL2
  • GEOT-7075 The jsonPointer function is currently being tested against json columns. Make it work properly against jsonb ones too
  • GEOT-7058 WMTS documentation and examples
  • GEOT-7044 WMTSTileService should use WebMapTileServer to load images
  • GEOT-7041 Add an optional parameter to the PointStacker process to allow a filter to be applied
  • GEOT-7039 Single Points returned from PointStacker should optionaly contain the original attributes
  • GEOT-7035 Add ability to provide the desired database type name when creating a schema in JDBC stores
  • GEOT-7031 Elasticsearch geohash process can fail with NPE in invertQuery
  • GEOT-7028 GetTile request’s in WMTS represents one single tile, not a set
  • GEOT-7014 Move functionality for filtering tiles by the layer’s tileMatrixLimits
  • GEOT-7013 Remove deprecated functions from gt-wmts
  • GEOT-7011 GeoPackage WKB and contents min/max axis order issue
  • GEOT-7009 New hint to stop GeoTiffReader from looking into overviews
  • GEOT-7006 GeoJSONDataStore inefficient handling of ObjectMapper
  • GEOT-7005 Image mosaic, allowing turning off external overview lookups
  • GEOT-7004 Image mosaic, extend multithreaded granule loading
  • GEOT-7003 Image mosaic: allow harvesting from COG URIs (e.g., gsutil style gs://bucket/name)
  • GEOT-7002 Add support for COGs stored in Google Cloud
  • GEOT-6996 Add bands function to extract number of bands from a coverage or image
  • GEOT-6989 Replace method addTileToCache of org.geotools.tile.TileService
  • GEOT-6964 Java 17 compatibility
  • GEOT-5625 Add config level for log4jlogger

Bug

  • GEOT-7143 ElasticSearch GeoHash aggregation does not work when “scrolling” is enabled in the data store config
  • GEOT-7142 ElasticSearch GeoHash aggregation does not work on renamed geometry attributes
  • GEOT-7141 GeoTIFF mask/overview lookup should default to GeoTIFF format
  • GEOT-6888 PostGIS - fixed columns lengths when using prepared statements
  • GEOT-7135 FastBBOX Class cast exception when evaluating on ComplexFeatures
  • GEOT-7125 GetSingleTileRequest doesn’t include TIME in url
  • GEOT-7124 WMTSCoverageReader isNativelySupported should check for equality in CRS rather than SRS
  • GEOT-7122 Visual artifacts when reprojecting ES GeoHashGrid process output
  • GEOT-7110 Special characters in style names cause malformed GetTileRequests when cascading WMTS
  • GEOT-7105 GeoJSON parser fails on strings that can be parsed as a long, but not as an int
  • GEOT-7090 GeoPackage attempts to read from non-existent columns
  • GEOT-7088 Fix shapefile resource leaks
  • GEOT-7087 The number format function should use the machine default not English
  • GEOT-7079 Downgrade jt-jdbc-teradata to unsupported
  • GEOT-7078 Use first style of WMTS layer’s without isDefault set
  • GEOT-7076 Cannot use a start sql script with curly braces that are not in the format of an env variable
  • GEOT-7074 SLD or CSS filter rules using a non existent attribute named ‘type’ causes a generic ClassCastException instead of a specific exception with the right message
  • GEOT-7073 GeoPackage store fails to use spatial indexes when multiple BBOX filters are used at the same time
  • GEOT-7070 In CQL2 “id” is not a reserved word
  • GEOT-7066 ECQL cannot parse geometry predicates using ENVELOPE
  • GEOT-7065 WKTReader2 can’t read EMPTY geometries
  • GEOT-7062 Update pom of gt-arcgisrest
  • GEOT-7061 GrowableInternationalString.getLocales() is fixed to the values of its first invocation
  • GEOT-7060 Count query Prepared Statements values are not set
  • GEOT-7052 OperationsMetadata is optional for RESTful WMTS
  • GEOT-7051 ContourProcess doesn’t extract GridCoverage2D NoData properties
  • GEOT-7040 Don’t linearize warp transformations while oversampling
  • GEOT-7036 WMTS reader doesn’t reproject result
  • GEOT-7034 ImageWorker can error with width=0 while processing images with alpha
  • GEOT-7033 xs:boolean feature mapping error on WFS/GML3+ using Oracle db
  • GEOT-7030 Missing YSLD support for rule vendor options
  • GEOT-7027 Invalid number format when writing geojson features.
  • GEOT-7026 Implement a rendering transformation that returns the granule footprints from a structured reader
  • GEOT-7025 Center is spelt wrong in org.geotools.process.ProcessFactory
  • GEOT-7024 Extend GeoPackage process XSD definition to support arbitrary request parameters for tile layers
  • GEOT-7015 GroupByVisitor JDBC optimization fails on JDBC stores when grouping over geometries
  • GEOT-7001 XmlComplexFeatureParser gives wrong name for ComplexAttribute
  • GEOT-6998 MinVisitor and MaxVisitor avoid NullPointerException and don’t assume Integer
  • GEOT-6997 Improve JiffleProcess support for variable output bands
  • GEOT-6995 StreamingRenderer - Exception when shapefile features (3D points) get loaded into memory and displayed in a 2D coordinate system
  • GEOT-6994 User-Agent must be specified in MultithreadedHttpClient
  • GEOT-6993 Support for multiple CRS in reprojection and application schemas
  • GEOT-6990 TWKB VarInt decoding for PostGIS is limited to 32-bit
  • GEOT-6977 Elasticsearch plugin online tests fail when running with Java 11
  • GEOT-6967 ImageWorker “illegal reflective access” with Java 11++
  • GEOT-6961 WFSContentComplexFeatureSource.getFeatures must use correct namespace
  • GEOT-6887 Bring GeoJsonWriter/GeoJsonReader on par with gt-geojson with handling of empty collections, arrays, lists, datetime and boolean
  • GEOT-6869 MultiSurface not encoded in DWithin filter
  • GEOT-5192 NPE occurs while writing features’ collection to GeoJSON where features have EmptyGeometry.

Task

  • GEOT-7146 Upgrade jai-ext to 1.1.23
  • GEOT-7113 Update jai-ext to 1.1.22
  • GEOT-7101 Update Jackson to 2.13.2
  • GEOT-7086 Introduce Log42JLoggerFactory for integration with Log4j 2 API
  • GEOT-7085 Update GT Pom to depend on ImageIO-EXT 1.4.0 and GDAL 3.2
  • GEOT-7080 Update PMD to v 6.42
  • GEOT-7068 Switch automatic formatting and check to Spotless
  • GEOT-7063 New gt-cql2-text unsupported community module
  • GEOT-7057 Remove junit compile time transitive dependency from json-simple
  • GEOT-7056 Integrate jacoco code coverage in GeoTools
  • GEOT-7055 Split gt-geojsonstore in two modules, gt-geojson-core and gt-geojson-store
  • GEOT-7042 Upgrade jdom dependency
  • GEOT-7038 Update optional log4j support to a version that does not support RCE
  • GEOT-7021 Run ElasticSearch integration tests in GitHub actions
  • GEOT-7018 Remove unnecessary warning suppressions
  • GEOT-7017 Upgrade to ErrorProne 2.10.0
  • GEOT-7010 Update ErrorProne to 2.9.0