# ---
# weinre is available under *either* the terms of the modified BSD license *or* the
# MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
#
# Copyright (c) 2011 IBM Corporation
# ---

#-----------------------------------------------------------
# location of WebKit Web Inspector
#-----------------------------------------------------------

#WEBKIT_VERSION:         r67358
#WEBKIT_VERSION:         r70098
#WEBKIT_VERSION:         r76802
#WEBKIT_VERSION:         r77127
#WEBKIT_VERSION:         r77819
WEBKIT_VERSION:          r78584
WEBKIT_URL_PREFIX:       https://svn.webkit.org/repository/webkit/trunk

#-----------------------------------------------------------
# location of Apache Commons CLI
#-----------------------------------------------------------

CLI_VERSION:    1.2
CLI_URL_PREFIX: http://www.apache.org/dist/commons/cli/

CLI_URL:        ${CLI_URL_PREFIX}/binaries/commons-cli-${CLI_VERSION}-bin.zip
CLI_BASENAME:   commons-cli-${CLI_VERSION}/commons-cli-${CLI_VERSION}

#-----------------------------------------------------------
# location of JSON4J
#-----------------------------------------------------------

JSON4J_VERSION:    1.1.2-incubating
JSON4J_URL_PREFIX: http://archive.apache.org/dist/incubator/wink/

JSON4J_BIN_URL:    ${JSON4J_URL_PREFIX}/${JSON4J_VERSION}/apache-wink-${JSON4J_VERSION}.zip
JSON4J_SRC_URL:    ${JSON4J_URL_PREFIX}/${JSON4J_VERSION}/apache-wink-${JSON4J_VERSION}-src.zip

#-----------------------------------------------------------
# location of Eclipse Jetty
#-----------------------------------------------------------

JETTY_VERSION:              7.1.6.v20100715
JETTY_URL_PREFIX:           https://oss.sonatype.org/content/groups/jetty/org/eclipse/jetty/

JETTY_SRC_JAR_NAME:         jetty-all-server-${JETTY_VERSION}-sources.jar
JETTY_SRC_URL:              ${JETTY_URL_PREFIX}/aggregate/jetty-all-server/${JETTY_VERSION}/${JETTY_SRC_JAR_NAME}

JETTY_BIN_JAR_NAME:         jetty-all-server-${JETTY_VERSION}.jar
JETTY_BIN_URL:              ${JETTY_URL_PREFIX}/aggregate/jetty-all-server/${JETTY_VERSION}/${JETTY_BIN_JAR_NAME}

#-----------------------------------------------------------
# location of servlet API
#-----------------------------------------------------------

JAVAX_SERVLET_VERSION:      2.5-20110124
JAVAX_SERVLET_VERSION_IMPL: 6.1H.8
JAVAX_SERVLET_URL_PREFIX:   https://oss.sonatype.org/content/groups/jetty/org/mortbay/jetty/servlet-api/

JAVAX_SERVLET_JAR_NAME:     servlet-api-${JAVAX_SERVLET_VERSION}.jar
JAVAX_SERVLET_URL:          ${JAVAX_SERVLET_URL_PREFIX}/${JAVAX_SERVLET_VERSION}/${JAVAX_SERVLET_JAR_NAME}

#-----------------------------------------------------------
# location of Eclipse SWT
#-----------------------------------------------------------

SWT_VERSION_MAJOR: 3.6
SWT_VERSION:       ${SWT_VERSION_MAJOR}-201006080911
SWT_URL_PREFIX:    http://archive.eclipse.org/eclipse/downloads/drops/R-${SWT_VERSION}

#-----------------------------------------------------------
# location of CoffeeScript
#-----------------------------------------------------------

COFFEESCRIPT_VERSION:    1.1.2

#-----------------------------------------------------------
# location of json2
#-----------------------------------------------------------

JSON2_VERSION:    8e0b15cb492f63067a88ad786e4d5fc0fa89a241
JSON2_URL_PREFIX: https://github.com/douglascrockford/JSON-js/raw/${JSON2_VERSION}

#-----------------------------------------------------------
# location of modjewel
#-----------------------------------------------------------

MODJEWEL_VERSION:    48f3eb797850e5ab3e2132b19a1db4797559efe7
MODJEWEL_URL_PREFIX: https://github.com/pmuellr/modjewel/raw/${MODJEWEL_VERSION}
