# 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

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

# Edit these variables to alter compiler optimization and deprication warning flags
javac.optimize=true
javac.deprecation=false

# Do not edit the properties below.
asm=org.eclipse.persistence.asm
antlr=org.eclipse.persistence.antlr

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
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
persistence20.jar=javax.persistence_2.0.6.v201308211412.jar

unsigned.persistence10.jar=javax.persistence_unsigned_for_testing_1.0.0.jar
jaxb.jar=javax.xml.bind_2.2.0.v201105210648.jar

eclipselink.wdf.jpa1.model=eclipselink-wdf-jpa1-model
eclipselink.wdf.jpa2.model=eclipselink-wdf-jpa2-model

wdf.tests.jar=eclipselink-wdf-tests.jar

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

plugins.dir=plugins
