24.2. Version 6.0.0

24.2.1. Minimum Java Version

With the latest versions of GeoTools and GeoServer, Java 17 is now the minimum required version.

24.2.2. Accumulo Version Support

GeoMesa no longer supports Accumulo 2.0. Users should upgrade to Accumulo 2.1.4.

24.2.3. NiFi Version Support

GeoMesa no longer supports NiFi 1.x. Users should upgrade to the latest NiFi 2.x.

24.2.4. Kafka Zookeeper Deprecation

As Kafka 4+ no longer supports Zookeeper, GeoMesa has deprecated support for using Zookeeper with the Kafka data store. See Migration from Zookeeper for details on migrating.

24.2.5. FileSystem Data Store Compatibility

The file system data store has been substantially rewritten to improve performance. As part of this, the Orc file format is no longer supported, and the Parquet file format is only supported if created with GeoMesa version 5.3.0 or later. For supported formats, layers must be migrated by re-creating the schema using the latest GeoMesa version, and then re-registering the existing data files using the manage-metadata register CLI command.

24.2.6. Default Secondary Attribute Index Changes

When creating attribute indices, the default secondary index will now be a date-only index, instead of a spatio-temporal index (e.g. attr:foo:dtg instead of attr:foo:geom:dtg). The old behavior can still be achieved by configuring secondary attributes - see Specifying the Indices to Include for details.

24.2.7. Dependency Version Upgrades

The following dependencies have been upgraded:

  • arrow 18.3.0 -> 19.0.0

  • avro 1.11.4 -> 1.12.1

  • commons-codec 1.17.1 -> 1.18.0

  • commons-lang 3.15.0 -> 3.20.0

  • commons-logging 1.3.3 -> 1.3.5

  • commons-text 1.12.0 -> 1.13.0

  • geotools 33.2 -> 34.2

  • hadoop 3.4.2 -> 3.5.0

  • jackson 2.19.0 -> 2.21.1

  • jcommander 1.82 -> 3.0

  • kafka 3.9.0 -> 3.9.2

  • micrometer 1.15.4 -> 1.16.4

  • nifi 2.6.0 -> 2.9.0

  • parquet 1.15.2 -> 1.17.0

  • postgresql 42.7.7 -> 42.7.11

  • prometheus 1.4.1 -> 1.5.1

  • rhino 1.7.14 -> 1.8.1

  • scala 2.12 2.12.19 -> 2.12.20

  • scala 2.13 2.13.12 -> 2.13.16

  • sedona 1.8.0 -> 1.8.1

  • sizeof 0.4.3 -> 0.4.4

  • spark 3.5.5 -> 3.5.7

  • zookeeper 3.9.3 -> 3.9.5

24.2.8. StrategyDecider API Update

The org.locationtech.geomesa.index.planning.StrategyDecider API has been changed slightly to provide more context for implementations to use. The old API method has been deprecated and will be removed in a future version.

24.2.9. Spark Runtime JAR Changes

The various GeoMesa Spark runtime JARs have changed Maven coordinates, and now use a runtime classifier:

  • org.locationtech.geomesa:geomesa-accumulo-spark-runtime-accumulo21_2.12:jar -> org.locationtech.geomesa:geomesa-accumulo-spark_2.12:jar:runtime

  • org.locationtech.geomesa:geomesa-fs-spark-runtime_2.12:jar -> org.locationtech.geomesa:geomesa-fs-spark_2.12:jar:runtime

  • org.locationtech.geomesa:geomesa-gt-spark-runtime_2.12:jar -> org.locationtech.geomesa:geomesa-gt-spark_2.12:jar:runtime

  • org.locationtech.geomesa:geomesa-hbase-spark-runtime-hbase2_2.12:jar -> org.locationtech.geomesa:geomesa-hbase-spark_2.12:jar:runtime

24.2.10. Removed Modules

The following modules have been removed:

  • geomesa-accumulo-spark-runtime-accumulo21 (see above)

  • geomesa-fs-spark-runtime (see above)

  • geomesa-fs-storage-api

  • geomesa-fs-storage-common

  • geomesa-fs-storage-orc

  • geomesa-fs-storage-orc-io

  • geomesa-gt-spark-runtime (see above)

  • geomesa-hbase-spark-runtime-hbase2 (see above)

  • geomesa-metrics-core

  • geomesa-metrics-cloudwatch

  • geomesa-metrics-graphite

  • geomesa-metrics-prometheus

  • geomesa-process-wps

  • geomesa-zk-utils

The following JAR classifiers are no longer published:

  • geomesa-accumulo-datastore:tests

  • geomesa-fs-datastore:tests

  • geomesa-hbase-datastore:tests

  • geomesa-index-api:tests

  • geomesa-kafka-datastore:tests

  • geomesa-tools:data

