###############################################################################
#  Copyright (c) 2007 Oracle. 
#  All rights reserved.  This program and the accompanying materials 
#  are made available under the terms of the Eclipse Public License v1.0 
#  which accompanies this distribution, and is available at 
#  http://www.eclipse.org/legal/epl-v10.html
#  
#  Contributors: 
#  	Oracle - initial API and implementation
###############################################################################
#  Platform Property names & Default
#
#  profileName  - jpatest
#  profileDescription  - JDBC Profile for JPA Testing
#  userName  - jpatest
#  userPassword  - (empty)
#  databasedriverJarList  - jar list separate by comma (mandatory) 
#  databaseName  - testdb
#  databaseUrl  - (mandatory)
#
profileName = oracleXE10g
profileDescription = XE 10g Release 2 (10.2) Thin JDBC Profile for Testing
userName = scott
userPassword = tiger
# set path to Oracle driver here (example: databasedriverJarList = c:/oracle/jdbc/lib/ojdbc14.jar )
databasedriverJarList = 
databaseName = testdb
# set database URL here (example: databaseUrl = jdbc:oracle:thin:@localhost:1521:testdb )  
databaseUrl = 
