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. 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.4. FileSystem Data Store Compatibility

The file system data store has been substantially rewritten to improve performance. As part of that, the Orc file format is no longer supported. In addition, feature types created with previous versions of GeoMesa will not be readable. To migrate existing data, re-create the schema using the latest GeoMesa version, then use the manage-metadata register CLI command to re-register the existing data files.

24.2.5. 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.6. Dependency Version Upgrades

The following dependencies have been upgraded:

  • arrow 18.3.0 -> 19.0.0

  • 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

  • kafka 3.9.0 -> 3.9.2

  • micrometer 1.15.4 -> 1.16.4

  • nifi 2.6.0 -> 2.7.2

  • 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

  • spark 3.5.5 -> 3.5.7

  • zookeeper 3.9.3 -> 3.9.5

24.2.7. 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.8. 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.9. 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.10. 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.11. 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.12. 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.13. 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.13.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.13.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.13.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)