Notice: |

  Apache Brooklyn
  Copyright 2014-2018 The Apache Software Foundation

  This product includes software developed at
  The Apache Software Foundation (http://www.apache.org/).


Bundled dependencies:

  # This software includes the following bundled third-party components.
  # Referenced licenses can be found in the accompanying LICENSE file.

  github.com/NodePrime/jsonpath/cli/jsonpath: 
    Project:      github.com/NodePrime/jsonpath/cli/jsonpath
    Available at: github.com/NodePrime/jsonpath/
    License name: MIT License
    Notice:       Copyright (c) 2015 NodePrime Inc.
  
  github.com/urfave/cli: 
    Project:      github.com/urfave/cli
    Available at: https://github.com/urfave/cli
    License name: MIT License
    Notice:       Copyright (c) 2016 Jeremy Saenz & Contributors
  
  golang.org/x/crypto/ssh: 
    Project:      golang.org/x/crypto/ssh
    Available at: https://godoc.org/golang.org/x/crypto/ssh
    License name: BSD 3-Clause (New BSD) License
    Notice:       Copyright (c) 2009 The Go Authors. All rights reserved.
  

Runtime dependencies:

  # This artifact depends on additional third-party components at runtime.
  # These are not bundled here but may be included as part of a build.

  ch.qos.logback:1.0.7: 
    Project:      Logback Logging Framework
    Version:      1.0.7
    Available at: http://logback.qos.ch
    Developed by: QOS.ch (http://www.qos.ch)
    License name: Eclipse Public License, version 1.0
  
  com.fasterxml.jackson:2.9.7: 
    Project:      Jackson FasterXML
    Version:      2.9.7
    Available at: 
      - http://github.com/FasterXML/jackson
      - https://github.com/FasterXML/jackson-core
      - https://github.com/FasterXML/jackson-modules-base
    Developed by: FasterXML (http://fasterxml.com/)
    License name: Apache License, version 2.0
  
  com.github.fge.jackson-coreutils:1.0: 
    Project:      jackson-coreutils
    Version:      1.0
    Available at: https://github.com/fge/jackson-coreutils
    License name: GNU Lesser General Public License, version 3.0
  
  com.github.fge.json-patch:1.3: 
    Project:      json-patch
    Version:      1.3
    Available at: https://github.com/fge/json-patch
    License name: GNU Lesser General Public License, version 3.0
  
  com.google.code.findbugs.jsr305:2.0.1: 
    Project:      FindBugs-jsr305
    Version:      2.0.1
    Available at: http://findbugs.sourceforge.net/
    License name: Apache License, version 2.0
  
  com.google.code.gson:2.5: 
    Project:      Gson
    Version:      2.5
    Available at: https://github.com/google/gson
    Developed by: Google, Inc. (http://www.google.com)
    License name: Apache License, version 2.0
  
  com.google.guava:18.0: 
    Project:      Guava: Google Core Libraries for Java
    Version:      18.0
    Available at: http://code.google.com/p/guava-libraries
    License name: Apache License, version 2.0
  
  com.hierynomus.sshj:0.20.0: 
    Project:      sshj
    Version:      0.20.0
    Available at: https://github.com/hierynomus/sshj
    License name: Apache License, version 2.0
  
  com.jayway.jsonpath.json-path:2.4.0: 
    Project:      project ':json-path'
    Version:      2.4.0
    Available at: https://github.com/jayway/JsonPath
    License name: Apache License, version 2.0
  
  com.jcraft.jzlib:1.1.3: 
    Project:      JZlib
    Version:      1.1.3
    Available at: http://www.jcraft.com/jzlib/
    Developed by: jcraft (http://www.jcraft.com/)
    License name: BSD 3-Clause (New BSD) License
    Notice:       Copyright (c) 2000-2011 ymnk, JCraft,Inc. All rights reserved.
  
  com.maxmind.db.maxmind-db:1.2.1: 
    Project:      MaxMind DB Reader
    Version:      1.2.1
    Available at: http://dev.maxmind.com/
    Developed by: MaxMind, Inc. (http://www.maxmind.com/)
    License name: Apache License, version 2.0
  
  com.maxmind.geoip2:2.8.0-rc1: 
    Project:      MaxMind GeoIP2 API
    Version:      2.8.0-rc1
    Available at: http://dev.maxmind.com/geoip/geoip2/web-services
    Developed by: MaxMind, Inc. (http://www.maxmind.com/)
    License name: Apache License, version 2.0
  
  com.thoughtworks.xstream:1.4.8: 
    Project:      XStream Core
    Version:      1.4.8
    Available at: http://x-stream.github.io/
    Developed by: XStream (http://xstream.codehaus.org)
    License name: BSD 3-Clause (New BSD) License
  
  commons-codec:1.10: 
    Project:      Apache Commons Codec
    Version:      1.10
    Available at: http://commons.apache.org/proper/commons-codec/
    Developed by: The Apache Software Foundation (http://www.apache.org/)
    License name: Apache License, version 2.0
  
  commons-io:2.4: 
    Project:      Commons IO
    Version:      2.4
    Available at: http://commons.apache.org/io/
    Developed by: The Apache Software Foundation (http://www.apache.org/)
    License name: Apache License, version 2.0
  
  commons-lang:2.4: 
    Project:      Commons Lang
    Version:      2.4
    Available at: http://commons.apache.org/lang/
    Developed by: The Apache Software Foundation (http://www.apache.org/)
    License name: Apache License, version 2.0
  
  commons-logging:1.2: 
    Project:      Apache Commons Logging
    Version:      1.2
    Available at: http://commons.apache.org/proper/commons-logging/
    Developed by: The Apache Software Foundation (http://www.apache.org/)
    License name: Apache License, version 2.0
  
  io.swagger.swagger-annotations:1.5.6: 
    Project:      swagger-annotations
    Version:      1.5.6
    Available at: https://github.com/swagger-api/swagger-core
    License name: Apache License, version 2.0
  
  javax.activation:1.1.1: 
    Project:      JavaBeans(TM) Activation Framework
    Version:      1.1.1
    Available at: http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp
    License name: Common Development and Distribution License, version 1.0
  
  javax.servlet.javax.servlet-api:3.1.0: 
    Project:      Java Servlet API
    Version:      3.1.0
    Available at: http://servlet-spec.java.net
    Developed by: GlassFish Community (https://glassfish.dev.java.net)
    License name: Common Development and Distribution License, version 1.1
  
  javax.validation.validation-api:1.1.0.Final: 
    Project:      Bean Validation API
    Version:      1.1.0.Final
    Available at: http://beanvalidation.org/
    License name: Apache License, version 2.0
  
  javax.ws.rs.javax.ws.rs-api:2.1.1: 
    Project:      javax.ws.rs-api
    Version:      2.1.1
    Available at: https://github.com/eclipse-ee4j/jaxrs-api
    Developed by: Eclipse Foundation (https://www.eclipse.org/org/foundation/)
    License name: Common Development and Distribution License, version 1.1
  
  net.i2p.crypto.eddsa:0.1.0: 
    Project:      ed25519-java
    Version:      0.1.0
    Available at: https://github.com/str4d/ed25519-java
    License name: Public Domain
  
  net.jcip.jcip-annotations:1.0: 
    Project:      "Java Concurrency in Practice" book annotations
    Version:      1.0
    Available at: http://jcip.net/
  
  net.minidev.accessors-smart:1.2: 
    Project:      ASM based accessors helper used by json-smart
    Version:      1.2
    Available at: http://www.minidev.net/
    Developed by: Chemouni Uriel (http://www.minidev.net/)
    License name: Apache License, version 2.0
  
  net.minidev.json-smart:2.3: 
    Project:      JSON Small and Fast Parser
    Version:      2.3
    Available at: http://www.minidev.net/
    Developed by: Chemouni Uriel (http://www.minidev.net/)
    License name: Apache License, version 2.0
  
  org.apache.commons.commons-lang3:3.3.2: 
    Project:      Apache Commons Lang
    Version:      3.3.2
    Available at: http://commons.apache.org/proper/commons-lang/
    Developed by: The Apache Software Foundation (http://www.apache.org/)
    License name: Apache License, version 2.0
  
  org.apache.felix.org.apache.felix.framework:5.6.10: 
    Project:      Apache Felix Framework
    Version:      5.6.10
    Available at: http://felix.apache.org/
    Developed by: The Apache Software Foundation (http://www.apache.org/)
    License name: Apache License, version 2.0
  
  org.apache.geronimo.specs.geronimo-ws-metadata_2.0_spec:1.1.3: 
    Project:      Web Services Metadata 2.0
    Version:      1.1.3
    Available at: http://geronimo.apache.org/maven/specs/geronimo-ws-metadata_2.0_spec/1.1.3
    Developed by: The Apache Software Foundation (http://www.apache.org)
    License name: Apache License, version 2.0
  
  org.apache.httpcomponents.httpclient:4.5.6: 
    Project:      Apache HttpClient
    Version:      4.5.6
    Available at: http://hc.apache.org/httpcomponents-client-ga
    Developed by: The Apache Software Foundation (http://www.apache.org/)
    License name: Apache License, version 2.0
  
  org.apache.httpcomponents.httpcore:4.4.9: 
    Project:      Apache HttpCore
    Version:      4.4.9
    Available at: http://hc.apache.org/httpcomponents-core-ga
    Developed by: The Apache Software Foundation (http://www.apache.org/)
    License name: Apache License, version 2.0
  
  org.bouncycastle:1.51: 
    Project: 
      - Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
      - Bouncy Castle Provider
    Version:      1.51
    Available at: http://www.bouncycastle.org/java.html
    License name: MIT License
    Notice:       Copyright (c) The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)
  
  org.codehaus.groovy.groovy-all:2.4.15: 
    Project:      Apache Groovy
    Version:      2.4.15
    Available at: http://groovy-lang.org
    Developed by: Apache Software Foundation (http://groovy-lang.org)
    License name: Apache License, version 2.0
  
  org.freemarker:2.3.25-incubating: 
    Project:      Apache FreeMarker
    Version:      2.3.25-incubating
    Available at: http://freemarker.org/
    Developed by: Apache Software Foundation (http://apache.org)
    License name: Apache License, version 2.0
  
  org.javassist:3.19.0-GA: 
    Project:      Javassist
    Version:      3.19.0-GA
    Available at: http://www.javassist.org/
    License name: Apache License, version 2.0
    Notice:       Copyright (c) Shigeru Chiba
  
  org.jboss.logging.jboss-logging:3.3.1.Final: 
    Project:      JBoss Logging 3
    Version:      3.3.1.Final
    Available at: http://www.jboss.org
    Developed by: JBoss by Red Hat (http://www.jboss.org)
    License name: Apache License, version 2.0
  
  org.jboss.resteasy:3.6.2.Final: 
    Project: 
      - RESTEasy JAX-RS Implementation
      - RESTEasy Jackson 2 Provider
    Version:      3.6.2.Final
    Available at: http://rest-easy.org
    Developed by: JBoss by Red Hat (http://www.jboss.org)
    License name: Apache License, version 2.0
  
  org.jboss.spec.javax.annotation.jboss-annotations-api_1.2_spec:1.0.0.Final: 
    Project:      Common Annotations 1.2 API
    Version:      1.0.0.Final
    Available at: http://www.jboss.org
    Developed by: JBoss by Red Hat (http://www.jboss.org)
    License name: Common Development and Distribution License, version 1.0
  
  org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec:1.0.2.Final: 
    Project:      JAX-RS 2.1: The Java(TM) API for RESTful Web Services
    Version:      1.0.2.Final
    Available at: http://www.jboss.org
    Developed by: JBoss by Red Hat (http://www.jboss.org)
    License name: Common Development and Distribution License, version 1.0
  
  org.jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec:1.0.0.Final: 
    Project:      Java Architecture for XML Binding 2.3
    Version:      1.0.0.Final
    Available at: http://www.jboss.org
    Developed by: JBoss by Red Hat (http://www.jboss.org)
    License name: Common Development and Distribution License, version 1.1
  
  org.osgi.org.osgi.core:6.0.0: 
    Project:      org.osgi.core
    Version:      6.0.0
    Available at: http://www.osgi.org
    Developed by: OSGi Alliance (http://www.osgi.org)
    License name: Apache License, version 2.0
  
  org.ow2.asm:5.2: 
    Project:      ASM Core
    Version:      5.2
    Available at: http://asm.objectweb.org/
    Developed by: ObjectWeb (http://www.objectweb.org/)
    License name: BSD 3-Clause (New BSD) License
    Notice:       Copyright (c) 2000-2011 INRIA, France Telecom
  
  org.reactivestreams.reactive-streams:1.0.2: 
    Project:      reactive-streams
    Version:      1.0.2
    Available at: http://www.reactive-streams.org/
    License name: CC0
  
  org.reflections:0.9.10: 
    Project:      Reflections
    Version:      0.9.10
    Available at: http://github.com/ronmamo/reflections
    License name: BSD 3-Clause (New BSD) License
  
  org.slf4j:1.7.25: 
    Project:      Simple Logging Framework for Java
    Version:      1.7.25
    Available at: http://www.slf4j.org
    Developed by: QOS.ch (http://www.qos.ch)
    License name: MIT License
  
  org.yaml.snakeyaml:1.23: 
    Project:      SnakeYAML
    Version:      1.23
    Available at: http://www.snakeyaml.org
    License name: Apache License, version 2.0
  
  xmlpull:1.1.3.1: 
    Project:      XML Pull Parsing API
    Version:      1.1.3.1
    Available at: http://www.xmlpull.org
    License name: Public Domain
  
  xpp3.xpp3_min:1.1.4c: 
    Project:      MXP1: Xml Pull Parser 3rd Edition (XPP3)
    Version:      1.1.4c
    Available at: http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/
    Developed by: Extreme! Lab, Indiana University (http://www.extreme.indiana.edu/)
    License name: Indiana University Extreme! Lab Software License, vesion 1.1.1
    Notice:       Copyright (c) Extreme! Lab, Indiana University
  
