# 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=C:/java/db-derby-10.8.1.2-bin/lib/derbyclient.jar
#db.driver=org.apache.derby.jdbc.ClientDriver
#db.platform=org.eclipse.persistence.platform.database.DerbyPlatform
#db.url=jdbc:derby://localhost:1527/testDB;create=true
#db.user=app
#db.pwd=app

#jdbc.driver.jar=c:/java/jdbc/db2jcc.jar
#db.driver=com.ibm.db2.jcc.DB2Driver
#db.platform=org.eclipse.persistence.platform.database.DB2Platform
#db.url=jdbc:db2://tlsvrdb7.ca.oracle.com:50001/TOPLINK
#db.user=tldev1
#db.pwd=password

#jdbc.driver.jar=c:/java/jdbc/jconn3.jar
#db.driver=com.sybase.jdbc3.jdbc.SybDriver
#db.platform=org.eclipse.persistence.platform.database.SybasePlatform
#db.url=jdbc:sybase:Tds:tlsvrdb2.ca.oracle.com:5001/QA6
#db.user=QA6
#db.pwd=password

#jdbc.driver.jar=C:/java/hsqldb/lib/hsqldb.jar
#db.driver=org.hsqldb.jdbcDriver
#db.platform=org.eclipse.persistence.platform.database.HSQLPlatform
#db.url=jdbc:hsqldb:hsql://localhost/xdb
#db.user=sa
#db.pwd=

#jdbc.driver.jar=c:/java/jdbc/postgresql-8.2-505.jdbc3.jar
#db.driver=org.postgresql.Driver
#db.platform=org.eclipse.persistence.platform.database.PostgreSQLPlatform
#db.url=jdbc:postgresql://qaott40.ca.oracle.com/toplink
#db.user=dev1
#db.pwd=password

# jdbc.driver.jar=C:/java/jdbc/mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar
# db.driver=com.mysql.jdbc.Driver
# db.url=jdbc:mysql://localhost/eclipsedb
# db.user=eclipsetest
# 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
# logging.level=finest
# logging.level=off

# Data source names for JTA and non JTA data sources
ds.name=ELDS
ds.name.non.jta=ELNonJTADS

# Test application name
test.application.name=Test_WAR

eclipselink.jdbc.read-connections.min=1
eclipselink.jdbc.write-connections.min=1

eclipselink.logging.level=INFO
eclipselink.logging.connection=false
eclipselink.logging.timestamp=false
eclipselink.logging.thread=false
eclipselink.logging.session=false
eclipselink.logging.exceptions=true
eclipselink.logging.level.sql=FINE
eclipselink.logging.level.jpars=FINEST
eclipselink.logging.level.metadata=FINE

eclipselink.target-server=NONE

# Java SE full regression test suite (default)
test.class=org/eclipse/persistence/jpars/test/AllJavaSETests.java
# Java EE full regression test suite
test.class.javaee=org/eclipse/persistence/jpars/test/AllJavaEETests.java
