#===========================================================
# Jetty Startup 
#
# Starting Jetty from this {jetty.home} is not recommended.
#
# A proper {jetty.base} directory should be configured, instead
# of making changes to this {jetty.home} directory.
#
# See documentation about {jetty.base} at
# http://www.eclipse.org/jetty/documentation/current/startup.html
#
# A demo-base directory has been provided as an example of
# this sort of setup.
#
# $ cd demo-base
# $ java -jar ../start.jar
#
#===========================================================

# To disable the warning message, comment the following line
--module=home-base-warning

# --------------------------------------- 
# Module: apache-jsp
--module=apache-jsp

# --------------------------------------- 
# Module: apache-jstl
--module=apache-jstl

# --------------------------------------- 
# Module: ext
--module=ext

# --------------------------------------- 
# Module: resources
--module=resources

# --------------------------------------- 
# Module: server
--module=server
##
## Server Threading Configuration
##
# minimum number of threads
jetty.threadPool.minThreads=10
# maximum number of threads
jetty.threadPool.maxThreads=200
# thread idle timeout in milliseconds
jetty.threadPool.idleTimeout=60000
# buffer size for output
jetty.httpConfig.outputBufferSize=32768
# request header buffer size
jetty.httpConfig.requestHeaderSize=8192
# response header buffer size
jetty.httpConfig.responseHeaderSize=8192
# should jetty send the server version header?
jetty.httpConfig.sendServerVersion=true
# should jetty send the date header?
jetty.httpConfig.sendDateHeader=false
# What host to listen on (leave commented to listen on all interfaces)
#jetty.http.host=myhost.com
# Dump the state of the Jetty server, components, and webapps after startup
jetty.server.dumpAfterStart=false
# Dump the state of the Jetty server, before stop
jetty.server.dumpBeforeStop=false
# Enable delayed dispatch optimisation
jetty.httpConfig.delayDispatchUntilContent=false

# --------------------------------------- 
# Module: http
--module=http
### HTTP Connector Configuration

## HTTP port to listen on
jetty.http.port=8080

## HTTP idle timeout in milliseconds
# jetty.http.idleTimeout=30000

## HTTP Socket.soLingerTime in seconds. (-1 to disable)
# jetty.http.soLingerTime=-1

## Parameters to control the number and priority of acceptors and selectors
# jetty.http.selectors=1
# jetty.http.acceptors=1
# jetty.http.acceptorPriorityDelta=0

# --------------------------------------- 
# Module: jndi
--module=jndi

# --------------------------------------- 
# Module: security
--module=security

# --------------------------------------- 
# Module: servlet
--module=servlet

# --------------------------------------- 
# Module: webapp
--module=webapp

# --------------------------------------- 
# Module: deploy
--module=deploy
## DeployManager configuration
# Monitored Directory name (relative to jetty.base)
# jetty.deploy.monitoredDir=webapps

# --------------------------------------- 
# Module: plus
--module=plus

# --------------------------------------- 
# Module: annotations
--module=annotations

# --------------------------------------- 
# Module: jsp
--module=jsp

# --------------------------------------- 
# Module: websocket
--module=websocket

# --------------------------------------- 
# Module: jstl
--module=jstl

