diff --git a/asterix-installer/src/main/licenses/LICENSE b/asterix-installer/src/main/licenses/LICENSE
index 943fd82..5af0060 100644
--- a/asterix-installer/src/main/licenses/LICENSE
+++ b/asterix-installer/src/main/licenses/LICENSE
@@ -209,252 +209,6 @@
    subcomponents is subject to the terms and condition of the following
    licenses.
 
-   Components under Apache License 2.0 are as follows:
-
-     - Apache Derby Database Engine and Embedded JDBC Driver (http://db.apache.org/derby/derby/)
-       repo/derby-10.10.1.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - JDO API (http://db.apache.org/jdo)
-       repo/jdo-api-3.0.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Rome HTTP Fetcher
-       repo/rome-fetcher-1.0.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - An open source Java toolkit for Amazon S3 (http://jets3t.s3.amazonaws.com/index.html)
-       repo/jets3t-0.6.1 in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - The Netty Project (http://www.jboss.org/netty/)
-       repo/netty-3.2.2.Final.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - The Netty Project (http://netty.io/)
-       repo/netty-3.6.2.Final.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - HttpClient (http://jakarta.apache.org/commons/httpclient/)
-       repo/commons-httpclient-3.0.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - HttpClient (http://hc.apache.org/httpcomponents-client)
-       repo/httpclient-4.3.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - HttpCore (http://hc.apache.org/httpcomponents-core-ga)
-       repo/httpcore-4.3.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - twitter4j-core (http://twitter4j.org/)
-       repo/twitter4j-core-4.0.3.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - twitter4j-stream (http://twitter4j.org/)
-       repo/twitter4j-stream-4.0.3.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: Continuation (http://www.eclipse.org/jetty/jetty-continuation)
-       repo/jetty-continuation-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: Http Utility (http://www.eclipse.org/jetty/jetty-http)
-       repo/jetty-http-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: IO Utility (http://www.eclipse.org/jetty/jetty-io)
-       repo/jetty-io-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: Security (http://www.eclipse.org/jetty/jetty-security)
-       repo/jetty-security-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: Server Core (http://www.eclipse.org/jetty)
-       repo/jetty-server-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: Servlet Handling (http://www.eclipse.org/jetty/jetty-servlet)
-       repo/jetty-servlet-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: Utilities (http://www.eclipse.org/jetty/jetty-util)
-       repo/jetty-util-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: Webapp Application Support (http://www.eclipse.org/jetty/jetty-webapp)
-       repo/jetty-webapp-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty :: XML utilities (http://www.eclipse.org/jetty/jetty-xml)
-       repo/jetty-xml-8.0.0.RC0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Servlet API (http://www.eclipse.org/jetty/jetty-parent/servlet-api)
-       repo/servlet-api-3.0.20100224.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - BoneCP :: Core Library (http://jolbox.com/bonecp)
-       repo/bonecp-0.8.0.RELEASE.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - FindBugs-jsr305 (http://findbugs.sourceforge.net/)
-       repo/jsr305-1.3.9.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Guava: Google Core Libraries for Java (http://code.google.com/p/guava-libraries/guava)
-       repo/guava-18.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - JSON.simple (http://code.google.com/p/json-simple/)
-       repo/json-simple-1.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Microsoft Windows Azure Client API (https://github.com/WindowsAzure/azure-sdk-for-java)
-       repo/microsoft-windowsazure-api-0.4.4.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - javax.inject (http://code.google.com/p/atinject/)
-       repo/javax.inject-1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Thrift (http://thrift.apache.org)
-       repo/libfb303-0.9.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Thrift (http://thrift.apache.org)
-       repo/libthrift-0.9.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - DataNucleus JDO API plugin (http://www.datanucleus.org)
-       repo/datanucleus-api-jdo-3.2.6.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - DataNucleus Core (http://www.datanucleus.org)
-       repo/datanucleus-core-3.2.10.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - DataNucleus RDBMS (http://www.datanucleus.org)
-       repo/datanucleus-rdbms-3.2.9.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - JAXB2 CommonsValue Constructor Plugin (http://java.net/projects/jaxb2-commons/pages/value-constructor)
-       repo/jaxb2-value-constructor-3.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - StAX API (http://stax.codehaus.org/)
-       repo/stax-api-1.0.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - StAX
-       repo/stax-1.1.1-dev.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Wicket Core (http://wicket.apache.org/wicket-core/wicket-core)
-       repo/wicket-core-1.5.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Wicket Request (http://maven.apache.org)
-       repo/wicket-request-1.5.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Wicket Util (http://maven.apache.org)
-       repo/wicket-util-1.5.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Hadoop Annotations
-       repo/hadoop-annotations-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Hadoop Auth
-       repo/hadoop-auth-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Hadoop Client
-       repo/hadoop-client-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Hadoop Common
-       repo/hadoop-common-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Hadoop Common (tests)
-       repo/hadoop-common-2.2.0-tests.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Hadoop HDFS
-       repo/hadoop-hdfs-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Hadoop HDFS
-       repo/hadoop-hdfs-2.2.0-tests.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-mapreduce-client-app
-       repo/hadoop-mapreduce-client-app-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-mapreduce-client-common
-       repo/hadoop-mapreduce-client-common-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-mapreduce-client-core
-       repo/hadoop-mapreduce-client-core-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-mapreduce-client-hs
-       repo/hadoop-mapreduce-client-hs-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-mapreduce-client-jobclient
-       repo/hadoop-mapreduce-client-jobclient-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-mapreduce-client-jobclient
-       repo/hadoop-mapreduce-client-jobclient-2.2.0-tests.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-mapreduce-client-shuffle
-       repo/hadoop-mapreduce-client-shuffle-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Hadoop Mini-Cluster
-       repo/hadoop-minicluster-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - zookeeper
-       repo/zookeeper-3.4.5.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-       and
-       lib/zookeeper-3.4.5.jar
-       and
-       .installer/zookeeper/lib/zookeeper-3.4.5.jar
-     - hadoop-yarn-api
-       repo/hadoop-yarn-api-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-yarn-client
-       repo/hadoop-yarn-client-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-yarn-common
-       repo/hadoop-yarn-common-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-yarn-server-common
-       repo/hadoop-yarn-server-common-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-yarn-server-nodemanager
-       repo/hadoop-yarn-server-nodemanager-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-yarn-server-resourcemanager
-       repo/hadoop-yarn-server-resourcemanager-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-yarn-server-tests
-       repo/hadoop-yarn-server-tests-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - hadoop-yarn-server-web-proxy
-       repo/hadoop-yarn-server-web-proxy-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Plexus Common Utilities (http://plexus.codehaus.org/plexus-utils)
-       repo/plexus-utils-3.0.7.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jettison
-       repo/jettison-1.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jackson (http://jackson.codehaus.org)
-       repo/jackson-core-asl-1.8.8.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - JAX-RS provider for JSON content type (http://jackson.codehaus.org)
-       repo/jackson-jaxrs-1.8.3.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Data Mapper for Jackson (http://jackson.codehaus.org)
-       repo/jackson-mapper-asl-1.9.12.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Xml Compatibility extensions for Jackson (http://jackson.codehaus.org)
-       repo/jackson-mapper-xc-1.8.3.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jackson-core (http://wiki.fasterxml.com/JacksonHome)
-       repo/jackson-core-2.2.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Google GuiceCore Library (http://code.google.com/p/google-guice/guice/)
-       repo/guice-3.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Google GuiceExtensionsServlet (http://code.google.com/p/google-guice/extensions-parent/guice-servlet/)
-       repo/guice-servlet-3.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty Server (http://jetty.mortbay.org/)
-       repo/jetty-6.1.26.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jetty Utilities (http://jetty.mortbay.org/)
-       repo/jetty-util-6.1.26.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Commons Configuration (http://commons.apache.org/${pom.artifactId.substring(8)}/)
-       repo/commons-configuration-1.6.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Digester (http://jakarta.apache.org/commons/digester/)
-       repo/commons-digester-1.8.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - EL (http://jakarta.apache.org/commons/el/)
-       repo/commons-el-1.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Commons BeanUtils
-       repo/commons-beanutils-1.7.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Commons BeanUtils Core (http://commons.apache.org/beanutils/)
-       repo/commons-beanutils-core-1.8.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Commons CLI (http://commons.apache.org/cli/)
-       repo/commons-cli-1.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-       and
-       .installer/hadoop-0.20.2/lib/commons-cli-1.2.jar
-     - Apache Commons Codec (http://commons.apache.org/codec/commons-codec)
-       repo/commons-codec-1.4.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Commons Collections (http://commons.apache.org/collections/commons-collections)
-       commons-daemon:commons-daemon:jar:1.0.13
-     - Commons Daemon (http://commons.apache.org/daemon/)
-       repo/commons-daemon-1.0.13.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Commons IO (http://commons.apache.org/io/)
-       repo/commons-io-2.4.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-       and
-       lib/commons-io-2.4.jar
-     - Commons Lang (http://commons.apache.org/lang/)
-       repo/commons-lang-2.5.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Commons Logging (http://commons.apache.org/logging)
-       repo/commons-logging-1.0.5.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-       and
-       .installer/hadoop-0.20.2/lib/commons-logging-1.1.1.jar
-     - Apache Commons Logging Api (http://commons.apache.org/logging)
-       repo/commons-logging-api-1.0.4.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Commons Net (http://commons.apache.org/net/)
-       repo/commons-net-3.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Log4j (http://logging.apache.org:80/log4j/1.2/log4j)
-       repo/log4j-1.2.17.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-       and
-       lib/log4j-1.2.17.jar
-       and
-       .installer/zookeeper/lib/log4j-1.2.17.jar
-     - Apache Ant Core (http://ant.apache.org/)
-       repo/ant-1.9.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Ant Launcher (http://ant.apache.org/)
-       repo/ant-launcher-1.9.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Avro (http://avro.apache.org)
-       repo/avro-1.7.5.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Commons Compress (http://commons.apache.org/compress/)
-       repo/commons-compress-1.4.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Commons Lang (http://commons.apache.org/lang/)
-       repo/commons-lang3-3.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Commons Math (http://commons.apache.org/math/)
-       repo/commons-math-2.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Ant Utilities (http://hive.apache.org/hive-ant)
-       repo/hive-ant-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Common (http://hive.apache.org/hive-common)
-       repo/hive-common-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Query Language (http://hive.apache.org/hive-exec)
-       repo/hive-exec-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Metastore (http://hive.apache.org/hive-metastore)
-       repo/hive-metastore-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Serde (http://hive.apache.org/hive-serde)
-       repo/hive-serde-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Shims (http://hive.apache.org/hive-shims)
-       repo/hive-shims-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Shims 0.20 (http://hive.apache.org/hive-shims-0.20)
-       repo/hive-shims-0.20-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Shims 0.20S (http://hive.apache.org/hive-shims-0.20S)
-       repo/hive-shims-0.20S-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Shims 0.23 (http://hive.apache.org/hive-shims-0.23)
-       repo/hive-shims-0.23-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Shims Common (http://hive.apache.org/hive-shims-common)
-       repo/hive-shims-common-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Hive Shims Secure Common (http://hive.apache.org/hive-shims-common-secure)
-       repo/hive-shims-secure-common-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Apache Velocity (http://velocity.apache.org/engine/releases/velocity-1.5/)
-       repo/velocity-1.5.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Jakarta ORO
-       repo/oro-2.0.8.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - ROME
-       repo/rome-1.0.1-modified-01.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - jasper-compiler (http://tomcat.apache.org/jasper-compiler)
-       repo/jasper-compiler-5.5.23.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - jasper-runtime (http://tomcat.apache.org/jasper-runtime)
-       repo/jasper-runtime-5.5.23.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Xerces2 Java Parser (http://xerces.apache.org/xerces2-j)
-       repo/xercesImpl-2.9.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - XML APIs (http://xml.apache.org/commons/components/external/xml-apis)
-       repo/xml-apis-1.3.04.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Groovy (http://groovy.codehaus.org/)
-       repo/groovy-all-2.1.6.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-     - Snappy for Java (http://github.com/xerial/snappy-java/)
-       repo/snappy-java-1.0.4.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-   ===
 
    Component(s):
    - Java Servlet API (http://servlet-spec.java.n)
diff --git a/asterix-installer/src/main/licenses/NOTICE b/asterix-installer/src/main/licenses/NOTICE
index 7c12f0c..a047a44 100644
--- a/asterix-installer/src/main/licenses/NOTICE
+++ b/asterix-installer/src/main/licenses/NOTICE
@@ -1,4 +1,4 @@
-Apache AsterixDB
+Apache AsterixDB Managix Installer
 Copyright 2016 The Apache Software Foundation
 
 This product includes software developed at
@@ -6,339 +6,135 @@
 
 AsterixDB utilizes many libraries, which come with the following applicable NOTICE(s):
 
- - repo/algebricks-common-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-algebricks-common
-Copyright 2016 The Apache Software Foundation
-
- - repo/algebricks-compiler-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-algebricks-compiler
-Copyright 2016 The Apache Software Foundation
-
- - repo/algebricks-core-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-algebricks-core
-Copyright 2016 The Apache Software Foundation
-
- - repo/algebricks-data-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-algebricks-data
-Copyright 2016 The Apache Software Foundation
-
- - repo/algebricks-rewriter-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-algebricks-rewriter
-Copyright 2016 The Apache Software Foundation
-
- - repo/algebricks-runtime-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-algebricks-runtime
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-algebra-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-algebra
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-app-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-app
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-aql-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-aql
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-common-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-common
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-events-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-events
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-external-data-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-external-data
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-fuzzyjoin-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-fuzzyjoin
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-metadata-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-metadata
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-om-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-om
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-runtime-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-runtime
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-server-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-server
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-tools-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-tools
-Copyright 2016 The Apache Software Foundation
-
- - repo/asterix-transactions-0.8.8-SNAPSHOT.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-asterix-transactions
-Copyright 2016 The Apache Software Foundation
-
  - repo/avro-1.7.4.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Apache Avro
-Copyright 2009-2013 The Apache Software Foundation
+    Apache Avro
+    Copyright 2009-2013 The Apache Software Foundation
 
  - repo/commons-logging-1.1.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Commons Logging
-Copyright 2001-2007 The Apache Software Foundation
+    Commons Logging
+    Copyright 2001-2007 The Apache Software Foundation
 
  - repo/derby-10.10.1.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Apache Derby
-Copyright 2004-2013 The Apache Software Foundation
+    Apache Derby
+    Copyright 2004-2013 The Apache Software Foundation
 
-=========================================================================
+    =========================================================================
 
-Portions of Derby were originally developed by
-International Business Machines Corporation and are
-licensed to the Apache Software Foundation under the
-"Software Grant and Corporate Contribution License Agreement",
-informally known as the "Derby CLA".
-The following copyright notice(s) were affixed to portions of the code
-with which this file is now or was at one time distributed
-and are placed here unaltered.
+    Portions of Derby were originally developed by
+    International Business Machines Corporation and are
+    licensed to the Apache Software Foundation under the
+    "Software Grant and Corporate Contribution License Agreement",
+    informally known as the "Derby CLA".
+    The following copyright notice(s) were affixed to portions of the code
+    with which this file is now or was at one time distributed
+    and are placed here unaltered.
 
-(C) Copyright 1997,2004 International Business Machines Corporation.  All rights reserved.
+    (C) Copyright 1997,2004 International Business Machines Corporation.  All rights reserved.
 
-(C) Copyright IBM Corp. 2003. 
+    (C) Copyright IBM Corp. 2003. 
 
 
-=========================================================================
+    =========================================================================
 
 
-The JDBC apis for small devices and JDBC3 (under java/stubs/jsr169 and
-java/stubs/jdbc3) were produced by trimming sources supplied by the
-Apache Harmony project. In addition, the Harmony SerialBlob and
-SerialClob implementations are used. The following notice covers the Harmony sources:
+    The JDBC apis for small devices and JDBC3 (under java/stubs/jsr169 and
+    java/stubs/jdbc3) were produced by trimming sources supplied by the
+    Apache Harmony project. In addition, the Harmony SerialBlob and
+    SerialClob implementations are used. The following notice covers the Harmony sources:
 
-Portions of Harmony were originally developed by
-Intel Corporation and are licensed to the Apache Software
-Foundation under the "Software Grant and Corporate Contribution
-License Agreement", informally known as the "Intel Harmony CLA".
+    Portions of Harmony were originally developed by
+    Intel Corporation and are licensed to the Apache Software
+    Foundation under the "Software Grant and Corporate Contribution
+    License Agreement", informally known as the "Intel Harmony CLA".
 
 
  - repo/guice-3.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Google Guice - Core Library
-Copyright 2006-2011 Google, Inc.
+    Google Guice - Core Library
+    Copyright 2006-2011 Google, Inc.
 
  - repo/guice-servlet-3.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Google Guice - Extensions - Servlet
-Copyright 2006-2011 Google, Inc.
+    Google Guice - Extensions - Servlet
+    Copyright 2006-2011 Google, Inc.
 
  - repo/hive-ant-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Ant Utilities
-Copyright 2014 The Apache Software Foundation
+    Hive Ant Utilities
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-common-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Common
-Copyright 2014 The Apache Software Foundation
+    Hive Common
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-exec-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Query Language
-Copyright 2014 The Apache Software Foundation
+    Hive Query Language
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-metastore-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Metastore
-Copyright 2014 The Apache Software Foundation
+    Hive Metastore
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-serde-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Serde
-Copyright 2014 The Apache Software Foundation
+    Hive Serde
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-shims-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Shims
-Copyright 2014 The Apache Software Foundation
+    Hive Shims
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-shims-0.20-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Shims 0.20
-Copyright 2014 The Apache Software Foundation
+    Hive Shims 0.20
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-shims-0.20S-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Shims 0.20S
-Copyright 2014 The Apache Software Foundation
+    Hive Shims 0.20S
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-shims-0.23-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Shims 0.23
-Copyright 2014 The Apache Software Foundation
+    Hive Shims 0.23
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-shims-common-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Shims Common
-Copyright 2014 The Apache Software Foundation
+    Hive Shims Common
+    Copyright 2014 The Apache Software Foundation
 
  - repo/hive-shims-common-secure-0.13.0.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Hive Shims Secure Common
-Copyright 2014 The Apache Software Foundation
-
- - repo/hyracks-api-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-api
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-client-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-client
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-comm-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-comm
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-control-cc-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-control-cc
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-control-common-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-control-common
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-control-nc-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-control-nc
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-dataflow-common-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-dataflow-common
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-dataflow-std-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-dataflow-std
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-data-std-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-data-std
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-hdfs-2.x-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-hdfs-2.x
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-hdfs-core-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-hdfs-core
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-ipc-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-ipc
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-net-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-net
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-am-bloomfilter-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-am-bloomfilter
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-am-btree-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-am-btree
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-am-common-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-am-common
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-am-lsm-btree-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-am-lsm-btree
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-am-lsm-common-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-am-lsm-common
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-am-lsm-invertedindex-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-am-lsm-invertedindex
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-am-lsm-rtree-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-am-lsm-rtree
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-am-rtree-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-am-rtree
-Copyright 2016 The Apache Software Foundation
-
- - repo/hyracks-storage-common-0.2.17-incubating.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-
-hyracks-storage-common
-Copyright 2016 The Apache Software Foundation
+    Hive Shims Secure Common
+    Copyright 2014 The Apache Software Foundation
 
  - repo/plexus-utils-3.0.7.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-This product includes software developed by the Indiana University 
-  Extreme! Lab (http://www.extreme.indiana.edu/)
+    This product includes software developed by the Indiana University 
+      Extreme! Lab (http://www.extreme.indiana.edu/)
 
-This product includes software developed by
-ThoughtWorks (http://www.thoughtworks.com).
+    This product includes software developed by
+    ThoughtWorks (http://www.thoughtworks.com).
 
-This product includes software developed by
-javolution (http://javolution.org/).
+    This product includes software developed by
+    javolution (http://javolution.org/).
 
-This product includes software developed by
-Rome (https://rome.dev.java.net/).
+    This product includes software developed by
+    Rome (https://rome.dev.java.net/).
 
 - repo/velocity-1.5.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
-Apache Velocity
 
-Copyright (C) 2000-2007 The Apache Software Foundation
+    Apache Velocity
+
+    Copyright (C) 2000-2007 The Apache Software Foundation
 
  - repo/wicket-core-1.5.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
    Apache Wicket
@@ -371,13 +167,13 @@
    [1]: http://the-stickman.com/web-development/javascript/upload-multiple-files-with-a-single-file-element/
  - repo/wicket-request-1.5.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Wicket Request
-Copyright 2006-2011 Apache Software Foundation
+    Wicket Request
+    Copyright 2006-2011 Apache Software Foundation
 
  - repo/wicket-util-1.5.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
-Wicket Util
-Copyright 2006-2011 Apache Software Foundation
+    Wicket Util
+    Copyright 2006-2011 Apache Software Foundation
 
  - repo/xercesImpl-2.9.1.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
 
@@ -401,3 +197,526 @@
      - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
      - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
      - software copyright (c) 2000 World Wide Web Consortium, http://www.w3.org
+
+ - repo/httpclient-4.2.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
+
+    Apache HttpComponents HttpClient
+    Copyright 1999-2012 The Apache Software Foundation
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/httpcore-4.2.2.jar in asterix/asterix-server-0.8.8-binary-assembly.zip
+
+    Apache HttpComponents HttpCore
+    Copyright 2005-2012 The Apache Software Foundation
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+    This project contains annotations derived from JCIP-ANNOTATIONS
+    Copyright (c) 2005 Brian Goetz and Tim Peierls. See http://www.jcip.net
+
+- repo/ant-1.9.1.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+   Apache Ant
+   Copyright 1999-2013 The Apache Software Foundation
+
+   The <sync> task is based on code Copyright (c) 2002, Landmark
+   Graphics Corp that has been kindly donated to the Apache Software
+   Foundation.
+ - repo/ant-launcher-1.9.1.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+   Apache Ant
+   Copyright 1999-2013 The Apache Software Foundation
+
+   The <sync> task is based on code Copyright (c) 2002, Landmark
+   Graphics Corp that has been kindly donated to the Apache Software
+   Foundation.
+ - repo/commons-beanutils-1.7.0.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/commons-beanutils-core-1.8.0.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+    Apache Commons BeanUtils
+
+    Copyright 2000-2008 The Apache Software Foundation
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/commons-cli-1.2.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+   and .installer/hadoop-0.20.2/lib/commons-cli-1.2.jar
+
+    Apache Commons CLI
+    Copyright 2001-2009 The Apache Software Foundation
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/commons-codec-1.4.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons Codec
+
+    Copyright 2002-2009 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+
+ - repo/commons-collections-3.2.1.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons Collections
+
+    Copyright 2001-2008 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/commons-compress-1.4.1.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons Compress
+    Copyright 2002-2012 The Apache Software Foundation
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+     - repo/commons-configuration-1.6.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+    Apache Commons Configuration
+
+    Copyright 2001-2008 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/commons-daemon-1.0.13.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons Daemon
+    Copyright 1999-2013 The Apache Software Foundation
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+     - repo/commons-digester-1.8.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+    Apache Jakarta Commons Digester
+
+    Copyright 2001-2006 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/commons-io-2.4.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+   and lib/commons-io-2.4.jar
+
+    Apache Commons IO
+
+    Copyright 2002-2012 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+
+
+ - repo/commons-lang-2.5.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons Lang
+
+    Copyright 2001-2010 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/commons-lang3-3.1.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons Lang
+    Copyright 2001-2011 The Apache Software Foundation
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+    This product includes software from the Spring Framework,
+    under the Apache License 2.0 (see: StringUtils.containsWhitespace())
+
+ - repo/commons-logging-api-1.0.4.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - .installer/hadoop-0.20.2/lib/commons-logging--1.0.4.jar
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/commons-math-2.1.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons Math
+    Copyright 2001-2010 The Apache Software Foundation
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+    ===============================================================================
+    The LinearConstraint, LinearObjectiveFunction, LinearOptimizer,
+    RelationShip, SimplexSolver and SimplexTableau classes in package
+    org.apache.commons.math.optimization.linear include software developed by
+    Benjamin McCann (http://www.benmccann.com) and distributed with
+    the following copyright: Copyright 2009 Google Inc.
+    ===============================================================================
+
+    This product includes software developed by the
+    University of Chicago, as Operator of Argonne National
+    Laboratory.
+    The LevenbergMarquardtOptimizer class in package
+    org.apache.commons.math.optimization.general includes software
+    translated from the lmder, lmpar and qrsolv Fortran routines
+    from the Minpack package
+    Minpack Copyright Notice (1999) University of Chicago.  All rights reserved
+    ===============================================================================
+
+    The GraggBulirschStoerIntegrator class in package
+    org.apache.commons.math.ode.nonstiff includes software translated
+    from the odex Fortran routine developed by E. Hairer and G. Wanner.
+    Original source copyright:
+    Copyright (c) 2004, Ernst Hairer
+    ===============================================================================
+
+    The EigenDecompositionImpl class in package
+    org.apache.commons.math.linear includes software translated
+    from some LAPACK Fortran routines.  Original source copyright:
+    Copyright (c) 1992-2008 The University of Tennessee.  All rights reserved.
+    ===============================================================================
+
+    The MersenneTwister class in package org.apache.commons.math.random
+    includes software translated from the 2002-01-26 version of
+    the Mersenne-Twister generator written in C by Makoto Matsumoto and Takuji
+    Nishimura. Original source copyright:
+    Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
+    All rights reserved
+    ===============================================================================
+
+    The complete text of licenses and disclaimers associated with the the original
+    sources enumerated above at the time of code translation are in the LICENSE.txt
+    file.
+
+ - repo/commons-net-3.1.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons Net
+
+    Copyright 2001-2012 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+
+
+ - repo/datanucleus-api-jdo-3.2.6.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    =========================================================================
+    ==  NOTICE file corresponding to section 4(d) of the Apache License,   ==
+    ==  Version 2.0, in this case for the DataNucleus distribution.        ==
+    =========================================================================
+
+    ===================================================================
+    This product includes software developed by many individuals,
+    including the following:
+    ===================================================================
+    Erik Bengtson
+    Andy Jefferson
+
+
+    ===================================================================
+    This product has included contributions from some individuals,
+    including the following:
+    ===================================================================
+
+ - repo/datanucleus-core-3.2.10.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    =========================================================================
+    ==  NOTICE file corresponding to section 4(d) of the Apache License,   ==
+    ==  Version 2.0, in this case for the DataNucleus distribution.        ==
+    =========================================================================
+
+    ===================================================================
+    This product includes software developed by many individuals,
+    including the following:
+    ===================================================================
+    Erik Bengtson
+    Andy Jefferson
+
+
+    ===================================================================
+    This product has included contributions from some individuals,
+    including the following:
+    ===================================================================
+    Joerg von Frantzius
+    Thomas Marti
+    Barry Haddow
+    Marco Schulze
+    Ralph Ullrich
+    David Ezzio
+    Brendan de Beer
+    David Eaves
+    Martin Taal
+    Tony Lai
+    Roland Szabo
+    Marcus Mennemeier
+    Xuan Baldauf
+    Eric Sultan
+
+
+    ===================================================================
+    This product also includes software developed by the TJDO project
+    (http://tjdo.sourceforge.net/).
+    ===================================================================
+
+ - repo/datanucleus-rdbms-3.2.9.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+    =========================================================================
+    ==  NOTICE file corresponding to section 4(d) of the Apache License,   ==
+    ==  Version 2.0, in this case for the DataNucleus distribution.        ==
+    =========================================================================
+
+    ===================================================================
+    This product includes software developed by many individuals,
+    including the following:
+    ===================================================================
+    Andy Jefferson
+    Erik Bengtson
+    Joerg von Frantzius
+    Marco Schulze
+
+
+    ===================================================================
+    This product has included contributions from some individuals,
+    including the following:
+    ===================================================================
+    Barry Haddow
+    Ralph Ullrich
+    David Ezzio
+    Brendan de Beer
+    David Eaves
+    Martin Taal
+    Tony Lai
+    Roland Szabo
+    Anton Troshin (Timesten)
+
+
+    ===================================================================
+    This product also includes software developed by the TJDO project
+    (http://tjdo.sourceforge.net/).
+    ===================================================================
+
+    ===================================================================
+    This product also includes software developed by the Apache Commons project
+    (http://commons.apache.org/).
+    ===================================================================
+
+ - repo/groovy-all-2.1.6.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Commons CLI
+    Copyright 2001-2009 The Apache Software Foundation
+
+    This product includes software developed by
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/hive-exec-0.13.0.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Thrift
+    Copyright 2006-2010 The Apache Software Foundation.
+
+    This product includes software developed at
+    The Apache Software Foundation (http://www.apache.org/). 
+
+ - repo/httpclient-4.2.2.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache HttpComponents HttpClient
+
+    Copyright 1999-2012 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+
+ - repo/httpcore-4.2.2.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache HttpComponents HttpCore
+
+    Copyright 2005-2012 The Apache Software Foundation
+
+
+
+    This product includes software developed by
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+
+
+    This project contains annotations derived from JCIP-ANNOTATIONS
+
+    Copyright (c) 2005 Brian Goetz and Tim Peierls. See http://www.jcip.net
+
+ - repo/jdo2-api-2.3-20090302111651.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Java Data Objects (JDO)
+    Copyright 2005-2006 The Apache Software Foundation
+
+    This product includes software developed at
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/jdo-api-3.0.1.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Java Data Objects (JDO)
+
+    Copyright 2005-2006 The Apache Software Foundation
+
+
+
+    This product includes software developed at
+
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/libthrift-0.9.0.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+    Apache Thrift
+    Copyright 2006-2010 The Apache Software Foundation.
+
+    This product includes software developed at
+    The Apache Software Foundation (http://www.apache.org/).
+
+ - repo/netty-3.2.2.Final.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+                                The Netty Project
+                                =================
+
+    Please visit the Netty web site for more information:
+
+      * http://www.jboss.org/netty/
+
+    Copyright 2009 Red Hat, Inc.
+
+    Red Hat licenses this product to you under the Apache License, version 2.0 (the
+    "License"); you may not use this product except in compliance with the License.
+    You may obtain a copy of the License at:
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software distributed
+    under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+    CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations under the License.
+
+    Also, please refer to each LICENSE.<component>.txt file, which is located in
+    the 'license' directory of the distribution file, for the license terms of the
+    components that this product depends on.
+
+    -------------------------------------------------------------------------------
+    This product contains the extensions to Java Collections Framework which has
+    been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+      * LICENSE:
+        * license/LICENSE.jsr177y.txt (Public Domain)
+      * HOMEPAGE:
+        * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+        * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+    This product contains a modified version of Robert Harder's Public Domain
+    Base64 Encoder and Decoder, which can be obtained at:
+
+      * LICENSE:
+        * license/LICENSE.base64.txt (Public Domain)
+      * HOMEPAGE:
+        * http://iharder.sourceforge.net/current/java/base64/
+
+    This product contains a modified version of 'JZlib', a re-implementation of
+    zlib in pure Java, which can be obtained at:
+
+      * LICENSE:
+        * license/LICENSE.jzlib.txt (BSD Style License)
+      * HOMEPAGE:
+        * http://www.jcraft.com/jzlib/
+
+ - repo/netty-3.6.2.Final.jar in asterix/asterix-server-0.8.8-incubating-binary-assembly.zip
+
+                                The Netty Project
+                                =================
+
+    Please visit the Netty web site for more information:
+
+      * http://netty.io/
+
+    Copyright 2011 The Netty Project
+
+    The Netty Project licenses this file to you under the Apache License,
+    version 2.0 (the "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at:
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+    License for the specific language governing permissions and limitations
+    under the License.
+
+    Also, please refer to each LICENSE.<component>.txt file, which is located in
+    the 'license' directory of the distribution file, for the license terms of the
+    components that this product depends on.
+
+    -------------------------------------------------------------------------------
+    This product contains the extensions to Java Collections Framework which has
+    been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+      * LICENSE:
+        * license/LICENSE.jsr166y.txt (Public Domain)
+      * HOMEPAGE:
+        * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+        * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+    This product contains a modified version of Robert Harder's Public Domain
+    Base64 Encoder and Decoder, which can be obtained at:
+
+      * LICENSE:
+        * license/LICENSE.base64.txt (Public Domain)
+      * HOMEPAGE:
+        * http://iharder.sourceforge.net/current/java/base64/
+
+    This product contains a modified version of 'JZlib', a re-implementation of
+    zlib in pure Java, which can be obtained at:
+
+      * LICENSE:
+        * license/LICENSE.jzlib.txt (BSD Style License)
+      * HOMEPAGE:
+        * http://www.jcraft.com/jzlib/
+
+- lib/log4j-1.2.15.jar
+
+    Apache log4j
+    Copyright 2007 The Apache Software Foundation
+
+    This product includes software developed at
+    The Apache Software Foundation (http://www.apache.org/).
+
