# Edit this property to point at your junit.jar
junit.lib=../../../extension.lib.external/junit.jar
# Edit this if/when the release number changes
release.version=2.5.3
# Edit this property to "true" to enable debug attributes like lines, variables and source-filename
javac.debug=true
javac.debuglevel=lines,vars,source

# Edit this property when you would like to override the java version during testing
javac.version=1.6

# Do not edit the variables below
# They may, however, be overridden in parent scripts
commonj.sdo.jar=commonj.sdo_2.1.1.v201112051852.jar
jaxb-api.jar=javax.xml.bind_2.2.0.v201105210648.jar

eclipselink.core.depend=javax.activation_1.1.0.v201108011116.jar,javax.resource_1.5.0.v200906010428.jar,javax.ejb_3.0.0.v200906010428.jar,javax.jms_1.1.0.v200906010428.jar,javax.xml.stream_1.0.1.v201004272200.jar,javax.transaction_1.1.0.v201002051055.jar,javax.mail_1.4.0.v201005080615.jar

eclipselink.jar=eclipselink.jar
eclipselink.sdo.base=..
eclipselink.core=../org.eclipse.persistence.core
eclipselink.plugins=../../plugins
eclipselink.sdo=../org.eclipse.persistence.sdo
eclipselink.sdo.test=.

unsigned.persistence10.jar=javax.persistence_unsigned_for_testing_1.0.0.jar

tmp.dir=tmp
src.dir=src
classes.dir=classes
resource.dir=resource
report.dir=reports

asm=org.eclipse.persistence.asm

xml.platform=org.eclipse.persistence.platform.xml.jaxp.JAXPPlatform
parser=org.eclipse.persistence.platform.xml.jaxp.JAXPParser
