# ---
# 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://www.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:           http://repo1.maven.org/maven2/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
JAVAX_SERVLET_VERSION_IMPL: 6.1H.8
JAVAX_SERVLET_URL_PREFIX:   http://repo1.maven.org/maven2/org/mortbay/jetty

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

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

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

#-----------------------------------------------------------
# location of scooj
#-----------------------------------------------------------

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

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

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