// ------------------------------------------------------------------
// 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)
  - 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)
  - 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)
  - commons-beanutils  commons-beanutils:commons-beanutils:jar:1.7.0

  - Metrics Core (http://metrics.codahale.com/metrics-core/) io.dropwizard.metrics:metrics-core:bundle:3.2.0
    License: Apache License 2.0  (http://www.apache.org/licenses/LICENSE-2.0.html)
  - 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)
  - 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)
  - 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)
  - jdom  jdom:jdom:jar:1.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)
  - zookeeper  org.apache.zookeeper:zookeeper:pom:3.4.6

  - atmosphere-runtime (https://github.com/Atmosphere/atmosphere) org.atmosphere:atmosphere-runtime:bundle:2.4.14
    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.57
    License: Bouncy Castle Licence  (http://www.bouncycastle.org/licence.html)
  - Jettison (https://github.com/jettison-json/jettison) org.codehaus.jettison:jettison:bundle:1.3.8
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Cryptacular Library (http://www.cryptacular.org) org.cryptacular:cryptacular:jar:1.1.1
    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)
  - JCodings  org.jruby.jcodings:jcodings:jar:1.0.8
    License: MIT License  (http://www.opensource.org/licenses/mit-license.php)
  - Joni (http://nexus.sonatype.org/oss-repository-hosting.html/joni) org.jruby.joni:joni:jar:2.1.2
    License: MIT License  (http://www.opensource.org/licenses/mit-license.php)
  - XZ for Java (http://tukaani.org/xz/java.html) org.tukaani:xz:jar:1.0
    License: Public Domain 
  - relaxngDatatype  relaxngDatatype:relaxngDatatype:jar:20020414

  - 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)

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.14
    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.5.1
    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.5.1
    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.5.1
    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.5.1
    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.5.1
    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.5.1
    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:jar:1.1.1


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: 'FasterXML' (http://fasterxml.com)
  - Woodstox (https://github.com/FasterXML/woodstox) com.fasterxml.woodstox:woodstox-core:bundle:5.0.3
    License: The Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Jackson (http://jackson.codehaus.org) org.codehaus.jackson:jackson-core-asl:jar:1.9.13
    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.9.13
    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.11
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'GlassFish Community' (http://glassfish.org)
  - Expression Language 3.0 API (http://uel-spec.java.net) javax.el:javax.el-api:jar:3.0.0
    License: CDDL + GPLv2 with classpath exception  (https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html)

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.3
    License: CDDL + GPLv2 with classpath exception  (https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html)
  - javax.interceptor API (http://interceptors-spec.java.net) javax.interceptor:javax.interceptor-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 (https://github.com/google/gson) com.google.code.gson:gson:jar:2.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Hazelcast, Inc.' (http://www.hazelcast.com/)
  - hazelcast (http://www.hazelcast.com/hazelcast/) com.hazelcast:hazelcast:jar:3.7.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://cdi-spec.org) javax.enterprise:cdi-api:jar:1.2
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.html)

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: 'Joda.org' (http://www.joda.org)
  - Joda-Time (http://www.joda.org/joda-time/) joda-time:joda-time:jar:2.9
    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: 'ObjectWeb' (http://www.objectweb.org/)
  - ASM Core (http://asm.objectweb.org/asm/) org.ow2.asm:asm:jar:5.2
    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)
  - Old JAXB Runtime (http://jaxb.java.net/jaxb-bundles/jaxb-impl) com.sun.xml.bind:jaxb-impl:jar:2.2.11
    License: CDDL+GPL License  (http://glassfish.java.net/public/CDDL+GPL_1_1.html)
  - Old JAXB XJC (http://jaxb.java.net/jaxb-bundles/jaxb-xjc) com.sun.xml.bind:jaxb-xjc: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:bundle:2.1
    License: CDDL 1.1  (https://oss.oracle.com/licenses/CDDL+GPL-1.1)    License: GPL2 w/ CPE  (https://oss.oracle.com/licenses/CDDL+GPL-1.1)
  - JAXB API bundle for GlassFish V3 (https://jaxb.dev.java.net/) javax.xml.bind:jaxb-api:jar:2.2.2
    License: CDDL 1.1  (https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html)    License: GPL2 w/ CPE  (https://glassfish.dev.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: 'Oracle Corpration' (http://www.oracle.com)
  - fastinfoset (http://fi.java.net) com.sun.xml.fastinfoset:FastInfoset:jar:1.2.13
    License: Apache License, Version 2.0  (http://www.opensource.org/licenses/apache2.0.php)

From: 'QOS.ch' (http://www.qos.ch)
  - Logback Classic Module (http://logback.qos.ch/logback-classic) ch.qos.logback:logback-classic:jar:1.2.3
    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/logback-core) ch.qos.logback:logback-core:jar:1.2.3
    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)
  - SLF4J API Module (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.7.25
    License: MIT License  (http://www.opensource.org/licenses/mit-license.php)
  - SLF4J LOG4J-12 Binding (http://www.slf4j.org) org.slf4j:slf4j-log4j12:jar:1.7.25
    License: MIT License  (http://www.opensource.org/licenses/mit-license.php)

From: 'Shibboleth Consortium' (https://shibboleth.net)
  - java-support (http://shibboleth.net/java-support/) net.shibboleth.utilities:java-support:jar:7.3.0
    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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.0
    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 AOP (https://github.com/spring-projects/spring-framework) org.springframework:spring-aop:jar:4.3.10.RELEASE
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Spring Beans (https://github.com/spring-projects/spring-framework) org.springframework:spring-beans:jar:4.3.10.RELEASE
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Spring Context (https://github.com/spring-projects/spring-framework) org.springframework:spring-context:jar:4.3.10.RELEASE
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Spring Core (https://github.com/spring-projects/spring-framework) org.springframework:spring-core:jar:4.3.10.RELEASE
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Spring Expression Language (SpEL) (https://github.com/spring-projects/spring-framework) org.springframework:spring-expression:jar:4.3.10.RELEASE
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Spring Transaction (https://github.com/spring-projects/spring-framework) org.springframework:spring-tx:jar:4.3.10.RELEASE
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Spring Web (https://github.com/spring-projects/spring-framework) org.springframework:spring-web:jar:4.3.10.RELEASE
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Spring Web MVC (https://github.com/spring-projects/spring-framework) org.springframework:spring-webmvc:jar:4.3.10.RELEASE
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)

From: 'SpringSource' (http://springsource.org/)
  - spring-ldap-core (http://www.springframework.org/ldap) org.springframework.ldap:spring-ldap-core:jar:2.3.1.RELEASE
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Terracotta, Inc.' (http://www.terracotta.org)
  - ehcache (http://ehcache.org) net.sf.ehcache:ehcache:jar:2.10.4
    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.2:compile
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Geronimo JavaMail 1.4 :: Mail (http://geronimo.apache.org/maven/javamail/geronimo-javamail_1.4_mail/1.8.4/geronimo-javamail_1.4_mail) org.apache.geronimo.javamail:geronimo-javamail_1.4_mail:bundle:1.8.4
    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)

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.14.5
    License: Apache 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:bundle:5.14.5
    License: Apache 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.14.5
    License: Apache 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.2.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.2.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.2.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.2.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.2.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.2.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.2.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Directory API ASN.1 API (http://directory.apache.org/api-parent/api-asn1-parent/api-asn1-api/) org.apache.directory.api:api-asn1-api:bundle:1.0.0-M20
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Directory LDAP API Utilities (http://directory.apache.org/api-parent/api-util/) org.apache.directory.api:api-util:bundle:1.0.0-M20
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - ApacheDS I18n (http://directory.apache.org/apacheds/1.5/apacheds-i18n) org.apache.directory.server:apacheds-i18n:bundle:2.0.0-M15
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - ApacheDS Protocol Kerberos Codec (http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec) org.apache.directory.server:apacheds-kerberos-codec:bundle:2.0.0-M15
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache HBase - Annotations (http://hbase.apache.org/hbase-annotations) org.apache.hbase:hbase-annotations:jar:1.1.7
    License: Apache License, Version 2.0  (https://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache HBase - Client (http://hbase.apache.org/hbase-client) org.apache.hbase:hbase-client:jar:1.1.7
    License: Apache License, Version 2.0  (https://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache HBase - Common (http://hbase.apache.org/hbase-common) org.apache.hbase:hbase-common:jar:1.1.7
    License: Apache License, Version 2.0  (https://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache HBase - Protocol (http://hbase.apache.org/hbase-protocol) org.apache.hbase:hbase-protocol:jar:1.1.7
    License: Apache License, Version 2.0  (https://www.apache.org/licenses/LICENSE-2.0.txt)
  - htrace-core (http://incubator.apache.org/projects/htrace.html) org.apache.htrace:htrace-core:jar:3.1.0-incubating
    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.1.3
    License: Apache License, Version 2.0  (LICENSE.txt)
  - Apache HttpClient (http://hc.apache.org/httpcomponents-client) org.apache.httpcomponents:httpclient:jar:4.5.3
    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.4.6
    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.4.6
    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.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - olingo-odata2-api (http://olingo.apache.org/olingo-odata2-lib/olingo-odata2-api) org.apache.olingo:olingo-odata2-api:jar:2.0.9
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - olingo-odata2-core (http://olingo.apache.org/olingo-odata2-lib/olingo-odata2-core) org.apache.olingo:olingo-odata2-core:jar:2.0.9
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache XML Security for Java (http://santuario.apache.org/) org.apache.santuario:xmlsec:bundle:2.1.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)
  - 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.2
    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.2.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.2.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.2.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.2.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.2.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.2.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'The Apache Software Foundation' (https://www.apache.org/)
  - Apache Commons Lang (http://commons.apache.org/proper/commons-lang/) org.apache.commons:commons-lang3:jar:3.6
    License: Apache License, Version 2.0  (https://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Velocity - Engine (http://velocity.apache.org/engine/devel/velocity-engine-core/) org.apache.velocity:velocity-engine-core:jar:2.0
    License: Apache License, Version 2.0  (https://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.23.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.43.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.43.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.43.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.43.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.43.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.43.Final
    License: Apache License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0)

From: 'Webtide' (https://webtide.com)
  - Jetty :: Http Utility (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531
    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.4.6.v20170531
    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.4.6.v20170531
    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.4.6.v20170531
    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.4.6.v20170531
    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.4.6.v20170531
    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)




