# 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
jaxb-api.jar=javax.xml.bind_2.2.0.v201105210648.jar
jaxb-xjc.jar=com.sun.tools.xjc_2.2.0.jar
jaxb-impl.jar=com.sun.xml.bind_2.2.0.v201004141950.jar

stax_api.jar=javax.xml.stream_1.0.1.v201004272200.jar
activation.jar=javax.activation_1.1.0.v201108011116.jar
mail.jar=javax.mail_1.4.0.v201005080615.jar
jaxrs.jar=javax.ws.rs_1.1.1.v20101004-1200.jar
resource.jar=javax.resource_1.5.0.v200906010428.jar
ejb.jar=javax.ejb_3.0.0.v200906010428.jar
jms.jar=javax.jms_1.1.0.v200906010428.jar
transaction.jar=javax.transaction_1.1.0.v201002051055.jar

eclipselink.core.depend=${activation.jar},${resource.jar},${ejb.jar},${jms.jar},${stax_api.jar},${transaction.jar},${mail.jar}

eclipselink.jar=eclipselink.jar
eclipselink.core=../../foundation/org.eclipse.persistence.core
eclipselink.plugins=../../plugins
eclipselink.moxy.plugins=../plugins
eclipselink.moxy=../org.eclipse.persistence.moxy
eclipselink.moxy.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
# Note: ./dummy_xml_parser.jar doesn't need to exist
# You can set these properties to run moxy tests with any xml parser other than the default from a JVM
xml.parser.jar.dir=.
xml.parser.jar=dummy_xml_parser.jar