24.2.11. Deprecated Classes

  • org.locationtech.geomesa.fs.data.FileSystemDataStoreFactory.FileSystemDataStoreParams - replaced with org.locationtech.geomesa.fs.data.FileSystemDataStoreParams

  • org.locationtech.geomesa.fs.storage.common.observer.FileSystemObserverFactory - replaced with org.locationtech.geomesa.fs.storage.api.observer.FileSystemObserverFactory

  • org.locationtech.geomesa.security.SecureSimpleFeature

  • org.locationtech.geomesa.utils.stats.Cardinality - replaced with org.locationtech.geomesa.utils.index.Cardinality

  • org.locationtech.geomesa.utils.stats.IndexCoverage - replaced with org.locationtech.geomesa.utils.index.IndexCoverage

24.2.12. Deprecated Methods

  • org.locationtech.geomesa.index.api.GeoMesaFeatureIndexFactory.available

  • org.locationtech.geomesa.index.api.GeoMesaFeatureIndexFactory.indices

  • org.locationtech.geomesa.index.planning.StrategyDecider.selectFilterPlan

24.2.13. Removal of Nailgun Support

The command-line tools no longer support using Nailgun to run a persistent service. Nailgun is no longer maintained, and doesn’t work with current Java versions.

24.2.14. Internal API Changes

GeoMesa does not have a well-defined public API. This section details classes and methods that have been changed or removed, but are not meant to be publicly available.

24.2.14.1. Relocated Classes

  • org.locationtech.geomesa.features.exporters.FileSystemExporter.ParquetFileSystemExporter -> org.locationtech.geomesa.features.exporters.GeoParquetExporter

  • org.locationtech.geomesa.fs.storage.common.AbstractFileSystemStorage.FileSystemPathReader -> org.locationtech.geomesa.fs.storage.api.FileSystemStorage.FileSystemPathReader

  • org.locationtech.geomesa.fs.storage.parquet.ParquetFileSystemStorage.ParquetFileSystemWriter -> org.locationtech.geomesa.fs.storage.parquet.io

  • org.locationtech.geomesa.fs.storage.parquet.ParquetPathReader -> org.locationtech.geomesa.fs.storage.parquet.io.ParquetFileSystemReader

  • org.locationtech.geomesa.fs.storage.parquet.SimpleFeatureParquetWriter -> org.locationtech.geomesa.fs.storage.parquet.io

  • org.locationtech.geomesa.index.planning.QueryPlanner.CostEvaluation -> org.locationtech.geomesa.index.planning.StrategyDecider.CostEvaluation

  • org.locationtech.geomesa.utils.index.SizeSeparatedBucketIndex -> org.locationtech.geomesa.memory.index.impl

  • org.locationtech.geomesa.utils.index.BucketIndex -> org.locationtech.geomesa.memory.index.impl

  • org.locationtech.geomesa.utils.index.WrappedQuadTree -> org.locationtech.geomesa.memory.index.impl

  • org.locationtech.geomesa.utils.index.WrappedSTRtree -> org.locationtech.geomesa.memory.index.impl

  • org.locationtech.geomesa.utils.iterators.SimplePlaybackIterator -> org.locationtech.geomesa.kafka.tools.ingest

  • org.locationtech.geomesa.utils.iterators.SortedMergeIterator -> org.locationtech.geomesa.index.view

  • org.locationtech.geomesa.utils.kryo.NonMutatingInput -> org.locationtech.geomesa.features.kryo.impl

  • org.locationtech.geomesa.utils.metrics.MetricsTags -> org.locationtech.geomesa.metrics.micrometer.utils.TagUtils

  • org.locationtech.geomesa.utils.stats -> org.locationtech.geomesa.index.stats and org.locationtech.geomesa.index.stats.impl

