#
# Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# This Source Code may also be made available under the following Secondary
# Licenses when the conditions for such availability set forth in the
# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
# version 2 with the GNU Classpath Exception, which is available at
# https://www.gnu.org/software/classpath/license.html.
#
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
#


db.port=9092
db.host=localhost
db.type=pointbase
db.user=dbuser
db.pwd=dbpassword
db.name=sqe-samples
db.class=com.pointbase.jdbc.jdbcDataSource
db.xaclass=com.pointbase.xa.xaDataSource
db.driver=com.pointbase.jdbc.jdbcUniversalDriver
db.url=jdbc:pointbase:server://${db.host}:${db.port}/${db.name},new
#db.unixdriverpath=lib/drivers/pointbase/pbclient.jar
db.unixdriverpath=pointbase/lib/pbclient.jar
db.windriverpath=lib/\drivers/\pointbase\/\pbclient.jar
connector.url=jdbc\\:pointbase\\:server\\://${db.host}\\:${db.port}/${db.name},new
cpds.class=com.pointbase.jdbc.jdbcDataSource
isDBPointbase=true

#properties used by global transaction tests.
txdb.port=9095
txdb.host=localhost
txdb.name=txsample
txdb.user=dbuser
txdb.pwd=dbpassword
txdb.url=jdbc:pointbase:server://localhost:9095/txsample,new

