# -----------------------------------------------------------------------------
# build.properties.default
#
# This is an example "build.properties" file, used to customize building Tomcat
# for your local environment.  It defines the location of all external
# modules that Tomcat depends on.  Copy this file to "build.properties"
# in the top-level source directory, and customize it as needed.
#
# $Id$
# -----------------------------------------------------------------------------

# ----- Vesion Control Flags -----
version.major=5
version.minor=5
version.build=34
version.patch=0
#Set the pretty version name
version=5.5.34

# ----- Compile Control Flags -----
compile.debug=on
compile.deprecation=off
compile.optimize=off
compile.source=1.4
compile.target=1.4


# ----- Build Control Flags

#Build all components
#full.dist=on

#Hide configuration flags display
#flags.hide=on


# ----- Proxy setup -----
#proxy.host=proxy.domain
#proxy.port=8080
#proxy.use=on


# ----- Default Base Path for Dependent Packages -----
# Please note this path must be absolute, not relative,
# as it is referenced with different working directory
# contexts by the various build scripts.
base.path=/usr/share/java
#base.path=C:/path/to/the/repository
#base.path=/usr/local

# ----- Commons files base location -----
base-commons.loc=http://archive.apache.org/dist/commons

# ----- Logging files base location -----
base-logging.loc=http://archive.apache.org/dist/logging

# ----- Xerces files base location -----
base-xerces.loc=http://archive.apache.org/dist/xerces

# ----- Struts files base location -----
base-struts.loc=http://archive.apache.org/dist/struts

# ----- Sourceforge files base location -----
base-sf.loc=http://switch.dl.sourceforge.net/sourceforge
#base-sf.loc=http://heanet.dl.sourceforge.net/sourceforge
#base-sf.loc=http://internap.dl.sourceforge.net/sourceforge

# ----- Additional Tomcat files base location -----
base-tomcat.loc=http://archive.apache.org/dist/tomcat

# ----- Additional Optional-but-Required-for-Release files base location -----
activation.loc=http://people.apache.org/~jim/tomcat-5.5-opt-jars/jaf-1.1.1/activation.jar
mail.loc=http://people.apache.org/~jim/tomcat-5.5-opt-jars/javamail-1.4.1/mail.jar

# --------------------------------------------------
#                REQUIRED LIBRARIES
# --------------------------------------------------


# ----- Commons Beanutils, version 1.4 or later -----
commons-beanutils.home=${base.path}/commons-beanutils-1.7.0
commons-beanutils.lib=${commons-beanutils.home}
commons-beanutils.jar=${commons-beanutils.lib}/commons-beanutils.jar
commons-beanutils.loc=${base-commons.loc}/beanutils/binaries/commons-beanutils-1.7.0.tar.gz


# ----- Commons Launcher, version 0.9 or later -----
commons-launcher.home=${base.path}/commons-launcher
commons-launcher.lib=${commons-launcher.home}
commons-launcher.bin=${commons-launcher.home}/bin
commons-launcher.jar=${commons-launcher.bin}/commons-launcher.jar
commons-launcher.bootstrap.class=${commons-launcher.bin}/LauncherBootstrap.class
commons-launcher.loc=${base-commons.loc}/launcher/binaries/commons-launcher-1.1.tar.gz


# ----- Commons Daemon, version 1.0-Alpha or later -----
commons-daemon.version=1.0.7
commons-daemon.home=${base.path}/commons-daemon-${commons-daemon.version}
commons-daemon.jar=${commons-daemon.home}/commons-daemon-${commons-daemon.version}.jar
commons-daemon.native.win.home=${commons-daemon.home}/windows
commons-daemon.native.win.mgr.exe=${commons-daemon.native.win.home}/prunmgr.exe
commons-daemon.native.src.tgz=${commons-daemon.home}/commons-daemon-${commons-daemon.version}-native-src.tar.gz
commons-daemon.native.win.zip=${commons-daemon.home}/commons-daemon-${commons-daemon.version}-bin-windows.zip
commons-daemon.bin.loc=${base-commons.loc}/daemon/binaries/commons-daemon-${commons-daemon.version}-bin.tar.gz
commons-daemon.native.src.loc=${base-commons.loc}/daemon/source/commons-daemon-${commons-daemon.version}-native-src.tar.gz
commons-daemon.native.win.loc=${base-commons.loc}/daemon/binaries/windows/commons-daemon-${commons-daemon.version}-bin-windows.zip