24.2.14.2. Removed Classes

  • org.locationtech.geomesa.accumulo.index.IndexValueEncoder

  • org.locationtech.geomesa.accumulo.util.TableUtils

  • org.locationtech.geomesa.convert2.metrics.ConverterMetrics

  • org.locationtech.geomesa.convert2.validators.IdValidator

  • org.locationtech.geomesa.features.exporters.FileSystemExporter

  • org.locationtech.geomesa.filter.index.BucketIndexSupport

  • org.locationtech.geomesa.filter.index.SizeSeparatedBucketIndexSupport

  • org.locationtech.geomesa.fs.storage.common.AbstractFileSystemStorage.FileSystemPathReader

  • org.locationtech.geomesa.gt.partition.postgis.dialect.tables.PartitionTablespacesTable

  • org.locationtech.geomesa.hbase.utils.HBaseVersions

  • org.locationtech.geomesa.index.planning.LocalQueryRunner.LocalTransformReducer

  • org.locationtech.geomesa.metrics.micrometer.MicrometerSetup

  • org.locationtech.geomesa.security.VisibilityEvaluator

  • org.locationtech.geomesa.tools.utils.StorageJobUtils

  • org.locationtech.geomesa.utils.cache.ByteArrayCacheKey

  • org.locationtech.geomesa.utils.cache.FilePersistence

  • org.locationtech.geomesa.utils.cache.PropertiesPersistence

  • org.locationtech.geomesa.utils.collection.AtomicBitSet

  • org.locationtech.geomesa.utils.collection.ConcurrentHashSet

  • org.locationtech.geomesa.utils.collection.MaybeSynchronized

  • org.locationtech.geomesa.utils.collection.SelfClosingIterator

  • org.locationtech.geomesa.utils.collection.TieredOrdering

  • org.locationtech.geomesa.utils.conversions.ScalaImplicits

  • org.locationtech.geomesa.utils.geohash.CoveringGeoHashes

  • org.locationtech.geomesa.utils.geohash.GeomDistance

  • org.locationtech.geomesa.utils.geohash.VincentyModel

  • org.locationtech.geomesa.utils.geometry.DistanceCalculator

  • org.locationtech.geomesa.utils.index.SpatialIndexSupport

  • org.locationtech.geomesa.utils.index.SynchronizedQuadtree

  • org.locationtech.geomesa.utils.io.ByteBuffers

  • org.locationtech.geomesa.utils.iterators.PlaybackIterator

  • org.locationtech.geomesa.utils.metrics.Timing

  • org.locationtech.geomesa.utils.metrics.Timings

  • org.locationtech.geomesa.utils.metrics.TimingsImpl

  • org.locationtech.geomesa.utils.stats.AutoLoggingTimings

  • org.locationtech.geomesa.utils.stats.CountingInputStream

  • org.locationtech.geomesa.utils.stats.NoOpTimings

  • org.locationtech.geomesa.utils.stats.ThreadSafeTimingsImpl

  • org.locationtech.geomesa.utils.text.ObjectPoolFactory

24.2.14.3. Removed Methods

  • org.locationtech.geomesa.accumulo.data.AccumuloDataStoreFactory - various system properties

  • org.locationtech.geomesa.accumulo.data.AccumuloDataStoreParams.InstanceIdParam

  • org.locationtech.geomesa.accumulo.jobs.AccumuloJobUtils#getMultipleQueryPlan

  • org.locationtech.geomesa.accumulo.jobs.AccumuloJobUtils#getSingleQueryPlan

  • org.locationtech.geomesa.arrow.io.FormatVersion.LatestVersion

  • org.locationtech.geomesa.convert.ConverterConfigLoader#rebaseConfig

  • org.locationtech.geomesa.convert.all.TypeAwareInference#infer(String,() => InputStream,Option[SimpleFeatureType],Option[String])

  • org.locationtech.geomesa.convert2.SimpleFeatureConverter#createEvaluationContext(Map,Counter,Counter)

  • org.locationtech.geomesa.convert2.SimpleFeatureConverterFactory#infer(InputStream,Option[SimpleFeatureType],Option[String])

  • org.locationtech.geomesa.filter.filterToString

  • org.locationtech.geomesa.fs.data.FileSystemDataStore#this(FileContext)

  • org.locationtech.geomesa.fs.storage.common.partitions.DateTimeScheme#apply(DateTimeFormatter)

  • org.locationtech.geomesa.hbase.data.HBaseDataStoreFactory - various system properties

  • org.locationtech.geomesa.index.geotools.GeoMesaDataStore#queryPlanner

  • org.locationtech.geomesa.index.planning.LocalQueryRunner#visible

  • org.locationtech.geomesa.index.planning.QueryPlanner - most static methods

  • org.locationtech.geomesa.index.planning.QueryRunner#configureDefaultQuery

  • org.locationtech.geomesa.kafka.data.KafkaDataStore#producer(KafkaDataStoreConfig)

  • org.locationtech.geomesa.kafka.utils.GeoMessageSerializer#apply(SimpleFeatureType, SerializationType, Boolean)

  • org.locationtech.geomesa.lambda.stream.kafka.KafkaStore#topic

  • org.locationtech.geomesa.security#getAuthorizationsProvider

  • org.locationtech.geomesa.utils.bin.BinaryOutputEncoder#encode(CloseableIterator,OutputStream,Boolean)

  • org.locationtech.geomesa.utils.conf.ConfConversions.RichConfig - various methods

  • org.locationtech.geomesa.utils.geohash.BoundingBox - various unused methods

  • org.locationtech.geomesa.utils.geohash.GeoHash - various unused methods

  • org.locationtech.geomesa.utils.geohash.GeohashUtils - various unused methods

  • org.locationtech.geomesa.utils.geotools.FeatureUtils#copyToWriter

  • org.locationtech.geomesa.utils.io.CompressionUtils#compress(InputStream)

  • org.locationtech.geomesa.utils.io.fs.FileSystemDelegate.FileHandle#write(CreateMode,Boolean)