#
# Copyright 2017 The Mifos Initiative.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#


#
# Copyright 2016 The Mifos Initiative.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  instance:
    preferIpAddress: true

server:
  port: 8081
  contextPath: /portfolio/v1/*

cassandra:
  clusterName: datacenter1
  contactPoints: 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042
  keyspace: seshat
  cl:
    read: LOCAL_QUORUM
    write: LOCAL_QUORUM
    delete: LOCAL_QUORUM

mariadb:
  driverClass: org.mariadb.jdbc.Driver
  database: seshat
  host: localhost
  port: 3306
  user: root
  password: mysql

bonecp:
  idleMaxAgeInMinutes: 240
  idleConnectionTestPeriodInMinutes: 60
  maxConnectionsPerPartition: 10
  minConnectionsPerPartition: 1
  partitionCount: 2
  acquireIncrement: 5
  statementsCacheSize: 100

async:
  corePoolSize: 32
  maxPoolSize: 16384
  queueCapacity: 0
  threadName: async-processor-

flyway:
  enabled: false