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

HTML APIs via Java


From: 'an unknown organization'
  - JSON library from Android SDK (http://developer.android.com/sdk) com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1
    License: Apache License 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Eclipse Equinox OSGi Framework (http://www.eclipse.org/equinox/) org.eclipse:org.eclipse.osgi:jar:3.8.0.v20120529-1548
    License: Eclipse Public License  (http://www.eclipse.org/legal/epl-v10.html)
  - Plexus Cipher: encryption/decryption Component (http://spice.sonatype.org/plexus-cipher) org.sonatype.plexus:plexus-cipher:jar:1.4
    License: Apache Public License 2.0  (http://www.apache.org/licenses/LICENSE-2.0)
  - Plexus Security Dispatcher Component (http://spice.sonatype.org/plexus-sec-dispatcher) org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3
    License: Apache Public License 2.0  (http://www.apache.org/licenses/LICENSE-2.0)

From: 'Codehaus' (http://www.codehaus.org/)
  - Plexus Classworlds (http://plexus.codehaus.org/plexus-classworlds/) org.codehaus.plexus:plexus-classworlds:jar:2.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Plexus :: Component Annotations (http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/) org.codehaus.plexus:plexus-component-annotations:jar:1.5.5
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Plexus Interpolation API (http://plexus.codehaus.org/plexus-components/plexus-interpolation) org.codehaus.plexus:plexus-interpolation:jar:1.14
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Plexus Common Utilities (http://plexus.codehaus.org/plexus-utils) org.codehaus.plexus:plexus-utils:jar:2.0.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

From: 'Google, Inc.' (http://www.google.com)
  - Sisu Guava - Core Library (http://code.google.com/p/guava-libraries/sisu-guava/) org.sonatype.sisu:sisu-guava:jar:0.9.9
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Sisu Guice - Core Library (http://code.google.com/p/google-guice/sisu-guice/) org.sonatype.sisu:sisu-guice:jar:3.1.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)

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

From: 'Oracle' (http://www.oracle.com)
  - WebSocket server API (http://websocket-spec.java.net) javax.websocket:javax.websocket-api:bundle:1.0
    License: Dual license consisting of the CDDL v1.1 and GPL v2  (https://glassfish.java.net/public/CDDL+GPL_1_1.html)

From: 'Oracle Corporation' (http://www.oracle.com)
  - grizzly-framework (http://grizzly.java.net/grizzly-framework) org.glassfish.grizzly:grizzly-framework:bundle:2.3.7
    License: CDDL+GPL  (http://glassfish.java.net/public/CDDL+GPL.html)
  - grizzly-http (http://grizzly.java.net/grizzly-http) org.glassfish.grizzly:grizzly-http:bundle:2.3.7
    License: CDDL+GPL  (http://glassfish.java.net/public/CDDL+GPL.html)
  - grizzly-http-server (http://grizzly.java.net/grizzly-http-server) org.glassfish.grizzly:grizzly-http-server:bundle:2.3.7
    License: CDDL+GPL  (http://glassfish.java.net/public/CDDL+GPL.html)

From: 'Oracle Corporation' (http://www.oracle.com/)
  - Tyrus Client (https://tyrus.java.net/tyrus-client) org.glassfish.tyrus:tyrus-client:jar:1.3.1
    License: Dual license consisting of the CDDL v1.1 and GPL v2  (http://glassfish.java.net/public/CDDL+GPL_1_1.html)
  - Tyrus Grizzly Client Container (https://tyrus.java.net/tyrus-containers-project/tyrus-container-grizzly-client) org.glassfish.tyrus:tyrus-container-grizzly-client:jar:1.3.1
    License: Dual license consisting of the CDDL v1.1 and GPL v2  (http://glassfish.java.net/public/CDDL+GPL_1_1.html)
  - Tyrus Core (https://tyrus.java.net/tyrus-core) org.glassfish.tyrus:tyrus-core:jar:1.3.1
    License: Dual license consisting of the CDDL v1.1 and GPL v2  (http://glassfish.java.net/public/CDDL+GPL_1_1.html)
  - Tyrus Container SPI (https://tyrus.java.net/tyrus-spi) org.glassfish.tyrus:tyrus-spi:jar:1.3.1
    License: Dual license consisting of the CDDL v1.1 and GPL v2  (http://glassfish.java.net/public/CDDL+GPL_1_1.html)

From: 'OSGi Alliance' (http://www.osgi.org/)
  - org.osgi:org.osgi.service.log (http://www.osgi.org/) org.osgi:org.osgi.service.log:jar:1.3.0
    License: Apache License, Version 2.0  (http://opensource.org/licenses/apache2.0.php)

From: 'Sonatype, Inc.' (http://www.sonatype.com/)
  - Aether :: API (http://aether.sonatype.org/aether-api/) org.sonatype.aether:aether-api:jar:1.9
    License: Eclipse Public License, Version 1.0  (http://www.eclipse.org/legal/epl-v10.html)
  - Aether :: Implementation (http://aether.sonatype.org/aether-impl/) org.sonatype.aether:aether-impl:jar:1.9
    License: Eclipse Public License, Version 1.0  (http://www.eclipse.org/legal/epl-v10.html)
  - Aether :: SPI (http://aether.sonatype.org/aether-spi/) org.sonatype.aether:aether-spi:jar:1.9
    License: Eclipse Public License, Version 1.0  (http://www.eclipse.org/legal/epl-v10.html)
  - Aether :: Utilities (http://aether.sonatype.org/aether-util/) org.sonatype.aether:aether-util:jar:1.9
    License: Eclipse Public License, Version 1.0  (http://www.eclipse.org/legal/epl-v10.html)
  - Sisu-Inject-Bean : Aggregate OSGi bundle (http://sisu.sonatype.org/sisu-inject/containers/guice-bean/sisu-inject-bean/) org.sonatype.sisu:sisu-inject-bean:bundle:2.3.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)    License: Eclipse Public License, Version 1.0  (http://www.eclipse.org/legal/epl-v10.html)
  - Sisu-Inject-Plexus : Aggregate OSGi bundle (http://sisu.sonatype.org/sisu-inject/containers/guice-bean/guice-plexus/sisu-inject-plexus/) org.sonatype.sisu:sisu-inject-plexus:bundle:2.3.0
    License: Eclipse Public License, Version 1.0  (http://www.eclipse.org/legal/epl-v10.html)

From: 'The Apache Software Foundation' (http://www.apache.org)
  - Apache Aries Util (http://aries.apache.org/default-parent/java5-parent/org.apache.aries.util) org.apache.aries:org.apache.aries.util:bundle:1.0.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Aries SPI Fly Core (internal module) (http://aries.apache.org/org.apache.aries.spifly.core-internal) org.apache.aries.spifly:org.apache.aries.spifly.core-internal:jar:1.0.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Aries SPI Fly Dynamic Weaving Bundle (http://aries.apache.org/org.apache.aries.spifly.dynamic.bundle) org.apache.aries.spifly:org.apache.aries.spifly.dynamic.bundle:bundle:1.0.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Apache Aries SPI Fly Weaver (internal module) (http://aries.apache.org/org.apache.aries.spifly.weaver-internal) org.apache.aries.spifly:org.apache.aries.spifly.weaver-internal:jar:1.0.4
    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/)
  - Apache Felix Framework (http://felix.apache.org/org.apache.felix.framework/) org.apache.felix:org.apache.felix.framework:bundle:4.2.1
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Aether Provider (http://maven.apache.org/maven-aether-provider/) org.apache.maven:maven-aether-provider:jar:3.0.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Artifact (http://maven.apache.org/ref/3.0.4//maven-artifact) org.apache.maven:maven-artifact:jar:3.0.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Core (http://maven.apache.org/maven-core/) org.apache.maven:maven-core:jar:3.0.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Model (http://maven.apache.org/ref/3.0.4//maven-model) org.apache.maven:maven-model:jar:3.0.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Model Builder (http://maven.apache.org/maven-model-builder/) org.apache.maven:maven-model-builder:jar:3.0.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Plugin API (http://maven.apache.org/ref/3.0.4//maven-plugin-api) org.apache.maven:maven-plugin-api:jar:3.0.4
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Repository Metadata Model (http://maven.apache.org/maven-repository-metadata/) org.apache.maven:maven-repository-metadata:jar:3.0.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Settings (http://maven.apache.org/maven-settings/) org.apache.maven:maven-settings:jar:3.0.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Settings Builder (http://maven.apache.org/maven-settings-builder/) org.apache.maven:maven-settings-builder:jar:3.0.2
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
  - Maven Plugin Java 5 Annotations (http://maven.apache.org/plugin-tools/maven-plugin-annotations/) org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.0
    License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)




From: 'Knockout.js team' (http://knockoutjs.com/)
  - Knockout JavaScript library v3.5.0
    License: MIT (http://www.opensource.org/licenses/mit-license.php)
