# Link to dependencies not in SVN, assumes default location, if you store elsewhere you need to edit these.
junit.lib=../../../extension.lib.external/junit.jar
eclipselink.jar=eclipselink.jar

# Edit this property to "true" to enable debug attributes like lines, variables and source-filename.
javac.debug=true
javac.debuglevel=lines,vars,source

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

# Do not edit the properties below.
eclipselink.plugins=../plugins
eclipselink.plugins.trunk=../../plugins

mail.jar=javax.mail_1.4.0.v201005080615.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

eclipselink.core.depend=${resource.jar},${ejb.jar},${jms.jar},${transaction.jar},${mail.jar}
eclipselink.core=../org.eclipse.persistence.core
eclipselink.core.trunk=../../foundation/org.eclipse.persistence.core
eclipselink.jpa=../org.eclipse.persistence.jpa
eclipselink.jpa.test=../eclipselink.jpa.test
eclipselink.core.test=../eclipselink.core.test
eclipselink.core.test.trunk=../../foundation/eclipselink.core.test

asm=org.eclipse.persistence.asm
antlr=org.eclipse.persistence.antlr

persistence.jar=javax.persistence_2.1.1.v201509150925.jar

test.properties=./test.properties
src.dir=src
classes.dir=classes
build.dir=build
resource.dir=resource

jpa.spring=jpa-spring

extensions.depend.dir=../../../extension.lib.external
spring.jlib.dir=${extensions.depend.dir}/spring
# JTA tests use JOTM from JOTM website (compile only jar in Spring)
spring.jlib=aopalliance-1.0.jar,cglib-nodep-3.2.2.jar,jotm-2.0.10.jar,commons-logging-1.2.jar,xapool-1.6-beta.jar,spring*4.2.5*.jar

# (ant generated)
spring.jpa.spring.lib=/eclipselink.jpa.spring.test/jpa-spring.jar

spring.install.root=C:/opt/spring-framework-2.5.6.SEC01
spring.agent.lib=${spring.install.root}/dist/weaving/spring-agent.jar
spring.cglib.lib=${spring.install.root}/lib/cglib/cglib-nodep-2.1.3.jar
spring.commons.logging.lib=${spring.install.root}/lib/jakarta-commons/commons-logging.jar
spring.jotm.client.lib=${spring.install.root}/lib/jotm/jotm.jar
spring.lib=${spring.install.root}/dist/spring.jar
spring.test.lib=${spring.install.root}/dist/modules/spring-test.jar
spring.xapool.lib=${spring.install.root}/lib/jotm/xapool.jar
