<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<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>

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>10</version>
    </parent>


    <groupId>org.apache.storm</groupId>
    <artifactId>storm</artifactId>
    <version>1.1.0</version>
    <packaging>pom</packaging>
    <name>Storm</name>
    <description>Distributed and fault-tolerant realtime computation</description>
    <url>http://storm.apache.org</url>
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <mailingLists>
        <mailingList>
            <name>Storm user mailing list</name>
            <subscribe>user-subscribe@storm.apache.org</subscribe>
            <unsubscribe>user-unsubscribe@storm.apache.org</unsubscribe>
            <post>user@storm.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/storm-user/</archive>
        </mailingList>
        <mailingList>
            <name>Storm developer mailing list</name>
            <subscribe>dev-subscribe@storm.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@storm.apache.org</unsubscribe>
            <post>dev@storm.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/storm-dev/</archive>
        </mailingList>
    </mailingLists>

    <developers>
        <developer>
            <id>nathanmarz</id>
            <name>Nathan Marz</name>
            <email>nathan@nathanmarz.com</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <id>ptgoetz</id>
            <name>P. Taylor Goetz</name>
            <email>ptgoetz@apache.org</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-5</timezone>
        </developer>
        <developer>
            <id>xumingming</id>
            <name>James Xu</name>
            <email>xumingming@apache.org</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone />
        </developer>
        <developer>
            <id>afeng</id>
            <name>Andy Feng</name>
            <email>afeng@apache.org</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <id>davidlao</id>
            <name>David Lao</name>
            <email>davidlao@microsoft.com</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <id>mrflip</id>
            <name>Flip Kromer</name>
            <email>mrflip@apache.org</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone />
        </developer>
        <developer>
            <id>jjackson</id>
            <name>Jason Jackson</name>
            <email>jasonjckn@gmail.com</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <id>bobby</id>
            <name>Robert Evans</name>
            <email>evans@yahoo-inc.com</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-6</timezone>
        </developer>
        <developer>
            <id>dagit</id>
            <name>Derek Dagit</name>
            <email>derekd@yahoo-inc.com</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-6</timezone>
        </developer>
        <developer>
            <id>miguno</id>
            <name>Michael G. Noll</name>
            <email>michael@michael-noll.com</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
        <developer>
            <id>dossett</id>
            <name>Aaron Dossett</name>
            <email>dossett@apache.org</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-6</timezone>
        </developer>
        <developer>
            <id>jerrypeng</id>
            <name>Boyang Jerry Peng</name>
            <email>jerrypeng@apache.org</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>-6</timezone>
        </developer>
        <developer>
            <id>longda</id>
            <name>Longda Feng</name>
            <email>longda@apache.org</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>+8</timezone>
        </developer>
        <developer>
            <id>vesense</id>
            <name>Xin Wang</name>
            <email>xinwang@apache.org</email>
            <roles>
                <role>Committer</role>
            </roles>
            <timezone>+8</timezone>
        </developer>
    </developers>


    <prerequisites>
        <maven>3.0.0</maven>
    </prerequisites>

    <scm>
        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/storm.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/storm.git</developerConnection>
        <tag>v1.1.0</tag>
        <url>https://git-wip-us.apache.org/repos/asf/storm</url>
    </scm>

    <issueManagement>
        <system>jira</system>
        <url>https://issues.apache.org/jira/browse/STORM</url>
    </issueManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <test.extra.args>-Djava.net.preferIPv4Stack=true</test.extra.args>

        <!-- dependency versions -->
        <clojure.version>1.7.0</clojure.version>
        <java_jmx.version>0.3.1</java_jmx.version>
        <compojure.version>1.1.9</compojure.version>
        <hiccup.version>0.3.6</hiccup.version>
        <commons-compress.version>1.4.1</commons-compress.version>
        <commons-io.version>2.5</commons-io.version>
        <commons-lang.version>2.5</commons-lang.version>
        <commons-exec.version>1.1</commons-exec.version>
        <commons-collections.version>3.2.2</commons-collections.version>
        <commons-fileupload.version>1.3.2</commons-fileupload.version>
        <commons-codec.version>1.6</commons-codec.version>
        <commons-cli.version>1.3.1</commons-cli.version>
        <clj-time.version>0.8.0</clj-time.version>
        <curator.version>2.12.0</curator.version>
        <json-simple.version>1.1</json-simple.version>
        <ring.version>1.3.1</ring.version>
        <ring-json.version>0.3.1</ring-json.version>
        <ring-cors.version>0.1.5</ring-cors.version>
        <jetty.version>7.6.13.v20130916</jetty.version>
        <clojure.tools.logging.version>0.2.3</clojure.tools.logging.version>
        <clojure.math.numeric-tower.version>0.0.1</clojure.math.numeric-tower.version>
        <carbonite.version>1.5.0</carbonite.version>
        <snakeyaml.version>1.11</snakeyaml.version>
        <httpclient.version>4.3.3</httpclient.version>
        <clojure.tools.cli.version>0.2.4</clojure.tools.cli.version>
        <disruptor.version>3.3.2</disruptor.version>
        <jgrapht.version>0.9.0</jgrapht.version>
        <guava.version>16.0.1</guava.version>
        <netty.version>3.9.0.Final</netty.version>
        <log4j-over-slf4j.version>1.6.6</log4j-over-slf4j.version>
        <log4j.version>2.8</log4j.version>
        <slf4j.version>1.7.21</slf4j.version>
        <metrics.version>3.1.0</metrics.version>
        <clojure.tools.nrepl.version>0.2.3</clojure.tools.nrepl.version>
        <clojure-complete.version>0.2.3</clojure-complete.version>
        <mockito.version>1.9.5</mockito.version>
        <conjure.version>2.1.3</conjure.version>
        <zookeeper.version>3.4.6</zookeeper.version>
        <clojure-data-codec.version>0.1.0</clojure-data-codec.version>
        <clojure-contrib.version>1.2.0</clojure-contrib.version>
        <hive.version>0.14.0</hive.version>
        <hadoop.version>2.6.1</hadoop.version>
        <hbase.version>1.1.0</hbase.version>
        <kryo.version>3.0.3</kryo.version>
        <servlet.version>2.5</servlet.version>
        <joda-time.version>2.3</joda-time.version>
        <thrift.version>0.9.3</thrift.version>
        <junit.version>4.11</junit.version>
        <metrics-clojure.version>2.5.1</metrics-clojure.version>
        <hdrhistogram.version>2.1.7</hdrhistogram.version>

        <calcite.version>1.11.0</calcite.version>

        <jackson.version>2.6.3</jackson.version>
        <maven-surefire.version>2.18.1</maven-surefire.version>
        <!-- Kafka version used by old storm-kafka spout code -->
        <storm.kafka.version>0.8.2.1</storm.kafka.version>
        <storm.kafka.artifact.id>kafka_2.10</storm.kafka.artifact.id>

        <!-- kafka version used by new storm-kafka-client spout code -->
        <storm.kafka.client.version>0.10.0.0</storm.kafka.client.version>

        <!-- Java and clojure build lifecycle test properties are defined here to avoid having to create a default profile -->
        <java.unit.test.exclude>org.apache.storm.testing.IntegrationTest</java.unit.test.exclude>
        <java.unit.test.include>**/Test*.java, **/*Test.java, **/*TestCase.java</java.unit.test.include>    <!--maven surefire plugin default test list-->
        <!-- by default the clojure test set are all clojure tests that are not integration tests. This property is overridden in the profiles -->
        <clojure.test.set>!integration.*</clojure.test.set>

        <aetherVersion>1.0.0.v20140518</aetherVersion>
        <mavenVersion>3.1.0</mavenVersion>
        <wagonVersion>1.0</wagonVersion>
        <qpid.version>0.32</qpid.version>
        <eventhubs.client.version>1.0.1</eventhubs.client.version>

        <!-- see intellij profile below... This fixes an annoyance with intellij -->
        <provided.scope>provided</provided.scope>
    </properties>

    <modules>
        <module>storm-multilang/javascript</module>
        <module>storm-multilang/python</module>
        <module>storm-multilang/ruby</module>
        <module>storm-buildtools/maven-shade-clojure-transformer</module>
        <module>storm-buildtools/storm-maven-plugins</module>
        <module>storm-core</module>
        <module>storm-rename-hack</module>

        <!-- externals -->
        <module>external/storm-kafka</module>
        <module>external/storm-hdfs</module>
        <module>external/storm-hbase</module>
        <module>external/storm-hive</module>
        <module>external/storm-jdbc</module>
        <module>external/storm-redis</module>
        <module>external/storm-eventhubs</module>
        <module>external/flux</module>
        <module>external/sql</module>
        <module>external/storm-elasticsearch</module>
        <module>external/storm-solr</module>
        <module>external/storm-metrics</module>
        <module>external/storm-cassandra</module>
        <module>external/storm-mqtt</module>
        <module>external/storm-mongodb</module>
        <module>external/storm-kinesis</module>
        <module>external/storm-druid</module>
        <module>external/storm-submit-tools</module>
        <module>external/storm-kafka-client</module>
        <module>external/storm-opentsdb</module>
        <module>external/storm-kafka-monitor</module>
        <module>external/storm-jms</module>
        <module>external/storm-pmml</module>

        <!-- examples -->
        <module>examples/storm-starter</module>
        <module>examples/storm-mongodb-examples</module>
        <module>examples/storm-redis-examples</module>
        <module>examples/storm-opentsdb-examples</module>
        <module>examples/storm-solr-examples</module>
        <module>examples/storm-kafka-examples</module>
        <module>examples/storm-kafka-client-examples</module>
        <module>examples/storm-jdbc-examples</module>
        <module>examples/storm-hdfs-examples</module>
        <module>examples/storm-hbase-examples</module>
        <module>examples/storm-hive-examples</module>
        <module>examples/storm-elasticsearch-examples</module>
        <module>examples/storm-mqtt-examples</module>
        <module>examples/storm-pmml-examples</module>
        <module>examples/storm-jms-examples</module>
        <module>examples/storm-perf</module>
    </modules>

    <dependencies>
        <!-- The JUnit dependency is required for submodules by the maven-surefire-plugin <excludedGroups> configuration -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <profiles>
        <!--
            Hack to make intellij behave.
            If you use intellij, enable this profile in your IDE.
            It should make life easier.
        -->
        <profile>
            <id>intellij</id>
            <properties>
                <provided.scope>compile</provided.scope>
            </properties>
        </profile>

        <profile>
            <id>rat</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>0.12</version>
                        <executions>
                            <execution>
                                <phase>test</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <excludeSubProjects>false</excludeSubProjects>
                            <consoleOutput>true</consoleOutput>
                            <excludes>
                                <!-- exclude maven artifacts -->
                                <exclude>**/target/**</exclude>
                                <!-- exclude intellij projects -->
                                <exclude>**/*.iml</exclude>
                                <exclude>**/.idea/**</exclude>
                                <!-- exclude eclipse projects -->
                                <exclude>**/*.classpath</exclude>
                                <exclude>**/.project</exclude>
                                <exclude>**/.settings/**</exclude>
                                <!-- module specific testing artifacts -->
                                <exclude>**/metastore_db/**</exclude>
                                <!-- anything written into build should be ignored -->
                                <exclude>**/build/**</exclude>
                                <!-- logs generated during test -->
                                <exclude>**/logs/**</exclude>

                                <!-- exclude CHANGELOG, VERSION, AND TODO files -->
                                <exclude>**/CHANGELOG.md</exclude>
                                <exclude>**/README.md</exclude>
                                <exclude>**/README.markdown</exclude>
                                <exclude>**/DEVELOPER.md</exclude>
                                <exclude>**/BYLAWS.md</exclude>
                                <exclude>**/STORM-UI-REST-API.md</exclude>
                                <exclude>SECURITY.md</exclude>
                                <exclude>VERSION</exclude>
                                <exclude>TODO</exclude>
                                <!-- thrift-generated code -->
                                <exclude>**/src/py/**</exclude>

                                <!-- the following are in the LICENSE file -->
                                <exclude>**/src/ui/public/js/jquery.dataTables.1.10.4.min.js</exclude>
                                <exclude>**/src/ui/public/css/jquery.dataTables.1.10.4.min.css</exclude>
                                <exclude>**/src/ui/public/images/*</exclude>
                                <exclude>**/src/ui/public/js/bootstrap-3.3.1.min.js</exclude>
                                <exclude>**/src/ui/public/css/bootstrap-3.3.1.min.css</exclude>
                                <exclude>**/src/ui/public/js/dataTables.bootstrap.min.js</exclude>
                                <exclude>**/src/ui/public/css/dataTables.bootstrap.css</exclude>
                                <exclude>**/src/ui/public/js/jsonFormatter.min.js</exclude>
                                <exclude>**/src/ui/public/css/jsonFormatter.min.css</exclude>
                                <exclude>**/src/ui/public/js/jquery-1.11.1.min.js</exclude>
                                <exclude>**/src/ui/public/js/jquery.cookies.2.2.0.min.js</exclude>
                                <exclude>**/src/ui/public/js/moment.min.js</exclude>
                                <exclude>**/src/ui/public/js/jquery.blockUI.min.js</exclude>
                                <exclude>**/src/ui/public/js/url.min.js</exclude>
                                <exclude>**/src/ui/public/js/arbor.js</exclude>
                                <exclude>**/src/ui/public/js/arbor-graphics.js</exclude>
                                <exclude>**/src/ui/public/js/arbor-tween.js</exclude>
                                <exclude>**/src/ui/public/js/jquery.mustache.js</exclude>
                                <exclude>**/src/ui/public/js/typeahead.jquery.min.js</exclude>
                                <exclude>**/src/ui/public/js/cytoscape-dagre.js</exclude>
                                <exclude>**/src/ui/public/js/dagre.min.js</exclude>
                                <exclude>**/src/ui/public/js/esprima.min.js</exclude>
                                <exclude>**/src/ui/public/js/js-yaml.min.js</exclude>
                                <exclude>**/src/main/resources/Audit.50.csv</exclude>
                                <exclude>**/src/main/resources/KNIME_PMML_4.1_Examples_single_audit_logreg.xml</exclude>
                                <exclude>**/src/main/sampledata/**</exclude>

                                <!-- generated by shade plugin -->
                                <exclude>**/dependency-reduced-pom.xml</exclude>

                                <exclude>**/docs/**</exclude>
                                <exclude>**/.git/**</exclude>
                                <exclude>**/derby.log</exclude>
                                <exclude>**/src/dev/**</exclude>

                                <!-- StormSQL -->
                                <exclude>**/src/codegen/config.fmpp</exclude>
                                <exclude>**/src/codegen/data/Parser.tdd</exclude>

                                <!-- Avro Serializer Test Resource -->
                                <exclude>**/src/test/resources/FixedAvroSerializer.config</exclude>

                                <!-- Vagrant related files -->
                                <exclude>integration-test/config/.vagrant/**</exclude>

                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>sign</id>
            <build>
                <plugins>
                    <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>
        </profile>
        <profile>
            <id>dist</id>
            <modules>
                <module>storm-dist/binary</module>
                <module>storm-dist/source</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <configuration>
                            <outputDirectory>${project.build.directory}/javadoc</outputDirectory>
                            <reportOutputDirectory>./docs/javadoc</reportOutputDirectory>
                        </configuration>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>aggregate</id>
                                <goals>
                                    <goal>aggregate</goal>
                                </goals>
                                <phase>site</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <configuration>
                            <archive>
                                <manifest>
                                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                                    <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                                </manifest>
                            </archive>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>all-tests</id>
            <properties>
                <java.integration.test.include>**/*.java</java.integration.test.include>
                <java.integration.test.group>org.apache.storm.testing.IntegrationTest</java.integration.test.group>
                <clojure.test.set>*.*</clojure.test.set>
            </properties>
        </profile>
        <profile>
            <id>integration-tests-only</id>
            <properties>
                <!--Java-->
                <java.unit.test.include>no.unit.tests</java.unit.test.include>
                <java.integration.test.include>**/*.java</java.integration.test.include>
                <java.integration.test.group>org.apache.storm.testing.IntegrationTest</java.integration.test.group>
                <!--Clojure-->
                <clojure.test.set>integration.*</clojure.test.set>
                <clojure.test.declared.namespace.only>true</clojure.test.declared.namespace.only>
            </properties>
        </profile>
    </profiles>

    <distributionManagement>
        <site>
            <id>storm.maven.website</id>
            <name>Storm Website</name>
            <url>file:///tmp/site</url>
        </site>
    </distributionManagement>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.hdrhistogram</groupId>
                <artifactId>HdrHistogram</artifactId>
                <version>${hdrhistogram.version}</version>
            </dependency>
            <dependency>
                <groupId>org.clojure</groupId>
                <artifactId>clojure</artifactId>
                <version>${clojure.version}</version>
            </dependency>
            <dependency>
                <groupId>com.esotericsoftware</groupId>
                <artifactId>kryo</artifactId>
                <version>${kryo.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${commons-cli.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${commons-compress.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-exec</artifactId>
                <version>${commons-exec.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons-collections.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commons-lang.version}</version>
            </dependency>
            <dependency>
                <groupId>clj-time</groupId>
                <artifactId>clj-time</artifactId>
                <version>${clj-time.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.jmx</groupId>
                        <artifactId>jmxri</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jdmk</groupId>
                        <artifactId>jmxtools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.jms</groupId>
                        <artifactId>jms</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${joda-time.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-smile</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>${commons-fileupload.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${curator.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${curator.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-test</artifactId>
                <version>${curator.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.googlecode.json-simple</groupId>
                <artifactId>json-simple</artifactId>
                <version>${json-simple.version}</version>
            </dependency>
            <dependency>
                <groupId>compojure</groupId>
                <artifactId>compojure</artifactId>
                <version>${compojure.version}</version>
            </dependency>
            <dependency>
                <groupId>hiccup</groupId>
                <artifactId>hiccup</artifactId>
                <version>${hiccup.version}</version>
            </dependency>
            <dependency>
                <groupId>ring</groupId>
                <artifactId>ring-core</artifactId>
                <version>${ring.version}</version>
            </dependency>
            <dependency>
                <groupId>ring</groupId>
                <artifactId>ring-devel</artifactId>
                <version>${ring.version}</version>
            </dependency>
            <dependency>
                <groupId>ring</groupId>
                <artifactId>ring-jetty-adapter</artifactId>
                <version>${ring.version}</version>
            </dependency>
            <dependency>
                <groupId>ring</groupId>
                <artifactId>ring-json</artifactId>
                <version>${ring-json.version}</version>
            </dependency>
            <dependency>
                <groupId>ring-cors</groupId>
                <artifactId>ring-cors</artifactId>
                <version>${ring-cors.version}</version>
                <exclusions>
                  <exclusion>
                    <groupId>ring</groupId>
                    <artifactId>ring-core</artifactId>
                  </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlet</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlets</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${jetty.version}</version>
            </dependency>

            <dependency>
                <groupId>org.clojure</groupId>
                <artifactId>tools.logging</artifactId>
                <version>${clojure.tools.logging.version}</version>
            </dependency>
            <dependency>
                <groupId>org.clojure</groupId>
                <artifactId>math.numeric-tower</artifactId>
                <version>${clojure.math.numeric-tower.version}</version>
            </dependency>
            <dependency>
                <groupId>com.twitter</groupId>
                <artifactId>carbonite</artifactId>
                <version>${carbonite.version}</version>
            </dependency>
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${snakeyaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.clojure</groupId>
                <artifactId>tools.cli</artifactId>
                <version>${clojure.tools.cli.version}</version>
            </dependency>
            <dependency>
                <groupId>com.lmax</groupId>
                <artifactId>disruptor</artifactId>
                <version>${disruptor.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jgrapht</groupId>
                <artifactId>jgrapht-core</artifactId>
                <version>${jgrapht.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${log4j-over-slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
                <version>${log4j-over-slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>metrics-clojure</groupId>
                <artifactId>metrics-clojure</artifactId>
                <version>${metrics-clojure.version}</version>
            </dependency>
            <dependency>
                <groupId>org.clojure</groupId>
                <artifactId>clojure-contrib</artifactId>
                <version>${clojure-contrib.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.clojure</groupId>
                <artifactId>data.codec</artifactId>
                <version>${clojure-data-codec.version}</version>
            </dependency>
            <dependency>
                <groupId>org.clojure</groupId>
                <artifactId>tools.nrepl</artifactId>
                <version>${clojure.tools.nrepl.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <artifactId>clojure</artifactId>
                        <groupId>org.clojure</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>clojure-complete</groupId>
                <artifactId>clojure-complete</artifactId>
                <version>${clojure-complete.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <artifactId>clojure</artifactId>
                        <groupId>org.clojure</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.clojars.runa</groupId>
                <artifactId>conjure</artifactId>
                <version>${conjure.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.thrift</groupId>
                <artifactId>libthrift</artifactId>
                <version>${thrift.version}</version>
                <scope>compile</scope>
            </dependency>
            <!-- used by examples/storm-starter -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite</groupId>
                <artifactId>calcite-core</artifactId>
                <version>${calcite.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>${storm.kafka.artifact.id}</artifactId>
                <version>${storm.kafka.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${storm.kafka.client.version}</version>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <repositories>
        <repository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <url>http://repo1.maven.org/maven2/</url>
        </repository>
        <repository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>clojars</id>
            <url>https://clojars.org/repo/</url>
        </repository>
    </repositories>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven-surefire.version}</version>
                    <configuration>
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <excludedGroups>${java.unit.test.exclude}</excludedGroups>
                        <includes>
                            <include>${java.unit.test.include}</include>
                        </includes>
                        <argLine>-Xmx1536m</argLine>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${maven-surefire.version}</version>
                    <configuration>
                        <includes>
                            <include>${java.integration.test.include}</include>
                        </includes>
                        <groups>${java.integration.test.group}</groups>  <!--set in integration-test the profile-->
                        <argLine>-Xmx1536m</argLine>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.2.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.2.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.9</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5</version>
                </plugin>
                <plugin>
                    <groupId>com.theoryinpractise</groupId>
                    <artifactId>clojure-maven-plugin</artifactId>
                    <version>1.7.1</version>
                    <extensions>true</extensions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-report-plugin</artifactId>
                    <version>2.16</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>1.6</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>2.4.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>2.7</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.3</version>
                </plugin>
            </plugins>
        </pluginManagement>


        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <tagNameFormat>v@{project.version}</tagNameFormat>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.theoryinpractise</groupId>
                <artifactId>clojure-maven-plugin</artifactId>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <doclet>ch.raffael.doclets.pegdown.PegdownDoclet</doclet>
                    <docletArtifact>
                        <groupId>ch.raffael.pegdown-doclet</groupId>
                        <artifactId>pegdown-doclet</artifactId>
                        <version>1.1</version>
                    </docletArtifact>
                    <useStandardDocletOptions>true</useStandardDocletOptions>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.11</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>checkstyle</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.0.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <configuration>
                    <reportsDirectories>
                        <file>${project.build.directory}/test-reports</file>
                        <file>${project.build.directory}/surefire-reports</file>
                    </reportsDirectories>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>taglist-maven-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <tagListOptions>
                        <tagClasses>
                            <tagClass>
                                <displayName>Todo Work</displayName>
                                <tags>
                                    <tag>
                                        <matchString>TODO</matchString>
                                        <matchType>exact</matchType>
                                    </tag>
                                    <tag>
                                        <matchString>FIXME</matchString>
                                        <matchType>exact</matchType>
                                    </tag>
                                </tags>
                            </tagClass>
                        </tagClasses>
                    </tagListOptions>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>
