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

service_ping_class     = org.apache.uima.ducc.cli.UimaAsPing
service_ping_arguments = meta-timeout=${ducc.sm.meta.ping.timeout},broker-jmx-port=1099,enable-log=true
#service_ping_jvmargs  = any jvm args you need for standalone execution
service_ping_classpath = ${DUCC_HOME}/apache-uima/apache-activemq/lib/*:${DUCC_HOME}/apache-uima/apache-activemq/lib/optional/*
service_ping_dolog     = true
service_ping_timeout   = 10000

instance_failures_window = ${ducc.sm.instance.failure.window}
instance_failures_limit  = ${ducc.sm.instance.failure.max}

internal               = false



