#  Platform Property names & Default
#
#  profileName  - jpatest
#  profileDescription  - JDBC Profile for JPA Testing
#  userName  - jpatest
#  userPassword  - (empty)
#  databasedriverJarList  - (mandatory)
#  databaseName  - testdb
#  databaseUrl  - (mandatory)
#  Driver class (jconn3.jar) - com.sybase.jdbc3.jdbc.SybDriver
# 
profileName = jconnect6
profileDescription = Sybase 12.x jConnect JDBC Profile for Testing
# set user name
userName = 
userPassword = 
# set path to Derby driver here (example: databasedriverJarList = c:/sybase/lib/jconn3.jar )
databasedriverJarList = 
databaseName = testdb
# set database URL here (example: databaseUrl = jdbc:sybase:Tds:localhost:5000/testdb )  
databaseUrl = 
