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**      [![Build Status](https://github.com/locationtech/geomesa/actions/workflows/build-and-test-2.12.yml/badge.svg?branch=main)](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