# Testing environment properties.

# Link to dependencies not in SVN, assumes default location, if you store
# elsewhere you need to edit these.
extensions.depend.dir=../../../extension.lib.external
extensions.depend.dir.oracle=../../../extension.oracle.lib.external

# jdbc.driver.jar=/opt/jdk/jdbc/mysql-connector-java-5.0.8-bin.jar
# db.driver=com.mysql.jdbc.Driver
# db.url=jdbc:mysql://localhost/eclipselink
# db.user=root
# db.pwd=password

# Server properties
# Valid values of server.name are weblogic, websphere, jboss, oc4j, glassfish ...,
# valid value of server.version will be 2 or 3 for glassfish...
# For jboss, server.version=eap means Enterprise Application Platform, if you
# don't put value for server.version, that means the default community version
#server.name=weblogic
#server.version=3

# Logging option for debugging.
logging.level=info
eclipselink.logging.level=FINE

# Name and port of the application server there test application is installed
server.url=localhost
server.port=7001

# Test class
test.class=org/eclipse/persistence/testing/jaxrs/JAXRSTestSuite.java
