<?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>

    <groupId>org.geomesa.nifi</groupId>
    <artifactId>geomesa-nifi</artifactId>
    <version>3.5.0</version>
    <packaging>pom</packaging>

    <name>GeoMesa-NiFi</name>
    <description>NiFi Processors for ingesting and converting geo data using GeoMesa and GeoTools</description>
    <url>https://github.com/geomesa/geomesa-nifi</url>
    <inceptionYear>2015</inceptionYear>

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

    <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>

    <modules>
        <module>geomesa-accumulo-bundle</module>
        <module>geomesa-datastore-bundle</module>
        <module>geomesa-fs-bundle</module>
        <module>geomesa-hbase-bundle</module>
        <module>geomesa-kafka-bundle</module>
        <module>geomesa-lambda-bundle</module>
        <module>geomesa-redis-bundle</module>
    </modules>

    <properties>
        <geomesa.version>3.5.0</geomesa.version>
        <gt.version>23.3</gt.version>
        <scala.version>2.12.13</scala.version>
        <scala.binary.version>2.12</scala.binary.version>
        <accumulo.version>2.0.1</accumulo.version>
        <accumulo-1.version>1.10.1</accumulo-1.version>
        <hbase.version>2.2.6</hbase.version>
        <hbase-1.version>1.4.13</hbase-1.version>
        <kafka.version>2.1.1</kafka.version>
        <zookeer.version>3.5.9</zookeer.version>
        <zkclient.version>0.10</zkclient.version>
        <curator.version>4.3.0</curator.version>
        <nifi.version>1.15.3</nifi.version>
        <hadoop.version>2.8.5</hadoop.version>
        <fasterxml.jackson.version>2.9.7</fasterxml.jackson.version>
        <aws.java.sdk.version>1.11.412</aws.java.sdk.version>
        <avro.version>1.8.1</avro.version> <!-- matches version in nifi 1.12 -->
        <netty.version>4.1.48.Final</netty.version>

        <specs2.version>4.9.2</specs2.version>
        <junit.version>4.13.1</junit.version>
        <slf4j.version>1.7.36</slf4j.version>
        <reload4j.version>1.2.22</reload4j.version>
        <scalalogging.version>3.8.0</scalalogging.version>
        <maven.test.jvmargs>-Xms512m -Xmx4g -XX:-UseGCOverheadLimit</maven.test.jvmargs>

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

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

    <dependencyManagement>
        <dependencies>
            <!-- Nifi Dependencies -->
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-standard-services-api-nar</artifactId>
                <version>${nifi.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-aws-service-api-nar</artifactId>
                <version>${nifi.version}</version>
                <type>nar</type>
            </dependency>
            <!-- record utils isn't in any of our inherited standard nifi nars -->
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-standard-record-utils</artifactId>
                <version>${nifi.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-api</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-utils</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-processor-utils</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-aws-service-api</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-record</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-avro-record-utils</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-record-serialization-service-api</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-record-sink-api</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-schema-registry-service-api</artifactId>
                <version>${nifi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-record-serialization-services</artifactId>
                <version>${nifi.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-standard-processors</artifactId>
                <version>${nifi.version}</version>
                <scope>test</scope>
                <exclusions>
                    <!-- this artifact relies on a non-secure repo and maven won't resolve it -->
                    <exclusion>
                        <groupId>com.fluenda</groupId>
                        <artifactId>ParCEFone</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- managed submodules -->

            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-datastore-services-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-accumulo-processors</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-accumulo1-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-accumulo2-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-datastore-services-api-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-datastore-services</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-datastore-services-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-datastore-processors</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-fs-processors</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-fs-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-hbase-processors</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-hbase1-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-hbase2-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-kafka-processors</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-kafka-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-lambda-processors</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-lambda-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-redis-processors</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geomesa.nifi</groupId>
                <artifactId>geomesa-redis-nar</artifactId>
                <version>${project.version}</version>
                <type>nar</type>
            </dependency>


            <!-- geomesa -->

            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-convert-all_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-index-api_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-utils_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-process-vector_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-tools_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-metrics-graphite_2.12</artifactId>
                <version>${geomesa.version}</version>
            </dependency>

            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-datastore_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-datastore_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-hbase-datastore_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kafka-datastore_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-lambda-datastore_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-redis-datastore_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-gt-partitioning_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>

            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-storage-api_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-storage-parquet_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-fs-storage-orc_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-zk-utils_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
            </dependency>

            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-main</artifactId>
                <version>${gt.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-render</artifactId>
                <version>${gt.version}</version>
            </dependency>

            <!-- data store dependencies -->

            <dependency>
                <groupId>org.apache.accumulo</groupId>
                <artifactId>accumulo-core</artifactId>
                <version>${accumulo.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </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>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeer.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>${zkclient.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-client</artifactId>
                <version>${hbase.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-common</artifactId>
                <version>${hbase.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-protocol</artifactId>
                <version>${hbase.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_${scala.binary.version}</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${kafka.version}</version>
            </dependency>

            <dependency>
                <groupId>org.geotools.jdbc</groupId>
                <artifactId>gt-jdbc-postgis</artifactId>
                <version>${gt.version}</version>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>42.2.12</version>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>${hadoop.version}</version>
                <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>
                <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-hdfs</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-auth</artifactId>
                <version>${hadoop.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-mapreduce-client-core</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-common</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-aws</artifactId>
                <version>${hadoop.version}</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk</artifactId>
                <version>${aws.java.sdk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-core</artifactId>
                <version>${aws.java.sdk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-s3</artifactId>
                <version>${aws.java.sdk.version}</version>
            </dependency>

            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>1.1.1.6</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.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-cbor</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${curator.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>1.8</version>
            </dependency>

            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro.version}</version>
            </dependency>

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.6</version>
            </dependency>

            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>28.0-jre</version>
            </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-codec-http</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>

            <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>

            <!-- scala -->

            <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>
            </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>com.typesafe.scala-logging</groupId>
                <artifactId>scala-logging_${scala.binary.version}</artifactId>
                <version>${scalalogging.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
                <scope>provided</scope>
            </dependency>

            <!-- test dependencies -->
            <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.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
                <version>${slf4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
                <version>${reload4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-mock</artifactId>
                <version>${nifi.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>2.8.47</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-kafka-datastore_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.locationtech.geomesa</groupId>
                <artifactId>geomesa-accumulo-datastore_${scala.binary.version}</artifactId>
                <version>${geomesa.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <!-- this is a transitive dependency - this version fixes the usage of a non-https repo that get blocked by maven -->
            <dependency>
                <groupId>com.fluenda</groupId>
                <artifactId>ParCEFone</artifactId>
                <version>1.2.8</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <!-- 3.1.0 was released 2017-08-13. -->
                    <version>3.1.0</version>
                    <configuration>
                        <tarLongFileMode>posix</tarLongFileMode>
                    </configuration>
                </plugin>
                <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>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>
                        <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>
                        </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-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>
                </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>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>false</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-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>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.nifi</groupId>
                    <artifactId>nifi-nar-maven-plugin</artifactId>
                    <version>1.3.2</version>
                </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.txt</validHeader>
                        </validHeaders>
                        <properties>
                            <year>2022</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-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>${slf4j.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>jcl-over-slf4j</artifactId>
                            <version>${slf4j.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>3.0.0-M2</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>
                    </execution>
                    <execution>
                        <id>scala-test-compile</id>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </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>com.mycila</groupId>
                <artifactId>license-maven-plugin</artifactId>
            </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>
                            <failOnError>true</failOnError>
                            <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</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedDependencies>
                                    <excludes combine.children="append">
                                        <exclude>log4j:*</exclude>
                                        <exclude>org.slf4j:slf4j-log4j12</exclude>
                                    </excludes>
                                </bannedDependencies>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <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>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>
                <snapshotRepository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
                <repository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
            </distributionManagement>
        </profile>
    </profiles>

    <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>
        <repository>
            <id>locationtech-releases</id>
            <url>https://repo.eclipse.org/content/groups/releases</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <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>
        <!-- geotools -->
        <repository>
            <id>osgeo</id>
            <url>https://repo.osgeo.org/repository/release</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>osgeo-snapshots</id>
            <url>https://repo.osgeo.org/repository/snapshot</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>confluent</id>
            <url>https://packages.confluent.io/maven/</url>
        </repository>
    </repositories>

</project>
