#
# 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.
#

spring:
  cloud:
    discovery:
      enabled: false
    config:
      enabled: false

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

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

cassandra:
  clusterName: staging_cluster
  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
