diff --git a/.github/maven-badge.svg b/.github/maven-badge.svg
index 55fb9be30607..7a42d254786d 100644
--- a/.github/maven-badge.svg
+++ b/.github/maven-badge.svg
@@ -17,7 +17,7 @@
font-size="110">
maven
maven
- v3.5.0
- v3.5.0
+ v3.5.2
+ v3.5.2
diff --git a/README.md b/README.md
index 68cb986433e2..13f5439b06ba 100644
--- a/README.md
+++ b/README.md
@@ -37,16 +37,16 @@ geospatial analytics.
## Downloads
-**Current release: [3.5.0](https://github.com/locationtech/geomesa/releases/tag/geomesa-3.5.0)**
+**Current release: [3.5.2](https://github.com/locationtech/geomesa/releases/tag/geomesa-3.5.2)**
- [**HBase**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.0/geomesa-hbase_2.12-3.5.0-bin.tar.gz) |
- [**Accumulo**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.0/geomesa-accumulo_2.12-3.5.0-bin.tar.gz) |
- [**Cassandra**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.0/geomesa-cassandra_2.12-3.5.0-bin.tar.gz) |
- [**Kafka**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.0/geomesa-kafka_2.12-3.5.0-bin.tar.gz) |
- [**Redis**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.0/geomesa-redis_2.12-3.5.0-bin.tar.gz) |
- [**FileSystem**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.0/geomesa-fs_2.12-3.5.0-bin.tar.gz) |
- [**Bigtable**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.0/geomesa-bigtable_2.12-3.5.0-bin.tar.gz)
+ [**HBase**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.2/geomesa-hbase_2.12-3.5.2-bin.tar.gz) |
+ [**Accumulo**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.2/geomesa-accumulo_2.12-3.5.2-bin.tar.gz) |
+ [**Cassandra**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.2/geomesa-cassandra_2.12-3.5.2-bin.tar.gz) |
+ [**Kafka**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.2/geomesa-kafka_2.12-3.5.2-bin.tar.gz) |
+ [**Redis**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.2/geomesa-redis_2.12-3.5.2-bin.tar.gz) |
+ [**FileSystem**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.2/geomesa-fs_2.12-3.5.2-bin.tar.gz) |
+ [**Bigtable**](https://github.com/locationtech/geomesa/releases/download/geomesa-3.5.2/geomesa-bigtable_2.12-3.5.2-bin.tar.gz)
### Verifying Downloads
@@ -60,7 +60,7 @@ $ gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys CD24F317
Then verify the file:
```bash
-$ gpg2 --verify geomesa-accumulo_2.12-3.5.0-bin.tar.gz.asc geomesa-accumulo_2.12-3.5.0-bin.tar.gz
+$ gpg2 --verify geomesa-accumulo_2.12-3.5.2-bin.tar.gz.asc geomesa-accumulo_2.12-3.5.2-bin.tar.gz
```
The keys currently used for signing are:
@@ -80,7 +80,7 @@ GeoMesa is hosted on Maven Central. To include it as a dependency, add the desir
org.locationtech.geomesa
geomesa-hbase-datastore_2.12
- 3.5.0
+ 3.5.2
```
@@ -130,7 +130,7 @@ DataStore implementations:
org.locationtech.geomesa
geomesa-gt-spark-runtime_2.12
- 3.5.0
+ 3.5.2
@@ -156,13 +156,13 @@ resolvers ++= Seq(
// Select desired modules
libraryDependencies ++= Seq(
- "org.locationtech.geomesa" %% "geomesa-utils" % "3.5.0"
+ "org.locationtech.geomesa" %% "geomesa-utils" % "3.5.2"
)
```
## Building from Source
-**Development version: 4.0.0-SNAPSHOT**
+**Development version: 4.1.0-SNAPSHOT**
[](https://github.com/locationtech/geomesa/actions/workflows/build-and-test-2.12.yml?query=branch%3Amain)
diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index d0507ee08e6f..62d8da73188f 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/docs/_static/css/theme_custom.css b/docs/_static/css/theme_custom.css
index 787bff2c1413..f59c0cc1db66 100644
--- a/docs/_static/css/theme_custom.css
+++ b/docs/_static/css/theme_custom.css
@@ -364,3 +364,6 @@ div.admonition.warning, div.admonition.note {
margin: 0;
width: 100%;
}
+.sphinx-tabs .sphinx-tabs-panel div {
+ margin: 1px 0 1px;
+}
diff --git a/docs/conf.py b/docs/conf.py
index 9238dbd7522b..89fa46683adb 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -17,4 +17,4 @@
exclude_patterns = [ 'README.md' ]
def setup(app):
- app.add_stylesheet('https://fonts.googleapis.com/css?family=Roboto:400,700')
+ app.add_css_file('https://fonts.googleapis.com/css?family=Roboto:400,700')
diff --git a/docs/pom.xml b/docs/pom.xml
index c29a039aac8e..812522844473 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -12,7 +12,7 @@
org.locationtech.geomesa
geomesa_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 15a0396b5b5d..8d1933a99f7e 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,7 +1,7 @@
-Sphinx==1.8.2
-sphinx-tabs==1.1.10
-recommonmark==0.4.0
-sphinx-rtd-theme==0.4.2
+Sphinx==4.5.0
+sphinx-tabs==3.3.1
+recommonmark==0.7.1
+sphinx-rtd-theme==1.1.1
docutils<0.18
-jinja2<3.1.0
-sphinx-copybutton==0.5.0
+jinja2==3.1.2
+sphinx-copybutton==0.5.1
diff --git a/docs/user/cli/schemas.rst b/docs/user/cli/schemas.rst
index 5e5cae199ff4..16dc73cd8f99 100644
--- a/docs/user/cli/schemas.rst
+++ b/docs/user/cli/schemas.rst
@@ -61,7 +61,7 @@ Argument Description
Generate an Avro schema based on a ``SimpleFeatureType``.
============================ ==================================================
-Argument Description
+Argument Description
============================ ==================================================
``-s, --spec *`` The ``SimpleFeatureType`` specification to create
``-f, --feature-name`` The name of the schema to create
diff --git a/docs/user/postgis/commandline.rst b/docs/user/postgis/commandline.rst
index 18646fb51182..745d8ddf6a75 100644
--- a/docs/user/postgis/commandline.rst
+++ b/docs/user/postgis/commandline.rst
@@ -8,6 +8,8 @@ additional details.
Commands
--------
+.. _postgis_partition_upgrade:
+
``partition-upgrade``
^^^^^^^^^^^^^^^^^^^^^
diff --git a/docs/user/postgis/install.rst b/docs/user/postgis/install.rst
index c665c456bf43..71bce73a309d 100644
--- a/docs/user/postgis/install.rst
+++ b/docs/user/postgis/install.rst
@@ -16,3 +16,27 @@ Installing Partitioned PostGIS in GeoServer
-------------------------------------------
The regular PostGIS data store can be used in GeoServer, so no additional installation is required.
+
+Upgrading Existing Schemas
+--------------------------
+
+Any existing feature types will not automatically benefit from upgrading the GeoMesa version, as the functions
+and procedures are stored in PostGIS itself. After upgrading GeoMesa versions, the procedures can be upgraded
+in one of two ways:
+
+Command-line Tools Upgrade
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The GeoMesa command line tools come with a command to upgrade the schema. See :ref:`postgis_partition_upgrade` for
+details.
+
+Drop and Re-create the Main View
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Alternatively, the main view for a feature type (which has the same name as the feature type) can be dropped
+using ``psql`` or another tool::
+
+ DROP VIEW my_feature_type;
+
+Then the feature type can then be re-created using ``createSchema``. Existing data will be preserved in the
+partitioned tables.
diff --git a/docs/user/postgis/usage.rst b/docs/user/postgis/usage.rst
index 53534de6decc..08e0872e9608 100644
--- a/docs/user/postgis/usage.rst
+++ b/docs/user/postgis/usage.rst
@@ -28,5 +28,13 @@ that ``dbtype`` **must** be set to ``postgis-partitioned``. See the
`JDBCDataStore `__ and
`PostGIS Plugin `__ for other parameters.
-Note that once a schema has been created, the regular PostGIS data store may be used for query, insert, update
-and delete operations.
+The following additional parameters are also supported:
+
+======================================= ======== ===================================================================================================================================
+Parameter Type Description
+======================================= ======== ===================================================================================================================================
+``idle_in_transaction_session_timeout`` Duration Transaction idle timeout (e.g. ``2 minutes``). See the
+ `Postgres documentation `__
+ for more information. Setting this timeout may help prevent
+ abandoned queries from slowing down database operations.
+======================================= ======== ===================================================================================================================================
diff --git a/geomesa-accumulo/geomesa-accumulo-datastore/pom.xml b/geomesa-accumulo/geomesa-accumulo-datastore/pom.xml
index f3c13edb0609..ce1a63c32aa6 100644
--- a/geomesa-accumulo/geomesa-accumulo-datastore/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-datastore/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-accumulo_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
geomesa-accumulo-datastore_2.12
diff --git a/geomesa-accumulo/geomesa-accumulo-dist/pom.xml b/geomesa-accumulo/geomesa-accumulo-dist/pom.xml
index 87d5eb42c8a2..f1e497dcef24 100644
--- a/geomesa-accumulo/geomesa-accumulo-dist/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-dist/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-accumulo/geomesa-accumulo-distributed-runtime/pom.xml b/geomesa-accumulo/geomesa-accumulo-distributed-runtime/pom.xml
index 72f9a7a7f26d..231e1084c3aa 100644
--- a/geomesa-accumulo/geomesa-accumulo-distributed-runtime/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-distributed-runtime/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-accumulo_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
geomesa-accumulo-distributed-runtime_2.12
diff --git a/geomesa-accumulo/geomesa-accumulo-gs-plugin/pom.xml b/geomesa-accumulo/geomesa-accumulo-gs-plugin/pom.xml
index 7d8b332dd34c..102e02402266 100644
--- a/geomesa-accumulo/geomesa-accumulo-gs-plugin/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-accumulo/geomesa-accumulo-jobs/pom.xml b/geomesa-accumulo/geomesa-accumulo-jobs/pom.xml
index a89be725e1fb..72534bc4484b 100644
--- a/geomesa-accumulo/geomesa-accumulo-jobs/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-jobs/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-accumulo_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-accumulo/geomesa-accumulo-spark-runtime-accumulo1/pom.xml b/geomesa-accumulo/geomesa-accumulo-spark-runtime-accumulo1/pom.xml
index f175f745f647..0178ac23bc05 100644
--- a/geomesa-accumulo/geomesa-accumulo-spark-runtime-accumulo1/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-spark-runtime-accumulo1/pom.xml
@@ -3,7 +3,7 @@
geomesa-accumulo_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-accumulo/geomesa-accumulo-spark-runtime-accumulo2/pom.xml b/geomesa-accumulo/geomesa-accumulo-spark-runtime-accumulo2/pom.xml
index 2f47a0efd55a..db35e5bd3994 100644
--- a/geomesa-accumulo/geomesa-accumulo-spark-runtime-accumulo2/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-spark-runtime-accumulo2/pom.xml
@@ -3,7 +3,7 @@
geomesa-accumulo_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-accumulo/geomesa-accumulo-spark/pom.xml b/geomesa-accumulo/geomesa-accumulo-spark/pom.xml
index 4e3dd363dedd..6f089797ab69 100644
--- a/geomesa-accumulo/geomesa-accumulo-spark/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-spark/pom.xml
@@ -3,7 +3,7 @@
geomesa-accumulo_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-accumulo/geomesa-accumulo-tools/pom.xml b/geomesa-accumulo/geomesa-accumulo-tools/pom.xml
index 5b79cdf5024f..821fa46b3985 100644
--- a/geomesa-accumulo/geomesa-accumulo-tools/pom.xml
+++ b/geomesa-accumulo/geomesa-accumulo-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-accumulo_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-accumulo/pom.xml b/geomesa-accumulo/pom.xml
index 19dfe3f8aae1..cddebead7562 100644
--- a/geomesa-accumulo/pom.xml
+++ b/geomesa-accumulo/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml b/geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
index 63c62ffcacad..7f8956d42552 100644
--- a/geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
+++ b/geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
@@ -5,7 +5,7 @@
geomesa-archetypes_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
geomesa-archetypes-binary-dist_2.12
diff --git a/geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml b/geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
index 25dfe3fe599f..0625f1d3a608 100644
--- a/geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
+++ b/geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
geomesa-archetypes_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
geomesa-archetypes-gs-plugin_2.12
diff --git a/geomesa-archetypes/pom.xml b/geomesa-archetypes/pom.xml
index 9613a9f40824..04b7e2f72f2f 100644
--- a/geomesa-archetypes/pom.xml
+++ b/geomesa-archetypes/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
geomesa-archetypes_2.12
diff --git a/geomesa-arrow/geomesa-arrow-datastore/pom.xml b/geomesa-arrow/geomesa-arrow-datastore/pom.xml
index c2934b93f4f7..92cd1535910b 100644
--- a/geomesa-arrow/geomesa-arrow-datastore/pom.xml
+++ b/geomesa-arrow/geomesa-arrow-datastore/pom.xml
@@ -3,7 +3,7 @@
geomesa-arrow_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-arrow/geomesa-arrow-dist/pom.xml b/geomesa-arrow/geomesa-arrow-dist/pom.xml
index 78e8637a2827..8e0d07bb8607 100644
--- a/geomesa-arrow/geomesa-arrow-dist/pom.xml
+++ b/geomesa-arrow/geomesa-arrow-dist/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-arrow/geomesa-arrow-gs-plugin/pom.xml b/geomesa-arrow/geomesa-arrow-gs-plugin/pom.xml
index 4d232a242e53..1a76e0969dae 100644
--- a/geomesa-arrow/geomesa-arrow-gs-plugin/pom.xml
+++ b/geomesa-arrow/geomesa-arrow-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-arrow/geomesa-arrow-gt/pom.xml b/geomesa-arrow/geomesa-arrow-gt/pom.xml
index b99fcff5e079..7683f0068d9b 100644
--- a/geomesa-arrow/geomesa-arrow-gt/pom.xml
+++ b/geomesa-arrow/geomesa-arrow-gt/pom.xml
@@ -3,7 +3,7 @@
geomesa-arrow_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-arrow/geomesa-arrow-jts/pom.xml b/geomesa-arrow/geomesa-arrow-jts/pom.xml
index 325c489bf063..fa8328af69b8 100644
--- a/geomesa-arrow/geomesa-arrow-jts/pom.xml
+++ b/geomesa-arrow/geomesa-arrow-jts/pom.xml
@@ -4,7 +4,7 @@
geomesa-arrow_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-arrow/geomesa-arrow-tools/pom.xml b/geomesa-arrow/geomesa-arrow-tools/pom.xml
index d523296e464a..0659afeda52d 100644
--- a/geomesa-arrow/geomesa-arrow-tools/pom.xml
+++ b/geomesa-arrow/geomesa-arrow-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-arrow_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-arrow/pom.xml b/geomesa-arrow/pom.xml
index e35877a70e14..0084ed62447f 100644
--- a/geomesa-arrow/pom.xml
+++ b/geomesa-arrow/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-bigtable/geomesa-bigtable-datastore/pom.xml b/geomesa-bigtable/geomesa-bigtable-datastore/pom.xml
index 5932adf61591..a8bcb53552f1 100644
--- a/geomesa-bigtable/geomesa-bigtable-datastore/pom.xml
+++ b/geomesa-bigtable/geomesa-bigtable-datastore/pom.xml
@@ -3,7 +3,7 @@
geomesa-bigtable_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-bigtable/geomesa-bigtable-dist/pom.xml b/geomesa-bigtable/geomesa-bigtable-dist/pom.xml
index 99adec21a2f3..2ba0244d5774 100644
--- a/geomesa-bigtable/geomesa-bigtable-dist/pom.xml
+++ b/geomesa-bigtable/geomesa-bigtable-dist/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-bigtable/geomesa-bigtable-gs-plugin/pom.xml b/geomesa-bigtable/geomesa-bigtable-gs-plugin/pom.xml
index 8a64c5303685..b1a5dcffa201 100644
--- a/geomesa-bigtable/geomesa-bigtable-gs-plugin/pom.xml
+++ b/geomesa-bigtable/geomesa-bigtable-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-bigtable/geomesa-bigtable-spark-runtime/pom.xml b/geomesa-bigtable/geomesa-bigtable-spark-runtime/pom.xml
index 71e078abfc3a..eb7914121020 100644
--- a/geomesa-bigtable/geomesa-bigtable-spark-runtime/pom.xml
+++ b/geomesa-bigtable/geomesa-bigtable-spark-runtime/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-bigtable_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-bigtable/geomesa-bigtable-spark/pom.xml b/geomesa-bigtable/geomesa-bigtable-spark/pom.xml
index 04d85e6f0570..b717dce8fb4b 100644
--- a/geomesa-bigtable/geomesa-bigtable-spark/pom.xml
+++ b/geomesa-bigtable/geomesa-bigtable-spark/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-bigtable_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-bigtable/geomesa-bigtable-tools/pom.xml b/geomesa-bigtable/geomesa-bigtable-tools/pom.xml
index 182d6d16df56..7fe2d83ccc28 100644
--- a/geomesa-bigtable/geomesa-bigtable-tools/pom.xml
+++ b/geomesa-bigtable/geomesa-bigtable-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-bigtable_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-bigtable/pom.xml b/geomesa-bigtable/pom.xml
index 8c3f7d69b521..46b3fd10ebb6 100644
--- a/geomesa-bigtable/pom.xml
+++ b/geomesa-bigtable/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-cassandra/geomesa-cassandra-datastore/pom.xml b/geomesa-cassandra/geomesa-cassandra-datastore/pom.xml
index b7b82ababa41..fc8b427d6b49 100644
--- a/geomesa-cassandra/geomesa-cassandra-datastore/pom.xml
+++ b/geomesa-cassandra/geomesa-cassandra-datastore/pom.xml
@@ -4,7 +4,7 @@
geomesa-cassandra_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-cassandra/geomesa-cassandra-dist/pom.xml b/geomesa-cassandra/geomesa-cassandra-dist/pom.xml
index ed10e33c5279..a618b744f6c3 100644
--- a/geomesa-cassandra/geomesa-cassandra-dist/pom.xml
+++ b/geomesa-cassandra/geomesa-cassandra-dist/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-cassandra/geomesa-cassandra-gs-plugin/pom.xml b/geomesa-cassandra/geomesa-cassandra-gs-plugin/pom.xml
index 5621964d35f8..2a7c498688d2 100644
--- a/geomesa-cassandra/geomesa-cassandra-gs-plugin/pom.xml
+++ b/geomesa-cassandra/geomesa-cassandra-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-cassandra/geomesa-cassandra-tools/pom.xml b/geomesa-cassandra/geomesa-cassandra-tools/pom.xml
index b3459762081e..419ec02b30a9 100644
--- a/geomesa-cassandra/geomesa-cassandra-tools/pom.xml
+++ b/geomesa-cassandra/geomesa-cassandra-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-cassandra_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-cassandra/pom.xml b/geomesa-cassandra/pom.xml
index 88cf374ff171..5704877af445 100644
--- a/geomesa-cassandra/pom.xml
+++ b/geomesa-cassandra/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-all/pom.xml b/geomesa-convert/geomesa-convert-all/pom.xml
index 19d3d7b05d72..6f3dc9edd8f4 100644
--- a/geomesa-convert/geomesa-convert-all/pom.xml
+++ b/geomesa-convert/geomesa-convert-all/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-avro-schema-registry/pom.xml b/geomesa-convert/geomesa-convert-avro-schema-registry/pom.xml
index ecc7562f07c6..0eb34cd70406 100644
--- a/geomesa-convert/geomesa-convert-avro-schema-registry/pom.xml
+++ b/geomesa-convert/geomesa-convert-avro-schema-registry/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-avro/pom.xml b/geomesa-convert/geomesa-convert-avro/pom.xml
index c73fabb997e9..83b1c843ca00 100644
--- a/geomesa-convert/geomesa-convert-avro/pom.xml
+++ b/geomesa-convert/geomesa-convert-avro/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-common/pom.xml b/geomesa-convert/geomesa-convert-common/pom.xml
index 1ec98fb9cd3b..5cdfd8cdd145 100644
--- a/geomesa-convert/geomesa-convert-common/pom.xml
+++ b/geomesa-convert/geomesa-convert-common/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-fixedwidth/pom.xml b/geomesa-convert/geomesa-convert-fixedwidth/pom.xml
index c82d44c76228..e77760d739f0 100644
--- a/geomesa-convert/geomesa-convert-fixedwidth/pom.xml
+++ b/geomesa-convert/geomesa-convert-fixedwidth/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-jdbc/pom.xml b/geomesa-convert/geomesa-convert-jdbc/pom.xml
index 7ec85a69f822..f999826bb8cf 100644
--- a/geomesa-convert/geomesa-convert-jdbc/pom.xml
+++ b/geomesa-convert/geomesa-convert-jdbc/pom.xml
@@ -3,7 +3,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-json/pom.xml b/geomesa-convert/geomesa-convert-json/pom.xml
index 4d345767d6d5..206ce6779a6e 100644
--- a/geomesa-convert/geomesa-convert-json/pom.xml
+++ b/geomesa-convert/geomesa-convert-json/pom.xml
@@ -3,7 +3,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-metrics-cloudwatch/pom.xml b/geomesa-convert/geomesa-convert-metrics-cloudwatch/pom.xml
index 2b5f12e2c25e..7dcee354742f 100644
--- a/geomesa-convert/geomesa-convert-metrics-cloudwatch/pom.xml
+++ b/geomesa-convert/geomesa-convert-metrics-cloudwatch/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-metrics-ganglia/pom.xml b/geomesa-convert/geomesa-convert-metrics-ganglia/pom.xml
index 8ce2e5b0159c..318b501833f6 100644
--- a/geomesa-convert/geomesa-convert-metrics-ganglia/pom.xml
+++ b/geomesa-convert/geomesa-convert-metrics-ganglia/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-metrics-graphite/pom.xml b/geomesa-convert/geomesa-convert-metrics-graphite/pom.xml
index 522c684447d4..74dd507575c1 100644
--- a/geomesa-convert/geomesa-convert-metrics-graphite/pom.xml
+++ b/geomesa-convert/geomesa-convert-metrics-graphite/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-osm/pom.xml b/geomesa-convert/geomesa-convert-osm/pom.xml
index 8877b30dddcb..c011661f84de 100644
--- a/geomesa-convert/geomesa-convert-osm/pom.xml
+++ b/geomesa-convert/geomesa-convert-osm/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-convert_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-parquet/pom.xml b/geomesa-convert/geomesa-convert-parquet/pom.xml
index eddbde9bd8d0..a7ec87718e41 100644
--- a/geomesa-convert/geomesa-convert-parquet/pom.xml
+++ b/geomesa-convert/geomesa-convert-parquet/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-redis-cache/pom.xml b/geomesa-convert/geomesa-convert-redis-cache/pom.xml
index a252a8a14c2a..7815599ed12d 100644
--- a/geomesa-convert/geomesa-convert-redis-cache/pom.xml
+++ b/geomesa-convert/geomesa-convert-redis-cache/pom.xml
@@ -3,7 +3,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-shp/pom.xml b/geomesa-convert/geomesa-convert-shp/pom.xml
index 1359ab60a226..eb3a6a8fe4f4 100644
--- a/geomesa-convert/geomesa-convert-shp/pom.xml
+++ b/geomesa-convert/geomesa-convert-shp/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-simplefeature/pom.xml b/geomesa-convert/geomesa-convert-simplefeature/pom.xml
index 96a7bc9dc204..00970f812cef 100644
--- a/geomesa-convert/geomesa-convert-simplefeature/pom.xml
+++ b/geomesa-convert/geomesa-convert-simplefeature/pom.xml
@@ -3,7 +3,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-text/pom.xml b/geomesa-convert/geomesa-convert-text/pom.xml
index db23a43ea4a2..0deae63e1db7 100644
--- a/geomesa-convert/geomesa-convert-text/pom.xml
+++ b/geomesa-convert/geomesa-convert-text/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/geomesa-convert-xml/pom.xml b/geomesa-convert/geomesa-convert-xml/pom.xml
index b6ef40cc0772..0398bb4f3456 100644
--- a/geomesa-convert/geomesa-convert-xml/pom.xml
+++ b/geomesa-convert/geomesa-convert-xml/pom.xml
@@ -4,7 +4,7 @@
geomesa-convert_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-convert/pom.xml b/geomesa-convert/pom.xml
index 02b222b3b51e..8f02a6a24b6d 100644
--- a/geomesa-convert/pom.xml
+++ b/geomesa-convert/pom.xml
@@ -4,7 +4,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-features/geomesa-feature-all/pom.xml b/geomesa-features/geomesa-feature-all/pom.xml
index e39153998ec0..e09d98a4cde2 100644
--- a/geomesa-features/geomesa-feature-all/pom.xml
+++ b/geomesa-features/geomesa-feature-all/pom.xml
@@ -3,7 +3,7 @@
geomesa-features_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-features/geomesa-feature-avro/pom.xml b/geomesa-features/geomesa-feature-avro/pom.xml
index c021d5fa70e3..269c04a30eef 100644
--- a/geomesa-features/geomesa-feature-avro/pom.xml
+++ b/geomesa-features/geomesa-feature-avro/pom.xml
@@ -3,7 +3,7 @@
geomesa-features_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-features/geomesa-feature-common/pom.xml b/geomesa-features/geomesa-feature-common/pom.xml
index ed06db9bd37f..e95c6aa82bf2 100644
--- a/geomesa-features/geomesa-feature-common/pom.xml
+++ b/geomesa-features/geomesa-feature-common/pom.xml
@@ -3,7 +3,7 @@
geomesa-features_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-features/geomesa-feature-kryo/pom.xml b/geomesa-features/geomesa-feature-kryo/pom.xml
index 7e30b79abcc6..154ef0f53c22 100644
--- a/geomesa-features/geomesa-feature-kryo/pom.xml
+++ b/geomesa-features/geomesa-feature-kryo/pom.xml
@@ -3,7 +3,7 @@
geomesa-features_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-features/geomesa-feature-nio/pom.xml b/geomesa-features/geomesa-feature-nio/pom.xml
index 4d38a3422f46..f01dbdd147ab 100644
--- a/geomesa-features/geomesa-feature-nio/pom.xml
+++ b/geomesa-features/geomesa-feature-nio/pom.xml
@@ -3,7 +3,7 @@
geomesa-features_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-features/pom.xml b/geomesa-features/pom.xml
index fcfb8ec3de99..ae27e752ff31 100644
--- a/geomesa-features/pom.xml
+++ b/geomesa-features/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-filter/pom.xml b/geomesa-filter/pom.xml
index d25056ab3856..982d0c54b768 100644
--- a/geomesa-filter/pom.xml
+++ b/geomesa-filter/pom.xml
@@ -4,7 +4,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-datastore/pom.xml b/geomesa-fs/geomesa-fs-datastore/pom.xml
index f8ce769260f5..c3fbedcd8b70 100644
--- a/geomesa-fs/geomesa-fs-datastore/pom.xml
+++ b/geomesa-fs/geomesa-fs-datastore/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-dist/pom.xml b/geomesa-fs/geomesa-fs-dist/pom.xml
index 39c79cdc1521..bea31ba9c27c 100644
--- a/geomesa-fs/geomesa-fs-dist/pom.xml
+++ b/geomesa-fs/geomesa-fs-dist/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-fs/geomesa-fs-gs-plugin/pom.xml b/geomesa-fs/geomesa-fs-gs-plugin/pom.xml
index 8814f856f163..7a30a6b2c1ee 100644
--- a/geomesa-fs/geomesa-fs-gs-plugin/pom.xml
+++ b/geomesa-fs/geomesa-fs-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-fs/geomesa-fs-spark-runtime/pom.xml b/geomesa-fs/geomesa-fs-spark-runtime/pom.xml
index 5917305742a2..b156c5facc21 100644
--- a/geomesa-fs/geomesa-fs-spark-runtime/pom.xml
+++ b/geomesa-fs/geomesa-fs-spark-runtime/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-spark/pom.xml b/geomesa-fs/geomesa-fs-spark/pom.xml
index 7beb693113d7..3529d994d27a 100644
--- a/geomesa-fs/geomesa-fs-spark/pom.xml
+++ b/geomesa-fs/geomesa-fs-spark/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-api/pom.xml b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-api/pom.xml
index f2b08a19567b..4ff34334fbb5 100644
--- a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-api/pom.xml
+++ b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-api/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs-storage_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-common/pom.xml b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-common/pom.xml
index 9f2c694e03ef..7c16ae413b03 100644
--- a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-common/pom.xml
+++ b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-common/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs-storage_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-convert/pom.xml b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-convert/pom.xml
index d9ed68052dcf..9cb2afb9380c 100644
--- a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-convert/pom.xml
+++ b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-convert/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs-storage_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-orc/pom.xml b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-orc/pom.xml
index 274da7c06e40..53d55cb48d68 100644
--- a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-orc/pom.xml
+++ b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-orc/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs-storage_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-parquet/pom.xml b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-parquet/pom.xml
index fc9a9f736d25..134467c6e4fb 100644
--- a/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-parquet/pom.xml
+++ b/geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-parquet/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs-storage_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-storage/pom.xml b/geomesa-fs/geomesa-fs-storage/pom.xml
index e0dad47f3ae7..cd486486be22 100644
--- a/geomesa-fs/geomesa-fs-storage/pom.xml
+++ b/geomesa-fs/geomesa-fs-storage/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/geomesa-fs-tools/pom.xml b/geomesa-fs/geomesa-fs-tools/pom.xml
index 10e7430d2adb..f5fbd5428e5f 100644
--- a/geomesa-fs/geomesa-fs-tools/pom.xml
+++ b/geomesa-fs/geomesa-fs-tools/pom.xml
@@ -3,7 +3,7 @@
geomesa-fs_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-fs/pom.xml b/geomesa-fs/pom.xml
index aaf793597001..3be93c2ce773 100644
--- a/geomesa-fs/pom.xml
+++ b/geomesa-fs/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-geojson/geomesa-geojson-api/pom.xml b/geomesa-geojson/geomesa-geojson-api/pom.xml
index 953095dc68d7..c8589e51c676 100644
--- a/geomesa-geojson/geomesa-geojson-api/pom.xml
+++ b/geomesa-geojson/geomesa-geojson-api/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-geojson_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-geojson/geomesa-geojson-gs-plugin/pom.xml b/geomesa-geojson/geomesa-geojson-gs-plugin/pom.xml
index 6e122445397d..ca3ecabd63c3 100644
--- a/geomesa-geojson/geomesa-geojson-gs-plugin/pom.xml
+++ b/geomesa-geojson/geomesa-geojson-gs-plugin/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
4.0.0
diff --git a/geomesa-geojson/geomesa-geojson-rest/pom.xml b/geomesa-geojson/geomesa-geojson-rest/pom.xml
index 68c254d92de5..5213fed4afab 100644
--- a/geomesa-geojson/geomesa-geojson-rest/pom.xml
+++ b/geomesa-geojson/geomesa-geojson-rest/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-geojson_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-geojson/pom.xml b/geomesa-geojson/pom.xml
index 4c22d128488f..417decfa79b6 100644
--- a/geomesa-geojson/pom.xml
+++ b/geomesa-geojson/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-gt/geomesa-gt-dist/pom.xml b/geomesa-gt/geomesa-gt-dist/pom.xml
index ee9ca6e3d2a8..9f6c4e6323db 100644
--- a/geomesa-gt/geomesa-gt-dist/pom.xml
+++ b/geomesa-gt/geomesa-gt-dist/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-gt/geomesa-gt-partitioning/pom.xml b/geomesa-gt/geomesa-gt-partitioning/pom.xml
index 2f3b5588baa3..fcecc8d076b1 100644
--- a/geomesa-gt/geomesa-gt-partitioning/pom.xml
+++ b/geomesa-gt/geomesa-gt-partitioning/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-gt_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/PartitionedPostgisDataStoreFactory.scala b/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/PartitionedPostgisDataStoreFactory.scala
index 09655d37c048..e85039305e92 100644
--- a/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/PartitionedPostgisDataStoreFactory.scala
+++ b/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/PartitionedPostgisDataStoreFactory.scala
@@ -8,13 +8,15 @@
package org.locationtech.geomesa.gt.partition.postgis
+import com.typesafe.scalalogging.LazyLogging
+import org.apache.commons.dbcp.BasicDataSource
import org.geotools.data.postgis.{PostGISDialect, PostGISPSDialect, PostgisNGDataStoreFactory}
import org.geotools.jdbc.{JDBCDataStore, SQLDialect}
import org.locationtech.geomesa.gt.partition.postgis.dialect.{PartitionedPostgisDialect, PartitionedPostgisPsDialect}
-class PartitionedPostgisDataStoreFactory extends PostgisNGDataStoreFactory {
+class PartitionedPostgisDataStoreFactory extends PostgisNGDataStoreFactory with LazyLogging {
- import PartitionedPostgisDataStoreParams.DbType
+ import PartitionedPostgisDataStoreParams.{DbType, IdleInTransactionTimeout}
override def getDisplayName: String = "PostGIS (partitioned)"
@@ -24,8 +26,22 @@ class PartitionedPostgisDataStoreFactory extends PostgisNGDataStoreFactory {
override protected def setupParameters(parameters: java.util.Map[_, _]): Unit = {
super.setupParameters(parameters)
- // override postgis dbkey
- parameters.asInstanceOf[java.util.Map[AnyRef, AnyRef]].put(DbType.key, DbType)
+ Seq(DbType, IdleInTransactionTimeout)
+ .foreach(p => parameters.asInstanceOf[java.util.Map[AnyRef, AnyRef]].put(p.key, p))
+ }
+
+ override def createDataSource(params: java.util.Map[_, _]): BasicDataSource = {
+ val source = super.createDataSource(params)
+ val options =
+ Seq(IdleInTransactionTimeout)
+ .flatMap(p => p.opt(params.asInstanceOf[java.util.Map[String, _]]).map(t => s"-c ${p.key}=${t.millis}"))
+
+ logger.debug(s"Connection options: ${options.mkString(" ")}")
+
+ if (options.nonEmpty) {
+ source.addConnectionProperty("options", options.mkString(" "))
+ }
+ source
}
override protected def createDataStoreInternal(store: JDBCDataStore, params: java.util.Map[_, _]): JDBCDataStore = {
@@ -57,6 +73,7 @@ class PartitionedPostgisDataStoreFactory extends PostgisNGDataStoreFactory {
case d => throw new IllegalArgumentException(s"Expected PostGISDialect but got: ${d.getClass.getName}")
}
+
ds
}
diff --git a/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/PartitionedPostgisDataStoreParams.scala b/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/PartitionedPostgisDataStoreParams.scala
index 233ee8f41c75..9a80757d9cf4 100644
--- a/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/PartitionedPostgisDataStoreParams.scala
+++ b/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/PartitionedPostgisDataStoreParams.scala
@@ -8,14 +8,16 @@
package org.locationtech.geomesa.gt.partition.postgis
-import org.geotools.data.{DataAccessFactory, Parameter}
+import org.geotools.data.DataAccessFactory.Param
+import org.geotools.data.Parameter
import java.util.Collections
+import scala.concurrent.duration.Duration
object PartitionedPostgisDataStoreParams {
val DbType =
- new DataAccessFactory.Param(
+ new Param(
"dbtype",
classOf[String],
"Type",
@@ -23,4 +25,32 @@ object PartitionedPostgisDataStoreParams {
"postgis-partitioned",
Collections.singletonMap(Parameter.LEVEL, "program")
)
+
+ val IdleInTransactionTimeout =
+ new Param(
+ "idle_in_transaction_session_timeout",
+ classOf[Timeout],
+ "Transaction idle timeout (e.g. '2 minutes'). " +
+ "See https://www.postgresql.org/docs/15/runtime-config-client.html#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT",
+ false
+ ) with TimeoutParam
+
+ // note: need a default string constructor so geotools can create it from the param
+ class Timeout(repr: String) {
+ private val duration = Duration(repr)
+ require(duration.isFinite && duration.gt(Duration.Zero), s"Invalid duration: $repr")
+
+ val millis: Long = duration.toMillis
+ val seconds: Int = math.ceil(millis / 1000.0).toInt
+ }
+
+ trait TimeoutParam extends Param {
+ override def lookUp(map: java.util.Map[String, _]): Timeout =
+ super.lookUp(map) match {
+ case t: Timeout => t
+ case _ => null
+ }
+
+ def opt(map: java.util.Map[String, _]): Option[Timeout] = Option(lookUp(map))
+ }
}
diff --git a/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/dialect/procedures/DropAgedOffPartitions.scala b/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/dialect/procedures/DropAgedOffPartitions.scala
index df63eb6bd58a..3f98e5b2db18 100644
--- a/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/dialect/procedures/DropAgedOffPartitions.scala
+++ b/geomesa-gt/geomesa-gt-partitioning/src/main/scala/org/locationtech/geomesa/gt/partition/postgis/dialect/procedures/DropAgedOffPartitions.scala
@@ -30,10 +30,11 @@ object DropAgedOffPartitions extends SqlProcedure {
| num_partitions int; -- number of partitions to keep
| main_cutoff timestamp without time zone; -- max age of the records for main tables
| partition_start timestamp without time zone; -- start bounds for the partition we're writing
- | partition_name text; -- partition table name
+ | partition_name regclass; -- partition table name
| BEGIN
| SELECT value::int FROM ${info.schema.quoted}.${UserDataTable.Name.quoted}
| WHERE key = ${literal(PartitionedPostgisDialect.Config.MaxPartitions)}
+ | AND type_name = ${literal(info.typeName)}
| INTO num_partitions;
| IF FOUND THEN
| main_cutoff := truncate_to_partition(cur_time, $hours) - INTERVAL '$hours HOURS';
@@ -50,8 +51,10 @@ object DropAgedOffPartitions extends SqlProcedure {
| WHERE parentrelid IS NOT NULL
| AND (SELECT relname FROM pg_class WHERE oid = relid) <= ${literal(spillPartitions.name.raw + "_")} || to_char(partition_start, 'YYYY_MM_DD_HH24')
| LOOP
- | IF EXISTS(SELECT FROM pg_tables WHERE schemaname = ${info.schema.asLiteral} AND tablename = partition_name) THEN
- | EXECUTE 'DROP TABLE IF EXISTS ${info.schema.quoted}.' || quote_ident(partition_name);
+ RAISE NOTICE 'Aging off partition %', partition_name;
+ | IF EXISTS(SELECT FROM pg_class WHERE oid = partition_name) THEN
+ | -- cast to text will handle quoting the table name appropriately
+ | EXECUTE 'DROP TABLE IF EXISTS ${info.schema.quoted}.' || partition_name::text;
| RAISE NOTICE 'A partition has been deleted %', partition_name;
| END IF;
| END LOOP;
diff --git a/geomesa-gt/geomesa-gt-spark-runtime/pom.xml b/geomesa-gt/geomesa-gt-spark-runtime/pom.xml
index 3f4632c7f401..e3b51b01eb36 100644
--- a/geomesa-gt/geomesa-gt-spark-runtime/pom.xml
+++ b/geomesa-gt/geomesa-gt-spark-runtime/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-gt_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-gt/geomesa-gt-spark/pom.xml b/geomesa-gt/geomesa-gt-spark/pom.xml
index 22e3bffab84a..240961b4f5de 100644
--- a/geomesa-gt/geomesa-gt-spark/pom.xml
+++ b/geomesa-gt/geomesa-gt-spark/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-gt_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-gt/geomesa-gt-tools/pom.xml b/geomesa-gt/geomesa-gt-tools/pom.xml
index 15f9f8cc370e..f546c380e58d 100644
--- a/geomesa-gt/geomesa-gt-tools/pom.xml
+++ b/geomesa-gt/geomesa-gt-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-gt_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-gt/pom.xml b/geomesa-gt/pom.xml
index 898a8b4d47ca..9d5221aa4d95 100644
--- a/geomesa-gt/pom.xml
+++ b/geomesa-gt/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-datastore/pom.xml b/geomesa-hbase/geomesa-hbase-datastore/pom.xml
index 913933a379c0..53a521056fc0 100644
--- a/geomesa-hbase/geomesa-hbase-datastore/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-datastore/pom.xml
@@ -3,7 +3,7 @@
geomesa-hbase_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-datastore/src/main/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreFactory.scala b/geomesa-hbase/geomesa-hbase-datastore/src/main/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreFactory.scala
index 29112fd9e28d..bf151cc4880d 100644
--- a/geomesa-hbase/geomesa-hbase-datastore/src/main/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreFactory.scala
+++ b/geomesa-hbase/geomesa-hbase-datastore/src/main/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreFactory.scala
@@ -136,6 +136,9 @@ object HBaseDataStoreFactory extends GeoMesaDataStoreInfo with LazyLogging {
val RemoteDensityProperty : SystemProperty = SystemProperty("geomesa.hbase.coprocessor.density.enable")
val RemoteStatsProperty : SystemProperty = SystemProperty("geomesa.hbase.coprocessor.stats.enable")
val YieldPartialResultsProperty : SystemProperty = SystemProperty("geomesa.hbase.coprocessor.yield.partial.results")
+ val CoprocessorThreadsProperty : SystemProperty = SystemProperty("hbase.coprocessor.threads", "16")
+ val MaxRangesPerExtendedScanProperty : SystemProperty = SystemProperty("hbase.ranges.max-per-extended-scan", "100")
+ val MaxRangesPerCoprocessorScanProperty : SystemProperty = SystemProperty("hbase.ranges.max-per-coprocessor-scan", Int.MaxValue.toString)
override val DisplayName = "HBase (GeoMesa)"
override val Description = "Apache HBase\u2122 distributed key/value store"
diff --git a/geomesa-hbase/geomesa-hbase-datastore/src/main/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreParams.scala b/geomesa-hbase/geomesa-hbase-datastore/src/main/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreParams.scala
index 5cd8bce18e86..4612e963858f 100644
--- a/geomesa-hbase/geomesa-hbase-datastore/src/main/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreParams.scala
+++ b/geomesa-hbase/geomesa-hbase-datastore/src/main/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreParams.scala
@@ -13,7 +13,7 @@ import org.apache.hadoop.hbase.client.Connection
import org.locationtech.geomesa.index.geotools.GeoMesaDataStoreFactory.GeoMesaDataStoreParams
import org.locationtech.geomesa.security.SecurityParams
import org.locationtech.geomesa.utils.geotools.GeoMesaParam
-import org.locationtech.geomesa.utils.geotools.GeoMesaParam.{ReadWriteFlag, SystemPropertyBooleanParam}
+import org.locationtech.geomesa.utils.geotools.GeoMesaParam.{ReadWriteFlag, SystemPropertyBooleanParam, SystemPropertyIntegerParam}
object HBaseDataStoreParams extends GeoMesaDataStoreParams with SecurityParams {
@@ -56,6 +56,7 @@ object HBaseDataStoreParams extends GeoMesaDataStoreParams with SecurityParams {
"The number of HBase RPC threads to use per coprocessor query",
default = Int.box(16),
supportsNiFiExpressions = true,
+ systemProperty = Some(SystemPropertyIntegerParam(HBaseDataStoreFactory.CoprocessorThreadsProperty)),
readWrite = ReadWriteFlag.ReadOnly
)
@@ -83,6 +84,7 @@ object HBaseDataStoreParams extends GeoMesaDataStoreParams with SecurityParams {
default = 100,
deprecatedKeys = Seq("max.ranges.per.extended.scan"),
supportsNiFiExpressions = true,
+ systemProperty = Some(SystemPropertyIntegerParam(HBaseDataStoreFactory.MaxRangesPerExtendedScanProperty)),
readWrite = ReadWriteFlag.ReadUpdate
)
@@ -92,6 +94,7 @@ object HBaseDataStoreParams extends GeoMesaDataStoreParams with SecurityParams {
"Max ranges per coprocessor scan. Ranges will be grouped into scans based on this setting",
default = Int.MaxValue,
supportsNiFiExpressions = true,
+ systemProperty = Some(SystemPropertyIntegerParam(HBaseDataStoreFactory.MaxRangesPerCoprocessorScanProperty)),
readWrite = ReadWriteFlag.ReadOnly
)
diff --git a/geomesa-hbase/geomesa-hbase-datastore/src/test/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreTest.scala b/geomesa-hbase/geomesa-hbase-datastore/src/test/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreTest.scala
index 1155d541d3a1..e8127eaa8f3b 100644
--- a/geomesa-hbase/geomesa-hbase-datastore/src/test/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreTest.scala
+++ b/geomesa-hbase/geomesa-hbase-datastore/src/test/scala/org/locationtech/geomesa/hbase/data/HBaseDataStoreTest.scala
@@ -29,14 +29,14 @@ import org.locationtech.geomesa.process.tube.TubeSelectProcess
import org.locationtech.geomesa.utils.collection.SelfClosingIterator
import org.locationtech.geomesa.utils.conf.{GeoMesaProperties, SemanticVersion}
import org.locationtech.geomesa.utils.geotools.{FeatureUtils, SimpleFeatureTypes}
-import org.locationtech.geomesa.utils.io.WithClose
+import org.locationtech.geomesa.utils.io.{CloseWithLogging, WithClose}
import org.opengis.feature.simple.SimpleFeature
import org.opengis.filter.Filter
import org.specs2.matcher.MatchResult
import org.specs2.mutable.Specification
import org.specs2.runner.JUnitRunner
-import java.io.File
+import java.io.{File, StringWriter}
import java.util.Collections
@RunWith(classOf[JUnitRunner])
@@ -172,6 +172,43 @@ class HBaseDataStoreTest extends Specification with LazyLogging {
testCount(ds)
testExactCount(ds)
+ def testMergedView(): MatchResult[_] = {
+ val hbaseConf = {
+ val sw = new StringWriter()
+ MiniCluster.cluster.getConfiguration.writeXml(sw)
+ sw.toString
+ }
+
+ val conf =
+ s"""{
+ | "stores" = [
+ | {
+ | "hbase.catalog": "${params(HBaseCatalogParam.key)}",
+ | "${ConfigsParam.key}": \"\"\"$hbaseConf\"\"\",
+ | "geomesa.merged.store.filter": "dtg >= 2014-01-05T17:00:00Z",
+ | },
+ | {
+ | "hbase.catalog": "${params(HBaseCatalogParam.key)}",
+ | "${ConfigsParam.key}": \"\"\"$hbaseConf\"\"\",
+ | "geomesa.merged.store.filter": "dtg < 2014-01-05T17:00:00Z",
+ | }
+ | ]
+ |}""".stripMargin
+ val ds = DataStoreFinder.getDataStore(Map("geomesa.merged.stores" -> conf).asJava)
+ ds must not(beNull)
+ QueryProperties.BlockFullTableScans.threadLocalValue.set("true")
+ try {
+ val query = new Query(typeName, ECQL.toFilter("dtg DURING 2014-01-01T00:00:00.000Z/2014-01-04T12:00:00.000Z"))
+ val features = SelfClosingIterator(ds.getFeatureReader(query, Transaction.AUTO_COMMIT)).toList
+ features must haveLength(4)
+ } finally {
+ QueryProperties.BlockFullTableScans.threadLocalValue.remove()
+ CloseWithLogging(ds)
+ }
+ }
+
+ testMergedView()
+
ds.getFeatureSource(typeName).removeFeatures(ECQL.toFilter("INCLUDE"))
forall(Seq("INCLUDE",
diff --git a/geomesa-hbase/geomesa-hbase-dist/pom.xml b/geomesa-hbase/geomesa-hbase-dist/pom.xml
index d2b4664745eb..5dd0902d665e 100644
--- a/geomesa-hbase/geomesa-hbase-dist/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-dist/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-hbase/geomesa-hbase-distributed-runtime-hbase1/pom.xml b/geomesa-hbase/geomesa-hbase-distributed-runtime-hbase1/pom.xml
index 759e9d06ec91..8517b7edb0ab 100644
--- a/geomesa-hbase/geomesa-hbase-distributed-runtime-hbase1/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-distributed-runtime-hbase1/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-hbase_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
geomesa-hbase-distributed-runtime-hbase1_2.12
diff --git a/geomesa-hbase/geomesa-hbase-distributed-runtime-hbase2/pom.xml b/geomesa-hbase/geomesa-hbase-distributed-runtime-hbase2/pom.xml
index 1100b57f9390..981dc61ac4e1 100644
--- a/geomesa-hbase/geomesa-hbase-distributed-runtime-hbase2/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-distributed-runtime-hbase2/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-hbase_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
geomesa-hbase-distributed-runtime-hbase2_2.12
diff --git a/geomesa-hbase/geomesa-hbase-gs-plugin/pom.xml b/geomesa-hbase/geomesa-hbase-gs-plugin/pom.xml
index abe65232e079..489b8ac95c27 100644
--- a/geomesa-hbase/geomesa-hbase-gs-plugin/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-hbase/geomesa-hbase-jobs/pom.xml b/geomesa-hbase/geomesa-hbase-jobs/pom.xml
index d47b4fc98eef..1f95d0903d51 100644
--- a/geomesa-hbase/geomesa-hbase-jobs/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-jobs/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-hbase_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-rpc/pom.xml b/geomesa-hbase/geomesa-hbase-rpc/pom.xml
index 5cc21d455b6e..b0c071719225 100644
--- a/geomesa-hbase/geomesa-hbase-rpc/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-rpc/pom.xml
@@ -3,7 +3,7 @@
geomesa-hbase_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-server-hbase1/pom.xml b/geomesa-hbase/geomesa-hbase-server-hbase1/pom.xml
index 74501c27b5f8..749002ae7bef 100644
--- a/geomesa-hbase/geomesa-hbase-server-hbase1/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-server-hbase1/pom.xml
@@ -3,7 +3,7 @@
geomesa-hbase_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-server-hbase2/pom.xml b/geomesa-hbase/geomesa-hbase-server-hbase2/pom.xml
index 1de0f31d1a0f..6490d9f45090 100644
--- a/geomesa-hbase/geomesa-hbase-server-hbase2/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-server-hbase2/pom.xml
@@ -3,7 +3,7 @@
geomesa-hbase_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-server/pom.xml b/geomesa-hbase/geomesa-hbase-server/pom.xml
index 3ff32685e7b0..14cf59cf3728 100644
--- a/geomesa-hbase/geomesa-hbase-server/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-server/pom.xml
@@ -3,7 +3,7 @@
geomesa-hbase_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-spark-runtime-hbase1/pom.xml b/geomesa-hbase/geomesa-hbase-spark-runtime-hbase1/pom.xml
index 819e3cb5fc19..1ffc02652058 100644
--- a/geomesa-hbase/geomesa-hbase-spark-runtime-hbase1/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-spark-runtime-hbase1/pom.xml
@@ -3,7 +3,7 @@
geomesa-hbase_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-spark-runtime-hbase2/pom.xml b/geomesa-hbase/geomesa-hbase-spark-runtime-hbase2/pom.xml
index d8ebe2e7df26..b253adfbec2f 100644
--- a/geomesa-hbase/geomesa-hbase-spark-runtime-hbase2/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-spark-runtime-hbase2/pom.xml
@@ -3,7 +3,7 @@
geomesa-hbase_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-spark/pom.xml b/geomesa-hbase/geomesa-hbase-spark/pom.xml
index 1bc0aa692f3b..22663bbf7c4f 100644
--- a/geomesa-hbase/geomesa-hbase-spark/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-spark/pom.xml
@@ -3,7 +3,7 @@
geomesa-hbase_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/geomesa-hbase-tools/pom.xml b/geomesa-hbase/geomesa-hbase-tools/pom.xml
index fbbd21a7744f..0a1ba2069583 100644
--- a/geomesa-hbase/geomesa-hbase-tools/pom.xml
+++ b/geomesa-hbase/geomesa-hbase-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-hbase_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-hbase/pom.xml b/geomesa-hbase/pom.xml
index 942a49ab2d5d..b6802ac9b998 100644
--- a/geomesa-hbase/pom.xml
+++ b/geomesa-hbase/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-index-api/pom.xml b/geomesa-index-api/pom.xml
index 96a96879846b..d29515bbefeb 100644
--- a/geomesa-index-api/pom.xml
+++ b/geomesa-index-api/pom.xml
@@ -4,7 +4,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-index-api/src/main/scala/org/locationtech/geomesa/index/planning/StrategyDecider.scala b/geomesa-index-api/src/main/scala/org/locationtech/geomesa/index/planning/StrategyDecider.scala
index 213bac7d7cd3..84a5a5dbfa42 100644
--- a/geomesa-index-api/src/main/scala/org/locationtech/geomesa/index/planning/StrategyDecider.scala
+++ b/geomesa-index-api/src/main/scala/org/locationtech/geomesa/index/planning/StrategyDecider.scala
@@ -103,7 +103,7 @@ object StrategyDecider extends MethodProfiling with LazyLogging {
// corresponds to filter.exclude
// we still need to return something so that we can handle reduce steps, if needed
explain("No filter plans found - creating empty plan")
- FilterPlan(Seq(FilterStrategy(new EmptyIndex(ds, sft), None, None, temporal = false, 1f)))
+ FilterPlan(Seq(FilterStrategy(new EmptyIndex(ds, sft), Some(Filter.EXCLUDE), None, temporal = false, 1f)))
} else if (options.lengthCompare(1) == 0) {
// only a single option, so don't bother with cost
explain(s"Filter plan: ${options.head}")
diff --git a/geomesa-index-api/src/test/scala/org/locationtech/geomesa/index/geotools/GeoMesaDataStoreTest.scala b/geomesa-index-api/src/test/scala/org/locationtech/geomesa/index/geotools/GeoMesaDataStoreTest.scala
index 38999de08420..29544bfcda6c 100644
--- a/geomesa-index-api/src/test/scala/org/locationtech/geomesa/index/geotools/GeoMesaDataStoreTest.scala
+++ b/geomesa-index-api/src/test/scala/org/locationtech/geomesa/index/geotools/GeoMesaDataStoreTest.scala
@@ -17,6 +17,7 @@ import org.geotools.util.factory.Hints
import org.junit.runner.RunWith
import org.locationtech.geomesa.features.ScalaSimpleFeature
import org.locationtech.geomesa.index.TestGeoMesaDataStore
+import org.locationtech.geomesa.index.conf.QueryProperties
import org.locationtech.geomesa.index.geotools.GeoMesaDataStoreTest._
import org.locationtech.geomesa.index.index.EmptyIndex
import org.locationtech.geomesa.index.index.attribute.AttributeIndex
@@ -165,6 +166,47 @@ class GeoMesaDataStoreTest extends Specification {
ds2.dispose()
}
}
+ "block queries which would cause a full table scan via sys props" in {
+ val sft = SimpleFeatureTypes.createType("test",
+ "name:String,age:Int,dtg:Date,*geom:Point:srid=4326;geomesa.indices.enabled='id,z3,attr:name'")
+
+ val ds = new TestGeoMesaDataStore(true)
+ ds.createSchema(sft)
+
+ val valid = Seq(
+ "name = 'bob'",
+ "IN('123')",
+ "bbox(geom,-10,-10,10,10) AND dtg during 2020-01-01T00:00:00.000Z/2020-01-01T23:59:59.000Z",
+ "bbox(geom,-10,-10,10,10) AND (dtg during 2020-01-01T00:00:00.000Z/2020-01-01T00:59:59.000Z OR dtg during 2020-01-01T12:00:00.000Z/2020-01-01T12:59:59.000Z)",
+ "EXCLUDE"
+ )
+
+ val invalid = Seq(
+ "INCLUDE",
+ "bbox(geom,-180,-90,180,90)",
+ "name ilike '%b'",
+ "not IN('1')"
+ )
+
+ QueryProperties.BlockFullTableScans.threadLocalValue.set("true")
+ try {
+ foreach(valid.map(ECQL.toFilter)) { filter =>
+ val query = new Query(sft.getTypeName, filter)
+ SelfClosingIterator(ds.getFeatureReader(query, Transaction.AUTO_COMMIT)).toList must beEmpty
+ }
+
+ foreach(invalid.map(ECQL.toFilter)) { filter =>
+ val query = new Query(sft.getTypeName, filter)
+ SelfClosingIterator(ds.getFeatureReader(query, Transaction.AUTO_COMMIT)).toList must throwA[RuntimeException]
+ // you can set max features and use a full-table scan
+ query.setMaxFeatures(50)
+ SelfClosingIterator(ds.getFeatureReader(query, Transaction.AUTO_COMMIT)).toList must beEmpty
+ }
+ } finally {
+ QueryProperties.BlockFullTableScans.threadLocalValue.remove()
+ ds.dispose()
+ }
+ }
"support timestamp types with stats" in {
val sft = SimpleFeatureTypes.createType("ts", "dtg:Timestamp,*geom:Point:srid=4326")
ds.createSchema(sft)
diff --git a/geomesa-jobs/pom.xml b/geomesa-jobs/pom.xml
index 149ade0d8b29..22a9f5fceb07 100644
--- a/geomesa-jobs/pom.xml
+++ b/geomesa-jobs/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-jupyter/geomesa-jupyter-leaflet/pom.xml b/geomesa-jupyter/geomesa-jupyter-leaflet/pom.xml
index a22cc03e9120..ee17bb762acb 100644
--- a/geomesa-jupyter/geomesa-jupyter-leaflet/pom.xml
+++ b/geomesa-jupyter/geomesa-jupyter-leaflet/pom.xml
@@ -3,7 +3,7 @@
geomesa-jupyter_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-jupyter/geomesa-jupyter-vegas/pom.xml b/geomesa-jupyter/geomesa-jupyter-vegas/pom.xml
index 28c56e4257e2..040e6912d70b 100644
--- a/geomesa-jupyter/geomesa-jupyter-vegas/pom.xml
+++ b/geomesa-jupyter/geomesa-jupyter-vegas/pom.xml
@@ -3,7 +3,7 @@
geomesa-jupyter_2.12
org.locationtech.geomesa
- 3.5.0-SNAPSHOT
+ 3.5.1-SNAPSHOT
4.0.0
diff --git a/geomesa-jupyter/pom.xml b/geomesa-jupyter/pom.xml
index 1d2ec7f91676..cfe62298fe8f 100644
--- a/geomesa-jupyter/pom.xml
+++ b/geomesa-jupyter/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-kafka/geomesa-kafka-confluent/pom.xml b/geomesa-kafka/geomesa-kafka-confluent/pom.xml
index 362cbc3413cf..f3999b367d1c 100644
--- a/geomesa-kafka/geomesa-kafka-confluent/pom.xml
+++ b/geomesa-kafka/geomesa-kafka-confluent/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-kafka_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
jar
diff --git a/geomesa-kafka/geomesa-kafka-datastore/pom.xml b/geomesa-kafka/geomesa-kafka-datastore/pom.xml
index c20457fced8b..26f3f50c9f10 100644
--- a/geomesa-kafka/geomesa-kafka-datastore/pom.xml
+++ b/geomesa-kafka/geomesa-kafka-datastore/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-kafka_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
jar
diff --git a/geomesa-kafka/geomesa-kafka-datastore/src/main/scala/org/locationtech/geomesa/kafka/data/KafkaMetadata.scala b/geomesa-kafka/geomesa-kafka-datastore/src/main/scala/org/locationtech/geomesa/kafka/data/KafkaMetadata.scala
index 39100b5bf5cf..591ed6785684 100644
--- a/geomesa-kafka/geomesa-kafka-datastore/src/main/scala/org/locationtech/geomesa/kafka/data/KafkaMetadata.scala
+++ b/geomesa-kafka/geomesa-kafka-datastore/src/main/scala/org/locationtech/geomesa/kafka/data/KafkaMetadata.scala
@@ -22,6 +22,7 @@ import java.io.Closeable
import java.nio.charset.StandardCharsets
import java.time.Duration
import java.time.temporal.ChronoUnit
+import java.util.concurrent.atomic.AtomicBoolean
import java.util.concurrent.{ConcurrentHashMap, CountDownLatch, Future, TimeUnit}
import java.util.{Collections, Properties, UUID}
import scala.util.Try
@@ -37,12 +38,13 @@ import scala.util.control.NonFatal
class KafkaMetadata[T](val config: KafkaDataStoreConfig, val serializer: MetadataSerializer[T])
extends KeyValueStoreMetadata[T] {
+ import KafkaMetadata.LazyCloseable
import org.apache.kafka.clients.consumer.ConsumerConfig.{AUTO_OFFSET_RESET_CONFIG, GROUP_ID_CONFIG}
import scala.collection.JavaConverters._
private val producer = new LazyProducer(KafkaDataStore.producer(config.brokers, config.producers.properties))
- private lazy val consumer = new TopicMap()
+ private val consumer = new LazyCloseable(new TopicMap())
override protected def checkIfTableExists: Boolean =
adminClientOp(_.listTopics().names().get.contains(config.catalog))
@@ -71,12 +73,12 @@ class KafkaMetadata[T](val config: KafkaDataStoreConfig, val serializer: Metadat
producer.producer.flush()
}
- override protected def scanValue(row: Array[Byte]): Option[Array[Byte]] = consumer.get(row)
+ override protected def scanValue(row: Array[Byte]): Option[Array[Byte]] = consumer.instance.get(row)
override protected def scanRows(prefix: Option[Array[Byte]]): CloseableIterator[(Array[Byte], Array[Byte])] = {
prefix match {
- case None => consumer.all()
- case Some(p) => consumer.prefix(p)
+ case None => consumer.instance.all()
+ case Some(p) => consumer.instance.prefix(p)
}
}
@@ -99,6 +101,7 @@ class KafkaMetadata[T](val config: KafkaDataStoreConfig, val serializer: Metadat
private val state = new ConcurrentHashMap[KeyBytes, Array[Byte]]()
private val complete = new CountDownLatch(1)
+ private val closed = new AtomicBoolean(false)
private val consumer =
KafkaDataStore.consumer(config.brokers,
@@ -195,7 +198,10 @@ class KafkaMetadata[T](val config: KafkaDataStoreConfig, val serializer: Metadat
}
complete.await(10, TimeUnit.SECONDS)
} finally {
- cleanupConsumer()
+ // avoid checking consumer assignment if consumer is already closed, which will throw an error
+ if (closed.compareAndSet(false, true)) {
+ cleanupConsumer()
+ }
}
}
@@ -229,3 +235,21 @@ class KafkaMetadata[T](val config: KafkaDataStoreConfig, val serializer: Metadat
}
}
}
+
+object KafkaMetadata {
+ private class LazyCloseable[T <: Closeable](create: => T) extends Closeable {
+
+ @volatile private var initialized = false
+
+ lazy val instance: T = {
+ initialized = true
+ create
+ }
+
+ override def close(): Unit = {
+ if (initialized) {
+ instance.close()
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/geomesa-kafka/geomesa-kafka-dist/pom.xml b/geomesa-kafka/geomesa-kafka-dist/pom.xml
index 80fa17843471..b41fe18dd87e 100644
--- a/geomesa-kafka/geomesa-kafka-dist/pom.xml
+++ b/geomesa-kafka/geomesa-kafka-dist/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-kafka/geomesa-kafka-gs-plugin/pom.xml b/geomesa-kafka/geomesa-kafka-gs-plugin/pom.xml
index 89fd5f7b3c13..8fd3506b80f7 100644
--- a/geomesa-kafka/geomesa-kafka-gs-plugin/pom.xml
+++ b/geomesa-kafka/geomesa-kafka-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-kafka/geomesa-kafka-tools/pom.xml b/geomesa-kafka/geomesa-kafka-tools/pom.xml
index fba646fb4761..2266aefafcea 100644
--- a/geomesa-kafka/geomesa-kafka-tools/pom.xml
+++ b/geomesa-kafka/geomesa-kafka-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-kafka_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-kafka/geomesa-kafka-utils/pom.xml b/geomesa-kafka/geomesa-kafka-utils/pom.xml
index 9e858f6d438d..0de3fd532628 100644
--- a/geomesa-kafka/geomesa-kafka-utils/pom.xml
+++ b/geomesa-kafka/geomesa-kafka-utils/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa-kafka_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-kafka/pom.xml b/geomesa-kafka/pom.xml
index c08ce1a39c11..2c3ef6a87cc2 100644
--- a/geomesa-kafka/pom.xml
+++ b/geomesa-kafka/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-kudu/geomesa-kudu-datastore/pom.xml b/geomesa-kudu/geomesa-kudu-datastore/pom.xml
index f56cb2c45a52..7c61b1e00975 100644
--- a/geomesa-kudu/geomesa-kudu-datastore/pom.xml
+++ b/geomesa-kudu/geomesa-kudu-datastore/pom.xml
@@ -3,7 +3,7 @@
geomesa-kudu_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-kudu/geomesa-kudu-dist/pom.xml b/geomesa-kudu/geomesa-kudu-dist/pom.xml
index 48d5f2e20055..19f9bad91feb 100644
--- a/geomesa-kudu/geomesa-kudu-dist/pom.xml
+++ b/geomesa-kudu/geomesa-kudu-dist/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-kudu/geomesa-kudu-gs-plugin/pom.xml b/geomesa-kudu/geomesa-kudu-gs-plugin/pom.xml
index 0faff36bb24d..30b415d53a0d 100644
--- a/geomesa-kudu/geomesa-kudu-gs-plugin/pom.xml
+++ b/geomesa-kudu/geomesa-kudu-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-kudu/geomesa-kudu-spark-runtime/pom.xml b/geomesa-kudu/geomesa-kudu-spark-runtime/pom.xml
index e2b2a82e6d67..0262a8f4a6e9 100644
--- a/geomesa-kudu/geomesa-kudu-spark-runtime/pom.xml
+++ b/geomesa-kudu/geomesa-kudu-spark-runtime/pom.xml
@@ -3,7 +3,7 @@
geomesa-kudu_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-kudu/geomesa-kudu-spark/pom.xml b/geomesa-kudu/geomesa-kudu-spark/pom.xml
index 40b167b98887..7942ede999fc 100644
--- a/geomesa-kudu/geomesa-kudu-spark/pom.xml
+++ b/geomesa-kudu/geomesa-kudu-spark/pom.xml
@@ -3,7 +3,7 @@
geomesa-kudu_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-kudu/geomesa-kudu-tools/pom.xml b/geomesa-kudu/geomesa-kudu-tools/pom.xml
index 72f7edd8edb0..a90a95c9a811 100644
--- a/geomesa-kudu/geomesa-kudu-tools/pom.xml
+++ b/geomesa-kudu/geomesa-kudu-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-kudu_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-kudu/pom.xml b/geomesa-kudu/pom.xml
index a308d9ce434f..0eeeffd76871 100644
--- a/geomesa-kudu/pom.xml
+++ b/geomesa-kudu/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-lambda/geomesa-lambda-datastore/pom.xml b/geomesa-lambda/geomesa-lambda-datastore/pom.xml
index 3d8979d9bdba..4e0911cd6b4f 100644
--- a/geomesa-lambda/geomesa-lambda-datastore/pom.xml
+++ b/geomesa-lambda/geomesa-lambda-datastore/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-lambda_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
geomesa-lambda-datastore_2.12
diff --git a/geomesa-lambda/geomesa-lambda-dist/pom.xml b/geomesa-lambda/geomesa-lambda-dist/pom.xml
index 74e0075cda38..44efe2dcef86 100644
--- a/geomesa-lambda/geomesa-lambda-dist/pom.xml
+++ b/geomesa-lambda/geomesa-lambda-dist/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-lambda/geomesa-lambda-gs-plugin/pom.xml b/geomesa-lambda/geomesa-lambda-gs-plugin/pom.xml
index 01b237765d5d..ebe46b6de3a7 100644
--- a/geomesa-lambda/geomesa-lambda-gs-plugin/pom.xml
+++ b/geomesa-lambda/geomesa-lambda-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-lambda/geomesa-lambda-tools/pom.xml b/geomesa-lambda/geomesa-lambda-tools/pom.xml
index 283384aa6bcb..6d92d00a9483 100644
--- a/geomesa-lambda/geomesa-lambda-tools/pom.xml
+++ b/geomesa-lambda/geomesa-lambda-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-lambda_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-lambda/pom.xml b/geomesa-lambda/pom.xml
index 2957f8dde832..9e4f08abb663 100644
--- a/geomesa-lambda/pom.xml
+++ b/geomesa-lambda/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-memory/geomesa-cqengine-datastore/pom.xml b/geomesa-memory/geomesa-cqengine-datastore/pom.xml
index dd0a923613bd..81d45686d879 100644
--- a/geomesa-memory/geomesa-cqengine-datastore/pom.xml
+++ b/geomesa-memory/geomesa-cqengine-datastore/pom.xml
@@ -4,7 +4,7 @@
geomesa-memory_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-memory/geomesa-cqengine/pom.xml b/geomesa-memory/geomesa-cqengine/pom.xml
index ee009a265c3d..15d367af7033 100644
--- a/geomesa-memory/geomesa-cqengine/pom.xml
+++ b/geomesa-memory/geomesa-cqengine/pom.xml
@@ -4,7 +4,7 @@
geomesa-memory_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-memory/pom.xml b/geomesa-memory/pom.xml
index 6fa8df92a523..df6436fe441b 100644
--- a/geomesa-memory/pom.xml
+++ b/geomesa-memory/pom.xml
@@ -4,7 +4,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-metrics/geomesa-metrics-cloudwatch/pom.xml b/geomesa-metrics/geomesa-metrics-cloudwatch/pom.xml
index 7badd0aeff59..42283a66486c 100644
--- a/geomesa-metrics/geomesa-metrics-cloudwatch/pom.xml
+++ b/geomesa-metrics/geomesa-metrics-cloudwatch/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-metrics_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-metrics/geomesa-metrics-core/pom.xml b/geomesa-metrics/geomesa-metrics-core/pom.xml
index a5b7aa4eaf6a..f01ea2415d7e 100644
--- a/geomesa-metrics/geomesa-metrics-core/pom.xml
+++ b/geomesa-metrics/geomesa-metrics-core/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-metrics_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-metrics/geomesa-metrics-ganglia/pom.xml b/geomesa-metrics/geomesa-metrics-ganglia/pom.xml
index 5723c4c31e24..1d5d99369719 100644
--- a/geomesa-metrics/geomesa-metrics-ganglia/pom.xml
+++ b/geomesa-metrics/geomesa-metrics-ganglia/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-metrics_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-metrics/geomesa-metrics-graphite/pom.xml b/geomesa-metrics/geomesa-metrics-graphite/pom.xml
index 06b15e1fd0eb..f3c0d7054cd9 100644
--- a/geomesa-metrics/geomesa-metrics-graphite/pom.xml
+++ b/geomesa-metrics/geomesa-metrics-graphite/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-metrics_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-metrics/pom.xml b/geomesa-metrics/pom.xml
index 81128d969cf3..e30f2fb64bec 100644
--- a/geomesa-metrics/pom.xml
+++ b/geomesa-metrics/pom.xml
@@ -4,7 +4,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-process/geomesa-process-vector/pom.xml b/geomesa-process/geomesa-process-vector/pom.xml
index 97d344171833..89620551da60 100644
--- a/geomesa-process/geomesa-process-vector/pom.xml
+++ b/geomesa-process/geomesa-process-vector/pom.xml
@@ -3,7 +3,7 @@
geomesa-process_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-process/geomesa-process-wps/pom.xml b/geomesa-process/geomesa-process-wps/pom.xml
index cc17e8f77c1d..98fc9c47957d 100644
--- a/geomesa-process/geomesa-process-wps/pom.xml
+++ b/geomesa-process/geomesa-process-wps/pom.xml
@@ -3,7 +3,7 @@
geomesa-process_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-process/pom.xml b/geomesa-process/pom.xml
index e993ca9e26f7..87eeb62ab64b 100644
--- a/geomesa-process/pom.xml
+++ b/geomesa-process/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-redis/geomesa-redis-datastore/pom.xml b/geomesa-redis/geomesa-redis-datastore/pom.xml
index 91e17d10523d..919affdfd1da 100644
--- a/geomesa-redis/geomesa-redis-datastore/pom.xml
+++ b/geomesa-redis/geomesa-redis-datastore/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-redis_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
jar
diff --git a/geomesa-redis/geomesa-redis-dist/pom.xml b/geomesa-redis/geomesa-redis-dist/pom.xml
index 4455d5c697db..94ed635946ae 100644
--- a/geomesa-redis/geomesa-redis-dist/pom.xml
+++ b/geomesa-redis/geomesa-redis-dist/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-binary-dist_2.12
../../geomesa-archetypes/geomesa-archetypes-binary-dist/pom.xml
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
pom
diff --git a/geomesa-redis/geomesa-redis-gs-plugin/pom.xml b/geomesa-redis/geomesa-redis-gs-plugin/pom.xml
index ec9cbe008201..f39319ff1178 100644
--- a/geomesa-redis/geomesa-redis-gs-plugin/pom.xml
+++ b/geomesa-redis/geomesa-redis-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-redis/geomesa-redis-tools/pom.xml b/geomesa-redis/geomesa-redis-tools/pom.xml
index 6987b61e534d..2052d6015ff6 100644
--- a/geomesa-redis/geomesa-redis-tools/pom.xml
+++ b/geomesa-redis/geomesa-redis-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa-redis_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-redis/pom.xml b/geomesa-redis/pom.xml
index 94af8b8e05e0..349c15e8f376 100644
--- a/geomesa-redis/pom.xml
+++ b/geomesa-redis/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-security/pom.xml b/geomesa-security/pom.xml
index 83bbf9896e08..15f0489db1d7 100644
--- a/geomesa-security/pom.xml
+++ b/geomesa-security/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-security/src/main/scala/org/locationtech/geomesa/security/VisibilityEvaluator.scala b/geomesa-security/src/main/scala/org/locationtech/geomesa/security/VisibilityEvaluator.scala
index 1aa2e6c51e82..1181fd66710a 100644
--- a/geomesa-security/src/main/scala/org/locationtech/geomesa/security/VisibilityEvaluator.scala
+++ b/geomesa-security/src/main/scala/org/locationtech/geomesa/security/VisibilityEvaluator.scala
@@ -174,7 +174,13 @@ class VisibilityEvaluator private extends BasicParser {
private def parens: Rule1[VisibilityExpression] = rule { "(" ~ expression ~ ")" }
+ private def authChar: Rule0 = rule { char | "-" | ":" | "." | "/" }
+
+ private def unquotedAuthString: Rule1[String] = rule { oneOrMore(authChar) ~> { c => c } }
+
+ private def authString: Rule1[String] = rule { quotedString | singleQuotedString | unquotedAuthString }
+
private def value: Rule1[VisibilityExpression] = rule {
- string ~~> { s => VisibilityValue(s.getBytes(StandardCharsets.UTF_8))}
+ authString ~~> { s => VisibilityValue(s.getBytes(StandardCharsets.UTF_8))}
}
}
diff --git a/geomesa-security/src/test/scala/org/locationtech/geomesa/security/VisibilityEvaluatorTest.scala b/geomesa-security/src/test/scala/org/locationtech/geomesa/security/VisibilityEvaluatorTest.scala
index c12f41d86be0..a3e2892d4209 100644
--- a/geomesa-security/src/test/scala/org/locationtech/geomesa/security/VisibilityEvaluatorTest.scala
+++ b/geomesa-security/src/test/scala/org/locationtech/geomesa/security/VisibilityEvaluatorTest.scala
@@ -25,6 +25,20 @@ class VisibilityEvaluatorTest extends Specification {
"VisibilityEvaluator" should {
+ "be able to parse non-string chars" >> {
+ foreach(Seq('_', '-', ':', '.', '/')) { char =>
+ val vis = s"x${char}x"
+ VisibilityEvaluator.parse(vis) mustEqual VisibilityValue(vis.getBytes(StandardCharsets.UTF_8))
+ }
+ }
+
+ "be able to parse escaped quoted chars" >> {
+ foreach(Seq("'foo\\'bar'", "\"foo\\\"bar\"")) { vis =>
+ val value = vis.drop(1).dropRight(1).replaceAllLiterally("\\", "").getBytes(StandardCharsets.UTF_8)
+ VisibilityEvaluator.parse(vis) mustEqual VisibilityValue(value)
+ }
+ }
+
"be able to parse empty visibilities" >> {
VisibilityEvaluator.parse(null) mustEqual VisibilityNone
VisibilityEvaluator.parse("") mustEqual VisibilityNone
diff --git a/geomesa-spark/geomesa-spark-converter/pom.xml b/geomesa-spark/geomesa-spark-converter/pom.xml
index eb15d051e9f7..0a62d559b784 100644
--- a/geomesa-spark/geomesa-spark-converter/pom.xml
+++ b/geomesa-spark/geomesa-spark-converter/pom.xml
@@ -3,7 +3,7 @@
geomesa-spark_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-spark/geomesa-spark-core/pom.xml b/geomesa-spark/geomesa-spark-core/pom.xml
index b21d7a6a3cc4..d835014e6982 100644
--- a/geomesa-spark/geomesa-spark-core/pom.xml
+++ b/geomesa-spark/geomesa-spark-core/pom.xml
@@ -3,7 +3,7 @@
geomesa-spark_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-spark/geomesa-spark-jts/pom.xml b/geomesa-spark/geomesa-spark-jts/pom.xml
index 1a2741642736..768e20a5305f 100644
--- a/geomesa-spark/geomesa-spark-jts/pom.xml
+++ b/geomesa-spark/geomesa-spark-jts/pom.xml
@@ -3,7 +3,7 @@
geomesa-spark_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-spark/geomesa-spark-sql/pom.xml b/geomesa-spark/geomesa-spark-sql/pom.xml
index 231d50c8c7e4..7c45d6966aef 100644
--- a/geomesa-spark/geomesa-spark-sql/pom.xml
+++ b/geomesa-spark/geomesa-spark-sql/pom.xml
@@ -3,7 +3,7 @@
geomesa-spark_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-spark/geomesa_pyspark/pom.xml b/geomesa-spark/geomesa_pyspark/pom.xml
index b43a57a1f246..c815068f49bb 100644
--- a/geomesa-spark/geomesa_pyspark/pom.xml
+++ b/geomesa-spark/geomesa_pyspark/pom.xml
@@ -3,7 +3,7 @@
geomesa-spark_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-spark/pom.xml b/geomesa-spark/pom.xml
index 31c314bdcee2..ea9075703d4b 100644
--- a/geomesa-spark/pom.xml
+++ b/geomesa-spark/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-stream/geomesa-stream-api/pom.xml b/geomesa-stream/geomesa-stream-api/pom.xml
index aaa8411c29d6..0bb8b051e53f 100644
--- a/geomesa-stream/geomesa-stream-api/pom.xml
+++ b/geomesa-stream/geomesa-stream-api/pom.xml
@@ -3,7 +3,7 @@
geomesa-stream_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-stream/geomesa-stream-datastore/pom.xml b/geomesa-stream/geomesa-stream-datastore/pom.xml
index a216e209db48..b5fe19b80f25 100644
--- a/geomesa-stream/geomesa-stream-datastore/pom.xml
+++ b/geomesa-stream/geomesa-stream-datastore/pom.xml
@@ -3,7 +3,7 @@
geomesa-stream_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-stream/geomesa-stream-generic/pom.xml b/geomesa-stream/geomesa-stream-generic/pom.xml
index 026816799c1b..ed603936eb45 100644
--- a/geomesa-stream/geomesa-stream-generic/pom.xml
+++ b/geomesa-stream/geomesa-stream-generic/pom.xml
@@ -3,7 +3,7 @@
geomesa-stream_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-stream/geomesa-stream-gs-plugin/pom.xml b/geomesa-stream/geomesa-stream-gs-plugin/pom.xml
index 0ab1dc8cfbcc..d744fc34d12f 100644
--- a/geomesa-stream/geomesa-stream-gs-plugin/pom.xml
+++ b/geomesa-stream/geomesa-stream-gs-plugin/pom.xml
@@ -5,7 +5,7 @@
org.locationtech.geomesa
geomesa-archetypes-gs-plugin_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
../../geomesa-archetypes/geomesa-archetypes-gs-plugin/pom.xml
diff --git a/geomesa-stream/pom.xml b/geomesa-stream/pom.xml
index 397a4c0344fd..eb45f7ce61bc 100644
--- a/geomesa-stream/pom.xml
+++ b/geomesa-stream/pom.xml
@@ -3,7 +3,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-tools/pom.xml b/geomesa-tools/pom.xml
index 0b5093574f84..60eb50d6f3e5 100644
--- a/geomesa-tools/pom.xml
+++ b/geomesa-tools/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-utils/pom.xml b/geomesa-utils/pom.xml
index 141bcda51c31..747b783e1a75 100644
--- a/geomesa-utils/pom.xml
+++ b/geomesa-utils/pom.xml
@@ -4,7 +4,7 @@
org.locationtech.geomesa
geomesa_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-web/geomesa-web-core/pom.xml b/geomesa-web/geomesa-web-core/pom.xml
index 495bb89a8c2b..4defdb2ce9f8 100644
--- a/geomesa-web/geomesa-web-core/pom.xml
+++ b/geomesa-web/geomesa-web-core/pom.xml
@@ -3,7 +3,7 @@
geomesa-web_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-web/geomesa-web-stats/pom.xml b/geomesa-web/geomesa-web-stats/pom.xml
index 431821df5cb3..0ab29f7aa774 100644
--- a/geomesa-web/geomesa-web-stats/pom.xml
+++ b/geomesa-web/geomesa-web-stats/pom.xml
@@ -3,7 +3,7 @@
geomesa-web_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-web/pom.xml b/geomesa-web/pom.xml
index 442b98d5a3ee..8763a22b3495 100644
--- a/geomesa-web/pom.xml
+++ b/geomesa-web/pom.xml
@@ -4,7 +4,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-z3/pom.xml b/geomesa-z3/pom.xml
index 313386ea23d6..c3ed327d26a5 100644
--- a/geomesa-z3/pom.xml
+++ b/geomesa-z3/pom.xml
@@ -4,7 +4,7 @@
geomesa_2.12
org.locationtech.geomesa
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/geomesa-zk-utils/pom.xml b/geomesa-zk-utils/pom.xml
index bdb98ea90e4a..13711ed983b1 100644
--- a/geomesa-zk-utils/pom.xml
+++ b/geomesa-zk-utils/pom.xml
@@ -3,7 +3,7 @@
org.locationtech.geomesa
geomesa_2.12
- 3.5.0
+ 3.5.5-SNAPSHOT
4.0.0
diff --git a/pom.xml b/pom.xml
index da86b36b4036..84198677366d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.locationtech.geomesa
geomesa_2.12
pom
- 3.5.0
+ 3.5.5-SNAPSHOT
@@ -126,8 +126,8 @@
- 3.5.0
- 4.0.0-SNAPSHOT
+ 3.5.2
+ 4.1.0-SNAPSHOT
2022