#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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