diff --git a/.travis.yml b/.travis.yml
index 1a79f48..d35d5e3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,6 +19,7 @@
   - MODULES=Core
   - MODULES=External
   - MODULES=Integration-Test
+  - MODULES=Check-Updated-License-Files
 
 dist: trusty
 sudo: required
@@ -39,6 +40,12 @@
   - sudo apt-get update
   - sudo apt-get install python3
   - sudo apt-get install python3-pip
+  - sudo add-apt-repository ppa:deadsnakes/ppa -y
+  - sudo apt-get update
+  - sudo apt-get install python3.6
+  - wget http://mirrors.rackhosting.com/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz -P $HOME
+  - tar xzvf $HOME/apache-maven-3.6.1-bin.tar.gz -C $HOME
+  - export PATH=$HOME/apache-maven-3.6.1/bin:$PATH
 install: /bin/bash ./dev-tools/travis/travis-install.sh `pwd`
 script:
   - /bin/bash ./dev-tools/travis/travis-script.sh `pwd` $MODULES
diff --git a/DEPENDENCY-LICENSES b/DEPENDENCY-LICENSES
index 16cc35a..3761367 100644
--- a/DEPENDENCY-LICENSES
+++ b/DEPENDENCY-LICENSES
@@ -5,11 +5,7 @@
     Apache License
 
         * HttpClient (commons-httpclient:commons-httpclient:3.0.1 - http://jakarta.apache.org/commons/httpclient/)
-        * HttpClient (commons-httpclient:commons-httpclient:3.1 - http://jakarta.apache.org/httpcomponents/httpclient-3.x/)
-        * HttpClient (org.apache.httpcomponents:httpclient:4.2.5 - http://hc.apache.org/httpcomponents-client)
-        * HttpCore (org.apache.httpcomponents:httpcore:4.2.4 - http://hc.apache.org/httpcomponents-core-ga)
-        * Log4j Implemented Over SLF4J (org.slf4j:log4j-over-slf4j:1.6.6 - http://www.slf4j.org)
-        * Log4j Implemented Over SLF4J (org.slf4j:log4j-over-slf4j:1.7.25 - http://www.slf4j.org)
+        * Log4j Implemented Over SLF4J (org.slf4j:log4j-over-slf4j:1.7.26 - http://www.slf4j.org)
 
     Apache License, Version 2.0
 
@@ -37,19 +33,14 @@
         * Apache Calcite Avatica (org.apache.calcite.avatica:avatica-core:1.10.0 - https://calcite.apache.org/avatica/avatica-core)
         * Apache Calcite Avatica Metrics (org.apache.calcite.avatica:avatica-metrics:1.10.0 - https://calcite.apache.org/avatica/avatica-metrics)
         * Apache Calcite Avatica Metrics (org.apache.calcite.avatica:avatica-metrics:1.8.0 - http://calcite.apache.org/avatica/avatica-metrics)
-        * Apache Commons CLI (commons-cli:commons-cli:1.3.1 - http://commons.apache.org/proper/commons-cli/)
         * Apache Commons CLI (commons-cli:commons-cli:1.4 - http://commons.apache.org/proper/commons-cli/)
-        * Apache Commons Codec (commons-codec:commons-codec:1.10 - http://commons.apache.org/proper/commons-codec/)
         * Apache Commons Codec (commons-codec:commons-codec:1.11 - http://commons.apache.org/proper/commons-codec/)
-        * Apache Commons Codec (commons-codec:commons-codec:1.9 - http://commons.apache.org/proper/commons-codec/)
         * Apache Commons Collections (commons-collections:commons-collections:3.2.2 - http://commons.apache.org/collections/)
         * Apache Commons Compress (org.apache.commons:commons-compress:1.18 - https://commons.apache.org/proper/commons-compress/)
-        * Apache Commons Compress (org.apache.commons:commons-compress:1.9 - http://commons.apache.org/proper/commons-compress/)
         * Apache Commons Crypto (org.apache.commons:commons-crypto:1.0.0 - http://commons.apache.org/proper/commons-crypto/)
         * Apache Commons CSV (org.apache.commons:commons-csv:1.4 - http://commons.apache.org/proper/commons-csv/)
         * Apache Commons Exec (org.apache.commons:commons-exec:1.3 - http://commons.apache.org/proper/commons-exec/)
         * Apache Commons FileUpload (commons-fileupload:commons-fileupload:1.3.3 - http://commons.apache.org/proper/commons-fileupload/)
-        * Apache Commons IO (commons-io:commons-io:2.5 - http://commons.apache.org/proper/commons-io/)
         * Apache Commons IO (commons-io:commons-io:2.6 - http://commons.apache.org/proper/commons-io/)
         * Apache Commons Lang (org.apache.commons:commons-lang3:3.2 - http://commons.apache.org/proper/commons-lang/)
         * Apache Commons Lang (org.apache.commons:commons-lang3:3.3 - http://commons.apache.org/proper/commons-lang/)
@@ -69,16 +60,11 @@
         * ApacheDS I18n (org.apache.directory.server:apacheds-i18n:2.0.0-M15 - http://directory.apache.org/apacheds/1.5/apacheds-i18n)
         * ApacheDS Protocol Kerberos Codec (org.apache.directory.server:apacheds-kerberos-codec:2.0.0-M15 - http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec)
         * Apache Groovy (org.codehaus.groovy:groovy-all:2.4.4 - http://groovy-lang.org)
-        * Apache Hadoop Annotations (org.apache.hadoop:hadoop-annotations:2.7.7 - no url defined)
         * Apache Hadoop Annotations (org.apache.hadoop:hadoop-annotations:2.8.5 - no url defined)
-        * Apache Hadoop Archives (org.apache.hadoop:hadoop-archives:2.7.2 - no url defined)
-        * Apache Hadoop Auth (org.apache.hadoop:hadoop-auth:2.7.7 - no url defined)
+        * Apache Hadoop Archives (org.apache.hadoop:hadoop-archives:2.8.5 - no url defined)
         * Apache Hadoop Auth (org.apache.hadoop:hadoop-auth:2.8.5 - no url defined)
         * Apache Hadoop Client (org.apache.hadoop:hadoop-client:2.8.5 - no url defined)
-        * Apache Hadoop Common (org.apache.hadoop:hadoop-common:2.7.7 - no url defined)
         * Apache Hadoop Common (org.apache.hadoop:hadoop-common:2.8.5 - no url defined)
-        * Apache Hadoop HDFS (org.apache.hadoop:hadoop-hdfs:2.7.2 - no url defined)
-        * Apache Hadoop HDFS (org.apache.hadoop:hadoop-hdfs:2.7.7 - no url defined)
         * Apache Hadoop HDFS (org.apache.hadoop:hadoop-hdfs:2.8.5 - no url defined)
         * Apache Hadoop HDFS Client (org.apache.hadoop:hadoop-hdfs-client:2.8.5 - no url defined)
         * Apache Hadoop MapReduce App (org.apache.hadoop:hadoop-mapreduce-client-app:2.8.5 - no url defined)
@@ -87,9 +73,14 @@
         * Apache Hadoop MapReduce JobClient (org.apache.hadoop:hadoop-mapreduce-client-jobclient:2.8.5 - no url defined)
         * Apache Hadoop MapReduce Shuffle (org.apache.hadoop:hadoop-mapreduce-client-shuffle:2.8.5 - no url defined)
         * Apache Hadoop YARN API (org.apache.hadoop:hadoop-yarn-api:2.8.5 - no url defined)
+        * Apache Hadoop YARN ApplicationHistoryService (org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:2.8.5 - no url defined)
         * Apache Hadoop YARN Client (org.apache.hadoop:hadoop-yarn-client:2.8.5 - no url defined)
         * Apache Hadoop YARN Common (org.apache.hadoop:hadoop-yarn-common:2.8.5 - no url defined)
+        * Apache Hadoop YARN NodeManager (org.apache.hadoop:hadoop-yarn-server-nodemanager:2.8.5 - no url defined)
+        * Apache Hadoop YARN Registry (org.apache.hadoop:hadoop-yarn-registry:2.8.5 - no url defined)
+        * Apache Hadoop YARN ResourceManager (org.apache.hadoop:hadoop-yarn-server-resourcemanager:2.8.5 - no url defined)
         * Apache Hadoop YARN Server Common (org.apache.hadoop:hadoop-yarn-server-common:2.8.5 - no url defined)
+        * Apache Hadoop YARN Web Proxy (org.apache.hadoop:hadoop-yarn-server-web-proxy:2.8.5 - no url defined)
         * Apache HBase - Annotations (org.apache.hbase:hbase-annotations:2.1.3 - http://hbase.apache.org/hbase-annotations)
         * Apache HBase - Client (org.apache.hbase:hbase-client:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-client)
         * Apache HBase - Common (org.apache.hbase:hbase-common:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-common)
@@ -108,28 +99,22 @@
         * Apache HBase - Shaded Protocol (org.apache.hbase:hbase-protocol-shaded:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-protocol-shaded)
         * Apache HBase - Zookeeper (org.apache.hbase:hbase-zookeeper:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-zookeeper)
         * Apache HttpAsyncClient (org.apache.httpcomponents:httpasyncclient:4.1.2 - http://hc.apache.org/httpcomponents-asyncclient)
-        * Apache HttpClient (org.apache.httpcomponents:httpclient:4.3.6 - http://hc.apache.org/httpcomponents-client)
-        * Apache HttpClient (org.apache.httpcomponents:httpclient:4.4.1 - http://hc.apache.org/httpcomponents-client)
         * Apache HttpClient (org.apache.httpcomponents:httpclient:4.5.2 - http://hc.apache.org/httpcomponents-client)
         * Apache HttpClient (org.apache.httpcomponents:httpclient:4.5.6 - http://hc.apache.org/httpcomponents-client)
         * Apache HttpClient (org.apache.httpcomponents:httpclient:4.5 - http://hc.apache.org/httpcomponents-client)
         * Apache HttpClient Mime (org.apache.httpcomponents:httpmime:4.4.1 - http://hc.apache.org/httpcomponents-client)
-        * Apache HttpCore (org.apache.httpcomponents:httpcore:4.3.3 - http://hc.apache.org/httpcomponents-core-ga)
         * Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.10 - http://hc.apache.org/httpcomponents-core-ga)
         * Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.1 - http://hc.apache.org/httpcomponents-core-ga)
-        * Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.4 - http://hc.apache.org/httpcomponents-core-ga)
         * Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.5 - http://hc.apache.org/httpcomponents-core-ga)
         * Apache HttpCore NIO (org.apache.httpcomponents:httpcore-nio:4.4.5 - http://hc.apache.org/httpcomponents-core-ga)
         * Apache Ivy (org.apache.ivy:ivy:2.4.0 - http://ant.apache.org/ivy/)
         * Apache Kafka (org.apache.kafka:kafka-clients:0.11.0.3 - http://kafka.apache.org)
         * Apache Log4j (log4j:log4j:1.2.17 - http://logging.apache.org/log4j/1.2/)
-        * Apache Log4j 1.x Compatibility API (org.apache.logging.log4j:log4j-1.2-api:2.6.2 - http://logging.apache.org/log4j/2.x/log4j-1.2-api/)
-        * Apache Log4j API (org.apache.logging.log4j:log4j-api:2.11.1 - https://logging.apache.org/log4j/2.x/log4j-api/)
-        * Apache Log4j API (org.apache.logging.log4j:log4j-api:2.6.2 - http://logging.apache.org/log4j/2.x/log4j-api/)
-        * Apache Log4j Core (org.apache.logging.log4j:log4j-core:2.11.1 - https://logging.apache.org/log4j/2.x/log4j-core/)
-        * Apache Log4j Core (org.apache.logging.log4j:log4j-core:2.6.2 - http://logging.apache.org/log4j/2.x/log4j-core/)
-        * Apache Log4j SLF4J Binding (org.apache.logging.log4j:log4j-slf4j-impl:2.11.1 - https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/)
-        * Apache Log4j Web (org.apache.logging.log4j:log4j-web:2.6.2 - http://logging.apache.org/log4j/2.x/log4j-web/)
+        * Apache Log4j 1.x Compatibility API (org.apache.logging.log4j:log4j-1.2-api:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-1.2-api/)
+        * Apache Log4j API (org.apache.logging.log4j:log4j-api:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-api/)
+        * Apache Log4j Core (org.apache.logging.log4j:log4j-core:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-core/)
+        * Apache Log4j SLF4J Binding (org.apache.logging.log4j:log4j-slf4j-impl:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/)
+        * Apache Log4j Web (org.apache.logging.log4j:log4j-web:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-web/)
         * Apache Maven Artifact Transfer (org.apache.maven.shared:maven-artifact-transfer:0.9.1 - https://maven.apache.org/shared/maven-artifact-transfer/)
         * Apache Maven Common Artifact Filters (org.apache.maven.shared:maven-common-artifact-filters:3.0.1 - https://maven.apache.org/shared/maven-common-artifact-filters/)
         * Apache Maven Dependency Tree (org.apache.maven.shared:maven-dependency-tree:2.2 - http://maven.apache.org/shared/maven-dependency-tree/)
@@ -139,6 +124,7 @@
         * Apache Parquet Hadoop Bundle (org.apache.parquet:parquet-hadoop-bundle:1.8.1 - https://parquet.apache.org)
         * Apache Solr Solrj (org.apache.solr:solr-solrj:5.5.5 - http://lucene.apache.org/solr-parent/solr-solrj)
         * Apache Thrift (org.apache.thrift:libfb303:0.9.3 - http://thrift.apache.org)
+        * Apache Thrift (org.apache.thrift:libthrift:0.12.0 - http://thrift.apache.org)
         * Apache Thrift (org.apache.thrift:libthrift:0.9.3 - http://thrift.apache.org)
         * Apache Twill API (org.apache.twill:twill-api:0.6.0-incubating - http://twill.incubator.apache.org/twill-api)
         * Apache Twill common library (org.apache.twill:twill-common:0.6.0-incubating - http://twill.incubator.apache.org/twill-common)
@@ -151,6 +137,7 @@
         * Apache Yetus - Audience Annotations (org.apache.yetus:audience-annotations:0.5.0 - https://yetus.apache.org/audience-annotations)
         * ASM based accessors helper used by json-smart (net.minidev:accessors-smart:1.2 - http://www.minidev.net/)
         * Auto Common Libraries (com.google.auto:auto-common:0.8 - https://github.com/google/auto/auto-common)
+        * AutoService (com.google.auto.service:auto-service:1.0-rc4 - https://github.com/google/auto/auto-service)
         * AWS Java SDK for Amazon API Gateway (com.amazonaws:aws-java-sdk-api-gateway:1.10.77 - https://aws.amazon.com/sdkforjava)
         * AWS Java SDK for Amazon CloudFront (com.amazonaws:aws-java-sdk-cloudfront:1.10.77 - https://aws.amazon.com/sdkforjava)
         * AWS Java SDK for Amazon CloudSearch (com.amazonaws:aws-java-sdk-cloudsearch:1.10.77 - https://aws.amazon.com/sdkforjava)
@@ -232,28 +219,21 @@
         * commons-beanutils (commons-beanutils:commons-beanutils:1.7.0 - no url defined)
         * Commons BeanUtils Core (commons-beanutils:commons-beanutils-core:1.8.0 - http://commons.apache.org/beanutils/)
         * Commons CLI (commons-cli:commons-cli:1.2 - http://commons.apache.org/cli/)
-        * Commons Codec (commons-codec:commons-codec:1.4 - http://commons.apache.org/codec/)
-        * Commons Codec (commons-codec:commons-codec:1.6 - http://commons.apache.org/codec/)
-        * Commons Compress (org.apache.commons:commons-compress:1.4.1 - http://commons.apache.org/compress/)
         * Commons Configuration (commons-configuration:commons-configuration:1.6 - http://commons.apache.org/${pom.artifactId.substring(8)}/)
         * Commons Daemon (commons-daemon:commons-daemon:1.0.13 - http://commons.apache.org/daemon/)
         * Commons DBCP (commons-dbcp:commons-dbcp:1.4 - http://commons.apache.org/dbcp/)
         * Commons IO (commons-io:commons-io:1.4 - http://commons.apache.org/io/)
-        * Commons IO (commons-io:commons-io:2.4 - http://commons.apache.org/io/)
         * Commons Lang (commons-lang:commons-lang:2.5 - http://commons.apache.org/lang/)
         * Commons Lang (commons-lang:commons-lang:2.6 - http://commons.apache.org/lang/)
         * Commons Logging (commons-logging:commons-logging:1.1.3 - http://commons.apache.org/proper/commons-logging/)
-        * Commons Math (org.apache.commons:commons-math:2.2 - http://commons.apache.org/math/)
         * Commons Math (org.apache.commons:commons-math3:3.1.1 - http://commons.apache.org/math/)
         * Commons Math (org.apache.commons:commons-math3:3.2 - http://commons.apache.org/proper/commons-math/)
         * Commons Net (commons-net:commons-net:3.1 - http://commons.apache.org/net/)
         * Commons Pool (commons-pool:commons-pool:1.5.4 - http://commons.apache.org/pool/)
         * Compress-LZF (com.ning:compress-lzf:1.0.2 - http://github.com/ning/compress)
-        * Curator Client (org.apache.curator:curator-client:2.7.1 - http://curator.apache.org/curator-client)
         * Curator Client (org.apache.curator:curator-client:4.2.0 - http://curator.apache.org/curator-client)
-        * Curator Framework (org.apache.curator:curator-framework:2.7.1 - http://curator.apache.org/curator-framework)
         * Curator Framework (org.apache.curator:curator-framework:4.2.0 - http://curator.apache.org/curator-framework)
-        * Curator Recipes (org.apache.curator:curator-recipes:2.7.1 - http://curator.apache.org/curator-recipes)
+        * Curator Recipes (org.apache.curator:curator-recipes:4.2.0 - http://curator.apache.org/curator-recipes)
         * Data Mapper for Jackson (org.codehaus.jackson:jackson-mapper-asl:1.9.13 - http://jackson.codehaus.org)
         * DataNucleus Core (org.datanucleus:datanucleus-core:4.1.17 - http://www.datanucleus.org/#/datanucleus-core)
         * DataNucleus JDO API plugin (org.datanucleus:datanucleus-api-jdo:4.2.4 - http://www.datanucleus.org/#/datanucleus-api-jdo)
@@ -261,7 +241,6 @@
         * DataStax Java Driver for Apache Cassandra - Core (com.datastax.cassandra:cassandra-driver-core:3.1.2 - https://github.com/datastax/java-driver)
         * DataStax Java Driver for Apache Cassandra - Object Mapping (com.datastax.cassandra:cassandra-driver-mapping:3.1.2 - https://github.com/datastax/java-driver)
         * Digester (commons-digester:commons-digester:1.8 - http://jakarta.apache.org/commons/digester/)
-        * Disruptor Framework (com.lmax:disruptor:3.3.0 - http://lmax-exchange.github.com/disruptor)
         * Disruptor Framework (com.lmax:disruptor:3.3.6 - http://lmax-exchange.github.com/disruptor)
         * Dropwizard (io.dropwizard:dropwizard-core:1.3.5 - http://www.dropwizard.io/1.3.5/dropwizard-core)
         * Dropwizard Asset Bundle (io.dropwizard:dropwizard-assets:1.3.5 - http://www.dropwizard.io/1.3.5/dropwizard-assets)
@@ -279,20 +258,14 @@
         * EL (commons-el:commons-el:1.0 - http://jakarta.apache.org/commons/el/)
         * Elasticsearch: Core (org.elasticsearch:elasticsearch:2.4.4 - http://nexus.sonatype.org/oss-repository-hosting.html/parent/elasticsearch)
         * Elasticsearch SecureSM (org.elasticsearch:securesm:1.0 - http://nexus.sonatype.org/oss-repository-hosting.html/securesm)
-        * error-prone annotations (com.google.errorprone:error_prone_annotations:2.0.18 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations)
-        * error-prone annotations (com.google.errorprone:error_prone_annotations:2.1.3 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations)
         * error-prone annotations (com.google.errorprone:error_prone_annotations:2.2.0 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations)
         * Esri Geometry API for Java (com.esri.geometry:esri-geometry-api:2.0.0 - https://github.com/Esri/geometry-api-java)
         * fastjson (com.alibaba:fastjson:1.2.29 - https://github.com/alibaba/fastjson)
         * fastutil (it.unimi.dsi:fastutil:6.5.6 - http://fasutil.dsi.unimi.it/)
         * Findbugs Annotations under Apache License (com.github.stephenc.findbugs:findbugs-annotations:1.3.9-1 - http://stephenc.github.com/findbugs-annotations)
-        * FindBugs-jsr305 (com.google.code.findbugs:jsr305:1.3.9 - http://findbugs.sourceforge.net/)
         * FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.0 - http://findbugs.sourceforge.net/)
         * FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.1 - http://findbugs.sourceforge.net/)
         * FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.2 - http://findbugs.sourceforge.net/)
-        * flux-core (org.apache.storm:flux-core:2.0.1-SNAPSHOT - https://storm.apache.org/flux/flux-core)
-        * flux-wrappers (org.apache.storm:flux-wrappers:2.0.1-SNAPSHOT - https://storm.apache.org/flux/flux-wrappers)
-        * Glassfish Jasper API (org.mortbay.jetty:jsp-api-2.1:6.1.14 - http://jetty.mortbay.org/project/modules/jsp-api-2.1)
         * Google Guice - Core Library (com.google.inject:guice:3.0 - http://code.google.com/p/google-guice/guice/)
         * Google Guice - Core Library (com.google.inject:guice:4.2.1 - https://github.com/google/guice/guice)
         * Google Guice - Extensions - AssistedInject (com.google.inject.extensions:guice-assistedinject:3.0 - http://code.google.com/p/google-guice/extensions-parent/guice-assistedinject/)
@@ -301,36 +274,16 @@
         * Gson (com.google.code.gson:gson:2.2.4 - http://code.google.com/p/google-gson/)
         * Gson (com.google.code.gson:gson:2.3.1 - http://code.google.com/p/google-gson/)
         * Gson (com.google.code.gson:gson:2.8.0 - https://github.com/google/gson/gson)
-        * Guava: Google Core Libraries for Java (com.google.guava:guava:11.0.2 - http://code.google.com/p/guava-libraries/guava)
-        * Guava: Google Core Libraries for Java (com.google.guava:guava:14.0.1 - http://code.google.com/p/guava-libraries/guava)
         * Guava: Google Core Libraries for Java (com.google.guava:guava:16.0.1 - http://code.google.com/p/guava-libraries/guava)
         * Guava: Google Core Libraries for Java (com.google.guava:guava:17.0 - http://code.google.com/p/guava-libraries/guava)
-        * Guava: Google Core Libraries for Java (com.google.guava:guava:18.0 - http://code.google.com/p/guava-libraries/guava)
-        * Guava: Google Core Libraries for Java (com.google.guava:guava:19.0 - https://github.com/google/guava/guava)
-        * Guava: Google Core Libraries for Java (com.google.guava:guava:23.5-jre - https://github.com/google/guava/guava)
-        * Guava: Google Core Libraries for Java (com.google.guava:guava:25.1-android - https://github.com/google/guava/guava)
         * Guava: Google Core Libraries for Java (com.google.guava:guava:27.0.1-jre - https://github.com/google/guava/guava)
         * Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess)
         * Guava ListenableFuture only (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava - https://github.com/google/guava/listenablefuture)
         * Hadoop Metrics2 Reporter for Dropwizard Metrics (com.github.joshelser:dropwizard-metrics-hadoop-metrics2-reporter:0.1.2 - https://github.com/joshelser/dropwizard-hadoop-metrics2)
-        * hadoop-yarn-registry (org.apache.hadoop:hadoop-yarn-registry:2.7.1 - no url defined)
-        * hadoop-yarn-server-applicationhistoryservice (org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:2.7.2 - no url defined)
-        * hadoop-yarn-server-resourcemanager (org.apache.hadoop:hadoop-yarn-server-resourcemanager:2.7.2 - no url defined)
-        * hadoop-yarn-server-web-proxy (org.apache.hadoop:hadoop-yarn-server-web-proxy:2.7.2 - no url defined)
         * hawtbuf (org.fusesource.hawtbuf:hawtbuf:1.10 - http://hawtbuf.fusesource.org/hawtbuf)
         * hawtbuf (org.fusesource.hawtbuf:hawtbuf:1.11 - http://hawtbuf.fusesource.org/hawtbuf)
-        * hawtdispatch (org.fusesource.hawtdispatch:hawtdispatch:1.20 - http://hawtdispatch.fusesource.org/hawtdispatch/)
         * hawtdispatch (org.fusesource.hawtdispatch:hawtdispatch:1.22 - http://hawtdispatch.fusesource.org/hawtdispatch/)
         * hawtdispatch-transport (org.fusesource.hawtdispatch:hawtdispatch-transport:1.22 - http://hawtdispatch.fusesource.org/hawtdispatch-transport/)
-        * HBase - Annotations (org.apache.hbase:hbase-annotations:1.1.1 - http://hbase.apache.org/hbase-annotations)
-        * HBase - Client (org.apache.hbase:hbase-client:1.1.1 - http://hbase.apache.org/hbase-client)
-        * HBase - Common (org.apache.hbase:hbase-common:1.1.1 - http://hbase.apache.org/hbase-common)
-        * HBase - Hadoop Compatibility (org.apache.hbase:hbase-hadoop-compat:1.1.1 - http://hbase.apache.org/hbase-hadoop-compat)
-        * HBase - Hadoop Two Compatibility (org.apache.hbase:hbase-hadoop2-compat:1.1.1 - http://hbase.apache.org/hbase-hadoop2-compat)
-        * HBase - Prefix Tree (org.apache.hbase:hbase-prefix-tree:1.1.1 - http://hbase.apache.org/hbase-prefix-tree)
-        * HBase - Procedure (org.apache.hbase:hbase-procedure:1.1.1 - http://hbase.apache.org/hbase-procedure)
-        * HBase - Protocol (org.apache.hbase:hbase-protocol:1.1.1 - http://hbase.apache.org/hbase-protocol)
-        * HBase - Server (org.apache.hbase:hbase-server:1.1.1 - http://hbase.apache.org/hbase-server)
         * Hibernate Validator Engine (org.hibernate:hibernate-validator:5.4.2.Final - http://hibernate.org/validator/hibernate-validator)
         * HikariCP (com.zaxxer:HikariCP:2.4.7 - https://github.com/brettwooldridge/HikariCP)
         * HikariCP (com.zaxxer:HikariCP:2.5.1 - https://github.com/brettwooldridge/HikariCP)
@@ -356,49 +309,29 @@
         * Hive Storage API (org.apache.hive:hive-storage-api:2.4.0 - https://www.apache.org/hive-storage-api/)
         * Hive Vector-Code-Gen Utilities (org.apache.hive:hive-vector-code-gen:2.3.4 - http://hive.apache.org/hive-vector-code-gen)
         * HPPC Collections (com.carrotsearch:hppc:0.7.1 - http://labs.carrotsearch.com/hppc.html/hppc)
-        * htrace-core (org.apache.htrace:htrace-core:3.1.0-incubating - http://incubator.apache.org/projects/htrace.html)
         * htrace-core4 (org.apache.htrace:htrace-core4:4.0.1-incubating - http://incubator.apache.org/projects/htrace.html)
         * htrace-core4 (org.apache.htrace:htrace-core4:4.2.0-incubating - http://incubator.apache.org/projects/htrace.html)
         * J2EE Management 1.1 (org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1 - http://geronimo.apache.org/specs/geronimo-j2ee-management_1.1_spec)
         * j2html (com.j2html:j2html:1.0.0 - http://j2html.com)
         * J2ObjC Annotations (com.google.j2objc:j2objc-annotations:1.1 - https://github.com/google/j2objc/)
         * Jackson (org.codehaus.jackson:jackson-core-asl:1.9.13 - http://jackson.codehaus.org)
-        * Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.4.0 - http://wiki.fasterxml.com/JacksonHome)
-        * Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.5.0 - http://github.com/FasterXML/jackson)
-        * Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.6.3 - http://github.com/FasterXML/jackson)
         * Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.9.0 - http://github.com/FasterXML/jackson)
-        * Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.9.2 - http://github.com/FasterXML/jackson)
-        * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.4.3 - http://wiki.fasterxml.com/JacksonHome)
-        * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.5.3 - https://github.com/FasterXML/jackson)
-        * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.6.3 - https://github.com/FasterXML/jackson-core)
-        * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.8.1 - https://github.com/FasterXML/jackson-core)
-        * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.9.2 - https://github.com/FasterXML/jackson-core)
-        * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.9.6 - https://github.com/FasterXML/jackson-core)
         * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.9.8 - https://github.com/FasterXML/jackson-core)
-        * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.4.3 - http://wiki.fasterxml.com/JacksonHome)
-        * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.5.3 - http://github.com/FasterXML/jackson)
-        * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.6.3 - http://github.com/FasterXML/jackson)
-        * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.2 - http://github.com/FasterXML/jackson)
-        * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.6 - http://github.com/FasterXML/jackson)
         * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.8 - http://github.com/FasterXML/jackson)
-        * Jackson dataformat: CBOR (com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.8.1 - http://github.com/FasterXML/jackson-dataformats-binary)
-        * Jackson dataformat: Smile (com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.8.1 - http://github.com/FasterXML/jackson-dataformats-binary)
+        * Jackson dataformat: CBOR (com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.9.8 - http://github.com/FasterXML/jackson-dataformats-binary)
         * Jackson dataformat: Smile (com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.9.8 - http://github.com/FasterXML/jackson-dataformats-binary)
-        * Jackson-dataformat-CBOR (com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.5.3 - http://wiki.fasterxml.com/JacksonForCbor)
-        * Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.8.1 - https://github.com/FasterXML/jackson)
-        * Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.6 - https://github.com/FasterXML/jackson-dataformats-text)
-        * Jackson datatype: Guava (com.fasterxml.jackson.datatype:jackson-datatype-guava:2.9.6 - https://github.com/FasterXML/jackson-datatypes-collections)
-        * Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.6 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
-        * Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.6 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
-        * Jackson-datatype-Joda (com.fasterxml.jackson.datatype:jackson-datatype-joda:2.9.6 - http://wiki.fasterxml.com/JacksonModuleJoda)
+        * Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 - https://github.com/FasterXML/jackson-dataformats-text)
+        * Jackson datatype: Guava (com.fasterxml.jackson.datatype:jackson-datatype-guava:2.9.8 - https://github.com/FasterXML/jackson-datatypes-collections)
+        * Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
+        * Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
+        * Jackson-datatype-Joda (com.fasterxml.jackson.datatype:jackson-datatype-joda:2.9.8 - http://wiki.fasterxml.com/JacksonModuleJoda)
         * Jackson Integration for Metrics (io.dropwizard.metrics:metrics-json:3.1.0 - http://metrics.codahale.com/metrics-json/)
         * Jackson Integration for Metrics (io.dropwizard.metrics:metrics-json:4.0.2 - http://metrics.dropwizard.io/metrics-json)
-        * Jackson-JAXRS-base (com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.9.6 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-base)
-        * Jackson-JAXRS-JSON (com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.6 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-json-provider)
-        * Jackson module: Afterburner (com.fasterxml.jackson.module:jackson-module-afterburner:2.9.6 - https://github.com/FasterXML/jackson-modules-base)
-        * Jackson module: JAXB-annotations (com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.8.10 - http://github.com/FasterXML/jackson-module-jaxb-annotations)
-        * Jackson module: JAXB Annotations (com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.6 - https://github.com/FasterXML/jackson-modules-base)
-        * Jackson-module-parameter-names (com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.6 - https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
+        * Jackson-JAXRS-base (com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.9.8 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-base)
+        * Jackson-JAXRS-JSON (com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.8 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-json-provider)
+        * Jackson module: Afterburner (com.fasterxml.jackson.module:jackson-module-afterburner:2.9.8 - https://github.com/FasterXML/jackson-modules-base)
+        * Jackson module: JAXB Annotations (com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.8 - https://github.com/FasterXML/jackson-modules-base)
+        * Jackson-module-parameter-names (com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.8 - https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
         * jasper-compiler (tomcat:jasper-compiler:5.5.23 - http://tomcat.apache.org/jasper-compiler)
         * jasper-runtime (tomcat:jasper-runtime:5.5.23 - http://tomcat.apache.org/jasper-runtime)
         * Java Authentication SPI for Containers (org.apache.geronimo.specs:geronimo-jaspic_1.0_spec:1.0 - http://geronimo.apache.org/maven/specs/geronimo-jaspic_1.0_spec/1.0)
@@ -408,6 +341,7 @@
         * java-xmlbuilder (com.jamesmurty.utils:java-xmlbuilder:0.4 - http://code.google.com/p/java-xmlbuilder/)
         * JBoss Logging 3 (org.jboss.logging:jboss-logging:3.3.0.Final - http://www.jboss.org)
         * JCIP Annotations under Apache License (com.github.stephenc.jcip:jcip-annotations:1.0-1 - http://stephenc.github.com/jcip-annotations)
+        * JCommander (com.beust:jcommander:1.27 - http://beust.com/jcommander)
         * JCommander (com.beust:jcommander:1.30 - http://beust.com/jcommander)
         * jdependency (org.vafer:jdependency:1.2 - http://github.com/tcurdt/jdependency)
         * JDO API (javax.jdo:jdo-api:3.0.1 - http://db.apache.org/jdo)
@@ -418,11 +352,7 @@
         * JMS 1.1 (org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1 - http://geronimo.apache.org/specs/geronimo-jms_1.1_spec)
         * jnr-constants (com.github.jnr:jnr-constants:0.9.0 - http://github.com/jnr/jnr-constants)
         * jnr-ffi (com.github.jnr:jnr-ffi:2.0.7 - http://github.com/jnr/jnr-ffi)
-        * Joda time (joda-time:joda-time:2.2 - http://joda-time.sourceforge.net)
         * Joda-Time (joda-time:joda-time:2.3 - http://www.joda.org/joda-time/)
-        * Joda-Time (joda-time:joda-time:2.8.1 - http://www.joda.org/joda-time/)
-        * Joda-Time (joda-time:joda-time:2.9.5 - http://www.joda.org/joda-time/)
-        * Joda-Time (joda-time:joda-time:2.9.9 - http://www.joda.org/joda-time/)
         * jOOL (org.jooq:jool:0.9.12 - http://nexus.sonatype.org/oss-repository-hosting.html/jool)
         * JPam (net.sf.jpam:jpam:1.1 - http://jpam.sf.net)
         * JSON.simple (com.googlecode.json-simple:json-simple:1.1 - http://code.google.com/p/json-simple/)
@@ -479,11 +409,7 @@
         * Maven Settings (org.apache.maven:maven-settings:3.6.0 - https://maven.apache.org/ref/3.6.0/maven-settings/)
         * Maven Settings Builder (org.apache.maven:maven-settings-builder:3.0 - http://maven.apache.org/maven-settings-builder/)
         * Maven Settings Builder (org.apache.maven:maven-settings-builder:3.6.0 - https://maven.apache.org/ref/3.6.0/maven-settings-builder/)
-        * Metrics Core (io.dropwizard.metrics:metrics-core:3.1.0 - http://metrics.codahale.com/metrics-core/)
-        * Metrics Core (io.dropwizard.metrics:metrics-core:3.1.2 - http://metrics.codahale.com/metrics-core/)
-        * Metrics Core (io.dropwizard.metrics:metrics-core:3.2.1 - http://metrics.codahale.com/metrics-core/)
         * Metrics Core (io.dropwizard.metrics:metrics-core:3.2.6 - http://metrics.dropwizard.io/metrics-core/)
-        * Metrics Core Library (com.yammer.metrics:metrics-core:2.2.0 - http://metrics.codahale.com/metrics-core/)
         * Metrics Health Checks (io.dropwizard.metrics:metrics-healthchecks:4.0.2 - http://metrics.dropwizard.io/metrics-healthchecks)
         * Metrics Integration for Jersey 2.x (io.dropwizard.metrics:metrics-jersey2:4.0.2 - http://metrics.dropwizard.io/metrics-jersey2)
         * Metrics Integration for Jetty 9.3 and higher (io.dropwizard.metrics:metrics-jetty9:4.0.2 - http://metrics.dropwizard.io/metrics-jetty9)
@@ -493,20 +419,18 @@
         * MongoDB Java Driver (org.mongodb:mongo-java-driver:3.2.0 - http://www.mongodb.org)
         * mqtt-client (org.fusesource.mqtt-client:mqtt-client:1.10 - http://mqtt-client.fusesource.org/mqtt-client/)
         * mqtt-client (org.fusesource.mqtt-client:mqtt-client:1.14 - http://mqtt-client.fusesource.org/mqtt-client/)
-        * multilang-javascript (org.apache.storm:multilang-javascript:2.0.1-SNAPSHOT - https://storm.apache.org/storm-multilang/multilang-javascript)
-        * multilang-python (org.apache.storm:multilang-python:2.0.1-SNAPSHOT - https://storm.apache.org/storm-multilang/multilang-python)
-        * multilang-ruby (org.apache.storm:multilang-ruby:2.0.1-SNAPSHOT - https://storm.apache.org/storm-multilang/multilang-ruby)
-        * Netty/All-in-One (io.netty:netty-all:4.0.23.Final - http://netty.io/netty-all/)
-        * Netty/All-in-One (io.netty:netty-all:4.0.42.Final - http://netty.io/netty-all/)
-        * Netty/Buffer (io.netty:netty-buffer:4.0.37.Final - http://netty.io/netty-buffer/)
-        * Netty/Codec (io.netty:netty-codec:4.0.37.Final - http://netty.io/netty-codec/)
-        * Netty/Common (io.netty:netty-common:4.0.37.Final - http://netty.io/netty-common/)
-        * Netty/Handler (io.netty:netty-handler:4.0.37.Final - http://netty.io/netty-handler/)
-        * Netty/Transport (io.netty:netty-transport:4.0.37.Final - http://netty.io/netty-transport/)
+        * Netty/All-in-One (io.netty:netty-all:4.1.30.Final - http://netty.io/netty-all/)
+        * Netty/Buffer (io.netty:netty-buffer:4.1.30.Final - http://netty.io/netty-buffer/)
+        * Netty/Codec (io.netty:netty-codec:4.1.30.Final - http://netty.io/netty-codec/)
+        * Netty/Common (io.netty:netty-common:4.1.30.Final - http://netty.io/netty-common/)
+        * Netty/Handler (io.netty:netty-handler:4.1.30.Final - http://netty.io/netty-handler/)
+        * Netty/Resolver (io.netty:netty-resolver:4.1.30.Final - http://netty.io/netty-resolver/)
+        * Netty/Transport (io.netty:netty-transport:4.1.30.Final - http://netty.io/netty-transport/)
         * Netty (io.netty:netty:3.10.6.Final - http://netty.io/)
         * Nimbus JOSE+JWT (com.nimbusds:nimbus-jose-jwt:4.41.1 - https://bitbucket.org/connect2id/nimbus-jose-jwt)
         * Noggit (org.noggit:noggit:0.6 - http://github.com/yonik/noggit)
         * Objenesis (org.objenesis:objenesis:2.1 - http://objenesis.org)
+        * Objenesis (org.objenesis:objenesis:2.6 - http://objenesis.org)
         * OkHttp (com.squareup.okhttp:okhttp:2.4.0 - https://github.com/square/okhttp/okhttp)
         * Okio (com.squareup.okio:okio:1.4.0 - https://github.com/square/okio/okio)
         * opencsv (net.sf.opencsv:opencsv:2.3 - http://opencsv.sf.net)
@@ -528,15 +452,12 @@
         * rocketmq-client 4.2.0 (org.apache.rocketmq:rocketmq-client:4.2.0 - http://rocketmq.apache.org/rocketmq-client/)
         * rocketmq-common 4.2.0 (org.apache.rocketmq:rocketmq-common:4.2.0 - http://rocketmq.apache.org/rocketmq-common/)
         * rocketmq-remoting 4.2.0 (org.apache.rocketmq:rocketmq-remoting:4.2.0 - http://rocketmq.apache.org/rocketmq-remoting/)
-        * Shaded Deps for Storm Client (org.apache.storm:storm-shaded-deps:2.0.1-SNAPSHOT - https://storm.apache.org/storm-shaded-deps)
         * sigar (org.fusesource:sigar:1.6.4 - http://fusesource.com/sigar/)
         * Sisu - Guice (org.sonatype.sisu:sisu-guice:2.1.7 - http://forge.sonatype.com/sisu-guice/)
         * Sisu - Inject (JSR330 bean support) (org.sonatype.sisu:sisu-inject-bean:1.4.2 - http://sisu.sonatype.org/sisu-inject/guice-bean/sisu-inject-bean/)
         * Sisu - Inject (Plexus bean support) (org.sonatype.sisu:sisu-inject-plexus:1.4.2 - http://sisu.sonatype.org/sisu-inject/guice-bean/guice-plexus/sisu-inject-plexus/)
         * Slider Core (org.apache.slider:slider-core:0.90.2-incubating - http://slider.incubator.apache.org/slider-core/)
         * SnakeYAML (org.yaml:snakeyaml:1.11 - http://www.snakeyaml.org)
-        * SnakeYAML (org.yaml:snakeyaml:1.15 - http://www.snakeyaml.org)
-        * SnakeYAML (org.yaml:snakeyaml:1.18 - http://www.snakeyaml.org)
         * Snappy for Java (org.xerial.snappy:snappy-java:1.0.4.1 - http://code.google.com/p/snappy-java/)
         * Snappy for Java (org.xerial.snappy:snappy-java:1.0.5 - http://github.com/xerial/snappy-java/)
         * snappy-java (org.xerial.snappy:snappy-java:1.1.2.6 - https://github.com/xerial/snappy-java)
@@ -551,34 +472,11 @@
         * Spring Messaging (org.springframework:spring-messaging:5.1.5.RELEASE - https://github.com/spring-projects/spring-framework)
         * Spring Transaction (org.springframework:spring-tx:5.1.5.RELEASE - https://github.com/spring-projects/spring-framework)
         * StAX API (stax:stax-api:1.0.1 - http://stax.codehaus.org/)
-        * storm-autocreds (org.apache.storm:storm-autocreds:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-autocreds)
-        * Storm Client (org.apache.storm:storm-client:2.0.1-SNAPSHOT - https://storm.apache.org/storm-client)
-        * storm-clojure (org.apache.storm:storm-clojure:2.0.1-SNAPSHOT - https://storm.apache.org/storm-clojure)
-        * Storm Core (org.apache.storm:storm-core:2.0.1-SNAPSHOT - https://storm.apache.org/storm-core)
-        * storm-elasticsearch (org.apache.storm:storm-elasticsearch:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-elasticsearch)
-        * storm-hbase (org.apache.storm:storm-hbase:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-hbase)
-        * storm-hdfs (org.apache.storm:storm-hdfs:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-hdfs)
-        * storm-hdfs-blobstore (org.apache.storm:storm-hdfs-blobstore:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-hdfs-blobstore)
-        * storm-hive (org.apache.storm:storm-hive:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-hive)
-        * storm-jdbc (org.apache.storm:storm-jdbc:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-jdbc)
-        * storm-jms (org.apache.storm:storm-jms:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-jms)
-        * storm-kafka-client (org.apache.storm:storm-kafka-client:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-kafka-client)
-        * storm-metrics (org.apache.storm:storm-metrics:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-metrics)
-        * storm-mongodb (org.apache.storm:storm-mongodb:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-mongodb)
-        * storm-mqtt (org.apache.storm:storm-mqtt:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-mqtt)
-        * storm-opentsdb (org.apache.storm:storm-opentsdb:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-opentsdb)
-        * storm-pmml (org.apache.storm:storm-pmml:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-pmml)
-        * storm-redis (org.apache.storm:storm-redis:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-redis)
-        * storm-rocketmq (org.apache.storm:storm-rocketmq:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-rocketmq)
-        * storm-server (org.apache.storm:storm-server:2.0.1-SNAPSHOT - https://storm.apache.org/storm-server)
-        * storm-solr (org.apache.storm:storm-solr:2.0.1-SNAPSHOT - https://storm.apache.org/external/storm-solr)
-        * storm-sql-runtime (org.apache.storm:storm-sql-runtime:2.0.1-SNAPSHOT - https://storm.apache.org/storm-sql-runtime)
         * T-Digest (com.tdunning:t-digest:3.0 - https://github.com/tdunning/t-digest)
         * Tephra API (co.cask.tephra:tephra-api:0.6.0 - https://github.com/caskdata/tephra/tephra-api)
         * Tephra Core (co.cask.tephra:tephra-core:0.6.0 - https://github.com/caskdata/tephra/tephra-core)
         * Tephra HBase 1.0 Compatibility (co.cask.tephra:tephra-hbase-compat-1.0:0.6.0 - https://github.com/caskdata/tephra/tephra-hbase-compat-1.0)
         * The Netty Project (io.netty:netty:3.6.2.Final - http://netty.io/)
-        * The Netty Project (io.netty:netty:3.7.0.Final - http://netty.io/)
         * Woodstox (org.codehaus.woodstox:woodstox-core-asl:4.4.1 - http://woodstox.codehaus.org)
         * Xerces2 Java Parser (xerces:xercesImpl:2.9.1 - http://xerces.apache.org/xerces2-j)
         * XML Commons External Components XML APIs (xml-apis:xml-apis:1.3.04 - http://xml.apache.org/commons/components/external/)
@@ -612,41 +510,25 @@
     Apache License, Version 2.0, Eclipse Public License - Version 1.0
 
         * Jetty :: Aggregate :: All core Jetty (org.eclipse.jetty.aggregate:jetty-all:7.6.0.v20120127 - http://www.eclipse.org/jetty/jetty-aggregate-project/jetty-all)
-        * Jetty :: Continuation (org.eclipse.jetty:jetty-continuation:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Continuation (org.eclipse.jetty:jetty-continuation:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Security (org.eclipse.jetty:jetty-security:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.14.v20181114 - http://www.eclipse.org/jetty)
         * Jetty :: SetUID Java (org.eclipse.jetty.toolchain.setuid:jetty-setuid-java:1.0.3 - http://www.eclipse.org/jetty/jetty-toolchain/jetty-setuid-parent/jetty-setuid-java)
-        * Jetty :: Utilities :: Ajax(JSON) (org.eclipse.jetty:jetty-util-ajax:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.11.v20180605 - http://www.eclipse.org/jetty)
+        * Jetty :: Utilities :: Ajax(JSON) (org.eclipse.jetty:jetty-util-ajax:9.4.14.v20181114 - http://www.eclipse.org/jetty)
         * Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Utility Servlets and Filters (org.eclipse.jetty:jetty-servlets:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Utility Servlets and Filters (org.eclipse.jetty:jetty-servlets:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.11.v20180605 - http://www.eclipse.org/jetty)
-        * Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.11.v20180605 - http://www.eclipse.org/jetty)
+        * Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.14.v20181114 - http://www.eclipse.org/jetty)
+        * Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.14.v20181114 - http://www.eclipse.org/jetty)
         * Jetty Orbit :: Servlet API (org.eclipse.jetty.orbit:javax.servlet:3.0.0.v201112011016 - http://www.eclipse.org/jetty/jetty-orbit/javax.servlet)
         * Jetty Server (org.mortbay.jetty:jetty:6.1.26 - http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty)
         * Jetty Utilities (org.mortbay.jetty:jetty-util:6.1.26 - http://www.eclipse.org/jetty/jetty-parent/project/jetty-util)
 
     Apache License, Version 2.0, GNU General Public License, version 2
 
-        * RocksDB JNI (org.rocksdb:rocksdbjni:5.8.6 - http://rocksdb.org/)
+        * RocksDB JNI (org.rocksdb:rocksdbjni:5.18.3 - http://rocksdb.org/)
 
     Apache License, Version 2.0, GNU Lesser General Public License (LGPL), Version 2.1
 
@@ -657,7 +539,6 @@
 
     Apache License, Version 2.0, LGPL 2.1, MPL 1.1
 
-        * Javassist (org.javassist:javassist:3.20.0-GA - http://www.javassist.org/)
         * Javassist (org.javassist:javassist:3.22.0-GA - http://www.javassist.org/)
 
     BSD-2-Clause, Public Domain, per Creative Commons CC0
@@ -703,7 +584,6 @@
         * ASM Util (org.ow2.asm:asm-util:6.0_BETA - http://asm.objectweb.org/asm-util/)
         * Javolution (javolution:javolution:5.5.1 - http://javolution.org)
         * JLine (jline:jline:0.9.94 - http://jline.sourceforge.net)
-        * JLine (jline:jline:2.12 - http://nexus.sonatype.org/oss-repository-hosting.html/jline)
         * ParaNamer Core (com.thoughtworks.paranamer:paranamer:2.3 - http://paranamer.codehaus.org/paranamer)
         * Stax2 API (org.codehaus.woodstox:stax2-api:3.1.4 - http://wiki.fasterxml.com/WoodstoxStax2)
         * xmlenc Library (xmlenc:xmlenc:0.52 - http://xmlenc.sourceforge.net)
@@ -714,48 +594,28 @@
 
     Common Development and Distribution License
 
-        * aopalliance version 1.0 repackaged as a module (org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b32 - https://hk2.java.net/external/aopalliance-repackaged)
         * aopalliance version 1.0 repackaged as a module (org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b42 - https://github.com/hk2-project/hk2/external/aopalliance-repackaged)
         * Expression Language 3.0 (org.glassfish:javax.el:3.0.0 - http://el-spec.java.net)
         * Expression Language 3.0 (org.glassfish:javax.el:3.0.1-b11 - http://uel.java.net)
         * grizzly-framework (org.glassfish.grizzly:grizzly-framework:2.4.3 - http://grizzly.java.net/grizzly-framework)
         * grizzly-http (org.glassfish.grizzly:grizzly-http:2.4.3 - http://grizzly.java.net/grizzly-http)
         * grizzly-http-server (org.glassfish.grizzly:grizzly-http-server:2.4.3 - http://grizzly.java.net/grizzly-http-server)
-        * grizzly-http-servlet (org.glassfish.grizzly:grizzly-http-servlet:2.2.16 - http://grizzly.java.net/grizzly-http-servlet)
-        * HK2 API module (org.glassfish.hk2:hk2-api:2.5.0-b32 - https://hk2.java.net/hk2-api)
+        * grizzly-http-servlet (org.glassfish.grizzly:grizzly-http-servlet:2.4.0 - http://grizzly.java.net/grizzly-http-servlet)
         * HK2 API module (org.glassfish.hk2:hk2-api:2.5.0-b42 - https://github.com/hk2-project/hk2/hk2-api)
-        * HK2 Implementation Utilities (org.glassfish.hk2:hk2-utils:2.5.0-b32 - https://hk2.java.net/hk2-utils)
         * HK2 Implementation Utilities (org.glassfish.hk2:hk2-utils:2.5.0-b42 - https://github.com/hk2-project/hk2/hk2-utils)
         * JavaServer Pages(TM) API (javax.servlet.jsp:javax.servlet.jsp-api:2.3.1 - http://jsp.java.net)
         * Java Servlet API (javax.servlet:javax.servlet-api:3.1.0 - http://servlet-spec.java.net)
-        * Java Servlet API (javax.servlet:javax.servlet-api:4.0.0 - https://javaee.github.io/servlet-spec/)
-        * javax.annotation API (javax.annotation:javax.annotation-api:1.2 - http://jcp.org/en/jsr/detail?id=250)
         * javax.annotation API (javax.annotation:javax.annotation-api:1.3.2 - http://jcp.org/en/jsr/detail?id=250)
-        * javax.inject:1 as OSGi bundle (org.glassfish.hk2.external:javax.inject:2.5.0-b32 - https://hk2.java.net/external/javax.inject)
         * javax.inject:1 as OSGi bundle (org.glassfish.hk2.external:javax.inject:2.5.0-b42 - https://github.com/hk2-project/hk2/external/javax.inject)
-        * jersey-container-servlet-core (org.glassfish.jersey.containers:jersey-container-servlet-core:2.25.1 - https://jersey.java.net/project/jersey-container-servlet-core/)
-        * jersey-core-client (org.glassfish.jersey.core:jersey-client:2.25.1 - https://jersey.java.net/jersey-client/)
-        * jersey-core-common (org.glassfish.jersey.core:jersey-common:2.25.1 - https://jersey.java.net/jersey-common/)
-        * jersey-core-server (org.glassfish.jersey.core:jersey-server:2.25.1 - https://jersey.java.net/jersey-server/)
-        * jersey-media-jaxb (org.glassfish.jersey.media:jersey-media-jaxb:2.25.1 - https://jersey.java.net/project/jersey-media-jaxb/)
-        * jersey-repackaged-guava (org.glassfish.jersey.bundles.repackaged:jersey-guava:2.25.1 - https://jersey.java.net/project/project/jersey-guava/)
         * JSP implementation (org.glassfish.web:javax.servlet.jsp:2.3.2 - http://jsp.java.net)
         * OSGi resource locator bundle - used by various API providers that rely on META-INF/services mechanism to locate providers. (org.glassfish.hk2:osgi-resource-locator:1.0.1 - http://glassfish.org/osgi-resource-locator/)
-        * ServiceLocator Default Implementation (org.glassfish.hk2:hk2-locator:2.5.0-b32 - https://hk2.java.net/hk2-locator)
         * ServiceLocator Default Implementation (org.glassfish.hk2:hk2-locator:2.5.0-b42 - https://github.com/hk2-project/hk2/hk2-locator)
 
     Common Development and Distribution License (CDDL) v1.0
 
-        * Glassfish Jasper (org.mortbay.jetty:jsp-2.1:6.1.14 - http://jetty.mortbay.org/project/modules/jsp-2.1)
         * JavaBeans(TM) Activation Framework (javax.activation:activation:1.1.1 - http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp)
-        * JavaBeans Activation Framework (JAF) (javax.activation:activation:1.1 - http://java.sun.com/products/javabeans/jaf/index.jsp)
         * JavaMail API (javax.mail:mail:1.4.1 - https://glassfish.dev.java.net/javaee5/mail/)
         * JSR-250 Common Annotations for the JavaTM Platform (javax.annotation:jsr250-api:1.0 - http://jcp.org/aboutJava/communityprocess/final/jsr250/index.html)
-        * Servlet Specification 2.5 API (org.mortbay.jetty:servlet-api-2.5:6.1.14 - http://jetty.mortbay.org/project/modules/servlet-api-2.5)
-
-    Common Development and Distribution License (CDDL) v1.0, GNU General Public Library
-
-        * Streaming API for XML (javax.xml.stream:stax-api:1.0-2 - no url defined)
 
     Common Development and Distribution License (CDDL) v1.1
 
@@ -772,7 +632,6 @@
         * javax.ws.rs-api (javax.ws.rs:javax.ws.rs-api:2.0.1 - http://jax-rs-spec.java.net)
         * javax.ws.rs-api (javax.ws.rs:javax.ws.rs-api:2.1 - http://jax-rs-spec.java.net)
         * jaxb-api (javax.xml.bind:jaxb-api:2.3.0 - https://github.com/javaee/jaxb-spec/jaxb-api)
-        * JAXB API bundle for GlassFish V3 (javax.xml.bind:jaxb-api:2.2.2 - https://jaxb.dev.java.net/)
         * JAXB Reference Implementation (com.sun.xml.bind:jaxb-impl:2.2.6 - http://jaxb.java.net/)
         * JAXB RI (com.sun.xml.bind:jaxb-impl:2.2.3-1 - http://jaxb.java.net/)
         * jersey-client (com.sun.jersey:jersey-client:1.9 - https://jersey.java.net/jersey-client/)
@@ -789,24 +648,19 @@
     Eclipse Public License, Version 1.0
 
         * Aether Utilities (org.eclipse.aether:aether-util:0.9.0.M2 - http://www.eclipse.org/aether/aether-util/)
-        * clojure (org.clojure:clojure:1.3.0-beta1 - http://clojure.org/)
-        * JUnit (junit:junit:4.12 - http://junit.org)
+        * clojure (org.clojure:clojure:1.10.0 - http://clojure.org/)
+        * core.specs.alpha (org.clojure:core.specs.alpha:0.2.44 - https://github.com/clojure/build.poms/core.specs.alpha)
         * org.eclipse.sisu.inject (org.eclipse.sisu:org.eclipse.sisu.inject:0.3.3 - http://www.eclipse.org/sisu/org.eclipse.sisu.inject/)
         * org.eclipse.sisu.plexus (org.eclipse.sisu:org.eclipse.sisu.plexus:0.3.3 - http://www.eclipse.org/sisu/org.eclipse.sisu.plexus/)
+        * spec.alpha (org.clojure:spec.alpha:0.2.176 - https://github.com/clojure/build.poms/spec.alpha)
         * tools.logging (org.clojure:tools.logging:0.2.3 - http://nexus.sonatype.org/oss-repository-hosting.html/pom.contrib/tools.logging)
 
-    Eclipse Public License, Version 1.0, GNU Lesser General Public License
+    Eclipse Public License (EPL) 1.0, GNU Lesser General Public License Version 2.1, February 1999
 
-        * Logback Classic Module (ch.qos.logback:logback-classic:1.2.3 - http://logback.qos.ch/logback-classic)
-
-    GNU General Public License, version 2 (GPL2), with the classpath exception, MIT License
-
-        * Checker Qual (org.checkerframework:checker-compat-qual:2.0.0 - http://checkerframework.org)
-        * Checker Qual (org.checkerframework:checker-qual:2.0.0 - http://checkerframework.org)
+        * JGraphT - Core (org.jgrapht:jgrapht-core:0.9.0 - http://www.jgrapht.org/jgrapht-core)
 
     MIT License
 
-        * Animal Sniffer Annotations (org.codehaus.mojo:animal-sniffer-annotations:1.14 - http://mojo.codehaus.org/animal-sniffer/animal-sniffer-annotations)
         * Animal Sniffer Annotations (org.codehaus.mojo:animal-sniffer-annotations:1.17 - http://www.mojohaus.org/animal-sniffer/animal-sniffer-annotations)
         * argparse4j (net.sourceforge.argparse4j:argparse4j:0.8.1 - http://argparse4j.github.io)
         * azure-eventhubs (com.microsoft.azure:azure-eventhubs:0.13.1 - https://github.com/Azure/azure-event-hubs/)
@@ -814,25 +668,14 @@
         * JCL 1.1.1 implemented over SLF4J (org.slf4j:jcl-over-slf4j:1.7.7 - http://www.slf4j.org)
         * JCL 1.2 implemented over SLF4J (org.slf4j:jcl-over-slf4j:1.7.25 - http://www.slf4j.org)
         * JCodings (org.jruby.jcodings:jcodings:1.0.18 - http://nexus.sonatype.org/oss-repository-hosting.html/jcodings)
-        * JCodings (org.jruby.jcodings:jcodings:1.0.8 - no url defined)
         * Jedis (redis.clients:jedis:2.9.0 - https://github.com/xetorthio/jedis)
         * jnr-x86asm (com.github.jnr:jnr-x86asm:1.0.2 - http://github.com/jnr/jnr-x86asm)
         * Joni (org.jruby.joni:joni:2.1.11 - http://nexus.sonatype.org/oss-repository-hosting.html/joni)
-        * Joni (org.jruby.joni:joni:2.1.2 - http://nexus.sonatype.org/oss-repository-hosting.html/joni)
         * JUL to SLF4J bridge (org.slf4j:jul-to-slf4j:1.7.25 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.6.6 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.10 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.12 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.13 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.21 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.22 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.25 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.5 - http://www.slf4j.org)
+        * SLF4J API Module (org.slf4j:slf4j-api:1.7.26 - http://www.slf4j.org)
         * SLF4J API Module (org.slf4j:slf4j-api:1.7.6 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.7 - http://www.slf4j.org)
-        * SLF4J LOG4J-12 Binding (org.slf4j:slf4j-log4j12:1.6.6 - http://www.slf4j.org)
-        * SLF4J LOG4J-12 Binding (org.slf4j:slf4j-log4j12:1.7.10 - http://www.slf4j.org)
-        * SLF4J LOG4J-12 Binding (org.slf4j:slf4j-log4j12:1.7.25 - http://www.slf4j.org)
+        * SLF4J LOG4J-12 Binding (org.slf4j:slf4j-log4j12:1.7.26 - http://www.slf4j.org)
+        * System Out and Err redirected to SLF4J (uk.org.lidalia:sysout-over-slf4j:1.0.2 - http://projects.lidalia.org.uk/sysout-over-slf4j/)
 
     Mozilla Public License Version 1.1
 
@@ -845,11 +688,6 @@
     Public Domain
 
         * AOP alliance (aopalliance:aopalliance:1.0 - http://aopalliance.sourceforge.net)
-        * XZ for Java (org.tukaani:xz:1.0 - http://tukaani.org/xz/java.html)
-
-    Public Domain, per Creative Commons CC0
-
-        * HdrHistogram (org.hdrhistogram:HdrHistogram:2.1.6 - http://hdrhistogram.github.io/HdrHistogram/)
 
     Revised BSD
 
diff --git a/DEVELOPER.md b/DEVELOPER.md
index 35e0696..70f8871 100644
--- a/DEVELOPER.md
+++ b/DEVELOPER.md
@@ -194,11 +194,17 @@
 **Important: A pull request must first be properly approved before you are allowed to merge it.**
 
 Committers that are integrating patches or pull requests should use the official Apache repository at
-[https://git-wip-us.apache.org/repos/asf/storm.git](https://git-wip-us.apache.org/repos/asf/storm.git).
+[https://gitbox.apache.org/repos/asf/storm.git](https://gitbox.apache.org/repos/asf/storm.git).
+
+#### Via Github
+
+You can use the [Gitbox account linking utility](https://gitbox.apache.org/setup/) to link your Apache and Github accounts. This will allow you to merge pull requests using Github's UI. 
+
+#### Via your terminal
 
 To pull in a merge request you should generally follow the command line instructions sent out by GitHub.
 
-1. Go to your local copy of the [Apache git repo](https://git-wip-us.apache.org/repos/asf/storm.git), switch
+1. Go to your local copy of the [Apache git repo](https://gitbox.apache.org/repos/asf/storm.git), switch
    to the `master` branch, and make sure it is up to date.
 
         $ git checkout master
@@ -311,7 +317,7 @@
  
 ## Listing dependency licenses
 
-You can generate a list of dependencies and their licenses by running `mvn generate-resources -Dlicense.skipAggregateAddThirdParty=false` in the project root.
+You can generate a list of dependencies and their licenses by running `mvn license:aggregate-add-third-party@generate-and-check-licenses -Dlicense.skipAggregateAddThirdParty=false` in the project root.
 The list will be put in DEPENDENCY_LICENSES.
 
 The license aggregation plugin will use the license listed in a dependency's POM. If the license is missing, or incomplete (e.g. due to multiple licenses), you can override the license by describing the dependency in the THIRD-PARTY.properties file in the project root.
@@ -321,11 +327,7 @@
 
 When auditing the binary LICENSE-binary and NOTICE-binary, there are a couple of helper scripts available in dev-tools. `collect_license_files` can create an aggregate NOTICE from the libraries in an extracted distribution. The aggregate NOTICE should be adjusted to remove Storm notices and duplicates, and added to the NOTICE-binary.
 
-`list_jars` can list the jars in an extracted binary distribution. Note that while listing all the jars in the binary distribution is helpful, special attention must be paid to shaded jars, as they may contain shaded dependencies that must be listed in LICENSE-binary separately.
-
-The license plugin can generate a list of dependencies with licenses for the binary distribution with the following command: `mvn generate-resources -Dlicense.skipAggregateAddThirdParty=false` in the storm-dist/binary directory. 
-
-The generated list in target/generated-sources/license/THIRD-PARTY.txt is mostly complete, and a good input to the LICENSE-binary file. The major omission in it is the storm-shaded-deps dependencies, as they are shaded. These dependencies can be manually listed with `mvn dependency:list` in the storm-shaded-deps project, and then manually added. 
+The `dev-tools/validate-license-files.py` script will check that LICENSE-binary and DEPENDENCY_LICENSES are up to date. Regenerating DEPENDENCY_LICENSES simply requires rerunning the license plugin (see above). LICENSE-binary must be updated manually. The script will check that the dependencies included in a storm-dist/binary build are present in LICENSE-binary, and that no other dependencies are listed. Any additional or missing dependencies are printed to console, and can be added to LICENSE-binary manually. There will likely be an entry for them in `DEPENDENCY_LICENSES` that can be copy-pasted to LICENSE-binary.
 
 You can download the dependency licenses by running `mvn package -Dlicense.skipAggregateDownloadLicenses=false -DskipTests` in the project root. This will put the licenses in target/generated-resources. Keep an eye on the Maven output, as some dependencies may not have licenses configured correctly. These will have to be downloaded manually.
 
@@ -406,7 +408,7 @@
 repository associated with Storm.
 
 * **Committers only:**
-  [https://git-wip-us.apache.org/repos/asf/storm.git](https://git-wip-us.apache.org/repos/asf/storm.git)
+  [https://gitbox.apache.org/repos/asf/storm.git](https://gitbox.apache.org/repos/asf/storm.git)
   is the official and authoritative git repository for Storm, managed under the umbrella of the Apache Software
   Foundation.  Only official Storm committers will interact with this repository.
   When you push the first time to this repository git will prompt you for your username and password.  Use your Apache
@@ -419,7 +421,7 @@
 
 An automated bot (called _[ASF GitHub Bot](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=githubbot)_ in
 [Storm JIRA](https://issues.apache.org/jira/browse/STORM)) runs periodically to merge changes in the
-[official Apache repo](https://git-wip-us.apache.org/repos/asf/storm.git) to the read-only
+[official Apache repo](https://gitbox.apache.org/repos/asf/storm.git) to the read-only
 [GitHub mirror repository](https://github.com/apache/storm/), and to merge comments in GitHub pull requests to
 the [Storm JIRA](https://issues.apache.org/jira/browse/STORM).
 
diff --git a/LICENSE-binary b/LICENSE-binary
index 023f642..8704f1e 100644
--- a/LICENSE-binary
+++ b/LICENSE-binary
@@ -649,9 +649,25 @@
     Apache License, Version 2.0
 
         * HttpClient (commons-httpclient:commons-httpclient:3.0.1 - http://jakarta.apache.org/commons/httpclient/)
-        * Log4j Implemented Over SLF4J (org.slf4j:log4j-over-slf4j:1.6.6 - http://www.slf4j.org)
-        * Log4j Implemented Over SLF4J (org.slf4j:log4j-over-slf4j:1.7.25 - http://www.slf4j.org)
-    
+        * Plexus Common Utilities (org.codehaus.plexus:plexus-utils:3.1.0 - http://codehaus-plexus.github.io/plexus-utils/)
+        * Maven Artifact (org.apache.maven:maven-artifact:3.6.0 - https://maven.apache.org/ref/3.6.0/maven-artifact/)
+        * Maven Builder Support (org.apache.maven:maven-builder-support:3.6.0 - https://maven.apache.org/ref/3.6.0/maven-builder-support/)
+        * Maven Artifact Resolver Transport File (org.apache.maven.resolver:maven-resolver-transport-file:1.3.3 - https://maven.apache.org/resolver/maven-resolver-transport-file/)
+        * Maven Artifact Resolver Transport HTTP (org.apache.maven.resolver:maven-resolver-transport-http:1.3.3 - https://maven.apache.org/resolver/maven-resolver-transport-http/)
+        * Maven Repository Metadata Model (org.apache.maven:maven-repository-metadata:3.6.0 - https://maven.apache.org/ref/3.6.0/maven-repository-metadata/)
+        * Maven Artifact Resolver Provider (org.apache.maven:maven-resolver-provider:3.6.0 - https://maven.apache.org/ref/3.6.0/maven-resolver-provider/)
+        * zookeeper (org.apache.zookeeper:zookeeper:3.4.14 - no url defined)
+        * Maven Model (org.apache.maven:maven-model:3.6.0 - https://maven.apache.org/ref/3.6.0/maven-model/)
+        * Netty/All-in-One (io.netty:netty-all:4.1.30.Final - http://netty.io/netty-all/)
+        * Maven Artifact Resolver API (org.apache.maven.resolver:maven-resolver-api:1.3.3 - https://maven.apache.org/resolver/maven-resolver-api/)
+        * Maven Artifact Resolver SPI (org.apache.maven.resolver:maven-resolver-spi:1.3.3 - https://maven.apache.org/resolver/maven-resolver-spi/)
+        * Maven Artifact Resolver Implementation (org.apache.maven.resolver:maven-resolver-impl:1.3.3 - https://maven.apache.org/resolver/maven-resolver-impl/)
+        * Maven Model Builder (org.apache.maven:maven-model-builder:3.6.0 - https://maven.apache.org/ref/3.6.0/maven-model-builder/)
+        * Plexus :: Component Annotations (org.codehaus.plexus:plexus-component-annotations:1.7.1 - http://codehaus-plexus.github.io/plexus-containers/plexus-component-annotations/)
+        * Maven Artifact Resolver Utilities (org.apache.maven.resolver:maven-resolver-util:1.3.3 - https://maven.apache.org/resolver/maven-resolver-util/)
+        * Maven Artifact Resolver Connector Basic (org.apache.maven.resolver:maven-resolver-connector-basic:1.3.3 - https://maven.apache.org/resolver/maven-resolver-connector-basic/)
+        * Netty (io.netty:netty:3.10.6.Final - http://netty.io/)
+        * Curator Recipes (org.apache.curator:curator-recipes:4.2.0 - http://curator.apache.org/curator-recipes)
         * Aggregate Designer Algorithm (net.hydromatic:aggdesigner-algorithm:6.0 - http://github.com/julianhyde/aggdesigner/aggdesigner-algorithm)
         * aircompressor (io.airlift:aircompressor:0.3 - http://github.com/airlift/aircompressor)
         * Annotation 1.0 (org.apache.geronimo.specs:geronimo-annotation_1.0_spec:1.1.1 - http://geronimo.apache.org/specs/geronimo-annotation_1.0_spec)
@@ -664,7 +680,6 @@
         * Apache Calcite Avatica (org.apache.calcite.avatica:avatica-core:1.10.0 - https://calcite.apache.org/avatica/avatica-core)
         * Apache Calcite Avatica Metrics (org.apache.calcite.avatica:avatica-metrics:1.8.0 - http://calcite.apache.org/avatica/avatica-metrics)
         * Apache Commons CLI (commons-cli:commons-cli:1.4 - http://commons.apache.org/proper/commons-cli/)
-        * Apache Commons Codec (commons-codec:commons-codec:1.10 - http://commons.apache.org/proper/commons-codec/)
         * Apache Commons Codec (commons-codec:commons-codec:1.11 - http://commons.apache.org/proper/commons-codec/)
         * Apache Commons Collections (commons-collections:commons-collections:3.2.2 - http://commons.apache.org/collections/)
         * Apache Commons Compress (org.apache.commons:commons-compress:1.18 - https://commons.apache.org/proper/commons-compress/)
@@ -672,11 +687,11 @@
         * Apache Commons CSV (org.apache.commons:commons-csv:1.4 - http://commons.apache.org/proper/commons-csv/)
         * Apache Commons Exec (org.apache.commons:commons-exec:1.3 - http://commons.apache.org/proper/commons-exec/)
         * Apache Commons FileUpload (commons-fileupload:commons-fileupload:1.3.3 - http://commons.apache.org/proper/commons-fileupload/)
-        * Apache Commons IO (commons-io:commons-io:2.5 - http://commons.apache.org/proper/commons-io/)
         * Apache Commons IO (commons-io:commons-io:2.6 - http://commons.apache.org/proper/commons-io/)
         * Apache Commons Lang (org.apache.commons:commons-lang3:3.2 - http://commons.apache.org/proper/commons-lang/)
         * Apache Commons Lang (org.apache.commons:commons-lang3:3.6 - http://commons.apache.org/proper/commons-lang/)
         * Apache Commons Lang (org.apache.commons:commons-lang3:3.7 - http://commons.apache.org/proper/commons-lang/)
+        * Apache Commons Lang (org.apache.commons:commons-lang3:3.8.1 - http://commons.apache.org/proper/commons-lang/)
         * Apache Commons Logging (commons-logging:commons-logging:1.2 - http://commons.apache.org/proper/commons-logging/)
         * Apache Commons Math (org.apache.commons:commons-math3:3.6.1 - http://commons.apache.org/proper/commons-math/)
         * Apache Commons Text (org.apache.commons:commons-text:1.2 - http://commons.apache.org/proper/commons-text/)
@@ -687,13 +702,12 @@
         * ApacheDS I18n (org.apache.directory.server:apacheds-i18n:2.0.0-M15 - http://directory.apache.org/apacheds/1.5/apacheds-i18n)
         * ApacheDS Protocol Kerberos Codec (org.apache.directory.server:apacheds-kerberos-codec:2.0.0-M15 - http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec)
         * Apache Groovy (org.codehaus.groovy:groovy-all:2.4.4 - http://groovy-lang.org)
+        * Apache Hadoop Archives (org.apache.hadoop:hadoop-archives:2.8.5 - no url defined)
         * Apache Hadoop Annotations (org.apache.hadoop:hadoop-annotations:2.8.5 - no url defined)
-        * Apache Hadoop Archives (org.apache.hadoop:hadoop-archives:2.7.2 - no url defined)
-        * Apache Hadoop Auth (org.apache.hadoop:hadoop-auth:2.7.7 - no url defined)
         * Apache Hadoop Auth (org.apache.hadoop:hadoop-auth:2.8.5 - no url defined)
         * Apache Hadoop Client (org.apache.hadoop:hadoop-client:2.8.5 - no url defined)
         * Apache Hadoop Common (org.apache.hadoop:hadoop-common:2.8.5 - no url defined)
-        * Apache Hadoop HDFS (org.apache.hadoop:hadoop-hdfs:2.7.7 - no url defined)
+        * Apache Hadoop HDFS (org.apache.hadoop:hadoop-hdfs:2.8.5 - no url defined)
         * Apache Hadoop HDFS Client (org.apache.hadoop:hadoop-hdfs-client:2.8.5 - no url defined)
         * Apache Hadoop MapReduce App (org.apache.hadoop:hadoop-mapreduce-client-app:2.8.5 - no url defined)
         * Apache Hadoop MapReduce Common (org.apache.hadoop:hadoop-mapreduce-client-common:2.8.5 - no url defined)
@@ -704,6 +718,10 @@
         * Apache Hadoop YARN Client (org.apache.hadoop:hadoop-yarn-client:2.8.5 - no url defined)
         * Apache Hadoop YARN Common (org.apache.hadoop:hadoop-yarn-common:2.8.5 - no url defined)
         * Apache Hadoop YARN Server Common (org.apache.hadoop:hadoop-yarn-server-common:2.8.5 - no url defined)
+        * Apache Hadoop YARN ApplicationHistoryService (org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:2.8.5 - no url defined)
+        * Apache Hadoop YARN Registry (org.apache.hadoop:hadoop-yarn-registry:2.8.5 - no url defined)
+        * Apache Hadoop YARN ResourceManager (org.apache.hadoop:hadoop-yarn-server-resourcemanager:2.8.5 - no url defined)
+        * Apache Hadoop YARN Web Proxy (org.apache.hadoop:hadoop-yarn-server-web-proxy:2.8.5 - no url defined)
         * Apache HBase - Annotations (org.apache.hbase:hbase-annotations:2.1.3 - http://hbase.apache.org/hbase-annotations)
         * Apache HBase - Client (org.apache.hbase:hbase-client:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-client)
         * Apache HBase - Common (org.apache.hbase:hbase-common:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-common)
@@ -721,25 +739,20 @@
         * Apache HBase - Server (org.apache.hbase:hbase-server:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-server)
         * Apache HBase - Shaded Protocol (org.apache.hbase:hbase-protocol-shaded:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-protocol-shaded)
         * Apache HBase - Zookeeper (org.apache.hbase:hbase-zookeeper:2.1.3 - http://hbase.apache.org/hbase-build-configuration/hbase-zookeeper)
-        * Apache HttpClient (org.apache.httpcomponents:httpclient:4.3.5 - http://hc.apache.org/httpcomponents-client)
-        * Apache HttpClient (org.apache.httpcomponents:httpclient:4.5.2 - http://hc.apache.org/httpcomponents-client)
         * Apache HttpClient (org.apache.httpcomponents:httpclient:4.5.6 - http://hc.apache.org/httpcomponents-client)
-        * Apache HttpCore (org.apache.httpcomponents:httpcore:4.3.2 - http://hc.apache.org/httpcomponents-core-ga)
         * Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.10 - http://hc.apache.org/httpcomponents-core-ga)
-        * Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.4 - http://hc.apache.org/httpcomponents-core-ga)
         * Apache Ivy (org.apache.ivy:ivy:2.4.0 - http://ant.apache.org/ivy/)
         * Apache Kafka (org.apache.kafka:kafka-clients:0.11.0.3 - http://kafka.apache.org)
         * Apache Log4j (log4j:log4j:1.2.17 - http://logging.apache.org/log4j/1.2/)
-        * Apache Log4j 1.x Compatibility API (org.apache.logging.log4j:log4j-1.2-api:2.6.2 - http://logging.apache.org/log4j/2.x/log4j-1.2-api/)
-        * Apache Log4j API (org.apache.logging.log4j:log4j-api:2.11.1 - https://logging.apache.org/log4j/2.x/log4j-api/)
-        * Apache Log4j API (org.apache.logging.log4j:log4j-api:2.6.2 - http://logging.apache.org/log4j/2.x/log4j-api/)
-        * Apache Log4j Core (org.apache.logging.log4j:log4j-core:2.11.1 - https://logging.apache.org/log4j/2.x/log4j-core/)
-        * Apache Log4j Core (org.apache.logging.log4j:log4j-core:2.6.2 - http://logging.apache.org/log4j/2.x/log4j-core/)
-        * Apache Log4j SLF4J Binding (org.apache.logging.log4j:log4j-slf4j-impl:2.11.1 - https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/)
-        * Apache Log4j Web (org.apache.logging.log4j:log4j-web:2.6.2 - http://logging.apache.org/log4j/2.x/log4j-web/)
+        * Apache Log4j 1.x Compatibility API (org.apache.logging.log4j:log4j-1.2-api:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-1.2-api/)
+        * Apache Log4j API (org.apache.logging.log4j:log4j-api:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-api/)
+        * Apache Log4j Core (org.apache.logging.log4j:log4j-core:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-core/)
+        * Apache Log4j SLF4J Binding (org.apache.logging.log4j:log4j-slf4j-impl:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/)
+        * Apache Log4j Web (org.apache.logging.log4j:log4j-web:2.11.2 - https://logging.apache.org/log4j/2.x/log4j-web/)
         * Apache Parquet Hadoop Bundle (org.apache.parquet:parquet-hadoop-bundle:1.8.1 - https://parquet.apache.org)
         * Apache Thrift (org.apache.thrift:libfb303:0.9.3 - http://thrift.apache.org)
-        * Apache Thrift (org.apache.thrift:libthrift:0.9.3 - http://thrift.apache.org)
+        * Apache Thrift (org.apache.thrift:libthrift:0.12.0 - http://thrift.apache.org)
+        * Plexus Interpolation API (org.codehaus.plexus:plexus-interpolation:1.25 - http://codehaus-plexus.github.io/plexus-interpolation/)
         * Apache Twill API (org.apache.twill:twill-api:0.6.0-incubating - http://twill.incubator.apache.org/twill-api)
         * Apache Twill common library (org.apache.twill:twill-common:0.6.0-incubating - http://twill.incubator.apache.org/twill-common)
         * Apache Twill core library (org.apache.twill:twill-core:0.6.0-incubating - http://twill.incubator.apache.org/twill-core)
@@ -756,13 +769,9 @@
         * Calcite Linq4j (org.apache.calcite:calcite-linq4j:1.10.0 - http://calcite.apache.org/calcite-linq4j)
         * Calcite Linq4j (org.apache.calcite:calcite-linq4j:1.14.0 - https://calcite.apache.org/calcite-linq4j)
         * carbonite (com.twitter:carbonite:1.5.0 - no url defined)
-        * CDI APIs (javax.enterprise:cdi-api:1.0 - http://www.seamframework.org/Weld/cdi-api)
         * chill-java (com.twitter:chill-java:0.8.0 - https://github.com/twitter/chill)
         * ClassMate (com.fasterxml:classmate:1.3.1 - http://github.com/cowtowncoder/java-classmate)
         * com.papertrail:profiler (com.papertrail:profiler:1.0.2 - https://github.com/papertrail/profiler)
-        * Commons CLI (commons-cli:commons-cli:1.2 - http://commons.apache.org/cli/)
-        * Commons Codec (commons-codec:commons-codec:1.6 - http://commons.apache.org/codec/)
-        * Commons Compress (org.apache.commons:commons-compress:1.4.1 - http://commons.apache.org/compress/)
         * Commons Configuration (commons-configuration:commons-configuration:1.6 - http://commons.apache.org/${pom.artifactId.substring(8)}/)
         * Commons Daemon (commons-daemon:commons-daemon:1.0.13 - http://commons.apache.org/daemon/)
         * Commons DBCP (commons-dbcp:commons-dbcp:1.4 - http://commons.apache.org/dbcp/)
@@ -770,11 +779,8 @@
         * Commons Logging (commons-logging:commons-logging:1.1.3 - http://commons.apache.org/proper/commons-logging/)
         * Commons Net (commons-net:commons-net:3.1 - http://commons.apache.org/net/)
         * Commons Pool (commons-pool:commons-pool:1.5.4 - http://commons.apache.org/pool/)
-        * Curator Client (org.apache.curator:curator-client:2.7.1 - http://curator.apache.org/curator-client)
         * Curator Client (org.apache.curator:curator-client:4.2.0 - http://curator.apache.org/curator-client)
-        * Curator Framework (org.apache.curator:curator-framework:2.7.1 - http://curator.apache.org/curator-framework)
         * Curator Framework (org.apache.curator:curator-framework:4.2.0 - http://curator.apache.org/curator-framework)
-        * Curator Recipes (org.apache.curator:curator-recipes:2.7.1 - http://curator.apache.org/curator-recipes)
         * Data Mapper for Jackson (org.codehaus.jackson:jackson-mapper-asl:1.9.13 - http://jackson.codehaus.org)
         * DataNucleus Core (org.datanucleus:datanucleus-core:4.1.17 - http://www.datanucleus.org/#/datanucleus-core)
         * DataNucleus JDO API plugin (org.datanucleus:datanucleus-api-jdo:4.2.4 - http://www.datanucleus.org/#/datanucleus-api-jdo)
@@ -807,16 +813,11 @@
         * Google Guice - Extensions - Servlet (com.google.inject.extensions:guice-servlet:3.0 - http://code.google.com/p/google-guice/extensions-parent/guice-servlet/)
         * Graphite Integration for Metrics (io.dropwizard.metrics:metrics-graphite:3.2.6 - http://metrics.dropwizard.io/metrics-graphite/)
         * Gson (com.google.code.gson:gson:2.2.4 - http://code.google.com/p/google-gson/)
-        * Guava: Google Core Libraries for Java (com.google.guava:guava:11.0.2 - http://code.google.com/p/guava-libraries/guava)
         * Guava: Google Core Libraries for Java (com.google.guava:guava:16.0.1 - http://code.google.com/p/guava-libraries/guava)
         * Guava: Google Core Libraries for Java (com.google.guava:guava:27.0.1-jre - https://github.com/google/guava/guava)
         * Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess)
         * Guava ListenableFuture only (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava - https://github.com/google/guava/listenablefuture)
         * Hadoop Metrics2 Reporter for Dropwizard Metrics (com.github.joshelser:dropwizard-metrics-hadoop-metrics2-reporter:0.1.2 - https://github.com/joshelser/dropwizard-hadoop-metrics2)
-        * hadoop-yarn-registry (org.apache.hadoop:hadoop-yarn-registry:2.7.1 - no url defined)
-        * hadoop-yarn-server-applicationhistoryservice (org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:2.7.2 - no url defined)
-        * hadoop-yarn-server-resourcemanager (org.apache.hadoop:hadoop-yarn-server-resourcemanager:2.7.2 - no url defined)
-        * hadoop-yarn-server-web-proxy (org.apache.hadoop:hadoop-yarn-server-web-proxy:2.7.2 - no url defined)
         * Hibernate Validator Engine (org.hibernate:hibernate-validator:5.4.2.Final - http://hibernate.org/validator/hibernate-validator)
         * HikariCP (com.zaxxer:HikariCP:2.5.1 - https://github.com/brettwooldridge/HikariCP)
         * Hive CLI (org.apache.hive:hive-cli:2.3.4 - http://hive.apache.org/hive-cli)
@@ -840,30 +841,26 @@
         * Hive Shims Scheduler (org.apache.hive.shims:hive-shims-scheduler:2.3.4 - http://hive.apache.org/hive-shims-scheduler)
         * Hive Storage API (org.apache.hive:hive-storage-api:2.4.0 - https://www.apache.org/hive-storage-api/)
         * Hive Vector-Code-Gen Utilities (org.apache.hive:hive-vector-code-gen:2.3.4 - http://hive.apache.org/hive-vector-code-gen)
-        * htrace-core (org.apache.htrace:htrace-core:3.1.0-incubating - http://incubator.apache.org/projects/htrace.html)
         * htrace-core4 (org.apache.htrace:htrace-core4:4.2.0-incubating - http://incubator.apache.org/projects/htrace.html)
         * j2html (com.j2html:j2html:1.0.0 - http://j2html.com)
         * J2ObjC Annotations (com.google.j2objc:j2objc-annotations:1.1 - https://github.com/google/j2objc/)
         * Jackson (org.codehaus.jackson:jackson-core-asl:1.9.13 - http://jackson.codehaus.org)
         * Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.9.0 - http://github.com/FasterXML/jackson)
-        * Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.9.2 - http://github.com/FasterXML/jackson)
-        * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.9.2 - https://github.com/FasterXML/jackson-core)
         * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.9.8 - https://github.com/FasterXML/jackson-core)
-        * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.2 - http://github.com/FasterXML/jackson)
         * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.8 - http://github.com/FasterXML/jackson)
         * Jackson dataformat: Smile (com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.9.8 - http://github.com/FasterXML/jackson-dataformats-binary)
-        * Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.6 - https://github.com/FasterXML/jackson-dataformats-text)
-        * Jackson datatype: Guava (com.fasterxml.jackson.datatype:jackson-datatype-guava:2.9.6 - https://github.com/FasterXML/jackson-datatypes-collections)
-        * Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.6 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
-        * Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.6 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
-        * Jackson-datatype-Joda (com.fasterxml.jackson.datatype:jackson-datatype-joda:2.9.6 - http://wiki.fasterxml.com/JacksonModuleJoda)
+        * Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 - https://github.com/FasterXML/jackson-dataformats-text)
+        * Jackson datatype: Guava (com.fasterxml.jackson.datatype:jackson-datatype-guava:2.9.8 - https://github.com/FasterXML/jackson-datatypes-collections)
+        * Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
+        * Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
+        * Jackson-datatype-Joda (com.fasterxml.jackson.datatype:jackson-datatype-joda:2.9.8 - http://wiki.fasterxml.com/JacksonModuleJoda)
         * Jackson Integration for Metrics (io.dropwizard.metrics:metrics-json:3.1.0 - http://metrics.codahale.com/metrics-json/)
         * Jackson Integration for Metrics (io.dropwizard.metrics:metrics-json:4.0.2 - http://metrics.dropwizard.io/metrics-json)
-        * Jackson-JAXRS-base (com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.9.6 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-base)
-        * Jackson-JAXRS-JSON (com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.6 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-json-provider)
-        * Jackson module: Afterburner (com.fasterxml.jackson.module:jackson-module-afterburner:2.9.6 - https://github.com/FasterXML/jackson-modules-base)
-        * Jackson module: JAXB Annotations (com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.6 - https://github.com/FasterXML/jackson-modules-base)
-        * Jackson-module-parameter-names (com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.6 - https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
+        * Jackson-JAXRS-base (com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.9.8 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-base)
+        * Jackson-JAXRS-JSON (com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.8 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-json-provider)
+        * Jackson module: Afterburner (com.fasterxml.jackson.module:jackson-module-afterburner:2.9.8 - https://github.com/FasterXML/jackson-modules-base)
+        * Jackson module: JAXB Annotations (com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.8 - https://github.com/FasterXML/jackson-modules-base)
+        * Jackson-module-parameter-names (com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.8 - https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
         * jasper-compiler (tomcat:jasper-compiler:5.5.23 - http://tomcat.apache.org/jasper-compiler)
         * jasper-runtime (tomcat:jasper-runtime:5.5.23 - http://tomcat.apache.org/jasper-runtime)
         * Java Authentication SPI for Containers (org.apache.geronimo.specs:geronimo-jaspic_1.0_spec:1.0 - http://geronimo.apache.org/maven/specs/geronimo-jaspic_1.0_spec/1.0)
@@ -876,8 +873,6 @@
         * Jettison (org.codehaus.jettison:jettison:1.1 - no url defined)
         * Jetty SSLEngine (org.mortbay.jetty:jetty-sslengine:6.1.26 - http://jetty.mortbay.org)
         * Joda-Time (joda-time:joda-time:2.3 - http://www.joda.org/joda-time/)
-        * Joda-Time (joda-time:joda-time:2.8.1 - http://www.joda.org/joda-time/)
-        * Joda-Time (joda-time:joda-time:2.9.9 - http://www.joda.org/joda-time/)
         * jOOL (org.jooq:jool:0.9.12 - http://nexus.sonatype.org/oss-repository-hosting.html/jool)
         * JPam (net.sf.jpam:jpam:1.1 - http://jpam.sf.net)
         * JSON.simple (com.googlecode.json-simple:json-simple:1.1 - http://code.google.com/p/json-simple/)
@@ -886,11 +881,6 @@
         * JVM Integration for Metrics (io.dropwizard.metrics:metrics-jvm:3.1.0 - http://metrics.codahale.com/metrics-jvm/)
         * JVM Integration for Metrics (io.dropwizard.metrics:metrics-jvm:4.0.2 - http://metrics.dropwizard.io/metrics-jvm)
         * LZ4 and xxHash (net.jpountz.lz4:lz4:1.3.0 - https://github.com/jpountz/lz4-java)
-        * Maven Aether Provider (org.apache.maven:maven-aether-provider:3.1.0 - http://maven.apache.org/ref/3.1.0/maven-aether-provider)
-        * Maven Model (org.apache.maven:maven-model:3.1.0 - http://maven.apache.org/ref/3.1.0/maven-model)
-        * Maven Model Builder (org.apache.maven:maven-model-builder:3.1.0 - http://maven.apache.org/ref/3.1.0/maven-model-builder)
-        * Maven Repository Metadata Model (org.apache.maven:maven-repository-metadata:3.1.0 - http://maven.apache.org/ref/3.1.0/maven-repository-metadata)
-        * Metrics Core (io.dropwizard.metrics:metrics-core:3.2.1 - http://metrics.codahale.com/metrics-core/)
         * Metrics Core (io.dropwizard.metrics:metrics-core:3.2.6 - http://metrics.dropwizard.io/metrics-core/)
         * Metrics Health Checks (io.dropwizard.metrics:metrics-healthchecks:4.0.2 - http://metrics.dropwizard.io/metrics-healthchecks)
         * Metrics Integration for Jersey 2.x (io.dropwizard.metrics:metrics-jersey2:4.0.2 - http://metrics.dropwizard.io/metrics-jersey2)
@@ -898,7 +888,6 @@
         * Metrics Integration for Logback (io.dropwizard.metrics:metrics-logback:4.0.2 - http://metrics.dropwizard.io/metrics-logback)
         * Metrics Integration with JMX (io.dropwizard.metrics:metrics-jmx:4.0.2 - http://metrics.dropwizard.io/metrics-jmx)
         * Metrics Utility Servlets (io.dropwizard.metrics:metrics-servlets:4.0.2 - http://metrics.dropwizard.io/metrics-servlets)
-        * Netty/All-in-One (io.netty:netty-all:4.0.23.Final - http://netty.io/netty-all/)
         * Nimbus JOSE+JWT (com.nimbusds:nimbus-jose-jwt:4.41.1 - https://bitbucket.org/connect2id/nimbus-jose-jwt)
         * Objenesis (org.objenesis:objenesis:2.1 - http://objenesis.org)
         * OkHttp (com.squareup.okhttp:okhttp:2.4.0 - https://github.com/square/okhttp/okhttp)
@@ -907,23 +896,16 @@
         * Open JSON (com.tdunning:json:1.8 - https://github.com/tdunning/open-json)
         * ORC Core (org.apache.orc:orc-core:1.3.3 - http://orc.apache.org/orc-core)
         * oro (oro:oro:2.0.8 - no url defined)
-        * Plexus :: Component Annotations (org.codehaus.plexus:plexus-component-annotations:1.5.5 - http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/)
-        * Plexus Classworlds (org.codehaus.plexus:plexus-classworlds:2.4 - http://plexus.codehaus.org/plexus-classworlds/)
-        * Plexus Common Utilities (org.codehaus.plexus:plexus-utils:3.1.1 - http://codehaus-plexus.github.io/plexus-utils/)
-        * Plexus Interpolation API (org.codehaus.plexus:plexus-interpolation:1.16 - http://plexus.codehaus.org/plexus-components/plexus-interpolation)
-        * Sisu Guice - Core Library (org.sonatype.sisu:sisu-guice:3.1.0 - http://code.google.com/p/google-guice/sisu-guice/)
         * Slider Core (org.apache.slider:slider-core:0.90.2-incubating - http://slider.incubator.apache.org/slider-core/)
         * SnakeYAML (org.yaml:snakeyaml:1.11 - http://www.snakeyaml.org)
-        * SnakeYAML (org.yaml:snakeyaml:1.18 - http://www.snakeyaml.org)
         * Snappy for Java (org.xerial.snappy:snappy-java:1.0.5 - http://github.com/xerial/snappy-java/)
         * snappy-java (org.xerial.snappy:snappy-java:1.1.2.6 - https://github.com/xerial/snappy-java)
         * StAX API (stax:stax-api:1.0.1 - http://stax.codehaus.org/)
         * Tephra API (co.cask.tephra:tephra-api:0.6.0 - https://github.com/caskdata/tephra/tephra-api)
         * Tephra Core (co.cask.tephra:tephra-core:0.6.0 - https://github.com/caskdata/tephra/tephra-core)
         * Tephra HBase 1.0 Compatibility (co.cask.tephra:tephra-hbase-compat-1.0:0.6.0 - https://github.com/caskdata/tephra/tephra-hbase-compat-1.0)
-        * The Netty Project (io.netty:netty:3.7.0.Final - http://netty.io/)
         * zookeeper (org.apache.zookeeper:zookeeper:3.4.6 - no url defined)
-        
+        * Log4j Implemented Over SLF4J (org.slf4j:log4j-over-slf4j:1.7.26 - http://www.slf4j.org)
         * jersey-container-grizzly2-http (org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.27 - https://jersey.github.io/project/jersey-container-grizzly2-http/)
         * jersey-container-grizzly2-servlet (org.glassfish.jersey.containers:jersey-container-grizzly2-servlet:2.27 - https://jersey.github.io/project/jersey-container-grizzly2-servlet/)
         * jersey-container-servlet (org.glassfish.jersey.containers:jersey-container-servlet:2.27 - https://jersey.github.io/project/jersey-container-servlet/)
@@ -934,54 +916,36 @@
         * jersey-core-server (org.glassfish.jersey.core:jersey-server:2.27 - https://jersey.github.io/jersey-server/)
         * jersey-core-common (org.glassfish.jersey.core:jersey-common:2.27 - https://jersey.github.io/jersey-common/)
         * Jetty :: Aggregate :: All core Jetty (org.eclipse.jetty.aggregate:jetty-all:7.6.0.v20120127 - http://www.eclipse.org/jetty/jetty-aggregate-project/jetty-all)
-        * Jetty :: Continuation (org.eclipse.jetty:jetty-continuation:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Continuation (org.eclipse.jetty:jetty-continuation:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.11.v20180605 - http://www.eclipse.org/jetty)
-        * Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Security (org.eclipse.jetty:jetty-security:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.11.v20180605 - http://www.eclipse.org/jetty)
+        * Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.14.v20181114 - http://www.eclipse.org/jetty)tty)
         * Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.14.v20181114 - http://www.eclipse.org/jetty)
         * Jetty :: SetUID Java (org.eclipse.jetty.toolchain.setuid:jetty-setuid-java:1.0.3 - http://www.eclipse.org/jetty/jetty-toolchain/jetty-setuid-parent/jetty-setuid-java)
-        * Jetty :: Utilities :: Ajax(JSON) (org.eclipse.jetty:jetty-util-ajax:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.11.v20180605 - http://www.eclipse.org/jetty)
         * Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Utility Servlets and Filters (org.eclipse.jetty:jetty-servlets:9.4.11.v20180605 - http://www.eclipse.org/jetty)
+        * Jetty :: Utilities :: Ajax(JSON) (org.eclipse.jetty:jetty-util-ajax:9.4.14.v20181114 - http://www.eclipse.org/jetty)
         * Jetty :: Utility Servlets and Filters (org.eclipse.jetty:jetty-servlets:9.4.14.v20181114 - http://www.eclipse.org/jetty)
-        * Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.11.v20180605 - http://www.eclipse.org/jetty)
-        * Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.3.25.v20180904 - http://www.eclipse.org/jetty)
-        * Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.11.v20180605 - http://www.eclipse.org/jetty)
+        * Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.14.v20181114 - http://www.eclipse.org/jetty)
+        * Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.14.v20181114 - http://www.eclipse.org/jetty)
         * Jetty Orbit :: Servlet API (org.eclipse.jetty.orbit:javax.servlet:3.0.0.v201112011016 - http://www.eclipse.org/jetty/jetty-orbit/javax.servlet)
         * Jetty Server (org.mortbay.jetty:jetty:6.1.26 - http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty)
         * Jetty Utilities (org.mortbay.jetty:jetty-util:6.1.26 - http://www.eclipse.org/jetty/jetty-parent/project/jetty-util)
-        * RocksDB JNI (org.rocksdb:rocksdbjni:5.8.6 - http://rocksdb.org/)
         * JAX-RS provider for JSON content type (org.codehaus.jackson:jackson-jaxrs:1.9.13 - http://jackson.codehaus.org)
         * Xml Compatibility extensions for Jackson (org.codehaus.jackson:jackson-xc:1.9.13 - http://jackson.codehaus.org)
-        * Javassist (org.javassist:javassist:3.20.0-GA - http://www.javassist.org/)
         * Javassist (org.javassist:javassist:3.22.0-GA - http://www.javassist.org/)
-        
-        * JCTools Core (org.jctools:jctools-core:jar:2.0.1 - http://jctools.github.io/JCTools/)
+        * RocksDB JNI (org.rocksdb:rocksdbjni:5.18.3 - http://rocksdb.org/)
+        * JCTools Core (org.jctools:jctools-core:2.0.1 - http://jctools.github.io/JCTools/)
 
     BSD 3-Clause License
 
         * ASM Commons (asm:asm-commons:3.1 - http://asm.objectweb.org/asm-commons/)
         * ASM Core (asm:asm:3.1 - http://asm.objectweb.org/asm/)
         * ASM Tree (asm:asm-tree:3.1 - http://asm.objectweb.org/asm-tree/)
+        * ASM Core (org.ow2.asm:asm:5.0.4 - http://asm.objectweb.org/asm/)
         * leveldbjni-all (org.fusesource.leveldbjni:leveldbjni-all:1.8 - http://leveldbjni.fusesource.org/leveldbjni-all)
         * ANTLR 3 Runtime (org.antlr:antlr-runtime:3.5.2 - http://www.antlr.org)
         * ANTLR ST4 4.0.4 (org.antlr:ST4:4.0.4 - http://www.stringtemplate.org)
-        * ASM Core (asm:asm:3.3.1 - http://asm.objectweb.org/asm/)
         * ASM Core (org.ow2.asm:asm:5.0.3 - http://asm.objectweb.org/asm/)
         * ParaNamer Core (com.thoughtworks.paranamer:paranamer:2.3 - http://paranamer.codehaus.org/paranamer)
         * xmlenc Library (xmlenc:xmlenc:0.52 - http://xmlenc.sourceforge.net)
@@ -997,12 +961,10 @@
     BSD 2-Clause License
     
         * JLine (jline:jline:0.9.94 - http://jline.sourceforge.net)
-        * JLine (jline:jline:2.12 - http://nexus.sonatype.org/oss-repository-hosting.html/jline)    
         * Javolution (javolution:javolution:5.5.1 - http://javolution.org)
 
     Common Development and Distribution License
 
-        * aopalliance version 1.0 repackaged as a module (org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b32 - https://hk2.java.net/external/aopalliance-repackaged)
         * aopalliance version 1.0 repackaged as a module (org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b42 - https://github.com/hk2-project/hk2/external/aopalliance-repackaged)
         * Expression Language 3.0 (org.glassfish:javax.el:3.0.0 - http://el-spec.java.net)
         * Expression Language 3.0 (org.glassfish:javax.el:3.0.1-b11 - http://uel.java.net)
@@ -1010,33 +972,20 @@
         * grizzly-http (org.glassfish.grizzly:grizzly-http:2.4.3 - http://grizzly.java.net/grizzly-http)
         * grizzly-http-server (org.glassfish.grizzly:grizzly-http-server:2.4.3 - http://grizzly.java.net/grizzly-http-server)
         * grizzly-http-servlet (org.glassfish.grizzly:grizzly-http-servlet:2.4.0 - http://grizzly.java.net/grizzly-http-servlet)
-        * HK2 API module (org.glassfish.hk2:hk2-api:2.5.0-b32 - https://hk2.java.net/hk2-api)
         * HK2 API module (org.glassfish.hk2:hk2-api:2.5.0-b42 - https://github.com/hk2-project/hk2/hk2-api)
-        * HK2 Implementation Utilities (org.glassfish.hk2:hk2-utils:2.5.0-b32 - https://hk2.java.net/hk2-utils)
         * HK2 Implementation Utilities (org.glassfish.hk2:hk2-utils:2.5.0-b42 - https://github.com/hk2-project/hk2/hk2-utils)
         * JavaServer Pages(TM) API (javax.servlet.jsp:javax.servlet.jsp-api:2.3.1 - http://jsp.java.net)
         * Java Servlet API (javax.servlet:javax.servlet-api:3.1.0 - http://servlet-spec.java.net)
-        * Java Servlet API (javax.servlet:javax.servlet-api:4.0.0 - https://javaee.github.io/servlet-spec/)
-        * javax.annotation API (javax.annotation:javax.annotation-api:1.2 - http://jcp.org/en/jsr/detail?id=250)
         * javax.annotation API (javax.annotation:javax.annotation-api:1.3.2 - http://jcp.org/en/jsr/detail?id=250)
-        * javax.inject:1 as OSGi bundle (org.glassfish.hk2.external:javax.inject:2.5.0-b32 - https://hk2.java.net/external/javax.inject)
         * javax.inject:1 as OSGi bundle (org.glassfish.hk2.external:javax.inject:2.5.0-b42 - https://github.com/hk2-project/hk2/external/javax.inject)
-        * jersey-container-servlet-core (org.glassfish.jersey.containers:jersey-container-servlet-core:2.25.1 - https://jersey.java.net/project/jersey-container-servlet-core/)
-        * jersey-core-client (org.glassfish.jersey.core:jersey-client:2.25.1 - https://jersey.java.net/jersey-client/)
-        * jersey-core-common (org.glassfish.jersey.core:jersey-common:2.25.1 - https://jersey.java.net/jersey-common/)
-        * jersey-core-server (org.glassfish.jersey.core:jersey-server:2.25.1 - https://jersey.java.net/jersey-server/)
-        * jersey-media-jaxb (org.glassfish.jersey.media:jersey-media-jaxb:2.25.1 - https://jersey.java.net/project/jersey-media-jaxb/)
-        * jersey-repackaged-guava (org.glassfish.jersey.bundles.repackaged:jersey-guava:2.25.1 - https://jersey.java.net/project/project/jersey-guava/)
         * JSP implementation (org.glassfish.web:javax.servlet.jsp:2.3.2 - http://jsp.java.net)
         * OSGi resource locator bundle - used by various API providers that rely on META-INF/services mechanism to locate providers. (org.glassfish.hk2:osgi-resource-locator:1.0.1 - http://glassfish.org/osgi-resource-locator/)
-        * ServiceLocator Default Implementation (org.glassfish.hk2:hk2-locator:2.5.0-b32 - https://hk2.java.net/hk2-locator)
         * ServiceLocator Default Implementation (org.glassfish.hk2:hk2-locator:2.5.0-b42 - https://github.com/hk2-project/hk2/hk2-locator)
 
     Common Development and Distribution License (CDDL) v1.0
 
         * JavaBeans(TM) Activation Framework (javax.activation:activation:1.1.1 - http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp)
         * JavaMail API (javax.mail:mail:1.4.1 - https://glassfish.dev.java.net/javaee5/mail/)
-        * JSR-250 Common Annotations for the JavaTM Platform (javax.annotation:jsr250-api:1.0 - http://jcp.org/aboutJava/communityprocess/final/jsr250/index.html)
 
     Common Development and Distribution License (CDDL) v1.1
 
@@ -1059,38 +1008,24 @@
         * jersey-server (com.sun.jersey:jersey-server:1.9 - https://jersey.java.net/jersey-server/)
 
     Eclipse Public License, Version 1.0
-
-        * Aether API (org.eclipse.aether:aether-api:1.1.0 - http://www.eclipse.org/aether/aether-api/)
-        * Aether Connector Basic (org.eclipse.aether:aether-connector-basic:1.1.0 - http://www.eclipse.org/aether/aether-connector-basic/)
-        * Aether Implementation (org.eclipse.aether:aether-impl:1.1.0 - http://www.eclipse.org/aether/aether-impl/)
-        * Aether SPI (org.eclipse.aether:aether-spi:1.1.0 - http://www.eclipse.org/aether/aether-spi/)
-        * Aether Transport File (org.eclipse.aether:aether-transport-file:1.1.0 - http://www.eclipse.org/aether/aether-transport-file/)
-        * Aether Transport HTTP (org.eclipse.aether:aether-transport-http:1.1.0 - http://www.eclipse.org/aether/aether-transport-http/)
-        * Aether Utilities (org.eclipse.aether:aether-util:1.1.0 - http://www.eclipse.org/aether/aether-util/)
-        * clojure (org.clojure:clojure:1.3.0-beta1 - http://clojure.org/)
-        * JUnit (junit:junit:4.12 - http://junit.org)
-        * org.eclipse.sisu.inject (org.eclipse.sisu:org.eclipse.sisu.inject:0.0.0.M2a - http://www.eclipse.org/sisu/org.eclipse.sisu.inject/)
-        * org.eclipse.sisu.plexus (org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M2a - http://www.eclipse.org/sisu/org.eclipse.sisu.plexus/)
+    
         * tools.logging (org.clojure:tools.logging:0.2.3 - http://nexus.sonatype.org/oss-repository-hosting.html/pom.contrib/tools.logging)
-        
-        * JGraphT (org.jgrapht:jgrapht-core:jar:0.9.0 - https://jgrapht.org/)
+        * clojure (org.clojure:clojure:1.10.0 - http://clojure.org/)
+        * core.specs.alpha (org.clojure:core.specs.alpha:0.2.44 - https://github.com/clojure/build.poms/core.specs.alpha)
+        * spec.alpha (org.clojure:spec.alpha:0.2.176 - https://github.com/clojure/build.poms/spec.alpha)
+        * JGraphT (org.jgrapht:jgrapht-core:0.9.0 - https://jgrapht.org/)
 
     MIT License
 
         * Animal Sniffer Annotations (org.codehaus.mojo:animal-sniffer-annotations:1.17 - http://www.mojohaus.org/animal-sniffer/animal-sniffer-annotations)
         * argparse4j (net.sourceforge.argparse4j:argparse4j:0.8.1 - http://argparse4j.github.io)
         * Checker Qual (org.checkerframework:checker-qual:2.5.2 - https://checkerframework.org)
-        * JCL 1.1.1 implemented over SLF4J (org.slf4j:jcl-over-slf4j:1.6.2 - http://www.slf4j.org)
-        * JCL 1.2 implemented over SLF4J (org.slf4j:jcl-over-slf4j:1.7.25 - http://www.slf4j.org)
         * JCodings (org.jruby.jcodings:jcodings:1.0.18 - http://nexus.sonatype.org/oss-repository-hosting.html/jcodings)
         * Joni (org.jruby.joni:joni:2.1.11 - http://nexus.sonatype.org/oss-repository-hosting.html/joni)
+        * JCL 1.2 implemented over SLF4J (org.slf4j:jcl-over-slf4j:1.7.25 - http://www.slf4j.org)
         * JUL to SLF4J bridge (org.slf4j:jul-to-slf4j:1.7.25 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.6.2 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.13 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.21 - http://www.slf4j.org)
-        * SLF4J API Module (org.slf4j:slf4j-api:1.7.25 - http://www.slf4j.org)
-        * SLF4J LOG4J-12 Binding (org.slf4j:slf4j-log4j12:1.6.6 - http://www.slf4j.org)
-        
+        * SLF4J API Module (org.slf4j:slf4j-api:1.7.26 - http://www.slf4j.org)
+        * SLF4J LOG4J-12 Binding (org.slf4j:slf4j-log4j12:1.7.26 - http://www.slf4j.org)
         * Sysout over SLF4J (uk.org.lidalia:sysout-over-slf4j:1.0.2 - http://projects.lidalia.org.uk/sysout-over-slf4j/)
 
     Mozilla Public License Version 2.0
@@ -1100,4 +1035,3 @@
     Public Domain
 
         * AOP alliance (aopalliance:aopalliance:1.0 - http://aopalliance.sourceforge.net)
-        * XZ for Java (org.tukaani:xz:1.0 - http://tukaani.org/xz/java.html)
diff --git a/dev-tools/list_jars.sh b/dev-tools/list_jars.sh
deleted file mode 100644
index fd36ef9..0000000
--- a/dev-tools/list_jars.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-################################################################################
-#  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.
-################################################################################
-
-# This script print the names of jars in the target directories and subdirectories.
-#
-# Listing the jars in the binary distribution helps validate that the LICENSE-binary file is complete.
-
-set -Eeuo pipefail
-
-SRC=${1:-.}
-
-USAGE="list_jars <SOURCE_DIRECTORY:-.>"
-
-if [ "${SRC}" = "-h" ]; then
-	echo "${USAGE}"
-	exit 0
-fi
-
-JARS=""
-for dir in $@
-do
-  JARS+=`find -L "${SRC}" -name "*.jar" -printf "%f\n"`
-  JARS+=$'\n'
-done
-echo "$JARS" | sort | uniq
diff --git a/dev-tools/travis/travis-script.sh b/dev-tools/travis/travis-script.sh
index f7d582c..b743688 100755
--- a/dev-tools/travis/travis-script.sh
+++ b/dev-tools/travis/travis-script.sh
@@ -27,6 +27,9 @@
 if [ "$2" == "Integration-Test" ]
   then
   exec ./integration-test/run-it.sh
+elif [ "$2" == "Check-Updated-License-Files" ]
+  then
+  exec python3.6 dev-tools/validate-license-files.py --skip-build-storm
 elif [ "$2" == "Client" ]
 then
   TEST_MODULES=storm-client
diff --git a/dev-tools/validate-license-files.py b/dev-tools/validate-license-files.py
new file mode 100755
index 0000000..12c6e21
--- /dev/null
+++ b/dev-tools/validate-license-files.py
@@ -0,0 +1,175 @@
+#!/usr/bin/env python3
+
+# 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.
+
+
+from contextlib import contextmanager
+from random import randint
+from pathlib import Path
+import os
+import subprocess
+import shlex
+import filecmp
+import shutil
+import re
+import itertools
+import argparse
+
+project_root = Path(__file__).resolve().parent.parent
+update_dependency_licenses_cmd = ('mvn license:aggregate-add-third-party@generate-and-check-licenses' +
+                                  ' -Dlicense.skipAggregateAddThirdParty=false -B')
+
+
+@contextmanager
+def cd(newdir):
+    prevdir = Path.cwd()
+    os.chdir(newdir.expanduser())
+    try:
+        yield
+    finally:
+        os.chdir(prevdir)
+
+
+def generate_dependency_licenses():
+    """Generates DEPENDENCY-LICENSES in target. The committed DEPENDENCY-LICENSES is not modified."""
+    print('Generating DEPENDENCY-LICENSES')
+    update_dependency_licenses_output_to_target_cmd = (update_dependency_licenses_cmd +
+                                                       ' -Dlicense.thirdPartyFilename=DEPENDENCY-LICENSES' +
+                                                       ' -Dlicense.outputDirectory=target')
+    subprocess.check_call(shlex.split(
+        update_dependency_licenses_output_to_target_cmd))
+    print('Done generating DEPENDENCY-LICENSES')
+
+
+def check_dependency_licenses():
+    """Compares the regenerated DEPENDENCY-LICENSES in target with the DEPENDENCY-LICENSES in the root, and verifies that they are identical"""
+    print('Checking DEPENDENCY-LICENSES')
+    if (not filecmp.cmp(Path('DEPENDENCY-LICENSES'), Path('target') / 'DEPENDENCY-LICENSES', shallow=False)):
+        print(
+            f"DEPENDENCY-LICENSES and target/DEPENDENCY-LICENSES are different. Please update DEPENDENCY-LICENSES by running '{update_dependency_licenses_cmd}' in the project root")
+        return False
+    return True
+
+
+def build_storm():
+    print("Building Storm")
+    subprocess.check_call(shlex.split(
+        'mvn clean install -B -DskipTests -Dcheckstyle.skip -Dpmd.skip'
+    ))
+    print("Done building Storm")
+
+
+def extract_license_report_maven_coordinates(lines):
+    # Lines like " * Checker Qual (org.checkerframework:checker-qual:2.5.2 - https://checkerframework.org)"
+    matches = map(lambda line: re.match(
+        r'\s+\*.*\((?P<gav>.*) \- .*\).*', line), lines)
+    return set(map(lambda match: match.group('gav'), filter(lambda match: match != None, matches)))
+
+
+def parse_license_binary_dependencies_coordinate_set():
+    """Gets the dependencies listed in LICENSE-binary"""
+    license_binary_begin_binary_section = '----------------------------END OF SOURCE NOTICES -------------------------------------------'
+    license_binary_lines = read_lines(project_root / 'LICENSE-binary')
+    return extract_license_report_maven_coordinates(
+        itertools.dropwhile(lambda line: license_binary_begin_binary_section not in line, license_binary_lines))
+
+
+def extract_dependency_list_maven_coordinates(lines):
+    # Lines like "   com.google.code.findbugs:jsr305:jar:3.0.2 -- module jsr305 (auto)"
+    matches = map(lambda line: re.match(
+        r'\s+(?P<group>\S*)\:(?P<artifact>\S*)\:(?P<type>\S*)\:(?P<version>\S*)', line), lines)
+    return set(map(lambda match: match.group('group') + ':' + match.group('artifact') + ':' + match.group('version'), filter(lambda match: match != None, matches)))
+
+
+def read_lines(path):
+    with open(path) as f:
+        return f.readlines()
+
+
+def generate_storm_dist_dependencies_coordinate_set():
+    """Gets the dependencies for storm-dist/binary, plus the dependencies of storm-shaded-deps"""
+    generated_coordinate_set = extract_license_report_maven_coordinates(read_lines(
+        project_root / 'storm-dist' / 'binary' / 'target' / 'generated-sources' / 'license' / 'THIRD-PARTY.txt'))
+
+    # Add dependencies from storm-shaded-deps
+    with cd(project_root / 'storm-shaded-deps'):
+        print("Generating dependency list for storm-shaded-deps")
+        subprocess.check_call(shlex.split(
+            'mvn dependency:list -DoutputFile=target/deps-list -Dmdep.outputScope=false -DincludeScope=compile -B'))
+        print("Done generating dependency list for storm-shaded-deps")
+    shaded_dep_coordinates = extract_dependency_list_maven_coordinates(
+        read_lines(project_root / 'storm-shaded-deps' / 'target' / 'deps-list'))
+    shaded_dep_coordinates = set(filter(lambda coordinate: 'org.apache.storm:' not in coordinate, shaded_dep_coordinates))
+    print('The storm-shaded-deps dependencies that are included when distributing storm-dist/binary are ' + str(shaded_dep_coordinates))
+    print('')
+    generated_coordinate_set.update(shaded_dep_coordinates)
+
+    return generated_coordinate_set
+
+def generate_storm_dist_license_report():
+    with cd(project_root / 'storm-dist' / 'binary'):
+        print('')
+        print('Generating storm-dist license report')
+        subprocess.check_call(shlex.split(update_dependency_licenses_cmd))
+        print('Done generating storm-dist license report')
+
+def make_license_binary_checker():
+    """Checks that the dependencies in the storm-dist/binary license report are mentioned in LICENSE-binary, and vice versa."""
+    print('Checking LICENSE-binary')
+
+    license_binary_coordinate_set = parse_license_binary_dependencies_coordinate_set()
+    generated_coordinate_set = generate_storm_dist_dependencies_coordinate_set()
+    superfluous_coordinates_in_license = license_binary_coordinate_set.difference(
+        generated_coordinate_set)
+    coordinates_missing_in_license = generated_coordinate_set.difference(
+        license_binary_coordinate_set)
+    print('Done checking LICENSE-binary')
+    def check_for_errors():
+        if superfluous_coordinates_in_license:
+            print('Dependencies in LICENSE-binary that appear unused: ')
+            for coord in sorted(superfluous_coordinates_in_license):
+                print(coord)
+        print('')
+        if coordinates_missing_in_license:
+            print('Dependencies missing from LICENSE-binary: ')
+            for coord in sorted(coordinates_missing_in_license):
+                print(coord)
+        any_wrong_coordinates = coordinates_missing_in_license or superfluous_coordinates_in_license
+        if any_wrong_coordinates:
+            print('LICENSE-binary needs to be updated. Please remove any unnecessary dependencies from LICENSE-binary, and add any that are missing. You can copy any missing dependencies from DEPENDENCY-LICENSES')
+        return not any_wrong_coordinates
+    return check_for_errors
+
+
+with cd(project_root):
+    parser = argparse.ArgumentParser(description='Validate that the Storm license files are up to date (excluding NOTICE-binary and the licenses/ directory)')
+    parser.add_argument('--skip-build-storm', action='store_true', help='set to skip building Storm')
+    args = parser.parse_args()
+    success = True
+
+    if not args.skip_build_storm:
+        build_storm()
+    generate_dependency_licenses()
+    generate_storm_dist_license_report()
+    license_binary_checker = make_license_binary_checker()
+    success = check_dependency_licenses() and success
+    success = license_binary_checker() and success
+    if not success:
+        print('Some license files are not up to date, see above for the relevant error message')
+        exit(1)
+    print('License files are up to date')
+    exit(0)
diff --git a/examples/storm-elasticsearch-examples/pom.xml b/examples/storm-elasticsearch-examples/pom.xml
index d25a747..9827d10 100644
--- a/examples/storm-elasticsearch-examples/pom.xml
+++ b/examples/storm-elasticsearch-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-hbase-examples/pom.xml b/examples/storm-hbase-examples/pom.xml
index 65b71fe..08e3b32 100644
--- a/examples/storm-hbase-examples/pom.xml
+++ b/examples/storm-hbase-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-hdfs-examples/pom.xml b/examples/storm-hdfs-examples/pom.xml
index 697a22c..c37ccdf 100644
--- a/examples/storm-hdfs-examples/pom.xml
+++ b/examples/storm-hdfs-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-hive-examples/pom.xml b/examples/storm-hive-examples/pom.xml
index 10e2112..47c0ddb 100644
--- a/examples/storm-hive-examples/pom.xml
+++ b/examples/storm-hive-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-jdbc-examples/pom.xml b/examples/storm-jdbc-examples/pom.xml
index c334379..37b277b 100644
--- a/examples/storm-jdbc-examples/pom.xml
+++ b/examples/storm-jdbc-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-jms-examples/pom.xml b/examples/storm-jms-examples/pom.xml
index 56596f7..07f19a4 100644
--- a/examples/storm-jms-examples/pom.xml
+++ b/examples/storm-jms-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-kafka-client-examples/pom.xml b/examples/storm-kafka-client-examples/pom.xml
index 531a082..ddfa4db 100644
--- a/examples/storm-kafka-client-examples/pom.xml
+++ b/examples/storm-kafka-client-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-loadgen/pom.xml b/examples/storm-loadgen/pom.xml
index e634acc..0f1cd3d 100644
--- a/examples/storm-loadgen/pom.xml
+++ b/examples/storm-loadgen/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>storm</artifactId>
     <groupId>org.apache.storm</groupId>
-    <version>2.0.1-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>storm-loadgen</artifactId>
diff --git a/examples/storm-mongodb-examples/pom.xml b/examples/storm-mongodb-examples/pom.xml
index 3766f7e..1e13ac0 100644
--- a/examples/storm-mongodb-examples/pom.xml
+++ b/examples/storm-mongodb-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-mqtt-examples/pom.xml b/examples/storm-mqtt-examples/pom.xml
index 3de7620..0996303 100644
--- a/examples/storm-mqtt-examples/pom.xml
+++ b/examples/storm-mqtt-examples/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <artifactId>storm</artifactId>
     <groupId>org.apache.storm</groupId>
-    <version>2.0.1-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   
diff --git a/examples/storm-opentsdb-examples/pom.xml b/examples/storm-opentsdb-examples/pom.xml
index 90e9d76..f42b740 100644
--- a/examples/storm-opentsdb-examples/pom.xml
+++ b/examples/storm-opentsdb-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-perf/pom.xml b/examples/storm-perf/pom.xml
index 07c4b17..7dc00f9 100644
--- a/examples/storm-perf/pom.xml
+++ b/examples/storm-perf/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-pmml-examples/pom.xml b/examples/storm-pmml-examples/pom.xml
index b687ac1..01b4b81 100644
--- a/examples/storm-pmml-examples/pom.xml
+++ b/examples/storm-pmml-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/examples/storm-redis-examples/pom.xml b/examples/storm-redis-examples/pom.xml
index 4ec2347..919c74b 100644
--- a/examples/storm-redis-examples/pom.xml
+++ b/examples/storm-redis-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-rocketmq-examples/pom.xml b/examples/storm-rocketmq-examples/pom.xml
index 31774a4..8b08c2b 100644
--- a/examples/storm-rocketmq-examples/pom.xml
+++ b/examples/storm-rocketmq-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-solr-examples/pom.xml b/examples/storm-solr-examples/pom.xml
index 81570d1..6325281 100644
--- a/examples/storm-solr-examples/pom.xml
+++ b/examples/storm-solr-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/examples/storm-starter/pom.xml b/examples/storm-starter/pom.xml
index 3835bbc..bfca61c 100644
--- a/examples/storm-starter/pom.xml
+++ b/examples/storm-starter/pom.xml
@@ -20,7 +20,7 @@
   <parent>
       <artifactId>storm</artifactId>
       <groupId>org.apache.storm</groupId>
-      <version>2.0.1-SNAPSHOT</version>
+      <version>2.2.0-SNAPSHOT</version>
       <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/external/storm-autocreds/pom.xml b/external/storm-autocreds/pom.xml
index 87b2a2f..0d91fec 100644
--- a/external/storm-autocreds/pom.xml
+++ b/external/storm-autocreds/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/external/storm-blobstore-migration/pom.xml b/external/storm-blobstore-migration/pom.xml
index d7c2eb2..a0a9fd6 100644
--- a/external/storm-blobstore-migration/pom.xml
+++ b/external/storm-blobstore-migration/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-cassandra/pom.xml b/external/storm-cassandra/pom.xml
index 495f9d5..2487d3f 100644
--- a/external/storm-cassandra/pom.xml
+++ b/external/storm-cassandra/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-elasticsearch/pom.xml b/external/storm-elasticsearch/pom.xml
index 9785772..20f4ad9 100644
--- a/external/storm-elasticsearch/pom.xml
+++ b/external/storm-elasticsearch/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-eventhubs/pom.xml b/external/storm-eventhubs/pom.xml
index 8dec463..ea77712 100755
--- a/external/storm-eventhubs/pom.xml
+++ b/external/storm-eventhubs/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     
diff --git a/external/storm-hbase/pom.xml b/external/storm-hbase/pom.xml
index 6620f6a..6d9c92e 100644
--- a/external/storm-hbase/pom.xml
+++ b/external/storm-hbase/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-hdfs-blobstore/pom.xml b/external/storm-hdfs-blobstore/pom.xml
index ccc69a6..fa6c9f9 100644
--- a/external/storm-hdfs-blobstore/pom.xml
+++ b/external/storm-hdfs-blobstore/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-hdfs/pom.xml b/external/storm-hdfs/pom.xml
index a19d821..ab0b7b3 100644
--- a/external/storm-hdfs/pom.xml
+++ b/external/storm-hdfs/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-hive/pom.xml b/external/storm-hive/pom.xml
index 4ca6f0b..83c80c8 100644
--- a/external/storm-hive/pom.xml
+++ b/external/storm-hive/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <artifactId>storm</artifactId>
     <groupId>org.apache.storm</groupId>
-    <version>2.0.1-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/external/storm-jdbc/pom.xml b/external/storm-jdbc/pom.xml
index 2b31123..712090e 100644
--- a/external/storm-jdbc/pom.xml
+++ b/external/storm-jdbc/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-jms/pom.xml b/external/storm-jms/pom.xml
index ceb4efb..598e643 100644
--- a/external/storm-jms/pom.xml
+++ b/external/storm-jms/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-kafka-client/pom.xml b/external/storm-kafka-client/pom.xml
index f5d024d..1953786 100644
--- a/external/storm-kafka-client/pom.xml
+++ b/external/storm-kafka-client/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-kafka-migration/pom.xml b/external/storm-kafka-migration/pom.xml
index 71b7e0b..ef1c549 100644
--- a/external/storm-kafka-migration/pom.xml
+++ b/external/storm-kafka-migration/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-kafka-monitor/pom.xml b/external/storm-kafka-monitor/pom.xml
index cd18c76..eff1633 100644
--- a/external/storm-kafka-monitor/pom.xml
+++ b/external/storm-kafka-monitor/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/external/storm-kinesis/pom.xml b/external/storm-kinesis/pom.xml
index 39c89f1..59d08e5 100644
--- a/external/storm-kinesis/pom.xml
+++ b/external/storm-kinesis/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/external/storm-metrics/pom.xml b/external/storm-metrics/pom.xml
index 5cb3ec3..b161b85 100644
--- a/external/storm-metrics/pom.xml
+++ b/external/storm-metrics/pom.xml
@@ -20,7 +20,7 @@
   <parent>
       <artifactId>storm</artifactId>
       <groupId>org.apache.storm</groupId>
-      <version>2.0.1-SNAPSHOT</version>
+      <version>2.2.0-SNAPSHOT</version>
       <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/external/storm-mongodb/pom.xml b/external/storm-mongodb/pom.xml
index e8ef9c7..bf1082f 100644
--- a/external/storm-mongodb/pom.xml
+++ b/external/storm-mongodb/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-mqtt/pom.xml b/external/storm-mqtt/pom.xml
index ad9ffcf..6a7e426 100644
--- a/external/storm-mqtt/pom.xml
+++ b/external/storm-mqtt/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>storm</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     
diff --git a/external/storm-opentsdb/pom.xml b/external/storm-opentsdb/pom.xml
index dd6eca0..abe962c 100644
--- a/external/storm-opentsdb/pom.xml
+++ b/external/storm-opentsdb/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-pmml/pom.xml b/external/storm-pmml/pom.xml
index 0a834ff..0cbbedb 100644
--- a/external/storm-pmml/pom.xml
+++ b/external/storm-pmml/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/external/storm-redis/pom.xml b/external/storm-redis/pom.xml
index 1938d46..cf0ca8d 100644
--- a/external/storm-redis/pom.xml
+++ b/external/storm-redis/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-rocketmq/pom.xml b/external/storm-rocketmq/pom.xml
index c981c7a..4874208 100644
--- a/external/storm-rocketmq/pom.xml
+++ b/external/storm-rocketmq/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/external/storm-solr/pom.xml b/external/storm-solr/pom.xml
index 5deee1c..347df6d 100644
--- a/external/storm-solr/pom.xml
+++ b/external/storm-solr/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/flux/flux-core/pom.xml b/flux/flux-core/pom.xml
index 33b61c8..8b3f893 100644
--- a/flux/flux-core/pom.xml
+++ b/flux/flux-core/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>flux</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/flux/flux-examples/pom.xml b/flux/flux-examples/pom.xml
index 2b7741a..1b46d31 100644
--- a/flux/flux-examples/pom.xml
+++ b/flux/flux-examples/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>flux</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/flux/flux-wrappers/pom.xml b/flux/flux-wrappers/pom.xml
index d3131f7..9fd4456 100644
--- a/flux/flux-wrappers/pom.xml
+++ b/flux/flux-wrappers/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>flux</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/flux/pom.xml b/flux/pom.xml
index 99f1ce1..638a086 100644
--- a/flux/pom.xml
+++ b/flux/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/integration-test/pom.xml b/integration-test/pom.xml
index e92fc97..9dbe752 100755
--- a/integration-test/pom.xml
+++ b/integration-test/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/pom.xml b/pom.xml
index 18ad44c..21d1196 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
 
     <groupId>org.apache.storm</groupId>
     <artifactId>storm</artifactId>
-    <version>2.0.1-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>Storm</name>
     <description>Distributed and fault-tolerant realtime computation</description>
@@ -240,10 +240,9 @@
     </developers>
 
     <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>v2.0.0</tag>
-        <url>https://git-wip-us.apache.org/repos/asf/storm</url>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/storm.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/storm.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf/storm</url>
     </scm>
 
     <issueManagement>
@@ -254,8 +253,11 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <test.extra.args>-Djava.net.preferIPv4Stack=true</test.extra.args>
+        <!-- license-maven-plugin that needs to be overridable from command line -->
         <license.skipAggregateAddThirdParty>true</license.skipAggregateAddThirdParty>
         <license.skipAggregateDownloadLicenses>true</license.skipAggregateDownloadLicenses>
+        <license.thirdPartyFilename>DEPENDENCY-LICENSES</license.thirdPartyFilename>
+        <license.outputDirectory>${project.basedir}</license.outputDirectory>
 
         <!-- dependency versions -->
         <clojure.version>1.10.0</clojure.version>
@@ -1292,6 +1294,101 @@
                     <artifactId>exec-maven-plugin</artifactId>
                     <version>1.6.0</version>
                 </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>license-maven-plugin</artifactId>
+                    <version>2.0.0</version>
+                    <configuration>
+                        <useMissingFile>true</useMissingFile>
+                        <failOnMissing>true</failOnMissing>
+                        <includeTransitiveDependencies>true</includeTransitiveDependencies>
+                        <fileTemplate>/org/codehaus/mojo/license/third-party-file-groupByMultiLicense.ftl</fileTemplate>
+                        <excludedScopes>system,test</excludedScopes>
+                        <excludedGroups>${project.groupId}</excludedGroups>
+                        <licenseMerges>
+                            <licenseMerge>
+                                Apache License, Version 2.0 |
+                                Apache License, version 2.0 |
+                                Apache License Version 2 |
+                                Apache License Version 2.0 |
+                                Apache License version 2.0 |
+                                Apache 2 |
+                                Apache 2.0 |
+                                Apache License, 2.0 |
+                                Apache License 2 |
+                                Apache License 2.0 |
+                                Apache Public License 2.0 |
+                                Apache Software License - Version 2.0 |
+                                Apache v2 |
+                                ASL, version 2 |
+                                The Apache License, Version 2.0 |
+                                The Apache Software License, Version 2.0
+                            </licenseMerge>
+                            <licenseMerge>
+                                Apache License | 
+                                Apache Software Licenses
+                            </licenseMerge>
+                            <licenseMerge>
+                                BSD License |
+                                BSD license |
+                                BSD |
+                                The BSD License
+                            </licenseMerge>
+                            <licenseMerge>
+                                BSD 3-Clause License |
+                                BSD 3-Clause |
+                                BSD 3-clause |
+                                The BSD 3-Clause License |
+                                New BSD License |
+                                New BSD license
+                            </licenseMerge>
+                            <licenseMerge>
+                                Common Development and Distribution License (CDDL) v1.0 |
+                                COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 |
+                                CDDL 1.0
+                            </licenseMerge>
+                            <licenseMerge>
+                                Common Development and Distribution License (CDDL) v1.1 | 
+                                COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.1 |
+                                CDDL 1.1 |
+                                Common Development and Distribution License (CDDL), Version 1.1
+                            </licenseMerge>
+                            <licenseMerge>
+                                Common Development and Distribution License | 
+                                <!-- Multilicense, choosing CDDL -->
+                                CDDL+GPL |
+                                CDDL+GPL License |
+                                CDDL + GPLv2 with classpath exception
+                            </licenseMerge>
+                            <licenseMerge>
+                                Eclipse Public License, Version 1.0 |
+                                Eclipse Public License 1.0 |
+                                Eclipse Public License - v 1.0
+                            </licenseMerge>
+                            <licenseMerge>
+                                MIT License |
+                                The MIT License |
+                                MIT license |
+                                MIT X11 License |
+                                MIT
+                            </licenseMerge>
+                            <licenseMerge>
+                                The GNU General Public License (GPL), Version 2, With Classpath Exception |
+                                GPL2 w/ CPE
+                            </licenseMerge>
+                            <licenseMerge>
+                                GNU Lesser General Public License (LGPL), Version 2.1 |
+                                LGPL, version 2.1 |
+                                GNU Lesser General Public License Version 2.1 |
+                                GNU Lesser General Public License, version 2.1
+                            </licenseMerge>
+                            <licenseMerge>
+                                Common Public License Version 1.0 |
+                                Common Public License - v 1.0
+                            </licenseMerge>
+                        </licenseMerges>
+                    </configuration>
+                </plugin>
             </plugins>
         </pluginManagement>
 
@@ -1356,6 +1453,29 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>license-maven-plugin</artifactId>
+                <inherited>false</inherited>
+                <configuration>
+                    <missingFile>${project.basedir}/THIRD-PARTY.properties</missingFile>
+                    <aggregateMissingLicensesFile>${project.basedir}/THIRD-PARTY.properties</aggregateMissingLicensesFile>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>generate-and-check-licenses</id>
+                        <goals>
+                            <goal>aggregate-add-third-party</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>download-licenses</id>
+                        <goals>
+                            <goal>aggregate-download-licenses</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 
diff --git a/sql/pom.xml b/sql/pom.xml
index a3f6178..1c4616e 100644
--- a/sql/pom.xml
+++ b/sql/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/sql/storm-sql-core/pom.xml b/sql/storm-sql-core/pom.xml
index 73636f9..58cc834 100644
--- a/sql/storm-sql-core/pom.xml
+++ b/sql/storm-sql-core/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/sql/storm-sql-external/storm-sql-hdfs/pom.xml b/sql/storm-sql-external/storm-sql-hdfs/pom.xml
index 83d45af..20fa0e5 100644
--- a/sql/storm-sql-external/storm-sql-hdfs/pom.xml
+++ b/sql/storm-sql-external/storm-sql-hdfs/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/sql/storm-sql-external/storm-sql-kafka/pom.xml b/sql/storm-sql-external/storm-sql-kafka/pom.xml
index 10244d7..f531973 100644
--- a/sql/storm-sql-external/storm-sql-kafka/pom.xml
+++ b/sql/storm-sql-external/storm-sql-kafka/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/sql/storm-sql-external/storm-sql-mongodb/pom.xml b/sql/storm-sql-external/storm-sql-mongodb/pom.xml
index 69e5196..9d4ec1f 100644
--- a/sql/storm-sql-external/storm-sql-mongodb/pom.xml
+++ b/sql/storm-sql-external/storm-sql-mongodb/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/sql/storm-sql-external/storm-sql-redis/pom.xml b/sql/storm-sql-external/storm-sql-redis/pom.xml
index fd051cb..a9a488e 100644
--- a/sql/storm-sql-external/storm-sql-redis/pom.xml
+++ b/sql/storm-sql-external/storm-sql-redis/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/sql/storm-sql-runtime/pom.xml b/sql/storm-sql-runtime/pom.xml
index 5d709ba..a1bc661 100644
--- a/sql/storm-sql-runtime/pom.xml
+++ b/sql/storm-sql-runtime/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-buildtools/maven-shade-clojure-transformer/pom.xml b/storm-buildtools/maven-shade-clojure-transformer/pom.xml
index 650ad8f..f10857e 100644
--- a/storm-buildtools/maven-shade-clojure-transformer/pom.xml
+++ b/storm-buildtools/maven-shade-clojure-transformer/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-buildtools/storm-maven-plugins/pom.xml b/storm-buildtools/storm-maven-plugins/pom.xml
index 9a8b946..60e2740 100644
--- a/storm-buildtools/storm-maven-plugins/pom.xml
+++ b/storm-buildtools/storm-maven-plugins/pom.xml
@@ -21,7 +21,7 @@
   <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/storm-buildtools/storm-maven-plugins/src/main/java/org/apache/storm/maven/plugin/versioninfo/VersionInfoMojo.java b/storm-buildtools/storm-maven-plugins/src/main/java/org/apache/storm/maven/plugin/versioninfo/VersionInfoMojo.java
index eb1a3ae..1cbefeb 100644
--- a/storm-buildtools/storm-maven-plugins/src/main/java/org/apache/storm/maven/plugin/versioninfo/VersionInfoMojo.java
+++ b/storm-buildtools/storm-maven-plugins/src/main/java/org/apache/storm/maven/plugin/versioninfo/VersionInfoMojo.java
@@ -194,6 +194,8 @@
                     }
                 }
                 break;
+            case NONE:
+                break;
             default:
                 throw new IllegalArgumentException(String.format("SCM %s is not supported",
                         scm));
@@ -221,6 +223,8 @@
                     }
                 }
                 break;
+            case NONE:
+                break;
             default:
                 throw new IllegalArgumentException(String.format("SCM %s is not supported",
                         scm));
@@ -249,6 +253,8 @@
                     }
                 }
                 break;
+            case NONE:
+                break;
             default:
                 throw new IllegalArgumentException(String.format("SCM %s is not supported",
                         scm));
diff --git a/storm-checkstyle/pom.xml b/storm-checkstyle/pom.xml
index a7d406b..7f2861e 100644
--- a/storm-checkstyle/pom.xml
+++ b/storm-checkstyle/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/storm-client/pom.xml b/storm-client/pom.xml
index 77c2dd9..f70ea20 100644
--- a/storm-client/pom.xml
+++ b/storm-client/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -300,6 +300,28 @@
                             </execution>
                         </executions>
                     </plugin>
+                    <plugin>
+                        <groupId>org.apache.storm</groupId>
+                        <artifactId>storm-maven-plugins</artifactId>
+                        <version>${project.version}</version>
+                        <executions>
+                            <execution>
+                                <id>version-info</id>
+                                <phase>generate-resources</phase>
+                                <goals>
+                                    <goal>version-info</goal>
+                                </goals>
+                                <configuration>
+                                    <source>
+                                        <directory>${basedir}/src/</directory>
+                                        <includes>
+                                            <include>jvm/**/*.java</include>
+                                        </includes>
+                                    </source>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
                 </plugins>
             </build>
         </profile>
diff --git a/storm-client/src/jvm/org/apache/storm/task/ShellBolt.java b/storm-client/src/jvm/org/apache/storm/task/ShellBolt.java
index dfb6383..0fe3efb 100644
--- a/storm-client/src/jvm/org/apache/storm/task/ShellBolt.java
+++ b/storm-client/src/jvm/org/apache/storm/task/ShellBolt.java
@@ -363,8 +363,7 @@
                             handleMetrics(shellMsg);
                             break;
                         default:
-                            throw new IllegalArgumentException(String.format("command %s is not supported",
-                                    command));
+                            break;
                     }
                 } catch (InterruptedException e) {
                     // It's likely that Bolt is shutting down so no need to die.
diff --git a/storm-clojure-test/pom.xml b/storm-clojure-test/pom.xml
index c58ceec..a8ea65d 100644
--- a/storm-clojure-test/pom.xml
+++ b/storm-clojure-test/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>storm-clojure-test</artifactId>
diff --git a/storm-clojure/pom.xml b/storm-clojure/pom.xml
index 89d200b..ab4aefd 100644
--- a/storm-clojure/pom.xml
+++ b/storm-clojure/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>storm-clojure</artifactId>
diff --git a/storm-core/pom.xml b/storm-core/pom.xml
index 71d220f..c4bdbe9 100644
--- a/storm-core/pom.xml
+++ b/storm-core/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/storm-dist/binary/final-package/pom.xml b/storm-dist/binary/final-package/pom.xml
index f006202..934a1c9 100644
--- a/storm-dist/binary/final-package/pom.xml
+++ b/storm-dist/binary/final-package/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apache-storm-bin</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-dist/binary/pom.xml b/storm-dist/binary/pom.xml
index c4d429e..891edd2 100644
--- a/storm-dist/binary/pom.xml
+++ b/storm-dist/binary/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -38,6 +38,8 @@
     <properties>
         <packageTimestamp>${maven.build.timestamp}</packageTimestamp>
         <maven.build.timestamp.format>YYYYMMddHHmm</maven.build.timestamp.format>
+        <license.thirdPartyFilename>THIRD-PARTY.txt</license.thirdPartyFilename>
+        <license.outputDirectory>${project.build.directory}/generated-sources/license</license.outputDirectory>
     </properties>
 
     <modules>
diff --git a/storm-dist/binary/storm-autocreds-bin/pom.xml b/storm-dist/binary/storm-autocreds-bin/pom.xml
index f9e3bec..ca91b53 100644
--- a/storm-dist/binary/storm-autocreds-bin/pom.xml
+++ b/storm-dist/binary/storm-autocreds-bin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>apache-storm-bin</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
     <artifactId>storm-autocreds-bin</artifactId>
     <packaging>pom</packaging>
diff --git a/storm-dist/binary/storm-client-bin/pom.xml b/storm-dist/binary/storm-client-bin/pom.xml
index 1eb118e..58e8379 100644
--- a/storm-dist/binary/storm-client-bin/pom.xml
+++ b/storm-dist/binary/storm-client-bin/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <artifactId>apache-storm-bin</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-dist/binary/storm-kafka-monitor-bin/pom.xml b/storm-dist/binary/storm-kafka-monitor-bin/pom.xml
index 1855762..6efcc04 100644
--- a/storm-dist/binary/storm-kafka-monitor-bin/pom.xml
+++ b/storm-dist/binary/storm-kafka-monitor-bin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>apache-storm-bin</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
     <artifactId>storm-kafka-monitor-bin</artifactId>
     <packaging>pom</packaging>
diff --git a/storm-dist/binary/storm-sql-core-bin/pom.xml b/storm-dist/binary/storm-sql-core-bin/pom.xml
index 3236a01..bad85b9 100644
--- a/storm-dist/binary/storm-sql-core-bin/pom.xml
+++ b/storm-dist/binary/storm-sql-core-bin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>apache-storm-bin</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
     <artifactId>storm-sql-core-bin</artifactId>
     <packaging>pom</packaging>
diff --git a/storm-dist/binary/storm-sql-runtime-bin/pom.xml b/storm-dist/binary/storm-sql-runtime-bin/pom.xml
index f148f67..da663a6 100644
--- a/storm-dist/binary/storm-sql-runtime-bin/pom.xml
+++ b/storm-dist/binary/storm-sql-runtime-bin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>apache-storm-bin</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
     <artifactId>storm-sql-runtime-bin</artifactId>
     <packaging>pom</packaging>
diff --git a/storm-dist/binary/storm-submit-tools-bin/pom.xml b/storm-dist/binary/storm-submit-tools-bin/pom.xml
index 794507a..491291c 100644
--- a/storm-dist/binary/storm-submit-tools-bin/pom.xml
+++ b/storm-dist/binary/storm-submit-tools-bin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.storm</groupId>
         <artifactId>apache-storm-bin</artifactId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
     <artifactId>storm-submit-tools-bin</artifactId>
     <packaging>pom</packaging>
diff --git a/storm-dist/binary/storm-webapp-bin/pom.xml b/storm-dist/binary/storm-webapp-bin/pom.xml
index 6918ca6..a9606f7 100644
--- a/storm-dist/binary/storm-webapp-bin/pom.xml
+++ b/storm-dist/binary/storm-webapp-bin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apache-storm-bin</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-dist/source/pom.xml b/storm-dist/source/pom.xml
index ce6c494..f758914 100644
--- a/storm-dist/source/pom.xml
+++ b/storm-dist/source/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-multilang/javascript/pom.xml b/storm-multilang/javascript/pom.xml
index 005b04a..aac4269 100644
--- a/storm-multilang/javascript/pom.xml
+++ b/storm-multilang/javascript/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-multilang/python/pom.xml b/storm-multilang/python/pom.xml
index 99f5b65..a7aeb1e 100644
--- a/storm-multilang/python/pom.xml
+++ b/storm-multilang/python/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-multilang/ruby/pom.xml b/storm-multilang/ruby/pom.xml
index c2589b6..afe61d0 100644
--- a/storm-multilang/ruby/pom.xml
+++ b/storm-multilang/ruby/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/storm-server/pom.xml b/storm-server/pom.xml
index fa4e39e..a65057d 100644
--- a/storm-server/pom.xml
+++ b/storm-server/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/storm-shaded-deps/pom.xml b/storm-shaded-deps/pom.xml
index 16c4e37..499d520 100644
--- a/storm-shaded-deps/pom.xml
+++ b/storm-shaded-deps/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/storm-submit-tools/pom.xml b/storm-submit-tools/pom.xml
index 3ff57df..64cb195 100644
--- a/storm-submit-tools/pom.xml
+++ b/storm-submit-tools/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/storm-webapp/pom.xml b/storm-webapp/pom.xml
index 8d42589..18ed0c0 100644
--- a/storm-webapp/pom.xml
+++ b/storm-webapp/pom.xml
@@ -21,7 +21,7 @@
 
         <artifactId>storm</artifactId>
         <groupId>org.apache.storm</groupId>
-        <version>2.0.1-SNAPSHOT</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -40,7 +40,7 @@
         <dependency>
             <groupId>org.apache.storm</groupId>
             <artifactId>storm-core</artifactId>
-            <version>2.0.1-SNAPSHOT</version>
+            <version>2.2.0-SNAPSHOT</version>
             <scope>${provided.scope}</scope>
         </dependency>
         <dependency>
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
index 3f4595c..26c6325 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
@@ -526,7 +526,6 @@
     private static final AtomicReference<List<Map<String, String>>> MEMORIZED_VERSIONS = new AtomicReference<>();
     private static final AtomicReference<Map<String, String>> MEMORIZED_FULL_VERSION = new AtomicReference<>();
 
-
     private static Map<String, String> toJsonStruct(IVersionInfo info) {
         Map<String, String> ret = new HashMap<>();
         ret.put("version", info.getVersion());
