###############################################################################
# Copyright (c) 1999, 2006 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
# NLS_MESSAGEFORMAT_ALL
MIN_THREADS=Minimum Threads
MIN_THREADS_DESC=The minimum number of threads allotted to the Http Service
MAX_THREADS=Maximum Threads
MAX_THREADS_DESC=The maximum number of threads allotted to the Http Service
THREAD_PRIORITY=Thread Priority
THREAD_PRIORITY_DESC=The priority of the Http Service Threads
ADDRESS=Host Address
ADDRESS_DESC=The Host Address to listen on
PORT_NUMBER=Port Number
PORT_NUMBER_DESC=The port number
PORT_SCHEME=Port Scheme
PORT_SCHEME_DESC=The protocol
HTTP=http
HTTPS=https
THREAD_TIMEOUT=Keep-Alive thread timeout
THREAD_TIMEOUT_DESC=The number of seconds to wait for another request before reclaiming the thread
SERVICE_RANKING=Service Ranking
SERVICE_RANKING_DESC=The service ranking framework property
HTTP_GEN_SETTINGS=Http Service General Settings
HTTP_GEN_SETTINGS_DESC=The general settings for the Http Service
HTTP_SETTINGS=Http Service Settings
HTTP_SETTINGS_DESC=The configurable settings for each registered Http Service
