# -------------------------------------------------------------------
# build.properties.sample
#
# This is an example "build.properties" file, used to customize 
# building Jakarta Tomcat Connectors Util for your local environment.  
# Make any changes you need, and rename this file to 
# "build.properties" 
#
# $Id$
# -------------------------------------------------------------------


# -------------------------------------------------------------------
# CONFIGURATION OPTIONS
# -------------------------------------------------------------------

# 


# -------------------------------------------------------------------
# EXTERNAL DEPENDENCIES 
# -------------------------------------------------------------------

# ----- (optional) Java Secure Sockets Extension (JSSE), v1.0.2 or later -----
jsse.home=${base.path}/jsse1.0.2
jsse.lib=${jsse.home}/lib


# ----- (optional) PureTLS Extension -----
puretls.home=${base.path}/puretls-0.9b2
puretls.lib=${puretls.home}/build
puretls.jar=${puretls.lib}/puretls.jar
