# Properties for ANT build
# This project depends on two JARs which cannot be downloaded from any public
# Maven repository.  Therefore, to use the ANT build script (build.xml), you must
# copy this file to "build.properties" and define values for
# "javamail.jar" and "jaf.jar"
#

# Optional property used to simplify definition of required properties.
dir.maven.repository=${user.home}/.maven/repository

# Required property: javamail.jar
# value should be a pointer to 
# the JAR for JavaMail version 1.2 or newer
# see http://java.sun.com/products/javamail/javamail-1_2.html
javamail.jar=${dir.maven.repository}/javamail/jars/javamail-1.2.jar

# Required property: javamail.jar
# value should be a pointer to 
# the JAR for JavaBeans Activation Framework version 1.0.2 or newer
# see http://java.sun.com/products/javabeans/glasgow/jaf.html
jaf.jar=${dir.maven.repository}/jaf/jars/activation-1.0.2.jar
