#   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. See accompanying LICENSE file.

# Services module test properties

# these settings allow tests to run and consistently pass on 16GB MacBook Pro
# with ug.heapmax=5000m and ug.heapmin=3000m (set in Maven settings.xml)
cassandra.startup=external
cassandra.connections=30
cassandra.timeout.pool=20000

#Poll interval to check for new jobs in millseconds. 10 milliseconds for testing
usergrid.scheduler.job.interval=100

# number of delivery queue processes expected
notification.concurrent.batches=2
hystrix.threadpool.graph_user.coreSize=50
hystrix.threadpool.graph_async.coreSize=50
usergrid.scheduler.job.timeout=300000

usergrid.notifications.listener.run=false
elasticsearch.managment_index=usergrid_services_management
#cassandra.keyspace.application=service_tests_schema

elasticsearch.buffer_timeout=1
elasticsearch.queue_impl.resolution=true
elasticsearch.queue_impl=DISTRIBUTED

# Queueing Test Settings
# Reduce the long polling time for the tests
queue.long.polling.time.millis=150
queue.num.actors=5
queue.sender.num.actors=5
queue.writer.num.actors=5
elasticsearch.worker_count=2
usergrid.push.worker_count=2


# This property is required to be set and cannot be defaulted anywhere
usergrid.cluster_name=usergrid

# specified in seconds
usergrid.auth.cache.time-to-live=1
usergrid.auth.cache.inmemory.time-to-live=1
