custom = true
#
# Edit these properties to point to your local jars.
junit.lib=../../../extension.lib.external/junit.jar
tools.lib=${env.JAVA_HOME}/lib/tools.jar
eclipselink.jar=eclipselink.jar

# Set javac.debug to "true" to enable debug attributes like lines, variables and source-filename
# Set javac.optimize to "on" to enable cpmpiler optimizations
# Set javac.deprecation to "on" to enable deprecation messages during compile
# Set javac.version when you would like to override the java version during testing
javac.debug=true
javac.debuglevel=lines,vars,source
javac.optimize=off
javac.deprecation=off
javac.version=1.6

# Do not edit the variables below
# They may, however, be overridden in parent scripts
#     Static Definitions
# -----------------------------------
release.version=2.5.3
src.dir=src
classes.dir=classes
resource.dir=resource
report.dir=reports
etc.dir=etc

asm=org.eclipse.persistence.asm

#     Variable Definitions (execution location dependent)
# -----------------------------------
eclipselink.plugins=../../plugins
eclipselink.core=../../foundation/org.eclipse.persistence.core
eclipselink.dbws.depend=javax.activation_1.1.0.v201108011116.jar,javax.mail_1.4.0.v201005080615.jar,javax.xml.soap_1.3.0.v200906010428.jar,javax.xml.ws_2.0.0.v200902170419.jar

#     Build Artifact Definitions
# -----------------------------------
eclipselink.dbws.test.common.jar=eclipselink-dbws-test-common.jar
persistence.jar=javax.persistence_unsigned_for_testing_1.0.0.jar

# misc PDE setup
bin.includes = .,\
               META-INF/
source.. = src/,\
           resource/
