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

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

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<supplementalDataModels xmlns="http://maven.apache.org/supplemental-model/1.0.0"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0 http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd">
  <!-- All of the below missing / ambiguous / full text license info verified at dependency source -->
  <!-- Dual licensed dependencies-->
  <supplement>
    <project>
      <groupId>javax.activation</groupId>
      <artifactId>javax.activation-api</artifactId>
      <!-- javax.activation-api is also separately licensed under the GPL version 2 plus the Classpath Exception -->
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://github.com/javaee/activation/blob/master/LICENSE.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>

  <!-- Artifacts missing license info in POM -->
  <supplement>
    <project>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>

      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>

      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils-core</artifactId>

      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <!-- Artifacts with ambiguously named licenses in POM -->
  <supplement>
    <project>
      <groupId>com.github.stephenc.findbugs</groupId>
      <artifactId>findbugs-annotations</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.google.inject</groupId>
      <artifactId>guice</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.google.inject.extensions</groupId>
      <artifactId>guice-servlet</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-http</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.beust</groupId>
      <artifactId>jcommander</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>io.dropwizard.metrics</groupId>
      <artifactId>metrics-ganglia</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>io.dropwizard.metrics</groupId>
      <artifactId>metrics-jvm</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.github.joshelser</groupId>
      <artifactId>dropwizard-metrics-hadoop-metrics2-reporter</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-io</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-jmx</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-servlet</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-util</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-util-ajax</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-webapp</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-xml</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-jsp</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-security</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.orbit</groupId>
      <artifactId>javax.servlet.jsp.jstl</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.orbit</groupId>
      <artifactId>org.eclipse.jdt.core</artifactId>

      <licenses>
        <license>
          <name>Eclipse Public License 1.0</name>
          <url>http://www.eclipse.org/legal/epl-v10.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.toolchain</groupId>
      <artifactId>jetty-schemas</artifactId>
      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.0</name>
          <url>https://glassfish.dev.java.net/public/CDDLv1.0.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.javassist</groupId>
      <artifactId>javassist</artifactId>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.lmax</groupId>
      <artifactId>disruptor</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-configuration</groupId>
      <artifactId>commons-configuration</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-daemon</groupId>
      <artifactId>commons-daemon</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-digester</groupId>
      <artifactId>commons-digester</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-el</groupId>
      <artifactId>commons-el</artifactId>
      <name>Apache Commons El</name>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-net</groupId>
      <artifactId>commons-net</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <!-- Hadoop is needed for versions < 2.7.1 -->
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-annotations</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-auth</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-app</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-common</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-core</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-jobclient</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-shuffle</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-api</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-client</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-common</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-server-common</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <!-- /Hadoop -->
  <supplement>
    <project>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>io.netty</groupId>
      <artifactId>netty-all</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-httpclient</groupId>
      <artifactId>commons-httpclient</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.annotation</groupId>
      <artifactId>javax.annotation-api</artifactId>
      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.0</name>
          <url>https://glassfish.dev.java.net/public/CDDLv1.0.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.0</name>
          <url>https://glassfish.dev.java.net/public/CDDLv1.0.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish</groupId>
      <artifactId>javax.el</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.hk2</groupId>
      <artifactId>hk2-api</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.hk2</groupId>
      <artifactId>hk2-locator</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.hk2</groupId>
      <artifactId>hk2-utils</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.hk2</groupId>
      <artifactId>osgi-resource-locator</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.hk2.external</groupId>
      <artifactId>aopalliance-repackaged</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.hk2.external</groupId>
      <artifactId>javax.inject</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.jersey.bundles.repackaged</groupId>
      <artifactId>jersey-guava</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.jersey.containers</groupId>
      <artifactId>jersey-container-servlet-core</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.jersey.core</groupId>
      <artifactId>jersey-client</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.jersey.core</groupId>
      <artifactId>jersey-common</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.jersey.core</groupId>
      <artifactId>jersey-server</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.jersey.media</groupId>
      <artifactId>jersey-media-jaxb</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.jersey.media</groupId>
      <artifactId>jersey-media-json-jackson1</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.web</groupId>
      <artifactId>javax.servlet.jsp</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.glassfish.web</groupId>
      <artifactId>javax.servlet.jsp.jstl</artifactId>
      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-util</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-sslengine</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.avro</groupId>
      <artifactId>avro</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-compress</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project> <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-csv</artifactId>
      <version>1.0</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>

  <supplement>
    <project>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-math</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-math3</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-client</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-framework</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-recipes</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>   <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-test</artifactId>
      <version>2.7.1</version>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-asn1-api</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-util</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-i18n</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-kerberos-codec</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.htrace</groupId>
      <artifactId>htrace-core</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>   <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>org.apache.htrace</groupId>
      <artifactId>htrace-core4</artifactId>
      <version>4.0.1-incubating</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>

  <supplement>
    <project>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcpkix-jdk15on</artifactId>

      <licenses>
        <!-- bcpkix-jdk15on is licensed under the Bouncy Castle License, which is equivalent to the MIT License -->
        <license>
          <name>MIT License</name>
          <url>http://www.opensource.org/licenses/mit-license.php</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2000 - 2018 The Legion of the Bouncy Castle Inc.
            (https://www.bouncycastle.org)
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-annotations</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-jndi</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-plus</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>javax-websocket-client-impl</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>javax-websocket-server-impl</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-api</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-client</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-common</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-server</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-servlet</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <!-- Used by Hadoop 2.6 -->
  <supplement>
    <project>
      <groupId>org.htrace</groupId>
      <artifactId>htrace-core</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.thrift</groupId>
      <artifactId>libthrift</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>batik-css</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>batik-ext</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.xmlgraphics</groupId>
      <artifactId>batik-util</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-core-asl</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-jaxrs</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-xc</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.xerial.snappy</groupId>
      <artifactId>snappy-java</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>tomcat</groupId>
      <artifactId>jasper-compiler</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>tomcat</groupId>
      <artifactId>jasper-runtime</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>xml-apis</groupId>
      <artifactId>xml-apis</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>xml-apis</groupId>
      <artifactId>xml-apis-ext</artifactId>

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

  <!-- Ambiguous license names in server and not in client -->
  <supplement>
    <project>
      <groupId>net.java.dev.jets3t</groupId>
      <artifactId>jets3t</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-sslengine</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jsp-api-2.1</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.jamesmurty.utils</groupId>
      <artifactId>java-xmlbuilder</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>io.dropwizard.metrics</groupId>
      <artifactId>metrics-core</artifactId>

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

  <supplement>
    <project>
      <groupId>org.codehaus.jettison</groupId>
      <artifactId>jettison</artifactId>

      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
          <comments>
            Copyright 2006 Envoi Solutions LLC
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>   <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>com.codahale.metrics</groupId>
      <artifactId>metrics-core</artifactId>
      <version>3.0.1</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>   <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>com.nimbusds</groupId>
      <artifactId>nimbus-jose-jwt</artifactId>
      <version>3.9</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>  <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>com.squareup.okhttp</groupId>
      <artifactId>okhttp</artifactId>
      <version>2.4.0</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>  <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>com.squareup.okio</groupId>
      <artifactId>okio</artifactId>
      <version>1.4.0</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>   <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>com.twitter</groupId>
      <artifactId>hpack</artifactId>
      <version>0.11.0</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>   <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>net.minidev</groupId>
      <artifactId>json-smart</artifactId>
      <version>1.1.1</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>

  <supplement>
    <project>   <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>de.ruedigermoeller</groupId>
      <artifactId>fst</artifactId>
      <version>2.24</version>
      <!-- versions 2.17+ are ASFv2 though pom says LGPL 2.1 until 2.45+ -->
      <!-- https://github.com/RuedigerMoeller/fast-serialization/blob/master/LICENSE.md -->
      <!-- https://github.com/RuedigerMoeller/fast-serialization/commit/526dd4#diff-600376-->

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

  <supplement>
    <project>   <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>org.objenesis</groupId>
      <artifactId>objenesis</artifactId>
      <version>2.1</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>

  <supplement>
    <project>
      <groupId>xerces</groupId>
      <artifactId>xercesImpl</artifactId>
      <version>2.9.1</version>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>


  <!-- Permissive licenses that need text in LICENSE -->
  <supplement>
    <project>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <name>Protocol Buffer Java API</name>

      <licenses>
        <license>
          <!-- Note that the link is to the BSD 2-Clause, but the text provided
               is the 3-Clause :(
          -->
          <name>New BSD license</name>
          <url>http://www.opensource.org/licenses/bsd-license.php</url>
          <distribution>repo</distribution>
          <comments>
            Copyright 2008, Google Inc.
            All rights reserved.

            Redistribution and use in source and binary forms, with or without
            modification, are permitted provided that the following conditions are
            met:

            * Redistributions of source code must retain the above copyright
            notice, this list of conditions and the following disclaimer.
            * Redistributions in binary form must reproduce the above
            copyright notice, this list of conditions and the following disclaimer
            in the documentation and/or other materials provided with the
            distribution.
            * Neither the name of Google Inc. nor the names of its
            contributors may be used to endorse or promote products derived from
            this software without specific prior written permission.

            THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
            "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
            LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
            A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
            OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
            SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
            LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
            DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
            THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
            (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
            OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

            Code generated by the Protocol Buffer compiler is owned by the owner
            of the input file used when generating it. This code is not
            standalone and requires a support library to be linked with it. This
            support library is itself covered by the above license.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.jcraft</groupId>
      <artifactId>jsch</artifactId>
      <name>JSch</name>

      <licenses>
        <!-- Text is slightly different than the standard 3-Clause, and
             they expressly linked to this version in their pom, so use
             as-is instead of grouping. :(
        -->
        <license>
          <name>BSD license</name>
          <url>http://www.jcraft.com/jsch/LICENSE.txt</url>
          <comments>
            Copyright (c) 2002-2015 Atsuhiko Yamanaka, JCraft,Inc.
            All rights reserved.

            Redistribution and use in source and binary forms, with or without
            modification, are permitted provided that the following conditions are met:

            1. Redistributions of source code must retain the above copyright notice,
            this list of conditions and the following disclaimer.

            2. Redistributions in binary form must reproduce the above copyright
            notice, this list of conditions and the following disclaimer in
            the documentation and/or other materials provided with the distribution.

            3. The names of the authors may not be used to endorse or promote products
            derived from this software without specific prior written permission.

            THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
            INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
            FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
            INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
            INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
            LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
            OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
            LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
            NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
            EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.jline</groupId>
      <artifactId>jline</artifactId>

      <licenses>
        <license>
          <name>BSD license</name>
          <url>http://jline.sourceforge.net/license.html</url>
          <comments>
            Copyright (c) 2002-2006, Marc Prud'hommeaux mwp1@cornell.edu
            All rights reserved.

            Redistribution and use in source and binary forms, with or
            without modification, are permitted provided that the following
            conditions are met:

            Redistributions of source code must retain the above copyright
            notice, this list of conditions and the following disclaimer.

            Redistributions in binary form must reproduce the above copyright
            notice, this list of conditions and the following disclaimer
            in the documentation and/or other materials provided with
            the distribution.

            Neither the name of JLine nor the names of its contributors
            may be used to endorse or promote products derived from this
            software without specific prior written permission.

            THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
            "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
            BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
            AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
            EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
            FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
            OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
            PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
            DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
            AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
            LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
            IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
            OF THE POSSIBILITY OF SUCH DAMAGE.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.thoughtworks.paranamer</groupId>
      <artifactId>paranamer</artifactId>
      <name>ParaNamer Core</name>

      <licenses>
        <license>
          <name>BSD 3-Clause License</name>
          <url>https://github.com/codehaus/paranamer-git/blob/paranamer-2.3/LICENSE.txt</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2006 Paul Hammant &amp; ThoughtWorks Inc
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project> <!-- hadoop.profile=3.0 from hadoop-3.0.0 -->
      <groupId>org.codehaus.woodstox</groupId>
      <artifactId>stax2-api</artifactId>
      <version>3.1.4</version>
      <licenses>
        <license>
          <name>BSD license</name>
          <url>https://opensource.org/licenses/bsd-license.php</url>
          <distribution>repo</distribution>
          <comments>
            Copyright 2010 FasterXML.com
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>

  <supplement>
    <project>
      <groupId>org.jruby.jcodings</groupId>
      <artifactId>jcodings</artifactId>
      <name>JCodings</name>

      <licenses>
        <license>
          <name>MIT License</name>
          <url>http://www.opensource.org/licenses/mit-license.php</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2008-2012 The JCodings Authors
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.jruby.joni</groupId>
      <artifactId>joni</artifactId>
      <name>Joni</name>

      <licenses>
        <license>
          <name>MIT License</name>
          <url>http://www.opensource.org/licenses/mit-license.php</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2008-2014 The Joni Authors
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <name>SLF4J API Module</name>

      <licenses>
        <license>
          <name>MIT License</name>
          <url>http://www.opensource.org/licenses/mit-license.php</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2004-2013 QOS.ch
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <name>SLF4J LOG4J-12 Binding</name>

      <licenses>
        <license>
          <name>MIT License</name>
          <url>http://www.opensource.org/licenses/mit-license.php</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2004-2008 QOS.ch
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>xmlenc</groupId>
      <artifactId>xmlenc</artifactId>
      <name>xmlenc Library</name>

      <licenses>
        <license>
          <name>BSD 3-Clause License</name>
          <url>http://www.opensource.org/licenses/bsd-license.php</url>
          <distribution>repo</distribution>
          <comments>
            Copyright 2003-2005, Ernst de Haan &lt;wfe.dehaan@gmail.com&gt;
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.tukaani</groupId>
      <artifactId>xz</artifactId>

      <licenses>
        <license>
          <name>Public Domain</name>
          <distribution>repo</distribution>
          <comments>
            Licensing of XZ for Java
            ========================

            All the files in this package have been written by Lasse Collin
            and/or Igor Pavlov. All these files have been put into the
            public domain. You can do whatever you want with these files.

            This software is provided "as is", without any warranty.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <!-- permissive licenses in server and not in client -->
  <supplement>
    <project>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <name>AOP alliance</name>

      <licenses>
        <license>
          <name>Public Domain</name>
          <distribution>repo</distribution>
          <comments>
            LICENCE: all the source code provided by AOP Alliance is Public Domain.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>asm</groupId>
      <artifactId>asm</artifactId>
      <name>ASM: a very small and fast Java bytecode manipulation framework</name>

      <licenses>
        <license>
          <name>BSD 3-Clause License</name>
          <url>
            http://cvs.forge.objectweb.org/cgi-bin/viewcvs.cgi/*checkout*/asm/asm/LICENSE.txt?rev=1.3&amp;only_with_tag=ASM_3_1_MVN
          </url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2000-2005 INRIA, France Telecom
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.fusesource.leveldbjni</groupId>
      <artifactId>leveldbjni-all</artifactId>

      <licenses>
        <license>
          <!-- Original license text substituted "FuseSource Corp." for "the copyright holder"
               in the original 3-Clause license. Since their pom linked directly to the standard
               3-Clause text, we're grouping them with the others.
          -->
          <name>BSD 3-Clause License</name>
          <url>http://www.opensource.org/licenses/BSD-3-Clause</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2011 FuseSource Corp. All rights reserved.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <!-- Category B licenses that need text in LICENSE and a NOTICE -->
  <supplement>
    <project>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <name>JavaServer Pages(TM) API</name>
      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.1</name>
          <url>https://javaee.github.io/javaee-jsp-api/LICENSE</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.activation</groupId>
      <artifactId>activation</artifactId>
      <name>JavaBeans Activation Framework (JAF)</name>
      <url>http://java.sun.com/products/javabeans/jaf/index.jsp</url>

      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.0</name>
          <url>https://glassfish.dev.java.net/public/CDDLv1.0.html</url>
          <distribution>repo</distribution>
          <comments>
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <name>JAXB API bundle for GlassFish V3</name>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2010 Oracle and/or its affiliates.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.xml.stream</groupId>
      <artifactId>stax-api</artifactId>
      <name>Streaming API For XML</name>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://javaee.github.io/javaee-jsp-api/LICENSE</url>
          <distribution>repo</distribution>
        </license>
        <license>
          <name>GPL</name>
          <url>https://www.gnu.org/licenses/gpl-3.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <name>JUnit</name>
      <url>http://junit.org/</url>

      <licenses>
        <license>
          <name>Eclipse Public License 1.0</name>
          <url>http://www.eclipse.org/legal/epl-v10.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2002-2017 JUnit. All Rights Reserved.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <!-- Category B in server and not in client -->
  <supplement>
    <project>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-client</artifactId>
      <!-- The Jersey 1.9 sources are only available at the old svn server. -->
      <url>https://java.net/projects/jersey/</url>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2010-2011 Oracle and/or its affiliates.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-core</artifactId>
      <url>https://java.net/projects/jersey/</url>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2010-2011 Oracle and/or its affiliates.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-json</artifactId>
      <url>https://java.net/projects/jersey/</url>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2010-2011 Oracle and/or its affiliates.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-server</artifactId>
      <url>https://java.net/projects/jersey/</url>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2010-2011 Oracle and/or its affiliates.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.sun.jersey.contribs</groupId>
      <artifactId>jersey-guice</artifactId>
      <url>https://java.net/projects/jersey/</url>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2010-2011 Oracle and/or its affiliates.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.sun.xml.bind</groupId>
      <artifactId>jaxb-impl</artifactId>
      <name>JAXB Reference Implementation for GlassFish</name>
      <url>https://jaxb.java.net/</url>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2010 Oracle and/or its affiliates.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <name>JAXB API bundle for GlassFish V3</name>
      <url>https://jaxb.java.net/</url>

      <licenses>
        <license>
          <name>CDDL 1.1</name>
          <url>https://glassfish.java.net/public/CDDL+GPL_1_1.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2010 Oracle and/or its affiliates.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <!-- Found by seraching through the servlet-api-source-2.5.jar  -->
    <project>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <name>Java Servlet API v2.5</name>
      <url>http://search.maven.org/#artifactdetails%7Cjavax.servlet%7Cservlet-api%7C2.5%7Cjar</url>

      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.0</name>
          <url>https://glassfish.dev.java.net/public/CDDLv1.0.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright 1999-2005 Sun Microsystems, Inc.
            Portions copyright 2002 International Business Machines Corporation
            Portions copyright Apache Software Foundation
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>servlet-api-2.5</artifactId>
      <name>Servlet Specification 2.5 API</name>
      <url>http://www.eclipse.org/jetty/</url>

      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.0</name>
          <url>https://glassfish.dev.java.net/public/CDDLv1.0.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright 1999-2005 Sun Microsystems, Inc.
            Portions copyright 2002 International Business Machines Corporation
            Portions copyright Apache Software Foundation
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jsp-2.1</artifactId>
      <name>JSP2.1 Jasper implementation from Glassfish</name>
      <url>http://www.eclipse.org/jetty/</url>

      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.0</name>
          <url>https://glassfish.dev.java.net/public/CDDLv1.0.html</url>
          <distribution>repo</distribution>
          <!-- Taken from Jetty notice -->
          <comments>
            Copyright 2005 Sun Microsystems, Inc. and portions Copyright Apache Software Foundation.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.ws.rs</groupId>
      <artifactId>jsr311-api</artifactId>
      <licenses>
        <license>
          <name>Common Development and Distribution License (CDDL) v1.0</name>
          <url>http://www.opensource.org/licenses/cddl1.php</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.jamon</groupId>
      <artifactId>jamon-runtime</artifactId>
      <name>Jamon runtime support classes</name>
      <url>http://www.jamon.org/</url>

      <licenses>
        <license>
          <url>http://www.mozilla.org/MPL/2.0</url>
          <name>Mozilla Public License Version 2.0</name>
          <distribution>repo</distribution>
          <comments>
            Mozilla Public License Version 2.0
            ==================================

            1. Definitions
            --------------

            1.1. "Contributor"
            means each individual or legal entity that creates, contributes to
            the creation of, or owns Covered Software.

            1.2. "Contributor Version"
            means the combination of the Contributions of others (if any) used
            by a Contributor and that particular Contributor's Contribution.

            1.3. "Contribution"
            means Covered Software of a particular Contributor.

            1.4. "Covered Software"
            means Source Code Form to which the initial Contributor has attached
            the notice in Exhibit A, the Executable Form of such Source Code
            Form, and Modifications of such Source Code Form, in each case
            including portions thereof.

            1.5. "Incompatible With Secondary Licenses"
            means

            (a) that the initial Contributor has attached the notice described
            in Exhibit B to the Covered Software; or

            (b) that the Covered Software was made available under the terms of
            version 1.1 or earlier of the License, but not also under the
            terms of a Secondary License.

            1.6. "Executable Form"
            means any form of the work other than Source Code Form.

            1.7. "Larger Work"
            means a work that combines Covered Software with other material, in
            a separate file or files, that is not Covered Software.

            1.8. "License"
            means this document.

            1.9. "Licensable"
            means having the right to grant, to the maximum extent possible,
            whether at the time of the initial grant or subsequently, any and
            all of the rights conveyed by this License.

            1.10. "Modifications"
            means any of the following:

            (a) any file in Source Code Form that results from an addition to,
            deletion from, or modification of the contents of Covered
            Software; or

            (b) any new file in Source Code Form that contains any Covered
            Software.

            1.11. "Patent Claims" of a Contributor
            means any patent claim(s), including without limitation, method,
            process, and apparatus claims, in any patent Licensable by such
            Contributor that would be infringed, but for the grant of the
            License, by the making, using, selling, offering for sale, having
            made, import, or transfer of either its Contributions or its
            Contributor Version.

            1.12. "Secondary License"
            means either the GNU General Public License, Version 2.0, the GNU
            Lesser General Public License, Version 2.1, the GNU Affero General
            Public License, Version 3.0, or any later versions of those
            licenses.

            1.13. "Source Code Form"
            means the form of the work preferred for making modifications.

            1.14. "You" (or "Your")
            means an individual or a legal entity exercising rights under this
            License. For legal entities, "You" includes any entity that
            controls, is controlled by, or is under common control with You. For
            purposes of this definition, "control" means (a) the power, direct
            or indirect, to cause the direction or management of such entity,
            whether by contract or otherwise, or (b) ownership of more than
            fifty percent (50%) of the outstanding shares or beneficial
            ownership of such entity.

            2. License Grants and Conditions
            --------------------------------

            2.1. Grants

            Each Contributor hereby grants You a world-wide, royalty-free,
            non-exclusive license:

            (a) under intellectual property rights (other than patent or trademark)
            Licensable by such Contributor to use, reproduce, make available,
            modify, display, perform, distribute, and otherwise exploit its
            Contributions, either on an unmodified basis, with Modifications, or
            as part of a Larger Work; and

            (b) under Patent Claims of such Contributor to make, use, sell, offer
            for sale, have made, import, and otherwise transfer either its
            Contributions or its Contributor Version.

            2.2. Effective Date

            The licenses granted in Section 2.1 with respect to any Contribution
            become effective for each Contribution on the date the Contributor first
            distributes such Contribution.

            2.3. Limitations on Grant Scope

            The licenses granted in this Section 2 are the only rights granted under
            this License. No additional rights or licenses will be implied from the
            distribution or licensing of Covered Software under this License.
            Notwithstanding Section 2.1(b) above, no patent license is granted by a
            Contributor:

            (a) for any code that a Contributor has removed from Covered Software;
            or

            (b) for infringements caused by: (i) Your and any other third party's
            modifications of Covered Software, or (ii) the combination of its
            Contributions with other software (except as part of its Contributor
            Version); or

            (c) under Patent Claims infringed by Covered Software in the absence of
            its Contributions.

            This License does not grant any rights in the trademarks, service marks,
            or logos of any Contributor (except as may be necessary to comply with
            the notice requirements in Section 3.4).

            2.4. Subsequent Licenses

            No Contributor makes additional grants as a result of Your choice to
            distribute the Covered Software under a subsequent version of this
            License (see Section 10.2) or under the terms of a Secondary License (if
            permitted under the terms of Section 3.3).

            2.5. Representation

            Each Contributor represents that the Contributor believes its
            Contributions are its original creation(s) or it has sufficient rights
            to grant the rights to its Contributions conveyed by this License.

            2.6. Fair Use

            This License is not intended to limit any rights You have under
            applicable copyright doctrines of fair use, fair dealing, or other
            equivalents.

            2.7. Conditions

            Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
            in Section 2.1.

            3. Responsibilities
            -------------------

            3.1. Distribution of Source Form

            All distribution of Covered Software in Source Code Form, including any
            Modifications that You create or to which You contribute, must be under
            the terms of this License. You must inform recipients that the Source
            Code Form of the Covered Software is governed by the terms of this
            License, and how they can obtain a copy of this License. You may not
            attempt to alter or restrict the recipients' rights in the Source Code
            Form.

            3.2. Distribution of Executable Form

            If You distribute Covered Software in Executable Form then:

            (a) such Covered Software must also be made available in Source Code
            Form, as described in Section 3.1, and You must inform recipients of
            the Executable Form how they can obtain a copy of such Source Code
            Form by reasonable means in a timely manner, at a charge no more
            than the cost of distribution to the recipient; and

            (b) You may distribute such Executable Form under the terms of this
            License, or sublicense it under different terms, provided that the
            license for the Executable Form does not attempt to limit or alter
            the recipients' rights in the Source Code Form under this License.

            3.3. Distribution of a Larger Work

            You may create and distribute a Larger Work under terms of Your choice,
            provided that You also comply with the requirements of this License for
            the Covered Software. If the Larger Work is a combination of Covered
            Software with a work governed by one or more Secondary Licenses, and the
            Covered Software is not Incompatible With Secondary Licenses, this
            License permits You to additionally distribute such Covered Software
            under the terms of such Secondary License(s), so that the recipient of
            the Larger Work may, at their option, further distribute the Covered
            Software under the terms of either this License or such Secondary
            License(s).

            3.4. Notices

            You may not remove or alter the substance of any license notices
            (including copyright notices, patent notices, disclaimers of warranty,
            or limitations of liability) contained within the Source Code Form of
            the Covered Software, except that You may alter any license notices to
            the extent required to remedy known factual inaccuracies.

            3.5. Application of Additional Terms

            You may choose to offer, and to charge a fee for, warranty, support,
            indemnity or liability obligations to one or more recipients of Covered
            Software. However, You may do so only on Your own behalf, and not on
            behalf of any Contributor. You must make it absolutely clear that any
            such warranty, support, indemnity, or liability obligation is offered by
            You alone, and You hereby agree to indemnify every Contributor for any
            liability incurred by such Contributor as a result of warranty, support,
            indemnity or liability terms You offer. You may include additional
            disclaimers of warranty and limitations of liability specific to any
            jurisdiction.

            4. Inability to Comply Due to Statute or Regulation
            ---------------------------------------------------

            If it is impossible for You to comply with any of the terms of this
            License with respect to some or all of the Covered Software due to
            statute, judicial order, or regulation then You must: (a) comply with
            the terms of this License to the maximum extent possible; and (b)
            describe the limitations and the code they affect. Such description must
            be placed in a text file included with all distributions of the Covered
            Software under this License. Except to the extent prohibited by statute
            or regulation, such description must be sufficiently detailed for a
            recipient of ordinary skill to be able to understand it.

            5. Termination
            --------------

            5.1. The rights granted under this License will terminate automatically
            if You fail to comply with any of its terms. However, if You become
            compliant, then the rights granted under this License from a particular
            Contributor are reinstated (a) provisionally, unless and until such
            Contributor explicitly and finally terminates Your grants, and (b) on an
            ongoing basis, if such Contributor fails to notify You of the
            non-compliance by some reasonable means prior to 60 days after You have
            come back into compliance. Moreover, Your grants from a particular
            Contributor are reinstated on an ongoing basis if such Contributor
            notifies You of the non-compliance by some reasonable means, this is the
            first time You have received notice of non-compliance with this License
            from such Contributor, and You become compliant prior to 30 days after
            Your receipt of the notice.

            5.2. If You initiate litigation against any entity by asserting a patent
            infringement claim (excluding declaratory judgment actions,
            counter-claims, and cross-claims) alleging that a Contributor Version
            directly or indirectly infringes any patent, then the rights granted to
            You by any and all Contributors for the Covered Software under Section
            2.1 of this License shall terminate.

            5.3. In the event of termination under Sections 5.1 or 5.2 above, all
            end user license agreements (excluding distributors and resellers) which
            have been validly granted by You or Your distributors under this License
            prior to termination shall survive termination.

            ************************************************************************
            * *
            * 6. Disclaimer of Warranty *
            * ------------------------- *
            * *
            * Covered Software is provided under this License on an "as is" *
            * basis, without warranty of any kind, either expressed, implied, or *
            * statutory, including, without limitation, warranties that the *
            * Covered Software is free of defects, merchantable, fit for a *
            * particular purpose or non-infringing. The entire risk as to the *
            * quality and performance of the Covered Software is with You. *
            * Should any Covered Software prove defective in any respect, You *
            * (not any Contributor) assume the cost of any necessary servicing, *
            * repair, or correction. This disclaimer of warranty constitutes an *
            * essential part of this License. No use of any Covered Software is *
            * authorized under this License except under this disclaimer. *
            * *
            ************************************************************************

            ************************************************************************
            * *
            * 7. Limitation of Liability *
            * -------------------------- *
            * *
            * Under no circumstances and under no legal theory, whether tort *
            * (including negligence), contract, or otherwise, shall any *
            * Contributor, or anyone who distributes Covered Software as *
            * permitted above, be liable to You for any direct, indirect, *
            * special, incidental, or consequential damages of any character *
            * including, without limitation, damages for lost profits, loss of *
            * goodwill, work stoppage, computer failure or malfunction, or any *
            * and all other commercial damages or losses, even if such party *
            * shall have been informed of the possibility of such damages. This *
            * limitation of liability shall not apply to liability for death or *
            * personal injury resulting from such party's negligence to the *
            * extent applicable law prohibits such limitation. Some *
            * jurisdictions do not allow the exclusion or limitation of *
            * incidental or consequential damages, so this exclusion and *
            * limitation may not apply to You. *
            * *
            ************************************************************************

            8. Litigation
            -------------

            Any litigation relating to this License may be brought only in the
            courts of a jurisdiction where the defendant maintains its principal
            place of business and such litigation shall be governed by laws of that
            jurisdiction, without reference to its conflict-of-law provisions.
            Nothing in this Section shall prevent a party's ability to bring
            cross-claims or counter-claims.

            9. Miscellaneous
            ----------------

            This License represents the complete agreement concerning the subject
            matter hereof. If any provision of this License is held to be
            unenforceable, such provision shall be reformed only to the extent
            necessary to make it enforceable. Any law or regulation which provides
            that the language of a contract shall be construed against the drafter
            shall not be used to construe this License against a Contributor.

            10. Versions of the License
            ---------------------------

            10.1. New Versions

            Mozilla Foundation is the license steward. Except as provided in Section
            10.3, no one other than the license steward has the right to modify or
            publish new versions of this License. Each version will be given a
            distinguishing version number.

            10.2. Effect of New Versions

            You may distribute the Covered Software under the terms of the version
            of the License under which You originally received the Covered Software,
            or under the terms of any subsequent version published by the license
            steward.

            10.3. Modified Versions

            If you create software not governed by this License, and you want to
            create a new license for such software, you may create and use a
            modified version of this License if you rename the license and remove
            any references to the name of the license steward (except to note that
            such modified license differs from this License).

            10.4. Distributing Source Code Form that is Incompatible With Secondary
            Licenses

            If You choose to distribute Source Code Form that is Incompatible With
            Secondary Licenses under the terms of this version of the License, the
            notice described in Exhibit B of this License must be attached.

            Exhibit A - Source Code Form License Notice
            -------------------------------------------

            This Source Code Form is subject to the terms of the Mozilla Public
            License, v. 2.0. If a copy of the MPL was not distributed with this
            file, You can obtain one at http://mozilla.org/MPL/2.0/.

            If it is not possible or desirable to put the notice in a particular
            file, then You may include the notice in a location (such as a LICENSE
            file in a relevant directory) where a recipient would be likely to look
            for such a notice.

            You may add additional accurate notices of copyright ownership.

            Exhibit B - "Incompatible With Secondary Licenses" Notice
            ---------------------------------------------------------

            This Source Code Form is "Incompatible With Secondary Licenses", as
            defined by the Mozilla Public License, v. 2.0.
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <!-- Category B in assembly but not server/client -->
  <supplement>
    <project>
      <groupId>org.jruby</groupId>
      <artifactId>jruby-complete</artifactId>
      <name>JRuby Complete</name>
      <url>http://www.jruby.org/</url>

      <licenses>
        <license>
          <name>Eclipse Public License 1.0</name>
          <url>http://www.eclipse.org/legal/epl-v10.html</url>
          <distribution>repo</distribution>
          <comments>
            Copyright (c) 2007-2017 The JRuby project
          </comments>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>xalan</groupId>
      <artifactId>xalan</artifactId>

      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>Apache License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>

  <supplement>
    <project>
      <groupId>net.jcip</groupId>
      <artifactId>jcip-annotations</artifactId>
      <version>1.0</version>
      <organization>
        <name>Brian Goetz and Tim Peierls</name>
        <url>http://www.jcip.net</url>
      </organization>
      <licenses>
        <license>
          <name>Creative Commons Attribution License, Version 2.5</name>
          <url>http://creativecommons.org/licenses/by/2.5</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.google.re2j</groupId>
      <artifactId>re2j</artifactId>
      <version>1.0</version>

      <organization>
        <name>The Go Authors</name>
        <url>https://github.com/google/re2j</url>
      </organization>
      <licenses>
        <license>
          <name>BSD license</name> <!-- the Go license is BDS 3 clause verbatim -->
          <url>https://github.com/google/re2j/blob/master/LICENSE</url>
          <distribution>repo</distribution>
        </license>
      </licenses>
    </project>
  </supplement>
</supplementalDataModels>