# ----- Commons Digester, version 1.4 or later -----
commons-digester.home=${base.path}/commons-digester-1.8
commons-digester.lib=${commons-digester.home}
commons-digester.jar=${commons-digester.lib}/commons-digester-1.8.jar
commons-digester.loc=${base-commons.loc}/digester/binaries/commons-digester-1.8.tar.gz


# ----- Commons Expression Language (EL), version 1.0 or later -----
commons-el.home=${base.path}/commons-el-1.0
commons-el.lib=${commons-el.home}
commons-el.jar=${commons-el.lib}/commons-el.jar
commons-el.loc=${base-commons.loc}/el/binaries/commons-el-1.0.tar.gz


# ----- Commons Logging, version 1.0.1 or later -----
# Warning: If the version number here changes, several other files have to be updated.
# Search the sources for "commons-logging-api-1.1.1.jar"
# -> tomcat.nsi, bootstrap.MF, catalina.policy
commons-logging.home=${base.path}/commons-logging-1.1.1
commons-logging.lib=${commons-logging.home}
commons-logging-api.jar=${commons-logging.lib}/commons-logging-api-1.1.1.jar
commons-logging.jar=${commons-logging.lib}/commons-logging-1.1.1.jar
commons-logging.loc=${base-commons.loc}/logging/binaries/commons-logging-1.1.1-bin.tar.gz


# ----- Commons Modeler, version 2.0 or later -----
commons-modeler.home=${base.path}/commons-modeler-2.0.1
commons-modeler.lib=${commons-modeler.home}
commons-modeler.jar=${commons-modeler.lib}/commons-modeler-2.0.1.jar
commons-modeler.loc=${base-commons.loc}/modeler/binaries/commons-modeler-2.0.1.tar.gz

# ----- Xerces XML Parser, version 2.8.0 -----
xerces.home=${base.path}/xerces-2_9_1
xerces.lib=${xerces.home}
xercesImpl.jar=${xerces.lib}/xercesImpl.jar
xml-apis.jar=${xerces.lib}/xml-apis.jar
xerces.loc=${base-xerces.loc}/j/binaries/Xerces-J-bin.2.9.1.tar.gz


# ----- Eclipse JDT, version 3.3.1 or later -----
jdt.version=3.7
jdt.release=R-3.7-201106131736
jdt.home=${base.path}/ecj-${jdt.version}
jdt.jar=${jdt.home}/ecj-${jdt.version}.jar
# The download will be moved to the archive area eventually. We are taking care of that in advance.
# Note older JARs were called ecj.jar. Newer JARs are called ecj-${jdt.version}.jar
jdt.loc.1=http://archive.eclipse.org/eclipse/downloads/drops/${jdt.release}/ecj-${jdt.version}.jar
jdt.loc.2=http://download.eclipse.org/eclipse/downloads/drops/${jdt.release}/ecj-${jdt.version}.jar

# ----- Tomcat native library -----
tomcat-native.version=1.1.22
tomcat-native.home=${base.path}/tomcat-native-${tomcat-native.version}
tomcat-native.tar.gz=${tomcat-native.home}/tomcat-native.tar.gz
tomcat-native.loc=${base-tomcat.loc}/tomcat-connectors/native/${tomcat-native.version}/source/tomcat-native-${tomcat-native.version}-src.tar.gz
tomcat-native.dll=${base-tomcat.loc}/tomcat-connectors/native/${tomcat-native.version}/binaries


# --------------------------------------------------
#              CORE OPTIONAL LIBRARIES
# --------------------------------------------------


# ----- Commons DBCP, version 1.1 or later -----
commons-dbcp.version=1.3
commons-dbcp.home=${base.path}/commons-dbcp-${commons-dbcp.version}-src
commons-dbcp-src.loc=${base-commons.loc}/dbcp/source/commons-dbcp-${commons-dbcp.version}-src.tar.gz


# ----- Commons Pool, version 1.1 or later -----
commons-pool.version=1.5.5
commons-pool.home=${base.path}/commons-pool-${commons-pool.version}-src
commons-pool-src.loc=${base-commons.loc}/pool/source/commons-pool-${commons-pool.version}-src.tar.gz


# ----- Commons Collections, version 2.0 or later -----
commons-collections.home=${base.path}/commons-collections-3.2
commons-collections.lib=${commons-collections.home}
commons-collections.jar=${commons-collections.lib}/commons-collections-3.2.jar
commons-collections.loc=${base-commons.loc}/collections/binaries/commons-collections-3.2.tar.gz
commons-collections-src.loc=${base-commons.loc}/collections/source/commons-collections-3.2-src.tar.gz


