# ---
# 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) 2010, 2011 IBM Corporation
# ---

#------------------------------------------------------------------------------
# example of a personal.properties file
#------------------------------------------------------------------------------
# Create a file called personal.properties in this directory, and it will
# you to override property settings during the build.  
# 
# The personal.properties file is set to not be stored in the SCM.
#------------------------------------------------------------------------------

BUILDER:      Your Name in Lights

USE_GROWL:    true

USE_JAVAC:    false

#------------------------------------------------------------------------------
# the libraries commented out below are particularly slow to get from their
# originating locations, and are good to cache locally.  The definitions 
# override those in vendor.properties
#------------------------------------------------------------------------------

#CACHED_LIBRARIES:          file:///Users/me/Sites/weinre-cached-libraries

#SWT_URL_PREFIX:            ${CACHED_LIBRARIES}
#JETTY_URL_PREFIX:          ${CACHED_LIBRARIES}/jetty
#JAVAX_SERVLET_URL_PREFIX:  ${CACHED_LIBRARIES}/jetty
#JSON4J_URL_PREFIX:         ${CACHED_LIBRARIES}/wink
