root.dir=${basedir}

build.3rdparty.dir=${root.dir}/build3rdparty
build.maven-bundle.dir=${build.dir}/maven-bundle
target=${root.dir}/target

#classes=${build.dir}

lib.dir=${basedir}/lib
src.dir=${basedir}/src/main/java
src.resources.dir=${basedir}/src/main/resources
build.dir=${target}/classes
test.dir=${basedir}/src/test/java
test.build.dir=${target}/test-classes
test.output.dir=${target}/test-output
test.resources.dir=${basedir}/src/test/resources
example.dir=${basedir}/examples

#
# Jar files
#
beanshell.jar=bsh-2.0b4.jar
guice.jar=guice-2.0.jar
junit.jar=junit-3.8.1.jar
ant.jar=ant-1.6.5.jar
jcommander.jar=jcommander-1.10.jar

#
# Names of distributions
#
testng.basename=testng
testng.version=5.14.3beta
testng.fullname=${testng.basename}-${testng.version}
testng.jar=${target}/${testng.fullname}.jar
sources.testng.jar=${testng.fullname}-sources.jar
testng.nobsh.noguice.jar=${testng.fullname}-nobsh-noguice.jar
testng.bsh.noguice.jar=${testng.fullname}-bsh-noguice.jar
testng.nobsh.guice.jar=${testng.fullname}-nobsh-guice.jar
testng.ibiblio.jar=${testng.fullname}-bundle.jar
testng.zip=${target}/${testng.fullname}.zip
testng.maven-bundle=${target}/${testng.fullname}-bundle.jar

other.jars.dir=${target}/other-jars

#
# Test locations
#
test.location.msg=Test results can be found in\n\
test/test-output/index.html

#
# Eclipse plug-in
#
testng-eclipse.dir=../testng-eclipse

#
# Maven plug-in version
# Note, this version number is appended to the resulting plug-in jar
#
testng-maven.version=1.2

#
# JDK 1.4 for sanity checking before a distribution
#
java14.home=jdk-1.5.0_04
#java14.home=c:/java/jdk-1.4.2_08