# ----- Commons FileUpload, version 1.0-20030531 or later -----
commons-fileupload.home=${base.path}/commons-fileupload-1.2
commons-fileupload.lib=${commons-fileupload.home}/lib
commons-fileupload.jar=${commons-fileupload.lib}/commons-fileupload-1.2.jar
commons-fileupload.loc=${base-commons.loc}/fileupload/binaries/commons-fileupload-1.2-bin.tar.gz

# ----- Commons IO, needed by Commons Fileupload -----
commons-io.home=${base.path}/commons-io-1.4
commons-io.jar=${commons-io.home}/commons-io-1.4.jar
commons-io.loc=${base-commons.loc}/io/binaries/commons-io-1.4-bin.tar.gz

# ----- Java Management Extensions (JMX), JMX RI 1.2.1 or later or MX4J 2.0.1 or later -----
jmx.home=${base.path}/mx4j-3.0.2
jmx.lib=${jmx.home}/lib
jmx.jar=${jmx.lib}/mx4j.jar
jmx-tools.jar=${jmx.lib}/mx4j-tools.jar
jmx-remote.jar=${jmx.lib}/mx4j-remote.jar
jmx.loc=${base-sf.loc}/mx4j/mx4j-3.0.2.tar.gz


# ----- JUnit Unit Test Suite, version 3.7 or later -----
junit.home=${base.path}/junit3.8.2
junit.lib=${junit.home}
junit.jar=${junit.lib}/junit.jar
junit.loc=${base-sf.loc}/junit/junit3.8.2.zip


# ----- Rhino ------
rhino.home=${base.path}/rhino1_6R2
rhino.jar=${rhino.home}/js.jar
rhino.loc=http://ftp.mozilla.org/pub/mozilla.org/js/rhino1_6R2.zip

# ----- NSIS, version 2.0 or later -----
nsis.home=${base.path}/nsis-2.46
nsis.exe=${nsis.home}/makensis.exe
nsis.installoptions.dll=${nsis.home}/Plugins/InstallOptions.dll
nsis.nsexec.dll=${nsis.home}/Plugins/nsExec.dll
nsis.nsisdl.dll=${nsis.home}/Plugins/NSISdl.dll
nsis.loc=${base-sf.loc}/nsis/nsis-2.46.zip


# ----- Struts, version 1.2.4 or later -----
struts.home=${base.path}/struts-1.2.9-bin
struts.lib=${struts.home}/lib
struts.jar=${struts.lib}/struts.jar
struts.loc=${base-struts.loc}/binaries/struts-1.2.9-bin.tar.gz


# --------------------------------------------------
#                OPTIONAL LIBRARIES
# --------------------------------------------------


# ----- Java Activation Framework (JAF), version 1.0.1 or later -----
activation.home=${base.path}/jaf-1.1.1
activation.lib=${activation.home}
activation.jar=${activation.lib}/activation.jar

# ----- Java Secure Sockets Extension (JSSE), version 1.0.3 or later -----
jsse.home=${base.path}/jsse-1.0.3
jsse.lib=${jsse.home}/lib
jcert.jar=${jsse.lib}/jcert.jar
jnet.jar=${jsse.lib}/jnet.jar
jsse.jar=${jsse.lib}/jsse.jar

# ----- Java Transaction API (JTA), version 1.0.1a or later -----
jta.home=${base.path}/jta-1_1
jta.lib=${jta.home}
jta.jar=${jta.lib}/jta.jar

# ----- Java Mail, version 1.2 or later -----
mail.home=${base.path}/javamail-1.4.1
mail.lib=${mail.home}
mail.jar=${mail.lib}/mail.jar

# ----- PureTLS Extension, version 0.9 or later -----
puretls.home=${base.path}/puretls-0.9b5
puretls.lib=${puretls.home}/build
puretls.jar=${puretls.lib}/puretls.jar

# ----- Servlet API v2.4 -----
servlet-api.home=${base.path}/servlet-api-2.4
servlet-api.lib=${servlet-api.home}/lib
servlet-api.jar=${servlet-api.lib}/servlet-api.jar

# ----- JSP API v2.0 -----
jsp-api.home=${base.path}/jsp-api-2.0
jsp-api.lib=${jsp-api.home}/lib
jsp-api.jar=${jsp-api.lib}/jsp-api.jar
