# The pathname of the "junit.jar" JAR file
junit.jar = ${junit.home}/junit-3.7.jar

# The name of this component
component.name = commons-lang

# The primary package name of this component
component.package = org.apache.commons.lang

# The title of this component
component.title = Core Language Utilities

# The current version number of this component
component.version = 1.0.1

# The name that is used to create the jar file
final.name = ${component.name}-${component.version}

# The base directory for compilation targets
build.home = target

# The base directory for component configuration files
conf.home = src/conf

# The base directory for distribution targets
dist.home = dist

# The base directory for component sources
source.home = src/java

# The base directory for unit test sources
test.home = src/test

# Should Java compilations set the 'debug' compiler option?
compile.debug = true

# Should Java compilations set the 'deprecation' compiler option?
compile.deprecation = true

# Should Java compilations set the 'optimize' compiler option?
compile.optimize = true

# Should all tests fail if one does?
test.failonerror = true

# The test runner to execute
test.runner = junit.textui.TestRunner
