<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <parent>
        <groupId>net.spals</groupId>
        <artifactId>spals-parent-pom</artifactId>
        <version>19</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>net.spals.appbuilder</groupId>
    <artifactId>spals-appbuilder-parent</artifactId>
    <version>0.6.3</version>
    <packaging>pom</packaging>

    <name>App Builder</name>
    <description>
        AppBuilder is a library to help easily create application micro-services in Java and Scala.
    </description>
    <url>https://github.com/spals/appbuilder</url>

    <developers>
        <developer>
            <name>Tim Kral</name>
        </developer>
        <developer>
            <name>Jim Spagnola</name>
        </developer>
    </developers>

    <scm>
        <connection>scm:git:git://github.com/spals/appbuilder.git</connection>
        <developerConnection>scm:git:git@github.com:spals/appbuilder.git</developerConnection>
        <url>https://github.com/spals/appbuilder</url>
    </scm>

    <licenses>
        <license>
            <name>The BSD 3-Clause License</name>
            <url>http://opensource.org/licenses/BSD-3-Clause</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <properties>
        <ascii-graphs.version>0.0.7</ascii-graphs.version>
        <aws-java-sdk.version>1.11.93</aws-java-sdk.version>
        <bcel.version>6.0</bcel.version>
        <cassandra-driver.version>3.2.0</cassandra-driver.version>
        <chill.version>0.9.2</chill.version>
        <dropwizard.version>1.1.0</dropwizard.version>
        <finatra.version>2.10.0</finatra.version>
        <governator.version>1.15.10</governator.version>
        <grpc.version>1.11.0</grpc.version>
        <grpc.jersey.version>0.3.2</grpc.jersey.version>
        <!--
        Downgrade guava.version to allow for better backwards compatibility
        with embedded applications. Specifically, the checkState signature
        auto-generated in FreeBuilder *_Builder classes.
        -->
        <guava.version>20.0</guava.version>
        <!-- NOTE: Must match what's available in governator.version -->
        <hibernate.version>5.3.4.Final</hibernate.version>
        <jasypt.version>1.9.2</jasypt.version>
        <!-- NOTE: Must match what's available in governator.version -->
        <javax.el>3.0.0</javax.el>
        <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
        <javax.ws.rs-api.version>2.1</javax.ws.rs-api.version>
        <!-- NOTE: Must match what's available in dropwizard.vesion -->
        <jersey.version>2.25.1</jersey.version>
        <jgrapht.version>1.0.1</jgrapht.version>
        <kafka-clients.version>0.10.1.1</kafka-clients.version>
        <kryo-serializers.version>0.41</kryo-serializers.version>
        <lightstep.tracer.version>0.12.15</lightstep.tracer.version>
        <logback.version>1.2.1</logback.version>
        <mapdb.version>3.0.3</mapdb.version>
        <mongodb-driver.version>3.5.0</mongodb-driver.version>
        <netty.version>4.1.22.Final</netty.version>
        <opentracing.aws.version>0.0.2</opentracing.aws.version>
        <opentracing.cassandra.version>0.0.2</opentracing.cassandra.version>
        <opentracing.concurrent.version>0.0.2</opentracing.concurrent.version>
        <opentracing.jaxrs2.version>0.0.9</opentracing.jaxrs2.version>
        <opentracing.mongo.version>0.0.3</opentracing.mongo.version>
        <opentracing.version>0.30.0</opentracing.version>
        <protobuf.version>3.3.0</protobuf.version>
        <reflections.version>0.9.10</reflections.version>
        <swagger.version>1.5.18</swagger.version>
        <swagger.finatra.version>0.7.2</swagger.finatra.version>
        <typesafe.config.version>1.3.1</typesafe.config.version>
        <!-- NOTE: Must match what's available in governator.version -->
        <validation-api.version>1.1.0.Final</validation-api.version>

        <maven-shade-plugin.minimizeJar>true</maven-shade-plugin.minimizeJar>
    </properties>

    <modules>
        <module>annotations</module>
        <module>app-core</module>
        <module>app-core-test</module>
        <module>app-dropwizard</module>
        <module>app-dropwizard-test</module>
        <module>app-examples</module>
        <module>app-finatra</module>
        <module>app-finatra-test</module>
        <module>app-grpc</module>
        <module>app-grpc-test</module>
        <module>app-mock</module>
        <module>app-mock-test</module>
        <module>bom</module>
        <module>config</module>
        <module>config-test</module>
        <module>executor-core</module>
        <module>executor-core-test</module>
        <module>filestore-core</module>
        <module>filestore-core-test</module>
        <module>filestore-s3</module>
        <module>filestore-s3-test</module>
        <module>graph</module>
        <module>graph-test</module>
        <module>keystore-core</module>
        <module>keystore-core-test</module>
        <module>mapstore-cassandra</module>
        <module>mapstore-cassandra-test</module>
        <module>mapstore-core</module>
        <module>mapstore-core-test</module>
        <module>mapstore-dynamodb</module>
        <module>mapstore-dynamodb-test</module>
        <module>mapstore-mongodb</module>
        <module>mapstore-mongodb-test</module>
        <module>message-core</module>
        <module>message-core-test</module>
        <module>message-kafka</module>
        <module>message-kafka-test</module>
        <module>model-core</module>
        <module>model-core-test</module>
        <module>model-protobuf</module>
        <module>model-protobuf-test</module>
        <module>monitor-core</module>
        <module>monitor-core-test</module>
        <module>monitor-lightstep</module>
        <module>reporting</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-dynamodb</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>com.datastax.cassandra</groupId>
                <artifactId>cassandra-driver-core</artifactId>
                <version>${cassandra-driver.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-scala_${scala.version}</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.inject.extensions</groupId>
                <artifactId>guice-testlib</artifactId>
                <version>${guice.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.jlmauduy</groupId>
                <artifactId>ascii-graphs_${scala.version}</artifactId>
                <version>${ascii-graphs.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.xiaodongw</groupId>
                <artifactId>swagger-finatra_${scala.version}</artifactId>
                <version>${swagger.finatra.version}</version>
            </dependency>
            <dependency>
                <groupId>com.lightstep.tracer</groupId>
                <artifactId>lightstep-tracer-jre</artifactId>
                <version>${lightstep.tracer.version}</version>
            </dependency>
            <dependency>
                <groupId>com.netflix.governator</groupId>
                <artifactId>governator</artifactId>
                <version>${governator.version}</version>
                <exclusions>
                    <!--
                    Exclude older version of hibernate which
                    conflicts with hibernate from Dropwizard.
                    -->
                    <exclusion>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-validator</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.netflix.governator</groupId>
                <artifactId>governator-api</artifactId>
                <version>${governator.version}</version>
            </dependency>
            <dependency>
                <groupId>com.netflix.governator</groupId>
                <artifactId>governator-core</artifactId>
                <version>${governator.version}</version>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>chill_${scala.version}</artifactId>
                <version>${chill.version}</version>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>chill-java</artifactId>
                <version>${chill.version}</version>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>finatra-http_${scala.version}</artifactId>
                <version>${finatra.version}</version>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>finatra-http_${scala.version}</artifactId>
                <version>${finatra.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>inject-app_${scala.version}</artifactId>
                <version>${finatra.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>inject-core_${scala.version}</artifactId>
                <version>${finatra.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>inject-modules_${scala.version}</artifactId>
                <version>${finatra.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>inject-request-scope_${scala.version}</artifactId>
                <version>${finatra.version}</version>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>inject-server_${scala.version}</artifactId>
                <version>${finatra.version}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.typesafe</groupId>
                <artifactId>config</artifactId>
                <version>${typesafe.config.version}</version>
            </dependency>
            <dependency>
                <groupId>com.xorlev.grpc-jersey</groupId>
                <artifactId>jersey-rpc-support</artifactId>
                <version>${grpc.jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>de.javakaffee</groupId>
                <artifactId>kryo-serializers</artifactId>
                <version>${kryo-serializers.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard</groupId>
                <artifactId>dropwizard-core</artifactId>
                <version>${dropwizard.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard</groupId>
                <artifactId>dropwizard-testing</artifactId>
                <version>${dropwizard.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-netty</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-protobuf</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-stub</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-api</artifactId>
                <version>${opentracing.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-noop</artifactId>
                <version>${opentracing.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-mock</artifactId>
                <version>${opentracing.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-util</artifactId>
                <version>${opentracing.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing.contrib</groupId>
                <artifactId>opentracing-aws-sdk</artifactId>
                <version>${opentracing.aws.version}</version>
                <!-- Exclude so that we can bring in our own version of the SDK -->
                <exclusions>
                    <exclusion>
                        <groupId>com.amazonaws</groupId>
                        <artifactId>aws-java-sdk</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.opentracing.contrib</groupId>
                <artifactId>opentracing-cassandra-driver</artifactId>
                <version>${opentracing.cassandra.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing.contrib</groupId>
                <artifactId>opentracing-concurrent</artifactId>
                <version>${opentracing.concurrent.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing.contrib</groupId>
                <artifactId>opentracing-jaxrs2</artifactId>
                <version>${opentracing.jaxrs2.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing.contrib</groupId>
                <artifactId>opentracing-mongo-driver</artifactId>
                <version>${opentracing.mongo.version}</version>
                <!-- Exclude so that we can bring in our own version of the driver -->
                <exclusions>
                    <exclusion>
                        <groupId>org.mongodb</groupId>
                        <artifactId>mongo-java-driver</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mongodb</groupId>
                        <artifactId>mongodb-driver-async</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-jaxrs</artifactId>
                <version>${swagger.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.ws.rs</groupId>
                        <artifactId>jsr311-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.reflections</groupId>
                        <artifactId>reflections</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${javax.servlet-api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>${validation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>javax.ws.rs-api</artifactId>
                <version>${javax.ws.rs-api.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-annotations</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-app-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-app-core-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-app-examples</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-config</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-config-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-executor-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-executor-core-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-filestore-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-filestore-core-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-graph</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-graph-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-keystore-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-keystore-core-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-mapstore-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-mapstore-core-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-message-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-message-core-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-model-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-model-core-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-app-mock</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-app-mock-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-monitor-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder</groupId>
                <artifactId>spals-appbuilder-monitor-core-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-app-dropwizard</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-app-dropwizard-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-app-finatra</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-app-finatra-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-app-grpc</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-app-grpc-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-filestore-s3</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-filestore-s3-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-mapstore-cassandra</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-mapstore-cassandra-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-mapstore-dynamodb</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-mapstore-dynamodb-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-mapstore-mongodb</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-mapstore-mongodb-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-message-kafka</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-message-kafka-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-model-protobuf</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-model-protobuf-test</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.spals.appbuilder.plugins</groupId>
                <artifactId>spals-appbuilder-monitor-lightstep</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.bcel</groupId>
                <artifactId>bcel</artifactId>
                <version>${bcel.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${kafka-clients.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>javax.el</artifactId>
                <version>${javax.el}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-netty-http</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jasypt</groupId>
                <artifactId>jasypt</artifactId>
                <version>${jasypt.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jgrapht</groupId>
                <artifactId>jgrapht-core</artifactId>
                <version>${jgrapht.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mapdb</groupId>
                <artifactId>mapdb</artifactId>
                <version>${mapdb.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongodb-driver</artifactId>
                <version>${mongodb-driver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongodb-driver-async</artifactId>
                <version>${mongodb-driver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.reflections</groupId>
                <artifactId>reflections</artifactId>
                <version>${reflections.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <profiles>
        <profile>
            <id>createUberJar</id>
            <!-- Create an Uber JAR for modules with production code -->
            <activation>
                <file>
                    <exists>src/main</exists>
                </file>
            </activation>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-shade-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>create-uber-jar</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>shade</goal>
                                </goals>
                                <configuration>
                                    <createSourcesJar>true</createSourcesJar>
                                    <minimizeJar>${maven-shade-plugin.minimizeJar}</minimizeJar>
                                    <!-- Relocation common packages that applications may want to upgrade -->
                                    <relocations>
                                        <relocation>
                                            <pattern>com.amazonaws</pattern>
                                            <shadedPattern>net.spals.shaded.com.amazonaws</shadedPattern>
                                        </relocation>
                                        <relocation>
                                            <pattern>com.fasterxml.jackson</pattern>
                                            <shadedPattern>net.spals.shaded.com.fasterxml.jackson</shadedPattern>
                                        </relocation>
                                        <relation>
                                            <pattern>com.google.auto.value</pattern>
                                            <shadedPattern>net.spals.shaded.com.google.auto.value</shadedPattern>
                                        </relation>
                                        <relocation>
                                            <pattern>com.google.common</pattern>
                                            <shadedPattern>net.spals.shaded.com.google.common</shadedPattern>
                                        </relocation>
                                        <relocation>
                                            <pattern>com.google.protobuf</pattern>
                                            <shadedPattern>net.spals.shaded.com.google.protobuf</shadedPattern>
                                        </relocation>
                                        <relocation>
                                            <pattern>org.apache.http</pattern>
                                            <shadedPattern>net.spals.shaded.org.apache.http</shadedPattern>
                                        </relocation>
                                        <relocation>
                                            <pattern>org.inferred.freebuilder</pattern>
                                            <shadedPattern>net.spals.shaded.org.inferred.freebuilder</shadedPattern>
                                        </relocation>
                                        <relocation>
                                            <pattern>org.joda.time</pattern>
                                            <shadedPattern>net.spals.shaded.org.joda.time</shadedPattern>
                                        </relocation>
                                        <relocation>
                                            <pattern>org.slf4j</pattern>
                                            <shadedPattern>net.spals.shaded.org.slf4j</shadedPattern>
                                        </relocation>
                                        <relocation>
                                            <pattern>org.yaml.snakeyaml</pattern>
                                            <shadedPattern>net.spals.shaded.org.yaml.snakeyaml</shadedPattern>
                                        </relocation>
                                    </relocations>
                                    <shadedArtifactAttached>true</shadedArtifactAttached>
                                    <shadedClassifierName>bundle</shadedClassifierName>
                                    <shadeTestJar>false</shadeTestJar>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

    </profiles>

</project>
