// ------------------------------------------------------------------
// Transitive dependencies of this project determined from the
// maven pom organized by organization.
// ------------------------------------------------------------------

Apache CXF


From: 'an unknown organization'
  - AntLR Parser Generator (http://www.antlr.org/) antlr:antlr:jar:2.7.7
    License: BSD License  (http://www.antlr.org/license.html)
  - AOP alliance (http://aopalliance.sourceforge.net) aopalliance:aopalliance:jar:1.0
    License: Public Domain 
  - bcel  bcel:bcel:jar:5.1

  - Code Generation Library (http://cglib.sourceforge.net/) cglib:cglib-nodep:jar:2.2.2
    License: ASF 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Findbugs Annotations under Apache License (http://stephenc.github.com/findbugs-annotations) com.github.stephenc.findbugs:findbugs-annotations:jar:1.3.9-1
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - FindBugs-jsr305 (http://findbugs.sourceforge.net/) com.google.code.findbugs:jsr305:jar:1.3.9
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Guava: Google Core Libraries for Java (http://code.google.com/p/guava-libraries/guava) com.google.guava:guava:jar:12.0.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - java-xmlbuilder (http://code.google.com/p/java-xmlbuilder/) com.jamesmurty.utils:java-xmlbuilder:jar:0.4
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - JAXB isorelax library (http://java.net/isorelax/) com.sun.xml.bind.jaxb:isorelax:jar:20090621

  - ParaNamer Core (http://paranamer.codehaus.org/paranamer) com.thoughtworks.paranamer:paranamer:jar:2.3
    License: BSD  (LICENSE.txt)
  - QDox (http://qdox.codehaus.org) com.thoughtworks.qdox:qdox:jar:1.12.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - commons-beanutils  commons-beanutils:commons-beanutils:jar:1.7.0

  - JavaBeans Activation Framework (JAF) (http://java.sun.com/products/javabeans/jaf/index.jsp) javax.activation:activation:jar:1.1
    License: Common Development and Distribution License (CDDL) v1.0  (https://glassfish.dev.java.net/public/CDDLv1.0.html)
  - JSR-250 Common Annotations for the JavaTM Platform (http://jcp.org/aboutJava/communityprocess/final/jsr250/index.html) javax.annotation:jsr250-api:jar:1.0
    License: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0  (https://glassfish.dev.java.net/public/CDDLv1.0.html)
  - Expression Language API (2.1 Maintenance Release)  javax.el:el-api:jar:2.2

  - javax.inject (http://code.google.com/p/atinject/) javax.inject:javax.inject:jar:1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - servlet-api  javax.servlet:servlet-api:jar:2.5

  - Bean Validation API (http://beanvalidation.org) javax.validation:validation-api:jar:1.1.0.Final
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Streaming API for XML  javax.xml.stream:stax-api:jar:1.0-2
    License: GNU General Public Library  (http://www.gnu.org/licenses/gpl.txt)    License: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0  (http://www.sun.com/cddl/cddl.html)
  - An open source Java toolkit for Amazon S3 (http://www.jets3t.org) net.java.dev.jets3t:jets3t:jar:0.9.0
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - OAuth Core (http://oauth.net/code/oauth-core-parent/oauth/) net.oauth.core:oauth:jar:20100527
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OAuth Core: Provider (http://oauth.net/code/oauth-core-parent/oauth-provider/) net.oauth.core:oauth-provider:jar:20100527
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - java-support (http://shibboleth.net/java-support/) net.shibboleth.utilities:java-support:jar:7.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - zookeeper  org.apache.zookeeper:zookeeper:pom:3.4.6

  - atmosphere-runtime (https://github.com/Atmosphere/atmosphere) org.atmosphere:atmosphere-runtime:bundle:2.2.6
    License: CDDL  (https://glassfish.dev.java.net/public/CDDLv1.0.html)    License: Apache License 2.0  (http://www.apache.org/licenses/LICENSE-2.0.html)
  - Bouncy Castle Provider (http://www.bouncycastle.org/java.html) org.bouncycastle:bcprov-jdk15on:jar:1.52
    License: Bouncy Castle Licence  (http://www.bouncycastle.org/licence.html)
  - Cryptacular Library (http://www.cryptacular.org) org.cryptacular:cryptacular:jar:1.0
    License: Apache 2  (http://www.apache.org/licenses/LICENSE-2.0.txt)    License: GNU Lesser General Public License  (http://www.gnu.org/licenses/lgpl-3.0.txt)
  - codegen  org.eclipse.emf:codegen:jar:2.2.3

  - codegen-ecore  org.eclipse.emf:codegen-ecore:jar:2.2.3

  - common  org.eclipse.emf:common:jar:2.2.3

  - ecore  org.eclipse.emf:ecore:jar:2.2.3

  - ecore-change  org.eclipse.emf:ecore-change:jar:2.2.3

  - ecore-xmi  org.eclipse.emf:ecore-xmi:jar:2.2.3

  - xsd  org.eclipse.xsd:xsd:jar:2.2.3

  - Hamcrest Core (https://github.com/hamcrest/JavaHamcrest/hamcrest-core) org.hamcrest:hamcrest-core:jar:1.3
    License: New BSD License  (http://www.opensource.org/licenses/bsd-license.php)
  - htrace-core (https://github.com/cloudera/htrace) org.htrace:htrace-core:jar:3.0.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: Core (http://shibboleth.net/opensaml-core/) org.opensaml:opensaml-core:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: Profile API (http://shibboleth.net/opensaml-profile-api/) org.opensaml:opensaml-profile-api:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: SAML Provider API (http://shibboleth.net/opensaml-saml-api/) org.opensaml:opensaml-saml-api:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: SAML Provider Implementations (http://shibboleth.net/opensaml-saml-impl/) org.opensaml:opensaml-saml-impl:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: Security API (http://shibboleth.net/opensaml-security-api/) org.opensaml:opensaml-security-api:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: Security Implementation (http://shibboleth.net/opensaml-security-impl/) org.opensaml:opensaml-security-impl:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: SOAP Provider API (http://shibboleth.net/opensaml-soap-api/) org.opensaml:opensaml-soap-api:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: XACML Provider API (http://shibboleth.net/opensaml-xacml-api/) org.opensaml:opensaml-xacml-api:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: XACML Provider Implementations (http://shibboleth.net/opensaml-xacml-impl/) org.opensaml:opensaml-xacml-impl:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: SAML XACML Profile API (http://shibboleth.net/opensaml-xacml-saml-api/) org.opensaml:opensaml-xacml-saml-api:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: SAML XACML Profile Implementation (http://shibboleth.net/opensaml-xacml-saml-impl/) org.opensaml:opensaml-xacml-saml-impl:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: XML Security API (http://shibboleth.net/opensaml-xmlsec-api/) org.opensaml:opensaml-xmlsec-api:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - OpenSAML :: XML Security Implementation (http://shibboleth.net/opensaml-xmlsec-impl/) org.opensaml:opensaml-xmlsec-impl:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Spring LDAP Core  org.springframework.ldap:spring-ldap-core:jar:1.3.1.RELEASE

  - XZ for Java (http://tukaani.org/xz/java.html) org.tukaani:xz:jar:1.0
    License: Public Domain 
  - regexp  regexp:regexp:jar:1.2

  - RELAX NG Datatype (http://sourceforge.net/projects/relaxng/) relaxngDatatype:relaxngDatatype:jar:20020414:compile
    License: BSD  (http://www.opensource.org/licenses/bsd-license.php)
  - Rhino (http://www.mozilla.org/rhino/) rhino:js:jar:1.7R2
    License: Mozilla Public License  (http://www.mozilla.org/MPL/MPL-1.1.html)
  - StAX API (http://stax.codehaus.org/) stax:stax-api:jar:1.0.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - WSDL4J (http://sf.net/projects/wsdl4j) wsdl4j:wsdl4j:jar:1.6.3
    License: CPL  (http://www.opensource.org/licenses/cpl1.0.txt)
  - Xerces2-j (https://xerces.apache.org/xerces2-j/) xerces:xercesImpl:jar:2.11.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - XML Commons External Components XML APIs (http://xml.apache.org/commons/components/external/) xml-apis:xml-apis:jar:1.4.01
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)    License: The SAX License  (http://www.saxproject.org/copying.html)    License: The W3C License  (http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding.zip)
  - xmlenc Library (http://xmlenc.sourceforge.net) xmlenc:xmlenc:jar:0.52
    License: The BSD License  (http://www.opensource.org/licenses/bsd-license.php)
  - xpp3 (http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/) xpp3:xpp3:jar:1.1.3.4.O


From: 'Apache MINA Project' (http://mina.apache.org/)
  - Apache MINA Core (http://mina.apache.org/mina-core/) org.apache.mina:mina-core:bundle:2.0.9
    License: Apache 2.0 License  (http://www.apache.org/licenses/LICENSE-2.0)

From: 'Apache Software Foundation' (http://www.apache.org)
  - Apache Log4j (http://logging.apache.org/log4j/1.2/) log4j:log4j:bundle:1.2.17
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - EJB 3.0 (http://geronimo.apache.org/specs/geronimo-ejb_3.0_spec) org.apache.geronimo.specs:geronimo-ejb_3.0_spec:jar:1.0.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - J2EE Connector 1.5 (http://geronimo.apache.org/specs/geronimo-j2ee-connector_1.5_spec) org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:2.0.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - J2EE Management 1.1 (http://geronimo.apache.org/specs/geronimo-j2ee-management_1.1_spec) org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:jar:1.0.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - JMS 1.1 (http://geronimo.apache.org/specs/geronimo-jms_1.1_spec) org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.1.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Hadoop Annotations  org.apache.hadoop:hadoop-annotations:jar:2.4.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Hadoop Auth  org.apache.hadoop:hadoop-auth:jar:2.4.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Hadoop Common  org.apache.hadoop:hadoop-common:jar:2.4.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - hadoop-mapreduce-client-core  org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.4.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - hadoop-yarn-api  org.apache.hadoop:hadoop-yarn-api:jar:2.4.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - hadoop-yarn-common  org.apache.hadoop:hadoop-yarn-common:jar:2.4.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Apache Software Foundation' (http://www.apache.org/)
  - Abdera Core (http://abdera.apache.org/abdera-core) org.apache.abdera:abdera-core:bundle:1.1.3
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Abdera Extensions - JSON (http://abdera.apache.org/abdera-extensions-json) org.apache.abdera:abdera-extensions-json:bundle:1.1.3
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Abdera Extensions - Main (http://abdera.apache.org/abdera-extensions-main) org.apache.abdera:abdera-extensions-main:bundle:1.1.3
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - I18N Libraries (http://abdera.apache.org) org.apache.abdera:abdera-i18n:bundle:1.1.3
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Abdera Parser (http://abdera.apache.org/abdera-parser) org.apache.abdera:abdera-parser:bundle:1.1.3
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - XML Commons Resolver Component (http://xml.apache.org/commons/components/resolver/) xml-resolver:xml-resolver:jar:1.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Codehaus' (http://codehaus.org)
  - Jaxen (http://jaxen.codehaus.org/jaxen) jaxen:jaxen:jar:1.1.4:compile
    License: BSD  (http://jaxen.codehaus.org/license.html)

From: 'Codehaus' (http://www.codehaus.org/)
  - Woodstox (http://woodstox.codehaus.org) org.codehaus.woodstox:woodstox-core-asl:jar:4.4.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Dawid Kurzyniec' (http://www.mathcs.emory.edu/~dawidk/)
  - Backport of JSR 166 (http://www.mathcs.emory.edu/dcl/util/backport-util-concurrent/) backport-util-concurrent:backport-util-concurrent:jar:3.0
    License: Public Domain  (http://creativecommons.org/licenses/publicdomain)

From: 'eclipse.org' (http://www.eclipse.org)
  - org.eclipse.core.contenttype (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.core.contenttype:jar:3.4.100.v20110423-0524
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - org.eclipse.core.jobs (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.core.jobs:jar:3.5.100.v20110404
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - org.eclipse.core.resources (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.core.resources:jar:3.7.100.v20110510-0712
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - org.eclipse.core.runtime (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.core.runtime:jar:3.7.0.v20110110
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - org.eclipse.equinox.common (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.equinox.common:jar:3.6.0.v20110523
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - org.eclipse.equinox.preferences (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.equinox.preferences:jar:3.4.0.v20110502
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - org.eclipse.jdt.core (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.jdt.core:jar:3.7.0.v_B61
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - org.eclipse.osgi (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.osgi:jar:3.7.0.v20110613
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - org.eclipse.text (http://www.eclipse.org) org.jibx.config.3rdparty.org.eclipse:org.eclipse.text:jar:3.5.100.v20110505-0800
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)

From: 'Envoi Solutions LLC' (http://www.envoisolutions.com)
  - Jettison (http://codehaus.org/jettison/jettison) org.codehaus.jettison:jettison:jar:1.3.7:compile
    License: The Apache Software License, Version 2.0  (http://jettison.codehaus.org/License)

From: 'FasterXML' (http://fasterxml.com)
  - Jackson (http://jackson.codehaus.org) org.codehaus.jackson:jackson-core-asl:jar:1.8.8
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Data Mapper for Jackson (http://jackson.codehaus.org) org.codehaus.jackson:jackson-mapper-asl:jar:1.8.8
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'fasterxml.com' (http://fasterxml.com)
  - Stax2 API (http://wiki.fasterxml.com/WoodstoxStax2) org.codehaus.woodstox:stax2-api:bundle:3.1.4
    License: The BSD License  (http://www.opensource.org/licenses/bsd-license.php)

From: 'FuseSource, Corp.' (http://fusesource.com/)
  - hawtbuf (http://hawtbuf.fusesource.org/hawtbuf) org.fusesource.hawtbuf:hawtbuf:bundle:1.10
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'GlassFish Community' (https://glassfish.dev.java.net)
  - Java Servlet API (http://servlet-spec.java.net) javax.servlet:javax.servlet-api:jar:3.1.0
    License: CDDL + GPLv2 with classpath exception  (https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html)

From: 'GlassFish Community' (https://glassfish.java.net)
  - javax.annotation API (http://jcp.org/en/jsr/detail?id=250) javax.annotation:javax.annotation-api:jar:1.2
    License: CDDL + GPLv2 with classpath exception  (https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html)

From: 'Google' (http://www.google.com/)
  - Protocol Buffer Java API (http://code.google.com/p/protobuf) com.google.protobuf:protobuf-java:bundle:2.5.0
    License: New BSD license  (http://www.opensource.org/licenses/bsd-license.php)

From: 'Google, Inc.' (http://www.google.com)
  - Gson (http://code.google.com/p/google-gson/) com.google.code.gson:gson:jar:2.2.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Hazel Bilisim Ltd.' (http://www.hazelcast.com/)
  - hazelcast (http://www.hazelcast.com/hazelcast/) com.hazelcast:hazelcast:jar:1.9.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'JBoss by Red Hat, Inc.' (http://jboss.org)
  - CDI APIs (http://www.seamframework.org/Weld) javax.enterprise:cdi-api:jar:1.1
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.html)

From: 'JBoss, a division of Red Hat, Inc.' (http://www.jboss.org)
  - Interceptors 1.1 API (http://jboss-interceptors-api_1.1_spec/) org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec:jar:1.0.0.Beta1
    License: lgpl  (http://repository.jboss.org/licenses/lgpl-2.1.txt)

From: 'jcraft' (http://www.jcraft.com/jsch)
  - JSch (http://www.jcraft.com/jsch/) com.jcraft:jsch:jar:0.1.42
    License: BSD  (http://www.jcraft.com/jsch/LICENSE.txt)

From: 'JDOM' (http://www.jdom.org)
  - JDOM (http://www.jdom.org) org.jdom:jdom:jar:1.1.3
    License: Similar to Apache License but with the acknowledgment clause removed  (https://raw.github.com/hunterhacker/jdom/master/LICENSE.txt)

From: 'jdom.org' (http://www.jdom.org)
  - JDOM  jdom:jdom:jar:1.0:compile
    License: Modified Apache Software License  (licenses/jdom.txt)

From: 'jibx.org' (http://www.jibx.org)
  - jibx-bind - JiBX binding (http://www.jibx.org/core-reactor/main-reactor/jibx-bind) org.jibx:jibx-bind:bundle:1.2.6
    License: BSD  (http://jibx.sourceforge.net/jibx-license.html)
  - jibx-extras - JiBX extras (http://www.jibx.org/core-reactor/main-reactor/jibx-extras) org.jibx:jibx-extras:bundle:1.2.6
    License: BSD  (http://jibx.sourceforge.net/jibx-license.html)
  - jibx-run - JiBX runtime (http://www.jibx.org/core-reactor/main-reactor/jibx-run) org.jibx:jibx-run:bundle:1.2.6
    License: BSD  (http://jibx.sourceforge.net/jibx-license.html)
  - jibx-schema - JiBX schema (http://www.jibx.org/core-reactor/main-reactor/jibx-schema) org.jibx:jibx-schema:bundle:1.2.6
    License: BSD  (http://jibx.sourceforge.net/jibx-license.html)
  - jibx-tools - JiBX tools (http://www.jibx.org/core-reactor/main-reactor/jibx-tools) org.jibx:jibx-tools:bundle:1.2.6
    License: BSD  (http://jibx.sourceforge.net/jibx-license.html)

From: 'Joda.org' (http://www.joda.org)
  - Joda time (http://joda-time.sourceforge.net) joda-time:joda-time:jar:2.2
    License: Apache 2  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'JUnit' (http://www.junit.org)
  - JUnit (http://junit.org) junit:junit:jar:4.12
    License: Eclipse Public License 1.0  (http://www.eclipse.org/legal/epl-v10.html)

From: 'MetaStuff Ltd.' (http://sourceforge.net/projects/dom4j)
  - dom4j (http://dom4j.org) dom4j:dom4j:jar:1.6.1


From: 'ObjectWeb' (http://www.objectweb.org/)
  - ASM Core (http://asm.objectweb.org/asm/) org.ow2.asm:asm:jar:5.0.3
    License: BSD  (http://asm.objectweb.org/license.html)

From: 'Oracle Corporation' (http://www.oracle.com/)
  - Old JAXB Core (http://jaxb.java.net/jaxb-bundles/jaxb-core) com.sun.xml.bind:jaxb-core:jar:2.2.11
    License: CDDL+GPL License  (http://glassfish.java.net/public/CDDL+GPL_1_1.html)
  - javax.ws.rs-api (http://jax-rs-spec.java.net) javax.ws.rs:javax.ws.rs-api:jar:2.0.1
    License: CDDL 1.1  (http://glassfish.java.net/public/CDDL+GPL_1_1.html)    License: GPL2 w/ CPE  (http://glassfish.java.net/public/CDDL+GPL_1_1.html)
  - MSV Core (http://msv.java.net/msv-core) net.java.dev.msv:msv-core:jar:2013.6.1
    License: BSD  (http://msv.java.net/License.txt)
  - MSV XML Schema Library (http://msv.java.net/xsdlib) net.java.dev.msv:xsdlib:jar:2013.6.1
    License: BSD  (http://msv.java.net/License.txt)

From: 'QOS.ch' (http://www.qos.ch)
  - Logback Classic Module (http://logback.qos.ch) ch.qos.logback:logback-classic:jar:1.0.13
    License: Eclipse Public License - v 1.0  (http://www.eclipse.org/legal/epl-v10.html)    License: GNU Lesser General Public License  (http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)
  - Logback Core Module (http://logback.qos.ch) ch.qos.logback:logback-core:jar:1.0.13
    License: Eclipse Public License - v 1.0  (http://www.eclipse.org/legal/epl-v10.html)    License: GNU Lesser General Public License  (http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)
  - Simple Logging Facade for Java - API (http://www.slf4j.org/slf4j-api) org.slf4j:slf4j-api:jar:1.7.9:compile
    License: MIT License  (http://www.slf4j.org/license.html)
  - SLF4J LOG4J-12 Binding (http://www.slf4j.org) org.slf4j:slf4j-log4j12:jar:1.6.1
    License: MIT License  (http://www.opensource.org/licenses/mit-license.php)

From: 'Spring Framework' (http://www.springframework.org/)
  - Spring AOP (https://github.com/spring-projects/spring-framework/spring-aop) org.springframework:spring-aop:jar:4.1.1.RELEASE:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Spring Beans (https://github.com/spring-projects/spring-framework/spring-beans) org.springframework:spring-beans:jar:4.1.1.RELEASE:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Spring Context (https://github.com/spring-projects/spring-framework/spring-context) org.springframework:spring-context:jar:4.1.1.RELEASE:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Spring Core (https://github.com/spring-projects/spring-framework/spring-core) org.springframework:spring-core:jar:4.1.1.RELEASE:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Spring Expression (https://github.com/spring-projects/spring-framework/spring-expression) org.springframework:spring-expression:jar:4.1.1.RELEASE:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Spring Transactions (https://github.com/spring-projects/spring-framework/spring-tx) org.springframework:spring-tx:jar:4.1.1.RELEASE:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Spring Web (https://github.com/spring-projects/spring-framework/spring-web) org.springframework:spring-web:jar:4.1.1.RELEASE:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Spring IO' (http://projects.spring.io/spring-framework)
  - Spring Web MVC (https://github.com/spring-projects/spring-framework) org.springframework:spring-webmvc:jar:4.1.1.RELEASE
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Sun Microsystems' (http://www.sun.com/)
  - Sun JAXB Reference Implementation Runtime (http://jaxb.java.net/jaxb-bundles/jaxb-impl/jaxb-impl) com.sun.xml.bind:jaxb-impl:jar:2.2.11:compile
    License: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0  (http://www.sun.com/cddl/cddl.html)
  - Sun JAXB Reference Implementation Tools (http://jaxb.java.net/jaxb-bundles/jaxb-xjc/jaxb-xjc) com.sun.xml.bind:jaxb-xjc:jar:2.2.11:compile
    License: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0  (http://www.sun.com/cddl/cddl.html)
  - Sun FastInfoset Implementation (http://fi.java.net/FastInfoset) com.sun.xml.fastinfoset:FastInfoset:jar:1.2.13:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Java Architecture for XML Binding (JAXB API) (https://jaxb.dev.java.net/jaxb-api) javax.xml.bind:jaxb-api:jar:2.2.2:compile
    License: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0  (http://www.sun.com/cddl/cddl.html)

From: 'Terracotta, Inc.' (http://www.terracotta.org)
  - ehcache (http://ehcache.org) net.sf.ehcache:ehcache:jar:2.9.0
    License: The Apache Software License, Version 2.0  (src/assemble/EHCACHE-CORE-LICENSE.txt)

From: 'The Apache Software Foundation' (http://commons.apache.org/)
  - Commons Configuration (http://commons.apache.org/${pom.artifactId.substring(8)}/) commons-configuration:commons-configuration:jar:1.6
    License: The Apache Software License, Version 2.0  (/LICENSE.txt)

From: 'The Apache Software Foundation' (http://jakarta.apache.org)
  - Digester (http://jakarta.apache.org/commons/digester/) commons-digester:commons-digester:jar:1.8
    License: The Apache Software License, Version 2.0  (/LICENSE.txt)
  - EL (http://jakarta.apache.org/commons/el/) commons-el:commons-el:jar:1.0
    License: The Apache Software License, Version 2.0  (/LICENSE.txt)

From: 'The Apache Software Foundation' (http://www.apache.org)
  - Apache Commons - collections (http://commons.apache.org/collections/commons-collections) commons-collections:commons-collections:jar:3.2.1:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Activation 1.1 (http://geronimo.apache.org/maven/specs/geronimo-activation_1.1_spec/1.1) org.apache.geronimo.specs:geronimo-activation_1.1_spec:bundle:1.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - JavaMail 1.4 (http://geronimo.apache.org/maven/specs/geronimo-javamail_1.4_spec/1.7.1) org.apache.geronimo.specs:geronimo-javamail_1.4_spec:bundle:1.7.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Geronimo JSR-317 JPA 2.0 Spec API (http://geronimo.apache.org/maven/specs/geronimo-jpa_2.0_spec/1.0) org.apache.geronimo.specs:geronimo-jpa_2.0_spec:bundle:1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Servlet 3.0 (http://geronimo.apache.org/maven/specs/geronimo-servlet_3.0_spec/1.0) org.apache.geronimo.specs:geronimo-servlet_3.0_spec:bundle:1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - XML Security (http://santuario.apache.org/xmlsec) org.apache.santuario:xmlsec:jar:2.0.4:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'The Apache Software Foundation' (http://www.apache.org/)
  - Commons BeanUtils Core (http://commons.apache.org/beanutils/) commons-beanutils:commons-beanutils-core:jar:1.8.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Commons CLI (http://commons.apache.org/cli/) commons-cli:commons-cli:jar:1.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Commons Codec (http://commons.apache.org/proper/commons-codec/) commons-codec:commons-codec:jar:1.10
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Commons IO (http://commons.apache.org/io/) commons-io:commons-io:jar:2.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Commons Lang (http://commons.apache.org/lang/) commons-lang:commons-lang:jar:2.6
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Commons Logging (http://commons.apache.org/proper/commons-logging/) commons-logging:commons-logging:jar:1.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Commons Net (http://commons.apache.org/net/) commons-net:commons-net:jar:3.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - ActiveMQ :: Broker (http://activemq.apache.org/activemq-broker) org.apache.activemq:activemq-broker:jar:5.10.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - ActiveMQ :: Client (http://activemq.apache.org/activemq-client) org.apache.activemq:activemq-client:jar:5.10.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - ActiveMQ :: Openwire Legacy Support (http://activemq.apache.org/activemq-openwire-legacy) org.apache.activemq:activemq-openwire-legacy:jar:5.10.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Avro (http://avro.apache.org) org.apache.avro:avro:jar:1.7.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Commons Compress (http://commons.apache.org/compress/) org.apache.commons:commons-compress:jar:1.4.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Commons Math (http://commons.apache.org/math/) org.apache.commons:commons-math3:jar:3.1.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache CXF Core (http://cxf.apache.org) org.apache.cxf:cxf-core:bundle:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache CXF Runtime SOAP Binding (http://cxf.apache.org) org.apache.cxf:cxf-rt-bindings-soap:bundle:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache CXF Runtime JAXB DataBinding (http://cxf.apache.org) org.apache.cxf:cxf-rt-databinding-jaxb:bundle:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache CXF Runtime Core for WSDL (http://cxf.apache.org) org.apache.cxf:cxf-rt-wsdl:bundle:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache CXF Command Line Tools Common (http://cxf.apache.org) org.apache.cxf:cxf-tools-common:bundle:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache CXF Command Line Tools Validator (http://cxf.apache.org) org.apache.cxf:cxf-tools-validator:bundle:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache CXF Command Line Tools WSDLTo Core (http://cxf.apache.org) org.apache.cxf:cxf-tools-wsdlto-core:bundle:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - HBase - Client (http://hbase.apache.org/hbase-client) org.apache.hbase:hbase-client:jar:0.99.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - HBase - Common (http://hbase.apache.org/hbase-common) org.apache.hbase:hbase-common:jar:0.99.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - HBase - Protocol (http://hbase.apache.org/hbase-protocol) org.apache.hbase:hbase-protocol:jar:0.99.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache HttpAsyncClient (http://hc.apache.org/httpcomponents-asyncclient) org.apache.httpcomponents:httpasyncclient:jar:4.0.2
    License: Apache License, Version 2.0  (LICENSE.txt)
  - Apache HttpClient (http://hc.apache.org/httpcomponents-client) org.apache.httpcomponents:httpclient:jar:4.3.5
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache HttpCore (http://hc.apache.org/httpcomponents-core-ga) org.apache.httpcomponents:httpcore:jar:4.3.3
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache HttpCore NIO (http://hc.apache.org/httpcomponents-core-ga) org.apache.httpcomponents:httpcore-nio:jar:4.3.3
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache JAMES Mime4j (Core) (http://james.apache.org/mime4j/apache-mime4j-core) org.apache.james:apache-mime4j-core:jar:0.7.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Lucene Core (http://lucene.apache.org/lucene-parent/lucene-core) org.apache.lucene:lucene-core:jar:4.9.0
    License: Apache 2  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Neethi (http://ws.apache.org/neethi/) org.apache.neethi:neethi:bundle:3.0.3
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - olingo-odata2-api (http://olingo.incubator.apache.org/olingo-odata2-lib/olingo-odata2-api) org.apache.olingo:olingo-odata2-api:jar:1.2.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - olingo-odata2-core (http://olingo.incubator.apache.org/olingo-odata2-lib/olingo-odata2-core) org.apache.olingo:olingo-odata2-core:jar:1.2.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - SDO API (http://www.apache.org/tuscany-sdo-api-r2.1/) org.apache.tuscany.sdo:tuscany-sdo-api-r2.1:jar:1.1.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Tuscany SDO Implementation (http://www.apache.org/tuscany-sdo/tuscany-sdo-impl/) org.apache.tuscany.sdo:tuscany-sdo-impl:jar:1.1.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Tuscany SDO Library (http://www.apache.org/tuscany-sdo/tuscany-sdo-lib/) org.apache.tuscany.sdo:tuscany-sdo-lib:jar:1.1.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Tuscany SDO Tools (http://www.apache.org/tuscany-sdo/tuscany-sdo-tools/) org.apache.tuscany.sdo:tuscany-sdo-tools:jar:1.1.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Velocity (http://velocity.apache.org/engine/devel/) org.apache.velocity:velocity:jar:1.7
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Axiom API (http://ws.apache.org/axiom/) org.apache.ws.commons.axiom:axiom-api:bundle:1.2.14
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Axiom Impl (http://ws.apache.org/axiom/) org.apache.ws.commons.axiom:axiom-impl:bundle:1.2.14
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - XmlSchema Core (http://ws.apache.org/commons/xmlschema20/xmlschema-core/) org.apache.ws.xmlschema:xmlschema-core:bundle:2.2.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache WSS4J WS-Security Bindings (http://ws.apache.org/wss4j/wss4j-bindings/) org.apache.wss4j:wss4j-bindings:jar:2.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache WSS4J WS-SecurityPolicy model (http://ws.apache.org/wss4j/wss4j-policy/) org.apache.wss4j:wss4j-policy:jar:2.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache WSS4J WS-Security Common (http://ws.apache.org/wss4j/wss4j-ws-security-common/) org.apache.wss4j:wss4j-ws-security-common:jar:2.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache WSS4J DOM WS-Security (http://ws.apache.org/wss4j/wss4j-ws-security-dom/) org.apache.wss4j:wss4j-ws-security-dom:jar:2.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache WSS4J Streaming WS-SecurityPolicy (http://ws.apache.org/wss4j/wss4j-ws-security-policy-stax/) org.apache.wss4j:wss4j-ws-security-policy-stax:jar:2.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache WSS4J Streaming WS-Security (http://ws.apache.org/wss4j/wss4j-ws-security-stax/) org.apache.wss4j:wss4j-ws-security-stax:jar:2.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'The JASYPT team' (http://www.jasypt.org)
  - JASYPT: Java Simplified Encryption (http://www.jasypt.org) org.jasypt:jasypt:jar:1.9.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'The Netty Project' (http://netty.io/)
  - Netty/All-in-One (http://netty.io/netty-all/) io.netty:netty-all:jar:4.0.19.Final
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Netty/Buffer (http://netty.io/netty-buffer/) io.netty:netty-buffer:jar:4.0.19.Final
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Netty/Codec (http://netty.io/netty-codec/) io.netty:netty-codec:jar:4.0.19.Final
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Netty/Codec/HTTP (http://netty.io/netty-codec-http/) io.netty:netty-codec-http:jar:4.0.19.Final
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Netty/Common (http://netty.io/netty-common/) io.netty:netty-common:jar:4.0.19.Final
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Netty/Handler (http://netty.io/netty-handler/) io.netty:netty-handler:jar:4.0.19.Final
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Netty/Transport (http://netty.io/netty-transport/) io.netty:netty-transport:jar:4.0.19.Final
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)

From: 'Webtide' (http://webtide.com)
  - Jetty :: Http Utility (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-http:jar:9.2.9.v20150224
    License: Apache Software License - Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)    License: Eclipse Public License - Version 1.0  (http://www.eclipse.org/org/documents/epl-v10.php)
  - Jetty :: IO Utility (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-io:jar:9.2.9.v20150224
    License: Apache Software License - Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)    License: Eclipse Public License - Version 1.0  (http://www.eclipse.org/org/documents/epl-v10.php)
  - Jetty :: JMX Management (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-jmx:jar:9.2.9.v20150224
    License: Apache Software License - Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)    License: Eclipse Public License - Version 1.0  (http://www.eclipse.org/org/documents/epl-v10.php)
  - Jetty :: Security (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-security:jar:9.2.9.v20150224
    License: Apache Software License - Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)    License: Eclipse Public License - Version 1.0  (http://www.eclipse.org/org/documents/epl-v10.php)
  - Jetty :: Server Core (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-server:jar:9.2.9.v20150224
    License: Apache Software License - Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)    License: Eclipse Public License - Version 1.0  (http://www.eclipse.org/org/documents/epl-v10.php)
  - Jetty :: Utilities (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-util:jar:9.2.9.v20150224
    License: Apache Software License - Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)    License: Eclipse Public License - Version 1.0  (http://www.eclipse.org/org/documents/epl-v10.php)

From: 'xerial.org' (http://www.xerial.org/)
  - Snappy for Java (http://code.google.com/p/snappy-java/) org.xerial.snappy:snappy-java:bundle:1.0.4.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'XmlBeans' (http://xmlbeans.apache.org/)
  - XmlBeans (http://xmlbeans.apache.org) org.apache.xmlbeans:xmlbeans:jar:2.6.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)




