<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <name>GeoMesa</name>
    <description>A distributed spatio-temporal database built on a number of cloud data storage systems</description>
    <url>https://www.geomesa.org/</url>
    <inceptionYear>2013</inceptionYear>

    <groupId>org.locationtech.geomesa</groupId>
    <artifactId>geomesa_2.12</artifactId>
    <packaging>pom</packaging>
    <version>3.5.0</version>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <modules>
        <module>geomesa-accumulo</module>
        <module>geomesa-archetypes</module>
        <module>geomesa-arrow</module>
        <module>geomesa-bigtable</module>
        <module>geomesa-cassandra</module>
        <module>geomesa-convert</module>
        <module>geomesa-features</module>
        <module>geomesa-filter</module>
        <module>geomesa-fs</module>
        <module>geomesa-geojson</module>
        <module>geomesa-gt</module>
        <module>geomesa-hbase</module>
        <module>geomesa-index-api</module>
        <module>geomesa-jobs</module>
        <module>geomesa-jupyter</module>
        <module>geomesa-kafka</module>
        <module>geomesa-kudu</module>
        <module>geomesa-lambda</module>
        <module>geomesa-memory</module>
        <module>geomesa-metrics</module>
        <module>geomesa-process</module>
        <module>geomesa-redis</module>
        <module>geomesa-security</module>
        <module>geomesa-spark</module>
        <module>geomesa-stream</module>
        <module>geomesa-tools</module>
        <module>geomesa-utils</module>
        <module>geomesa-web</module>
        <module>geomesa-z3</module>
        <module>geomesa-zk-utils</module>
        <module>docs</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- *** main dependency versions *** -->

        <scala.version>2.12.13</scala.version>
        <scala.binary.version>2.12</scala.binary.version> <!-- must remain outside of version specific scala profiles for sbt/ivy -->

        <scala.xml.version>1.3.0</scala.xml.version>
        <scala.parsers.version>1.1.2</scala.parsers.version>

        <gt.version>23.3</gt.version> <!-- make sure this tracks with gs, jts, and spatial4j -->
        <geoserver.version>2.17.3</geoserver.version>
        <jts.version>1.17.0</jts.version> <!-- needs to track with gt/gs version -->
        <spatial4j.version>0.8</spatial4j.version> <!-- needs to track with jts version -->
        <!-- match dependency version used by gt-referencing for convenience -->
        <ejml.version>0.34</ejml.version>
        <avro.version>1.8.2</avro.version> <!-- see also confluent.avro.version -->
        <parquet.version>1.9.0</parquet.version>
        <orc.version>1.5.4</orc.version>
        <fasterxml.jackson.version>2.12.1</fasterxml.jackson.version> <!-- used by geoserver (2.9.10), spark (2.6.7) and arrow (2.7.1) -->
        <fasterxml.jackson.databind.version>2.12.1</fasterxml.jackson.databind.version> <!-- used by geoserver (2.9.10.4), spark (2.6.7.1) and arrow (2.7.1) -->
        <codehaus.jackson.version>1.9.3</codehaus.jackson.version>
        <json4s.version>3.5.4</json4s.version>
        <scalatra.version>2.6.3</scalatra.version>
        <kryo.version>3.0.3</kryo.version>
        <arrow.version>0.16.0</arrow.version>
        <netty.version>4.1.48.Final</netty.version>
        <metrics.version>3.2.6</metrics.version>
        <aws.sdk.version>1.11.421</aws.sdk.version>

        <specs2.version>4.9.2</specs2.version>
        <junit.version>4.13.1</junit.version>

        <!-- *** provided artifacts, not bundled to support multiple environments *** -->

        <accumulo.version>2.0.0</accumulo.version>
        <accumulo-1.version>1.9.3</accumulo-1.version>
        <zookeeper.version>3.4.14</zookeeper.version>
        <thrift.version>0.12.0</thrift.version>
        <hadoop.version>2.8.5</hadoop.version>
        <guava.version>27.0-jre</guava.version>
        <spark.version>2.4.7</spark.version>
        <hbase.version>2.2.3</hbase.version>
        <hbase-1.version>1.4.12</hbase-1.version>
        <hbase.guava.version>11.0.2</hbase.guava.version>
        <protobuf.version>2.5.0</protobuf.version>
        <cassandra.version>3.0.0</cassandra.version>
        <cassandra.guava.version>18.0</cassandra.guava.version>
        <kafka.version>2.1.1</kafka.version> <!-- also supports: 2.0.0, 1.1.1, 1.0.2, 0.10.2.1, 0.9.0.1 -->
        <zkclient.version>0.10</zkclient.version> <!-- corresponding versions: 0.10, 0.10, 0.10, 0.7 -->
        <kafka.jopt.version>5.0.4</kafka.jopt.version> <!-- corresponding versions: 5.0.4, 5.0.4, 4.9, 3.2 -->
        <confluent.version>5.1.0</confluent.version>
        <confluent.recommended.version>5.5.8</confluent.recommended.version>
        <confluent.avro.version>1.8.2</confluent.avro.version>

        <slf4j.version>1.7.36</slf4j.version> <!-- 1.7.x is for hadoop 2 and accumulo 1.5.x -->
        <scalalogging.version>3.8.0</scalalogging.version>
        <reload4j.version>1.2.22</reload4j.version>

        <!-- *** maven build configuration *** -->

        <!-- testing properties -->
        <maven.test.jvmargs>-Xms512m -Xmx4g -XX:-UseGCOverheadLimit -XX:MaxJavaStackTraceDepth=1000000</maven.test.jvmargs>
        <test.fork.count>4</test.fork.count>
        <test.fork.reuse>true</test.fork.reuse>
        <!-- arrow tests become extremely slow with assertions enabled-->
        <test.enable.assertions>false</test.enable.assertions>

        <!-- *** documentation *** -->

        <!-- bump version right before performing releases for the README and the documentation -->
        <geomesa.release.version>3.5.0</geomesa.release.version>
        <geomesa.devel.version>4.0.0-SNAPSHOT</geomesa.devel.version>
        <copyright.year>2022</copyright.year>

        <!-- recommended installation versions -->
        <accumulo.version.recommended>2.0.0</accumulo.version.recommended>
        <hbase.version.recommended>2.2.6</hbase.version.recommended>
        <hbase.thirdparty.version.recommended>2.2.1</hbase.thirdparty.version.recommended>
        <cassandra.server.version.recommended>3.11.8</cassandra.server.version.recommended>
        <cassandra.driver.version.recommended>3.10.2</cassandra.driver.version.recommended>
        <hadoop.version.recommended>2.8.5</hadoop.version.recommended>
        <zookeeper.version.recommended>3.4.14</zookeeper.version.recommended>
    </properties>

    <profiles>

        <profile>
            <id>zinc</id>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>net.alchim31.maven</groupId>
                            <artifactId>scala-maven-plugin</artifactId>
                            <configuration>
                                <recompileMode>incremental</recompileMode>
                                <useZincServer>true</useZincServer>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>

        <profile>
            <id>debug-tests</id>
            <properties>
                <maven.test.jvmargs>-Duser.timezone=UTC -Xms1g -Xmx8g -XX:-UseGCOverheadLimit -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dgeomesa.scan.ranges.target=500 -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y</maven.test.jvmargs>
            </properties>
        </profile>

        <profile>
            <id>central</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>net.alchim31.maven</groupId>
                        <artifactId>scala-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-javadoc</id>
                                <goals>
                                    <goal>doc-jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <distributionManagement>
                <repository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
                <snapshotRepository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
            </distributionManagement>
        </profile>

        <profile>
            <id>locationtech</id>
            <distributionManagement>
                <repository>
                    <id>repo.eclipse.org</id>
                    <name>GeoMesa Repository - Releases</name>
                    <url>https://repo.eclipse.org/content/repositories/geomesa-releases/</url>
                </repository>
                <snapshotRepository>
                    <id>repo.eclipse.org</id>
                    <name>GeoMesa Repository - Snapshots</name>
                    <url>https://repo.eclipse.org/content/repositories/geomesa-snapshots/</url>
                </snapshotRepository>
            </distributionManagement>
        </profile>

        <profile>
            <id>benchmarks</id>
            <modules>
                <module>benchmarks</module>
            </modules>
        </profile>
    </profiles>

    <dependencies>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
        </dependency>

        <!-- test dependencies -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-reload4j</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.reload4j</groupId>
            <artifactId>reload4j</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- geomesa modules -->
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-distributed-runtime_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-jobs_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-spark_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-archetypes-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-arrow-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-arrow-gt_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-arrow-jts</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-arrow-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-arrow-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-bigtable-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-bigtable-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-bigtable-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-cassandra-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-cassandra-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-cassandra-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-all_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-avro_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-common_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-fixedwidth_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-jdbc_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-json_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-parquet_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-osm_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-redis-cache_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-shp_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-text_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-xml_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-cqengine_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-feature-all_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-feature-avro_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-feature-common_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-feature-kryo_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-feature-nio_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-filter_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-spark-runtime_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-spark_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-storage-api_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-storage-common_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-storage-convert_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-storage-orc_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-storage-parquet_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-geojson-api_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-geojson-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-geojson-rest_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-gt-partitioning_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-gt-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-gt-spark_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-gt-spark-runtime_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-rpc_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-server_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-server-hbase2_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-server-hbase1_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-distributed-runtime-hbase1_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-distributed-runtime-hbase2_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-jobs_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-index-api_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-jobs_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-jupyter-leaflet_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kafka-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kafka-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kafka-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kafka-utils_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kafka-confluent_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kudu-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kudu-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kudu-spark_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kudu-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-lambda-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-lambda-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-lambda-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-metrics-core_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-metrics-cloudwatch_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-metrics-ganglia_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-metrics-graphite_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-process-vector_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-process-wps_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-redis-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-redis-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-redis-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-security_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-spark-converter_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-spark-core_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-spark-geotools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-spark-sql_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-tools_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-tools_${scala.binary.version}</artifactId>
                <classifier>data</classifier>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-stream-gs-plugin_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-utils_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-web-core_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-web_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-z3_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-zk-utils_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kafka-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-cqengine-datastore_${scala.binary.version}</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-compiler</artifactId>
                <version>${scala.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>jline</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-reflect</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scalap</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang.modules</groupId>
                <artifactId>scala-parser-combinators_${scala.binary.version}</artifactId>
                <version>${scala.parsers.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang.modules</groupId>
                <artifactId>scala-xml_${scala.binary.version}</artifactId>
                <version>${scala.xml.version}</version>
            </dependency>
            <dependency>
                <groupId>com.typesafe.scala-logging</groupId>
                <artifactId>scala-logging_${scala.binary.version}</artifactId>
                <version>${scalalogging.version}</version>
            </dependency>
            <!-- we've removed our direct joda dependency, but it still gets pulled in
                 transitively by scalatra and osm4j -->
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>2.3</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.jts.io</groupId>
                <artifactId>jts-io-common</artifactId>
                <version>${jts.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.jts</groupId>
                <artifactId>jts-core</artifactId>
                <version>${jts.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.spatial4j</groupId>
                <artifactId>spatial4j</artifactId>
                <version>${spatial4j.version}</version>
            </dependency>
            <dependency>
                <!-- 'works with' due to license issues -->
                <groupId>javax.media</groupId>
                <artifactId>jai_core</artifactId>
                <version>1.1.3</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- 'works with' due to license issues -->
                <groupId>javax.media</groupId>
                <artifactId>jai_codec</artifactId>
                <version>1.1.3</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- 'works with' due to license issues -->
                <groupId>javax.media</groupId>
                <artifactId>jai_imageio</artifactId>
                <version>1.1</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-main</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-shapefile</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-opengis</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-cql</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-metadata</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools.jdbc</groupId>
                <artifactId>gt-jdbc-postgis</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>42.2.12</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-imagemosaic</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_imageio</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.ejml</groupId>
                <artifactId>ejml-core</artifactId>
                <version>${ejml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ejml</groupId>
                <artifactId>ejml-simple</artifactId>
                <version>${ejml.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.ejml</groupId>
                        <artifactId>ejml-cdense</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ejml</groupId>
                        <artifactId>ejml-dsparse</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ejml</groupId>
                        <artifactId>ejml-fdense</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ejml</groupId>
                        <artifactId>ejml-zdense</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-referencing</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>jgridshift</groupId>
                        <artifactId>jgridshift</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>jgridshift</groupId>
                        <artifactId>jgridshift-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-epsg-hsql</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>jgridshift</groupId>
                        <artifactId>jgridshift</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>jgridshift</groupId>
                        <artifactId>jgridshift-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-epsg-wkt</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>jgridshift</groupId>
                        <artifactId>jgridshift</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>jgridshift</groupId>
                        <artifactId>jgridshift-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-coverage</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_imageio</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_codec</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>org.jaitools</groupId>
                        <artifactId>jt-zonalstats</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>org.jaitools</groupId>
                        <artifactId>jt-utils</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.locationtech.jts</groupId>
                        <artifactId>jts-example</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>it.geosolutions.imageio-ext</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-jdbc</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools.jdbc</groupId>
                <artifactId>gt-jdbc-h2</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-imageio-ext-gdal</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_imageio</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>it.geosolutions.imageio-ext</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-geotiff</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_imageio</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>it.geosolutions.imageio-ext</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-geojson</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-xml</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>commons-jxpath</groupId>
                        <artifactId>commons-jxpath</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools.xsd</groupId>
                <artifactId>gt-xsd-core</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools.xsd</groupId>
                <artifactId>gt-xsd-wfs</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-process</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_imageio</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>org.jaitools</groupId>
                        <artifactId>jt-utils</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.locationtech.jts</groupId>
                        <artifactId>jts-example</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>it.geosolutions.imageio-ext</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-process-feature</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_imageio</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_codec</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.locationtech.jts</groupId>
                        <artifactId>jts-example</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>it.geosolutions.imageio-ext</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-render</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>it.geosolutions.imageio-ext</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_imageio</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.locationtech.jts</groupId>
                        <artifactId>jts-example</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-transform</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-grid</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!--
                `org.eclipse.emf` is a transitive dependency of gt-xsd-wfs, however the version number is
                specified as `[2.15.0,3.0.0)`, which seems to intermittently trigger a maven bug. As of
                06/17/19 the latest version is 2.15.0
            -->
            <dependency>
                <groupId>org.eclipse.emf</groupId>
                <artifactId>org.eclipse.emf.common</artifactId>
                <version>2.15.0</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.emf</groupId>
                <artifactId>org.eclipse.emf.ecore</artifactId>
                <version>2.15.0</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.emf</groupId>
                <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
                <version>2.15.0</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.3</version>
            </dependency>
            <dependency>
                <groupId>commons-configuration</groupId>
                <artifactId>commons-configuration</artifactId>
                <version>1.6</version>
                <exclusions>
                    <exclusion>
                        <!-- exclude commons-beanutils-core, which doesn't exist in 1.9.3 -->
                        <groupId>commons-beanutils</groupId>
                        <artifactId>commons-beanutils-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>1.6</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>2.6.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-dbcp2</artifactId>
                <version>2.6.0</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.9</version>
            </dependency>
            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>3.3</version>
            </dependency>
            <dependency>
                <!-- managed from jts 1.1.1 and geotools 1.1 -->
                <groupId>com.googlecode.json-simple</groupId>
                <artifactId>json-simple</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>com.esotericsoftware</groupId>
                <artifactId>kryo-shaded</artifactId>
                <version>${kryo.version}</version>
            </dependency>
            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>2.10.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-csv</artifactId>
                <version>1.5</version>
            </dependency>
            <dependency>
                <groupId>org.calrissian.mango</groupId>
                <artifactId>mango-core</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>2.5.6</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.9</version>
            </dependency>
            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>2.2.0</version>
            </dependency>
            <!-- used by json-path (1.1) and hadoop-auth (1.2)-->
            <dependency>
                <groupId>net.minidev</groupId>
                <artifactId>accessors-smart</artifactId>
                <version>1.1</version>
                <exclusions>
                    <!--
                        excluded due to spark conflicts. note:
                        net.minidev:accessors-smart:jar:1.1 shades in asm, but does not relocate it
                        net.minidev:accessors-smart:jar:1.2-SNAPSHOT removes shaded asm, but still requires it
                        thus, if we update json-path versions, this exclusions will likely have to be removed
                    -->
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- used by json-path (2.2.1) and hadoop-auth (2.3)-->
            <dependency>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
                <version>2.2.1</version>
            </dependency>
            <!-- used by hbase -->
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-geometry</artifactId>
                <version>${gt.version}</version>
                <exclusions>
                    <exclusion>
                        <!-- excluded due to license issues -->
                        <groupId>javax.media</groupId>
                        <artifactId>jai_core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.googlecode.cqengine</groupId>
                <artifactId>cqengine</artifactId>
                <version>3.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.objenesis</groupId>
                <artifactId>objenesis</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <!-- This should match what Hadoop uses (and thus Hbase and Accumulo) -->
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.5</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>1.20</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.7</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>4.4</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>1.6</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.xerial.snappy</groupId>
                        <artifactId>snappy-java</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.parquet</groupId>
                <artifactId>parquet-column</artifactId>
                <version>${parquet.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.parquet</groupId>
                <artifactId>parquet-hadoop</artifactId>
                <version>${parquet.version}</version>
                 <exclusions>
                    <exclusion>
                        <groupId>org.xerial.snappy</groupId>
                        <artifactId>snappy-java</artifactId>
                    </exclusion>
                </exclusions>
           </dependency>
            <dependency>
                <groupId>org.apache.orc</groupId>
                <artifactId>orc-core</artifactId>
                <version>${orc.version}</version>
                <classifier>nohive</classifier>
                <exclusions>
                    <!-- excluded due to license issue -->
                    <exclusion>
                        <groupId>org.openjdk.jol</groupId>
                        <artifactId>jol-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.orc</groupId>
                <artifactId>orc-mapreduce</artifactId>
                <version>${orc.version}</version>
                <classifier>nohive</classifier>
                <exclusions>
                    <!-- excluded the with-hive orc-core -->
                    <exclusion>
                        <groupId>org.apache.orc</groupId>
                        <artifactId>orc-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>${codehaus.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>${codehaus.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
                <version>${codehaus.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
                <version>${codehaus.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-native_${scala.binary.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-core_${scala.binary.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-ext_${scala.binary.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>org.parboiled</groupId>
                <artifactId>parboiled-scala_${scala.binary.version}</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.parboiled</groupId>
                <artifactId>parboiled-core</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-jvm</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>2.3.0</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <!-- transitive dependency versioned due to license issues -->
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
                <version>1.4.01</version>
            </dependency>
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>2.2.7</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-core</artifactId>
                <version>2.2.11</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>2.2.11</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>4.3.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>4.3.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>4.3.0</version>
            </dependency>
            <!-- standardize httpcomponents version, used by various libraries including hadoop and thrift -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>4.4.6</version>
            </dependency>
            <dependency>
                <groupId>com.thoughtworks.paranamer</groupId>
                <artifactId>paranamer</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>chill_${scala.binary.version}</artifactId>
                <version>0.8.5</version>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>chill-java</artifactId>
                <version>0.8.5</version>
            </dependency>
            <dependency>
                <groupId>com.clearspring.analytics</groupId>
                <artifactId>stream</artifactId>
                <version>2.9.2</version>
                <exclusions>
                    <exclusion>
                        <groupId>it.unimi.dsi</groupId>
                        <artifactId>fastutil</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.typesafe</groupId>
                <artifactId>config</artifactId>
                <version>1.3.3</version>
            </dependency>
            <dependency>
                <groupId>com.github.pureconfig</groupId>
                <artifactId>pureconfig_${scala.binary.version}</artifactId>
                <version>0.11.1</version>
                <exclusions>
                    <exclusion>
                        <!-- should only be needed for scala 2.10 compilation -->
                        <groupId>org.typelevel</groupId>
                        <artifactId>macro-compat_${scala.binary.version}</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.arrow</groupId>
                <artifactId>arrow-vector</artifactId>
                <version>${arrow.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>3.0.1</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${fasterxml.jackson.databind.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-cbor</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-scala_${scala.binary.version}</artifactId>
                <version>${fasterxml.jackson.version}</version>
                <scope>provided</scope> <!-- from spark -->
            </dependency>
            <dependency>
                <groupId>org.ehcache</groupId>
                <artifactId>sizeof</artifactId>
                <version>0.3.0</version>
            </dependency>
            <dependency>
                <groupId>org.scalatra</groupId>
                <artifactId>scalatra_${scala.binary.version}</artifactId>
                <version>${scalatra.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scalatra</groupId>
                <artifactId>scalatra-auth_${scala.binary.version}</artifactId>
                <version>${scalatra.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scalatra</groupId>
                <artifactId>scalatra-json_${scala.binary.version}</artifactId>
                <version>${scalatra.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scalatra</groupId>
                <artifactId>scalatra-swagger_${scala.binary.version}</artifactId>
                <version>${scalatra.version}</version>
            </dependency>

            <!-- provided dependencies -->
            <dependency>
                <groupId>org.apache.accumulo</groupId>
                <artifactId>accumulo-core</artifactId>
                <version>${accumulo.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <!-- exclude hadoop 3+ only jars, since we're still compiling against haddop 2.8 -->
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-client-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-client-runtime</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.accumulo</groupId>
                <artifactId>accumulo-server-base</artifactId>
                <version>${accumulo.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <!-- exclude hadoop 3+ only jars, since we're still compiling against haddop 2.8 -->
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-client-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-client-runtime</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.accumulo</groupId>
                <artifactId>accumulo-start</artifactId>
                <version>${accumulo.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <!-- exclude hadoop 3+ only jars, since we're still compiling against haddop 2.8 -->
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-client-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-client-runtime</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.accumulo</groupId>
                <artifactId>cloudtrace</artifactId>
                <version>${accumulo.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.accumulo</groupId>
                <artifactId>accumulo-hadoop-mapreduce</artifactId>
                <version>${accumulo.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.thrift</groupId>
                <artifactId>libthrift</artifactId>
                <version>${thrift.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jsp-api-2.1</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jsp-2.1</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>hsqldb</groupId>
                        <artifactId>hsqldb</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish</groupId>
                        <artifactId>javax.servlet</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-annotations</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-auth</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-mapreduce-client-core</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-distcp</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-api</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-common</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-mapreduce-client-common</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs-client</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-mapreduce-client-shuffle</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-client</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-server-common</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-server-nodemanager</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-server-web-proxy</artifactId>
                <version>${hadoop.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>listenablefuture</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>failureaccess</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.checkerframework</groupId>
                        <artifactId>checker-qual</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.j2objc</groupId>
                        <artifactId>j2objc-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.errorprone</groupId>
                        <artifactId>error_prone_annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>animal-sniffer-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.jms</groupId>
                        <artifactId>jms</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jmx</groupId>
                        <artifactId>jmxri</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jdmk</groupId>
                        <artifactId>jmxtools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-client</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-protocol</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-common</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-annotations</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-server</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-mapreduce</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-procedure</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-hadoop-compat</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-hadoop2-compat</artifactId>
                <version>${hbase.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-testing-util</artifactId>
                <version>${hbase.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- pulled in by hbase but version is incorrect... -->
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>javax.el</artifactId>
                <version>3.0.1-b11</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.datastax.cassandra</groupId>
                <artifactId>cassandra-driver-core</artifactId>
                <version>${cassandra.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.datastax.cassandra</groupId>
                <artifactId>cassandra-driver-mapping</artifactId>
                <version>${cassandra.version}</version>
                <scope>provided</scope>
            </dependency>
            <!-- needs to be provided due to license issues -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-math3</artifactId>
                <version>3.6.1</version>
                <scope>provided</scope>
            </dependency>

            <!-- Netty 4.x used by arrow, hadoop, hbase, and c* -->
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-buffer</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-common</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>${netty.version}</version>
            </dependency>

            <!-- specific to hadoop not to be confused with above-->
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
                <version>3.6.2.Final</version>
            </dependency>

            <!-- geoserver 2.15 spring version -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>5.1.1.RELEASE</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-core</artifactId>
                <version>5.1.1.RELEASE</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-web</artifactId>
                <version>5.1.1.RELEASE</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- marked provided due to license issues -->
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>2.0.3</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- marked provided due to license issues -->
                <groupId>jline</groupId>
                <artifactId>jline</artifactId>
                <version>2.11</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.beust</groupId>
                <artifactId>jcommander</artifactId>
                <version>1.78</version>
            </dependency>

            <!-- test dependencies -->
            <dependency>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
                <version>${reload4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
                <version>${slf4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jul-to-slf4j</artifactId>
                <version>${slf4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.specs2</groupId>
                <artifactId>specs2-core_${scala.binary.version}</artifactId>
                <version>${specs2.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.specs2</groupId>
                <artifactId>specs2-junit_${scala.binary.version}</artifactId>
                <version>${specs2.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.specs2</groupId>
                <artifactId>specs2-mock_${scala.binary.version}</artifactId>
                <version>${specs2.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.accumulo</groupId>
                <artifactId>accumulo-test</artifactId>
                <version>${accumulo.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.accumulo</groupId>
                <artifactId>accumulo-minicluster</artifactId>
                <version>${accumulo.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-common</artifactId>
                <version>${hbase.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-minicluster</artifactId>
                <version>${hadoop.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <type>test-jar</type>
                <classifier>tests</classifier>
                <version>${hadoop.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-minikdc</artifactId>
                <version>${hadoop.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-test</artifactId>
                <version>4.3.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.arrow</groupId>
                <artifactId>arrow-vector</artifactId>
                <version>${arrow.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.scalatra</groupId>
                <artifactId>scalatra-specs2_${scala.binary.version}</artifactId>
                <version>${scalatra.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>false</filtering>
            </testResource>
            <testResource>
                <!-- user.dir points to the directory mvn was executed in, i.e. the top-level folder -->
                <directory>${user.dir}/build/test/resources</directory>
                <filtering>false</filtering>
            </testResource>
        </testResources>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <!-- 3.8.0 was released 2018-07-26. -->
                    <version>3.8.0</version>
                    <configuration>
                        <!-- Turn off 'useIncrementalCompilation' to keep this plugin
                             from recompiling Java files that the scala-maven-plugin
                             already compiled.  The scala-maven-plugin generates .class
                             files from Java sources when its 'incremental' option is
                             turned on (as it is in the 'zinc' profile).  In this case,
                             maven-compiler-plugin 3.0 to current (3.8.0) erroneously
                             detects changes and re-compiles the Java files unless this
                             option is turned off.  -->
                        <useIncrementalCompilation>false</useIncrementalCompilation>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <!-- 3.1.0 was released 2018-04-14. -->
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.6.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <!-- 3.1.0 was released 2018-04-23. -->
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <!-- 3.1.0 was released 2018-04-06. -->
                    <version>3.1.0</version>
                    <executions>
                        <execution>
                            <!-- binds to the default test-jar goal to exclude logging configs -->
                            <id>default</id>
                            <configuration>
                                <excludes>
                                    <exclude>log4j.properties</exclude>
                                    <exclude>log4j.xml</exclude>
                                    <exclude>logging.properties</exclude>
                                </excludes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <!-- 3.0.0-M1 was released 2018-09-23. -->
                    <version>3.0.0-M1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <!-- 3.1.1 was released 2018-05-19. -->
                    <version>3.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <!-- 3.3.0 was released 2020-04-27. -->
                    <version>3.3.0</version>
                    <configuration>
                      <tarLongFileMode>posix</tarLongFileMode>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <!-- 3.2.1 was released 2018-11-12. -->
                    <version>3.2.1</version>
                </plugin>
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <!-- 3.4.4 was released 2018-11-01.  It requires Maven version >= 3.3.9. -->
                    <version>3.4.4</version>
                    <configuration>
                        <dependencies>
                            <dependency>
                                <groupId>org.scala-lang</groupId>
                                <artifactId>scala-reflect</artifactId>
                                <version>${scala.version}</version>
                            </dependency>
                        </dependencies>
                        <jvmArgs>
                            <jvmArg>-Xms1024m</jvmArg>
                            <jvmArg>-Xmx8G</jvmArg>
                            <jvmArg>-Duser.timezone=UTC</jvmArg>
                            <jvmArg>-Djava.awt.headless=true</jvmArg>
                        </jvmArgs>
                        <args>
                            <arg>-nowarn</arg>
                            <arg>-unchecked</arg>
                            <arg>-deprecation</arg>
                        </args>
                        <source>1.8</source>
                        <target>1.8</target>
                        <scalaVersion>${scala.version}</scalaVersion>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <!-- 3.0.0-M4 was released 2019-11-13 -->
                    <version>3.0.0-M4</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-junit4</artifactId>
                            <version>3.0.0-M4</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <forkCount>${test.fork.count}</forkCount>
                        <reuseForks>${test.fork.reuse}</reuseForks>
                        <forkedProcessTimeoutInSeconds>0</forkedProcessTimeoutInSeconds>
                        <rerunFailingTestsCount>1</rerunFailingTestsCount> <!-- re-try intermittent failures -->
                        <enableAssertions>${test.enable.assertions}</enableAssertions>
                        <includes>
                            <include>**/*Test.java</include>
                        </includes>
                        <argLine>${maven.test.jvmargs}</argLine>
                        <systemPropertyVariables>
                            <java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
                            <java.awt.headless>true</java.awt.headless>
                            <user.timezone>UTC</user.timezone>
                            <user.language>en</user.language>
                            <user.region>US</user.region>
                            <geomesa.scan.ranges.target>500</geomesa.scan.ranges.target>
                            <geomesa.accumulo.test.tablet.servers>1</geomesa.accumulo.test.tablet.servers>
                            <geomesa.hbase.test.region.servers>1</geomesa.hbase.test.region.servers>
                            <!-- ZooKeeper uses a JMX feature of log4j that reload4j doesn't support.
                                 We need to disable it for the mini clusters to work in unit tests -->
                            <zookeeper.jmx.log4j.disable>true</zookeeper.jmx.log4j.disable>
                            <java.util.logging.config.file>logging.properties</java.util.logging.config.file>
                            <org.jboss.logging.provider>slf4j</org.jboss.logging.provider>
                        </systemPropertyVariables>
                        <!-- these can interfere with the mini clusters we spin up for unit tests -->
                        <excludedEnvironmentVariables>HADOOP_HOME,ZOOKEEPER_HOME,ACCUMULO_HOME,HBASE_HOME</excludedEnvironmentVariables>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>3.0.0-M3</version>
                    <executions>
                        <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <testSourceDirectory>src/test/scala</testSourceDirectory>
                        <systemProperties>
                            <!-- ZooKeeper uses a JMX feature of log4j that reload4j doesn't support.
                                 We need to disable it for the mini clusters to work in unit tests -->
                            <zookeeper.jmx.log4j.disable>true</zookeeper.jmx.log4j.disable>
                        </systemProperties>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <!-- 3.0.0-M2 was released 2021-12-27. -->
                    <version>3.0.0-M2</version>
                    <configuration>
                        <deployAtEnd>true</deployAtEnd>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <!-- 3.0.1 was released 2016-06-18. -->
                    <version>3.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <!-- 3.0.1 was released 2018-05-28. -->
                    <version>3.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <!-- 3.7.1 was released 2018-04-27. -->
                    <version>3.7.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <!-- 2.5.3 was released 2015-10-17 and is the latest as of 2018-11-29. -->
                    <version>2.5.3</version>
                    <configuration>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <tagNameFormat>geomesa-@{project.version}</tagNameFormat>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>pl.project13.maven</groupId>
                    <artifactId>git-commit-id-plugin</artifactId>
                    <version>2.2.5</version>
                    <configuration>
                        <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
                        <runOnlyOnce>false</runOnlyOnce>
                        <verbose>false</verbose>
                        <dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
                        <failOnNoGitDirectory>false</failOnNoGitDirectory>
                        <failOnUnableToExtractRepoInfo>false</failOnUnableToExtractRepoInfo>
                        <useNativeGit>true</useNativeGit>
                        <generateGitPropertiesFile>true</generateGitPropertiesFile>
                        <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
                        <!-- note: don't use includeProperties, it causes non-git properties to be excluded -->
                        <excludeProperties>
                            <excludeProperty>^git\.build\.user\.email$</excludeProperty>
                            <excludeProperty>^git\.build\.host$</excludeProperty>
                            <excludeProperty>^git\.remote\.origin\.url$</excludeProperty>
                            <excludeProperty>^git\.commit\.id\.describe-short$</excludeProperty>
                            <excludeProperty>^git\.commit\.user\.email$</excludeProperty>
                            <excludeProperty>^git\.commit\.message\.short$</excludeProperty>
                            <excludeProperty>^git\.commit\.id\.abbrev$</excludeProperty>
                            <excludeProperty>^git\.build\.user\.name$</excludeProperty>
                            <excludeProperty>^git\.closest\.tag\.commit\.count$</excludeProperty>
                            <excludeProperty>^git\.commit\.user\.name$</excludeProperty>
                        </excludeProperties>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.mycila</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <!-- 3.0 was released 2016-08-20 and is the latest as of 2018-11-30. -->
                    <version>3.0</version>
                    <configuration>
                        <header>build/copyright/ccri.txt</header>
                        <validHeaders>
                            <validHeader>build/copyright/ccri-dstl.txt</validHeader>
                            <validHeader>build/copyright/ccri-dstl-mitre.txt</validHeader>
                            <validHeader>build/copyright/dstl.txt</validHeader>
                            <validHeader>build/copyright/ibm.txt</validHeader>
                            <validHeader>build/copyright/ibm-ccri.txt</validHeader>
                            <validHeader>build/copyright/mitre.txt</validHeader>
                            <validHeader>build/copyright/ccri-mitre.txt</validHeader>
                        </validHeaders>
                        <properties>
                            <year>${copyright.year}</year>
                            <owner>Commonwealth Computer Research, Inc.</owner>
                        </properties>
                        <headerDefinitions>
                            <definitions>build/copyright/geomesa-header.xml</definitions>
                        </headerDefinitions>
                        <mapping>
                            <java>GEOMESA_JAVA</java>
                            <scala>GEOMESA_JAVA</scala>
                        </mapping>
                        <includes>
                            <include>src/main/java/**</include>
                            <include>src/main/scala/**</include>
                            <include>src/test/java/**</include>
                            <include>src/test/scala/**</include>
                        </includes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <!-- 3.0.0-M2 was released 2018-06-16. -->
                    <version>3.0.0-M2</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <!-- 3.0.0 was released 2018-01-07. -->
                    <version>3.0.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>slf4j-jdk14</artifactId>
                            <version>1.7.5</version>
                        </dependency>
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>jcl-over-slf4j</artifactId>
                            <version>1.7.5</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <!-- 1.6 was released 2015-01-19 and is the latest as of 2018-11-29. -->
                    <version>1.6</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>scala-compile-first</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>add-source</goal>
                            <goal>compile</goal>
                        </goals>
                        <!-- uncomment to enable useful error messages for pureconfig development -->
                        <!--<configuration>
                            <args>
                                <arg>-Xmacro-settings:materialize-derivations</arg>
                            </args>
                        </configuration>-->
                    </execution>
                    <execution>
                        <id>scala-test-compile</id>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>pl.project13.maven</groupId>
                <artifactId>git-commit-id-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>revision</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.mycila</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>license-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>validate</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <!-- running `mvn process-resources -N` will generate a new GeoMesa README.md -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-readme</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.basedir}</outputDirectory>
                            <overwrite>true</overwrite>
                            <resources>
                                <resource>
                                    <directory>build</directory>
                                    <includes>
                                        <include>README.md</include>
                                    </includes>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-images</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.basedir}/.github</outputDirectory>
                            <overwrite>true</overwrite>
                            <resources>
                                <resource>
                                    <directory>build</directory>
                                    <includes>
                                        <include>*.svg</include>
                                    </includes>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                            <goal>test-jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <executions>
                    <execution>
                        <id>verify-services-newlines</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <failsOnError>true</failsOnError>
                            <checkstyleRules>
                                <module name="Checker">
                                    <module name="NewlineAtEndOfFile" />
                                </module>
                            </checkstyleRules>
                            <excludes>**/*</excludes>
                            <resourceIncludes>META-INF/services/*</resourceIncludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-versions</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedDependencies>
                                    <excludes combine.children="append">
                                        <exclude>*:*_2.10</exclude>
                                        <exclude>*:*_2.11</exclude>
                                        <exclude>*:*_2.13</exclude>
                                        <exclude>log4j:*</exclude>
                                        <exclude>org.slf4j:slf4j-log4j12</exclude>
                                    </excludes>
                                </bannedDependencies>
                                <requireProperty>
                                    <message>property scala.version must be set</message>
                                    <property>scala.version</property>
                                    <regexMessage>property scala.version doesn't match expected compiler version</regexMessage>
                                    <regex>2.12.*</regex>
                                </requireProperty>
                                <requireProperty>
                                    <message>property scala.binary.version must be set</message>
                                    <property>scala.binary.version</property>
                                    <regexMessage>property scala.binary.version doesn't match compiler version</regexMessage>
                                    <regex>2.12</regex>
                                </requireProperty>
                                <requireMavenVersion>
                                    <version>[3.5.2,)</version>
                                </requireMavenVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <scm>
        <connection>scm:git:git@github.com:locationtech/geomesa.git</connection>
        <developerConnection>scm:git:git@github.com:locationtech/geomesa.git</developerConnection>
        <url>https://github.com/locationtech/geomesa</url>
        <tag>geomesa-3.5.0</tag>
    </scm>

    <developers>
        <developer>
            <name>Anthony Fox</name>
            <email>anthony@ccri.com</email>
            <organization>CCRi</organization>
            <organizationUrl>http://www.ccri.com</organizationUrl>
        </developer>
        <developer>
            <name>James Hughes</name>
            <email>jhughes@ccri.com</email>
            <organization>CCRi</organization>
            <organizationUrl>http://www.ccri.com</organizationUrl>
        </developer>
        <developer>
            <name>Emilio Lahr-Vivaz</name>
            <email>elahrvivaz@ccri.com</email>
            <organization>CCRi</organization>
            <organizationUrl>http://www.ccri.com</organizationUrl>
        </developer>
        <developer>
            <name>Andrew Hulbert</name>
            <email>ahulbert@ccri.com</email>
            <organization>CCRi</organization>
            <organizationUrl>http://www.ccri.com</organizationUrl>
        </developer>
        <developer>
            <name>Austin Heyne</name>
            <email>aheyne@ccri.com</email>
            <organization>CCRi</organization>
            <organizationUrl>http://www.ccri.com</organizationUrl>
        </developer>
    </developers>

    <repositories>
        <!-- include central so that it is searched before our alternate repos -->
        <repository>
            <id>central</id>
            <name>Maven Repository Switchboard</name>
            <layout>default</layout>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <!-- geotools -->
        <repository>
            <id>osgeo</id>
            <url>https://repo.osgeo.org/repository/release</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <!-- confluent -->
        <repository>
            <id>confluent</id>
            <url>https://packages.confluent.io/maven/</url>
        </repository>
        <!-- nightly geomesa snapshots -->
        <repository>
            <id>locationtech-snapshots</id>
            <url>https://repo.eclipse.org/content/groups/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <!-- nightly geotools snapshots -->
        <repository>
            <id>osgeo-snapshots</id>
            <url>https://repo.osgeo.org/repository/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

</project>
