# ---
# 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 scooj
#-----------------------------------------------------------

SCOOJ_VERSION:    8f3534ba5a1b2fb8ea82a24eb0acedfcc6aca7b4
SCOOJ_URL_PREFIX: https://github.com/pmuellr/scooj/raw/${SCOOJ_VERSION}

#-----------------------------------------------------------
# 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}
