# 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=3.0.0

# 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.8

# Do not edit the variables below
# They may, however, be overridden in parent scripts
jaxb-api.jar=javax.xml.bind_2.2.12.v201410011542.jar
jaxb-xjc.jar=jaxb-xjc_2.2.11.v201407311112.jar
jaxb-core.jar=jaxb-core_2.2.11.v201407311112.jar
jaxb-impl.jar=com.sun.xml.bind_2.2.11.v201406210428.jar

json.jar=org.glassfish.javax.json_1.0.4.v201311181159.jar
mail.jar=javax.mail_1.4.0.v201005080615.jar
jaxrs.jar=javax.ws.rs_2.0.1.v201504171603.jar
resource.jar=javax.resource_1.6.0.v201204270900.jar
ejb.jar=javax.ejb_3.1.0.v201205171433.jar
jms.jar=javax.jms_1.1.0.v200906010428.jar
transaction.jar=javax.transaction_1.1.0.v201002051055.jar
asm.jar=org.eclipse.persistence.asm_6.0.0.v201710052159.jar

eclipselink.core.depend=${resource.jar},${ejb.jar},${jms.jar},${transaction.jar},${mail.jar},${javax.validation.jar}

eclipselink.jar=eclipselink.jar
eclipselink.core=../../foundation/org.eclipse.persistence.core
eclipselink.plugins=../../plugins
extensions.depend.dir=../../../extension.lib.external
eclipselink.moxy.test=.

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

tmp.dir=tmp
src.dir=src
build.dir=build
classes.dir=classes
test.dir=test
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

# JSR-303/349/380 Dependency Definitions
----------------------------------------------
javax.validation.jar=javax.validation.api_2.0.1.Final.jar
validation-impl.jar=hibernate-validator-6.0.7.Final.jar
# Hibernate-validator dependencies.
jboss-logging.jar=jboss-logging-3.3.0.Final.jar
javax.el.jar=javax.el-3.0.1-b08.jar
classmate.jar=classmate-1.3.1.jar

#JMockit
jmockit.jar=jmockit-1.35.jar

#JaCoCo
jacocoagent.jar=jacocoagent.jar
