#
# SunAS9 Server Testing Environment Properties.
#
# This property file is used by the jpa/eclipselink.jpa.test/glassfish.xml
# build file which handles execution of JPA tests against glassfish server.
#
# This file can be copied to your $USER_HOME directory or can be left in
# its original location (jpa/eclipselink.jpa.test).
# The advantage of copying this file to $USER_HOME is that your changes
# does not get overwritten the next time you refresh from the repository.
#
# On Windows, $USER_HOME normally maps to C:\Documents and Settings\<user>.
# On Unix, it normally maps to /home/<user>.
#

######################################################
# Glassfish v2.x setting - Need to check
# these properties and modify if needed
######################################################

install.dir=../../..
server.pwd=adminadmin

######################################################
# Glassfish v3.x setting - Need to comment out v2.x,
# uncomment out and modify the following properties
######################################################

#install.dir=../../../glassfishv3
#server.pwd=
## Uncomment out the following six lines only if want to install the latest nightly build v3 from sun's website.
#install.latest.glassfish=true
#installer.dir=../../..
#nightly-build-url=http://dlc.sun.com.edgesuite.net/glassfish/v3.1/nightly
#latest-glassfish-file-name=latest-glassfish.zip
#proxy.host=www-proxy.us.oracle.com
#proxy.port=80


######################################################
# DO NOT CHANGE - Shared by both v2.x and v3.x
######################################################

server.user=admin
adminpassfile=glassfishadminpass
server.url=http://localhost:4848/
server.testrunner=TestRunner#org.eclipse.persistence.testing.framework.server.TestRunner
server.testrunner1=TestRunner1#org.eclipse.persistence.testing.framework.server.TestRunner1
server.testrunner2=TestRunner2#org.eclipse.persistence.testing.framework.server.TestRunner2
server.testrunner3=TestRunner3#org.eclipse.persistence.testing.framework.server.TestRunner3
server.testrunner4=TestRunner4#org.eclipse.persistence.testing.framework.server.TestRunner4
server.testrunner5=TestRunner5#org.eclipse.persistence.testing.framework.server.TestRunner5
server.lib=${install.dir}/glassfish/lib
server.depend=appserv-rt.jar, javaee.jar
server.platform=Glassfish
server.platform.class=glassfish-platform
server.factory=com.sun.enterprise.naming.SerialInitContextFactory

glassfish.home=${install.dir}/glassfish
glassfish.port=4848
glassfish.host=localhost

###################################################################
# Enter DB Connection Info (Some Samples) - Shared by v2.x and v3.x
###################################################################

## Oracle DB
# xa.ds.classname=oracle.jdbc.xa.client.OracleXADataSource
# ds.classname=oracle.jdbc.pool.OracleDataSource
# glassfish.db.info=URL=jdbc\\:oracle\\:thin\\:@localhost\\:1521\\:DB

## MySQL
# xa.ds.classname=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
# ds.classname=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
# glassfish.db.info=URL=jdbc\\:mysql\\://localhost\\:3306/DB

## PostgreSQL
# xa.ds.classname=org.postgresql.ds.PGSimpleDataSource
# ds.classname=org.postgresql.xa.PGXADataSource
# glassfish.db.info=URL=jdbc\\:postgresql\\://localhost/DB\\:5432

## SQL Server
# xa.ds.classname=com.microsoft.sqlserver.jdbc.SQLServerXADataSource
# ds.classname=com.microsoft.sqlserver.jdbc.SQLServerDataSource
# glassfish.db.info=serverName=localhost:portNumber=1433:databaseName=DB
# glassfish.db.info=URL=jdbc\\:sqlserver\\://ottvm042.ca.oracle.com

## Sybase
# xa.ds.classname=com.sybase.jdbc3.jdbc.SybXADataSource
# ds.classname=com.sybase.jdbc3.jdbc.SybDataSource
# glassfish.db.info=serverName=localhost:portNumber=5000:databaseName=DB

## DB2
# xa.ds.classname=com.ibm.db2.jcc.DB2XADataSource
# ds.classname=com.ibm.db2.jcc.DB2DataSource
# glassfish.db.info=serverName=localhost:portNumber=50000:databaseName=DB:driverType=4

## Derby
# xa.ds.classname=org.apache.derby.jdbc.EmbeddedXADataSource40
# ds.classname=org.apache.derby.jdbc.EmbeddedDataSource40
# glassfish.db.info=serverName=localhost:portNumber=1527:databaseName=DB:connectionAttributes=';create=true'