#Configuration file for the integration tests of Apache MetaModel.
#This file contains externalized properties which enable the test
#code to connect to actual running backends for testing the real integration.

# This file is specific to continuous integration, it contains the configuration for Travis CI service.

# --------------------------
# CouchDB module properties:
# --------------------------

couchdb.hostname=localhost
couchdb.databaseName=metamodel_test_database

# --------------------------
# MongoDB module properties:
# --------------------------

mongodb.hostname=localhost
mongodb.databaseName=metamodel_test
mongodb.collectionName=my_collection

# ------------------------
# HBase module properties:
# ------------------------

#hbase.zookeeper.hostname=localhost
#hbase.zookeeper.port=2181

# ------------------------
# Neo4j module properties:
# ------------------------

neo4j.hostname=localhost
neo4j.port=7474

# -----------------------
# JDBC module properties:
# -----------------------

#jdbc.postgresql.driver=org.postgresql.Driver
#jdbc.postgresql.url=jdbc:postgresql://localhost/dellstore2
#jdbc.postgresql.username=metamodel
#jdbc.postgresql.password=metamodel
#jdbc.postgresql.longrunningtests=false

#jdbc.mysql.driver=com.mysql.jdbc.Driver
#jdbc.mysql.url=jdbc:mysql://localhost/sakila?defaultFetchSize=-2147483648
#jdbc.mysql.username=
#jdbc.mysql.password=

#jdbc.oracle.driver=oracle.jdbc.OracleDriver
#jdbc.oracle.url=jdbc:oracle:thin:@localhost:1521:XE
#jdbc.oracle.username=HR
#jdbc.oracle.password=

#jdbc.db2.driver=com.ibm.db2.jcc.DB2Driver
#jdbc.db2.url
#jdbc.db2.username
#jdbc.db2.password

#jdbc.firebird.driver=org.firebirdsql.jdbc.FBDriver
#jdbc.firebird.url=jdbc:firebirdsql:127.0.0.1:employee.fdb
#jdbc.firebird.username=SYSDBA
#jdbc.firebird.password=

#jdbc.sqlserver.jtds_driver.driver=net.sourceforge.jtds.jdbc.Driver
#jdbc.sqlserver.jtds_driver.url=jdbc:jtds:sqlserver://localhost:1433/AdventureWorks;instance=SQLEXPRESS
#jdbc.sqlserver.jtds_driver.username=
#jdbc.sqlserver.jtds_driver.password=

#jdbc.sqlserver.microsoft_driver.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#jdbc.sqlserver.microsoft_driver.url=jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=AdventureWorks
#jdbc.sqlserver.microsoft_driver.username=
#jdbc.sqlserver.microsoft_driver.password=

# -----------------------------
# Salesforce module properties:
# -----------------------------

#salesforce.username=
#salesforce.password=
#salesforce.securityToken=

# ---------------------------
# SugarCRM module properties:
# ---------------------------

#sugarcrm.username=
#sugarcrm.password=
#sugarcrm.numberOfAccounts=