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


# properties used by Usergrid running in JUnit test JVM

# REST module test properties

cassandra.startup=external
cassandra.connections=30
cassandra.timeout.pool=20000
cassandra.timeout=25000


hystrix.threadpool.graph_user.coreSize=1200
hystrix.threadpool.graph_async.coreSize=1200

# needed to enable refresh and properties end-points used in tests
usergrid.test=true

# the scheduled will be started inside the remote Tomcat VM, not in Maven VM
usergrid.scheduler.enabled=false

# needed for DuplicateNameIT
collection.stage.transient.timeout=5

# other...
usergrid.mongo.disable=true

usergrid.notifications.listener.run=false

usergrid.sysadmin.login.name=superuser
usergrid.sysadmin.login.email=superuser@usergrid.com
usergrid.sysadmin.login.password=superpassword
usergrid.sysadmin.login.allowed=true
usergrid.use.default.queue=true

elasticsearch.managment_index=usergrid_rest_management
#cassandra.keyspace.application=rest_tests_schema

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

# this is here for PagingResourceIT.pagingEntitiesAcrossShardsWithGraph
usergrid.graph.shard.size=100
usergrid.graph.shard.repair.chance=1.0


usergrid.cluster.enabled=true
usergrid.cluster.hostname=localhost
usergrid.cluster.region.local=us-east
usergrid.cluster.region.list=us-east
usergrid.cluster.seeds=us-east\:localhost

# Use random port here for REST tests run outside embedded tomcat because these will get an instance of Spring that
# starts the Akka cluster, then the embedded tomcat will also try when it starts ( but using default props and port 2551)
usergrid.cluster.port=2555

collection.uniquevalues.actors=300
collection.uniquevalues.authoritative.region=us-east

elasticsearch.queue_impl=LOCAL

# Queueing Test Settings
# Reduce the long polling time for the tests
queue.long.polling.time.millis=50
queue.num.actors=100
queue.sender.num.actors=100
queue.writer.num.actors=100
elasticsearch.worker_count=12
elasticsearch.worker_count_utility=4
queue.get.timeout.seconds=10
queue.send.timeout.seconds=10
usergrid.push.worker_count=8
