<?xml version="1.0" encoding="UTF-8"?>
<supplementalDataModels>
  <supplement>
    <project>
      <groupId>com.sun.xml.bind</groupId>
      <artifactId>jaxb-impl</artifactId>
      <name>Sun JAXB Reference Implementation Runtime</name>
      <organization>
        <name>Sun Microsystems</name>
        <url>http://www.sun.com/</url>
      </organization>
      <licenses>
        <license>
          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
          <url>http://www.sun.com/cddl/cddl.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.sun.xml.bind</groupId>
      <artifactId>jaxb-xjc</artifactId>
      <name>Sun JAXB Reference Implementation Tools</name>
      <organization>
        <name>Sun Microsystems</name>
        <url>http://www.sun.com/</url>
      </organization>
      <licenses>
        <license>
          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
          <url>http://www.sun.com/cddl/cddl.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.sun.xml.messaging.saaj</groupId>
      <artifactId>saaj-impl</artifactId>
      <name>Sun SAAJ Reference Implementation</name>
      <organization>
        <name>Sun Microsystems</name>
        <url>http://www.sun.com/</url>
      </organization>
      <licenses>
        <license>
          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
          <url>http://www.sun.com/cddl/cddl.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.xml.soap</groupId>
      <artifactId>saaj-api</artifactId>
      <name>Sun SAAJ API</name>
      <organization>
        <name>Sun Microsystems</name>
        <url>http://www.sun.com/</url>
      </organization>
      <licenses>
        <license>
          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
          <url>http://www.sun.com/cddl/cddl.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.neethi</groupId>
      <artifactId>neethi</artifactId>
      <name>Neethi</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.xml.ws</groupId>
      <artifactId>jaxws-api</artifactId>
      <name>Java API for XML-Based Web Services (JAX-WS API)</name>
      <organization>
        <name>Sun Microsystems</name>
        <url>http://www.sun.com/</url>
      </organization>
      <licenses>
        <license>
          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
          <url>http://www.sun.com/cddl/cddl.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <name>Java Architecture for XML Binding (JAXB API)</name>
      <organization>
        <name>Sun Microsystems</name>
        <url>http://www.sun.com/</url>
      </organization>
      <licenses>
        <license>
          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
          <url>http://www.sun.com/cddl/cddl.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>javax.xml</groupId>
      <artifactId>jaxb-api</artifactId>
      <name>Java Architecture for XML Binding (JAXB API)</name>
      <organization>
        <name>Sun Microsystems</name>
        <url>http://www.sun.com/</url>
      </organization>
      <licenses>
        <license>
          <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
          <url>http://www.sun.com/cddl/cddl.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>xalan</groupId>
      <artifactId>xalan</artifactId>
      <name>Apache Xalan-Java</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>net.java.dev.stax-utils</groupId>
      <artifactId>stax-utils</artifactId>
      <name>StAX Utilities</name>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>wss4j</groupId>
      <artifactId>wss4j</artifactId>
      <name>Apache WSS4J</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>jdom</groupId>
      <artifactId>jdom</artifactId>
      <name>JDOM</name>
      <organization>
        <name>jdom.org</name>
        <url>http://www.jdom.org</url>
      </organization>
      <licenses>
        <license>
          <name>Modified Apache Software License</name>
          <url>licenses/jdom.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>xml-security</groupId>
      <artifactId>xmlsec</artifactId>
      <name>XML Security</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>xml-apis</groupId>
      <artifactId>xml-apis</artifactId>
      <name>XML APIs</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>bouncycastle</groupId>
      <artifactId>bcprov-jdk14</artifactId>
      <name>Bouncy Castle Crypto APIs for Java</name>
      <organization>
        <name>The Legion of the Bouncy Castle</name>
        <url>http://www.bouncycastle.org</url>
      </organization>
      <licenses>
        <license>
          <name>Bouncy Castle License</name>
          <url>http://www.bouncycastle.org/licence.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>ant</groupId>
      <artifactId>ant</artifactId>
      <name>Apache Ant</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>ant</groupId>
      <artifactId>ant-nodeps</artifactId>
      <name>Apache Ant (nodeps)</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.codehaus.jettison</groupId>
      <artifactId>jettison</artifactId>
      <name>Jettison</name>
      <organization>
        <name>Envoi Solutions LLC</name>
        <url>http://www.envoisolutions.com</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://jettison.codehaus.org/License</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <name>Apache Commons Codec</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <name>Apache Commons Collections</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-jexl</groupId>
      <artifactId>commons-jexl</artifactId>
      <name>Apache Commons JEXL</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <name>Apache Commons Logging</name>
      <url>http://commons.apache.org/logging</url>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging-api</artifactId>
      <name>Apache Commons Logging Api</name>
      <url>http://commons.apache.org/logging</url>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-pool</groupId>
      <artifactId>commons-pool</artifactId>
      <name>Apache Commons Pool</name>
      <url>http://commons.apache.org/pool</url>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-vfs</groupId>
      <artifactId>commons-vfs</artifactId>
      <name>Apache Commons VFS</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <name>Apache Commons Codec</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.aries.blueprint</groupId>
      <artifactId>org.apache.aries.blueprint</artifactId>
      <name>Apache Aries Blueprint</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-core</artifactId>
      <name>ActiveMQ :: Core</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
      <name>Camel :: Core</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-classloader</artifactId>
      <name>XBean :: Classloader</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-finder</artifactId>
      <name>XBean :: Classpath Resource Finder</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-naming</artifactId>
      <name>XBean :: Naming</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-reflect</artifactId>
      <name>XBean :: Reflect</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-spring</artifactId>
      <name>XBean :: Spring</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <name>SLF4J API Module</name>
      <organization>
        <name>QOS.ch</name>
        <url>http://www.qos.ch</url>
      </organization>
      <licenses>
        <license>
          <name>MIT style</name>
          <url>http://www.slf4j.org/license.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
      <name>SLF4J JDK14 Binding</name>
      <organization>
        <name>QOS.ch</name>
        <url>http://www.qos.ch</url>
      </organization>
      <licenses>
        <license>
          <name>MIT style</name>
          <url>http://www.slf4j.org/license.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <name>Log4j</name>
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.components</groupId>
      <artifactId>geronimo-connector</artifactId>
      <name>Apache Geronimo TxManager :: Connector</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.components</groupId>
      <artifactId>geronimo-transaction</artifactId>
      <name>Apache Geronimo TxManager :: Transaction</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.springframework.osgi</groupId>
      <artifactId>spring-osgi-core</artifactId>
      <name>Spring OSGi Core</name>
      <url>http://www.springframework.org/osgi/</url>
      <organization>
        <name>Spring Framework</name>
        <url>http://www.springframework.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.springframework.osgi</groupId>
      <artifactId>spring-osgi-extender</artifactId>
      <name>Spring OSGi Extender</name>
      <url>http://www.springframework.org/osgi/</url>
      <organization>
        <name>Spring Framework</name>
        <url>http://www.springframework.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.springframework.osgi</groupId>
      <artifactId>spring-osgi-io</artifactId>
      <name>Spring OSGi IO</name>
      <url>http://www.springframework.org/osgi/</url>
      <organization>
        <name>Spring Framework</name>
        <url>http://www.springframework.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.springframework.osgi</groupId>
      <artifactId>spring-osgi-annotation</artifactId>
      <name>Spring OSGi Annotations</name>
      <url>http://www.springframework.org/osgi/</url>
      <organization>
        <name>Spring Framework</name>
        <url>http://www.springframework.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.objectweb.howl</groupId>
      <artifactId>howl</artifactId>
      <name>Howl Logger</name>
      <url>http://howl.objectweb.org/</url>
      <organization>
        <name>ObjectWeb</name>
        <url>http://www.objectweb.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The BSD License</name>
          <url>http://howl.objectweb.org/license.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-classworlds</artifactId>
      <name>Plexus Classworlds</name>
      <url>http://plexus.codehaus.org/plexus-classworlds/</url>
      <organization>
        <name>Codehaus</name>
        <url>http://www.codehaus.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>com.thoughtworks.xstream</groupId>
      <artifactId>xstream</artifactId>
      <name>XStream Core</name>
      <url>http://xstream.codehaus.org/</url>
      <organization>
        <name>Codehaus</name>
        <url>http://www.codehaus.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The BSD License</name>
          <url>http://xstream.codehaus.com/license.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
      <name>Apache Geronimo Specs :: J2EE Connector 1.5</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
      <name>Apache Geronimo Specs :: J2EE Management 1.1</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-javamail_1.4_spec</artifactId>
      <name>Apache Geronimo Specs :: JavaMail 1.4</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jms_1.1_spec</artifactId>
      <name>Apache Geronimo Specs :: JMS 1.1</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jta_1.1_spec</artifactId>
      <name>Apache Geronimo Specs :: JTA 1.1</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-saaj_1.3_spec</artifactId>
      <name>Apache Geronimo Specs :: SAAJ 1.3</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_2.5_spec</artifactId>
      <name>Apache Geronimo Specs :: Servlet 2.5</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
 <supplement>
    <project>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-stax-api_1.0_spec</artifactId>
      <name>Apache Geronimo Specs :: Stax API 1.0</name> 
      <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
      </organization>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.jline</groupId>
      <artifactId>jline</artifactId>
      <name>JLine</name>
      <url>https://github.com/jline/</url>
      <organization>
        <name>JLine</name>
        <url>https://github.com/jline/</url>
      </organization>
      <licenses>
        <license>
          <name>The BSD License</name>
          <url>http://www.opensource.org/licenses/bsd-license.php</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty</artifactId>
      <name>Jetty Server</name>
      <url>http://jetty.mortbay.org/</url>
      <organization>
	    <name>Mort Bay Consulting</name>
	    <url>http://www.mortbay.com</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <name>Jetty Utilities</name>
      <url>http://jetty.mortbay.org/</url>
      <organization>
	    <name>Mort Bay Consulting</name>
	    <url>http://www.mortbay.com</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.base</groupId>
      <artifactId>ops4j-base-lang</artifactId>
      <name>OPS4J Base - Lang</name>
      <url>http://www.ops4j.org/projects/base/ops4j-base-lang</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.base</groupId>
      <artifactId>ops4j-base-util-collections</artifactId>
      <name>OPS4J Base - Util - Collections</name>
      <url>http://www.ops4j.org/projects/base/ops4j-base-util-collections</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.base</groupId>
      <artifactId>ops4j-base-util-xml</artifactId>
      <name>OPS4J Base - Util - XML</name>
      <url>http://www.ops4j.org/projects/base/ops4j-base-util-xml</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.pax.logging</groupId>
      <artifactId>pax-logging-api</artifactId>
      <name>OPS4J - Pax Logging API</name>
      <url>http://www.ops4j.org/projects/pax/logging/pax-logging-api</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.pax.logging</groupId>
      <artifactId>pax-logging-service</artifactId>
      <name>OPS4J - Pax Logging Service</name>
      <url>http://www.ops4j.org/projects/pax/logging/pax-logging-service</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.pax.url</groupId>
      <artifactId>pax-url-mvn</artifactId>
      <name>OPS4J Pax Url - mvn:</name>
      <url>http://www.ops4j.org/projects/pax/url/pax-url-mvn</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.pax.url</groupId>
      <artifactId>pax-url-war</artifactId>
      <name>OPS4J Pax Url - war:</name>
      <url>http://www.ops4j.org/projects/pax/url/pax-url-war</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-bundle</artifactId>
      <name>OPS4J Pax Web - Web Container</name>
      <url>http://www.ops4j.org/projects/pax/web/pax-web-bundle</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.pax.web</groupId>
      <artifactId>pax-web-jsp</artifactId>
      <name>OPS4J Pax Web - JSP</name>
      <url>http://www.ops4j.org/projects/pax/web/pax-web-jsp</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.pax.web-extender</groupId>
      <artifactId>pax-web-ex-war</artifactId>
      <name>OPS4J Pax Web Extender - WAR</name>
      <url>http://www.ops4j.org/projects/pax/web-extender/pax-web-ex-war</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.ops4j.pax.web-extender</groupId>
      <artifactId>pax-web-ex-whiteboard</artifactId>
      <name>OPS4J Pax Web Extender - Whiteboard</name>
      <url>http://www.ops4j.org/projects/pax/web-extender/pax-web-ex-whiteboard</url>
	  <organization>
	    <name>OPS4J - Open Participation Software for Java</name>
	    <url>http://www.ops4j.org/</url>
	  </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.impl.bundle.jmx</artifactId>
      <name>JMX management for OSGi (RI snapshot)</name>
      <organization>
        <name>OSGi Alliance</name>
        <url>http://www.osgi.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.fusesource.jansi</groupId>
      <artifactId>jansi</artifactId>
      <name>jansi</name>
      <organization>
        <name>FUSE Source</name>
        <url>http://www.fusesource.org/</url>
      </organization>
      <licenses>
        <license>
          <name>The Apache Software License, Version 2.0</name>
          <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>org.eclipse</groupId>
      <artifactId>osgi</artifactId>
      <name>Equinox Framework</name>
      <organization>
        <name>Eclipse Foundation</name>
        <url>http://www.eclipse.org/</url>
      </organization>
      <licenses>
        <license>
          <name>Eclipse Public License, Version 1.0</name>
          <url>http://www.eclipse.org/legal/epl-v10.html</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>xmlpull</groupId>
      <artifactId>xmlpull</artifactId>
      <name>XML Pull Parsing API</name>
      <organization>
        <name>Eclipse Foundation</name>
        <url>http://www.eclipse.org/</url>
      </organization>
      <licenses>
        <license>
          <name>Public Domain</name>
          <url>http://www.xmlpull.org/v1/download/unpacked/LICENSE.txt</url>
        </license>
      </licenses>
    </project>
  </supplement>
  <supplement>
    <project>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <name>XML Pull Parsing API</name>
      <organization>
        <name>AOP Alliance</name>
        <url>http://aopalliance.sourceforge.net/</url>
      </organization>
      <licenses>
        <license>
          <name>Public Domain</name>
        </license>
      </licenses>
    </project>
  </supplement>
</supplementalDataModels>
