#
# 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.windriverpath=lib/\drivers/\pointbase\/\pbclient.jar
