24.8. Version 4.0.0¶
24.8.1. Version Compatibility¶
GeoMesa 4.0.0 is focused on upgrading dependency versions and removing deprecated features, and only contains a few new features. To make upgrading easier, version 4.0.x is generally compatible with version 3.5.x across different environments. This means that it is possible to upgrade in parts; i.e. upgrade GeoServer to 4.0.0 but keep NiFi at 3.5.1. Please note that previously deprecated functionality (see below) may no longer work once any part of the environment is upgraded to 4.0.0.
24.8.2. Scala Versions¶
Scala 2.11 support has been removed, and Scala 2.13 support has been added (in addition to the existing Scala 2.12 support).
24.8.3. GeoTools/GeoServer Versions¶
GeoTools has been upgraded from 23.3 to 28.2. GeoServer has been upgrade from 2.17.3 to 2.22.2.
JTS has been upgraded from 1.17.0 to 1.19.0.
As part of this upgrade, various GeoTools methods have changed in incompatible ways. Several classes, in
particular Query and SimpleFeatureBuilder, have changed from accepting arrays to using varargs (variable
arguments). Additionally, the various DataStore methods, such as DataStoreFinder, now require
Map<String, ?> instead of Map<String, ? extends Serializable>.
24.8.4. Dependency Version Upgrades¶
The following high-level dependencies have been upgraded:
Apache Hadoop
2.8.5->2.10.2Apache Spark
2.4.7->3.3.1Apache Accumulo
2.0.0->2.0.1Apache HBase
1.4.12->1.4.14,2.2.3->2.5.2Apache Kafka
2.1.1->2.8.2Apache Arrow
0.16.0->11.0.0Apache Avro
1.8.2->1.11.1Apache Parquet
1.9.0->1.12.3Apache Orc
1.5.4->1.8.2Jedis
3.0.1->4.3.1Confluent
5.1.0->6.2.7Kryo
3.0.3->4.0.2Typesafe Config
1.3.3->1.4.2EJML
0.34->0.41Saxon
9.7.0-20->11.4
For a full changelist of all dependencies, see the diff here.
24.8.5. Minimum Library Versions¶
Support for older versions of some libraries has been dropped. The following minimum versions are now required:
Apache Accumulo
2.0.0(dropped support for1.7,1.8,1.9, and1.10)Apache Spark
3.0(dropped support for2.4)Apache Kafka
2.0(dropped support for0.10,0.11,1.0, and1.1)
24.8.6. Removal of Deprecated Modules¶
The following deprecated modules were removed:
geomesa-bigtable
geomesa-kudu
geomesa-stream
geomesa-geojson
geomesa-web
geomesa-feature-nio
geomesa-convert-metrics-cloudwatch
geomesa-convert-metrics-ganglia
geomesa-convert-metrics-graphite
In addition, various other deprecated classes and methods were removed. To identify any code that requires changes, build your project against GeoMesa 3.5.1 and note any deprecation warnings generated by the compiler.
24.8.7. Package Changes¶
The following packages were moved, renamed or split in order to support Java 11 modules:
org.locationtech.geomesa.jobs.accumulo->org.locationtech.geomesa.accumulo.jobsorg.locationtech.geomesa.spark.accumulo->org.locationtech.geomesa.accumulo.sparkorg.locationtech.geomesa.spark.hbase->org.locationtech.geomesa.hbase.sparkorg.locationtech.geomesa.arrow.vector(partial) ->package org.locationtech.geomesa.arrow.jtsorg.locationtech.geomesa.parquet->org.locationtech.geomesa.fs.storage.parquetorg.locationtech.geomesa.process(partial) ->org.locationtech.geomesa.process.wps
24.8.8. GeoMesa NiFi Changes¶
GeoMesa NiFi is now built against NiFi 1.19.1. The GeoMesa NARs and JARs have been renamed to include the Scala
version (i.e. geomesa-datastore-services-nar_2.12-4.0.0.nar). The datastore-specific processors (e.g.
PutGeoMesaHBase) have been removed in favor of the generic processors (e.g. PutGeoMesa). The
recommended upgrade path is to first upgrade to GeoMesa NiFi 3.5.1, and replace all the datastore-specific
processors in the flow. This will ensure that the flow is still valid after upgrading to GeoMesa NiFi 4.0.0.
The geomesa-accumulo2-nar has been replaced with geomesa-accumulo20-nar, and there is an additional
geomesa-accumulo21-nar for Accumulo 2.1 support.
24.8.9. Scan Range Changes¶
GeoMesa will now generate a more accurate number of ranges based on geomesa.scan.ranges.target. Users
who have configured this property should verify their setting is still appropriate, especially if set to a
large value. Setting geomesa.scan.ranges.recurse to 7 will restore the old behavior if needed.
24.8.10. Partitioned PostGIS Query Changes¶
GeoMesa will now ignore queries that encompass the entire world in the partitioned PostGIS data store. For more information, refer to Configuring Filter Optimizations.