############################################################################
# Java production sources
############################################################################
api.build.dir = ${build.dir}/api
api.src.dir = ${basedir}/src/java

############################################################################
# Build artifacts
############################################################################
build.dir = ${basedir}/build

############################################################################
# Cobertura test coverage generator
############################################################################
cobertura.datafile = ${cobertura.dir}/cobertura.ser
cobertura.destdir = ${cobertura.dir}/data-output
cobertura.dir = ${tools.build.dir}/cobertura
cobertura.format = html
cobertura.todir = ${cobertura.dir}/classes

############################################################################
# Packaged artifacts
############################################################################
dist.dir = ${basedir}/dist

############################################################################
# Third-party tools
############################################################################
external.dir = ${basedir}/lib
external.import = ${external.dir}/config/external-config.xml

############################################################################
# FindBugs static analyzer
############################################################################
findbugs.failOnError = false
findbugs.outputFile = ${tools.build.dir}/findbugs.htm
findbugs.reportLevel = low

############################################################################
# Java compiler
############################################################################
javac.debug = true
javac.deprecation = on
javac.fork = no
javac.optimize = off
javac.source = 1.5
javac.target = 1.5
javac.verbose = no

############################################################################
# Javadoc tool
############################################################################
javadoc.build.dir = ${build.dir}/javadoc

############################################################################
# Manifest specification
############################################################################
manifest.impl.title = ${ant.project.name}
manifest.impl.url = http://code.google.com/p/concurrentlinkedhashmap/
manifest.impl.vendor = clhm
manifest.impl.version = 1.1_jdk5

############################################################################
# Java test sources
############################################################################
test.build.dir = ${build.dir}/test
test.src.dir = ${basedir}/unittest/src/java

############################################################################
# Java benchmark sources
############################################################################
benchmark.build.dir = ${build.dir}/benchmark
benchmark.src.dir = ${basedir}/benchmark/src/java

############################################################################
# Software tools output
############################################################################
tools.build.dir = ${build.dir}/tools

############################################################################
# PMD source code analyzer
############################################################################
pmd.failOnError = false
pmd.failOnRuleViolation = false
pmd.rulesetfiles = ${external.dir}/config/pmd-config.xml
pmd.shortFilenames = true
pmd.targetjdk = ${javac.target}
pmd.toFile = ${tools.build.dir}/pmd.htm

############################################################################
# TestNG unit testing
############################################################################
testng.dumpCommand = false
testng.haltonfailure = true
testng.haltonskipped = true
testng.outputdir = ${tools.build.dir}/testng

# Test groups:
#  - development: Validate correctness
#  - efficiency:  Compare eviction algorithms
#  - memoryLeak:  Runs forever to check for memory leaks
testng.groups = development

# All tests
test.debugMode = false

# efficiency benchmark
efficiency.maximumCapacity = 5000
efficiency.workingSetSize = 20000
efficiency.distribution = Uniform
efficiency.distribution.uniform.lower = 0
efficiency.distribution.uniform.upper = 1000
efficiency.distribution.exponential.mean = 1000
efficiency.distribution.gaussian.mean = 1000
efficiency.distribution.gaussian.sigma = 10
efficiency.distribution.poisson.mean = 1000
efficiency.distribution.zipfian.skew = 1.3

# concurrency tests
multiThreaded.maximumCapacity = 50000
multiThreaded.iterations = 40000
multiThreaded.nThreads = 20
multiThreaded.timeout = 30

############################################################################
# JBoss Cache Benchmark Framework
############################################################################

cacheBenchFwk.heap = 512m
cacheBenchFwk.path = empty.path
cacheBenchFwk.config.dir = ${basedir}/benchmark/cache-benchmark-framework/conf
cacheBenchFwk.config.file = cachebench-local.xml
cacheBenchFwk.report.chart = putget
cacheBenchFwk.report.dir = ${tools.build.dir}/benchmark
cacheBenchFwk.report.file = LocalMode-java5

# LHM
cacheBenchFwk.product = LinkedHashMap
cacheBenchFwk.wrapper = org.cachebench.cachewrappers.LHMCacheWrapper
cacheBenchFwk.config = lhm-local.properties

# CHM
#cacheBenchFwk.product = ConcurrentHashMap
#cacheBenchFwk.wrapper = org.cachebench.cachewrappers.CHMCacheWrapper
#cacheBenchFwk.config = chm-local.properties

# CLHM
#cacheBenchFwk.product = ConcurrentLinkedHashMap
#cacheBenchFwk.wrapper = org.cachebench.cachewrappers.CLHMCacheWrapper
#cacheBenchFwk.config = clhm-local.properties

############################################################################
# Caliper Benchmark
############################################################################

caliper.heap = 64m
caliper.warmupMillis = 3000
caliper.runMillis = 1000
caliper.timeUnit = ns

caliper.benchmark.numberOfThreads = 16
caliper.benchmark.concurrencyLevel = 16
caliper.benchmark.initialCapacity = 100
caliper.benchmark.maximumCapacity = 100

caliper.scenario = GetPut
caliper.scenario.getPut.readRatio = 100
