<Configure id="Server" class="org.eclipse.jetty.server.Server">
- <!-- =========================================================== -->
- <!-- Server Thread Pool -->
- <!-- =========================================================== -->
- <Set name="ThreadPool">
- <!-- Default bounded blocking threadpool
- -->
- <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
- <Set name="minThreads">10</Set>
- <Set name="maxThreads">250</Set>
- </New>
- <!-- Optional Java 5 bounded threadpool with job queue
- <New class="org.eclipse.jetty.util.thread.ExecutorThreadPool">
- <Set name="corePoolSize">250</Set>
- <Set name="maximumPoolSize">250</Set>
- </New>
- -->
- </Set>
+ <Arg name="threadpool">
+ <New id="threadpool" class="org.eclipse.jetty.util.thread.QueuedThreadPool">
+ <Arg name="minThreads" type="int">10</Arg>
+ <Arg name="maxThreads" type="int">200</Arg>
+ <Arg name="idleTimeout" type="int">60000</Arg>
+ <Set name="detailedDump">false</Set>
+ </New>
+ </Arg>
- <!-- =========================================================== -->
- <!-- Set connectors -->
- <!-- =========================================================== -->
- <!-- One of each type! -->
- <!-- =========================================================== -->
+ <Call name="addBean">
+ <Arg>
+ <New class="org.eclipse.jetty.util.thread.ScheduledExecutorScheduler"/>
+ </Arg>
+ </Call>
- <!-- Use this connector for many frequently idle connections
- and for threadless continuations.
- -->
- <Call name="addConnector">
- <Arg>
- <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
- <Set name="host"><SystemProperty name="jetty.host"/></Set>
- <Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
- <Set name="maxIdleTime">30000</Set>
- <Set name="Acceptors">2</Set>
- <Set name="statsOn">false</Set>
- <Set name="confidentialPort">8443</Set>
- <Set name="lowResourcesConnections">5000</Set>
- <Set name="lowResourcesMaxIdleTime">5000</Set>
- </New>
- </Arg>
- </Call>
+ <!-- =========================================================== -->
+ <!-- Set connectors -->
+ <!-- =========================================================== -->
+ <!-- One of each type! -->
+ <!-- =========================================================== -->
- <!-- Use this connector if NIO is not available.
- <Call name="addConnector">
- <Arg>
- <New class="org.mortbay.jetty.bio.SocketConnector">
- <Set name="port">8081</Set>
- <Set name="maxIdleTime">50000</Set>
- <Set name="lowResourceMaxIdleTime">1500</Set>
- </New>
- </Arg>
- </Call>
- -->
+ <!-- Use this connector for many frequently idle connections
+ and for threadless continuations.
+ -->
+ <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <Set name="secureScheme">https</Set>
+ <Set name="securePort"><Property name="jetty.secure.port" default="8443" /></Set>
+ <Set name="outputBufferSize">32768</Set>
+ <Set name="requestHeaderSize">8192</Set>
+ <Set name="responseHeaderSize">8192</Set>
+ <Set name="headerCacheSize">512</Set>
- <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
- <!-- To add a HTTPS SSL listener -->
- <!-- see jetty-ssl.xml to add an ssl connector. use -->
- <!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml -->
- <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
- <!-- =========================================================== -->
- <!-- Set up global session ID manager -->
- <!-- =========================================================== -->
- <!--
- <Set name="sessionIdManager">
- <New class="org.mortbay.jetty.servlet.HashSessionIdManager">
- <Set name="workerName">node1</Set>
- </New>
- </Set>
- -->
+ </New>
- <!-- =========================================================== -->
- <!-- Set handler Collection Structure -->
- <!-- =========================================================== -->
- <Set name="handler">
- <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
- <Set name="handlers">
- <Array type="org.eclipse.jetty.server.Handler">
- <Item>
- <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
- </Item>
- <Item>
- <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
- </Item>
- <Item>
- <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
- </Item>
- </Array>
- </Set>
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server"><Ref refid="Server" /></Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <Item>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config"><Ref refid="httpConfig" /></Arg>
+ </New>
+ </Item>
+ </Array>
+ </Arg>
+ <Set name="host"><Property name="jetty.host" /></Set>
+ <Set name="port"><Property name="jetty.port" default="8080" /></Set>
+ <Set name="idleTimeout">30000</Set>
</New>
- </Set>
-
- <!-- =========================================================== -->
- <!-- Configure the context deployer -->
- <!-- A context deployer will deploy contexts described in -->
- <!-- configuration files discovered in a directory. -->
- <!-- The configuration directory can be scanned for hot -->
- <!-- deployments at the configured scanInterval. -->
- <!-- -->
- <!-- This deployer is configured to deploy contexts configured -->
- <!-- in the $JETTY_HOME/contexts directory -->
- <!-- -->
- <!-- =========================================================== -->
- <Call name="addLifeCycle">
- <Arg>
- <New class="org.eclipse.jetty.deploy.ContextDeployer">
- <Set name="contexts"><Ref id="Contexts"/></Set>
- <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set>
- <Set name="scanInterval">1</Set>
- </New>
- </Arg>
- </Call>
-
- <!-- =========================================================== -->
- <!-- Configure the webapp deployer. -->
- <!-- A webapp deployer will deploy standard webapps discovered -->
- <!-- in a directory at startup, without the need for additional -->
- <!-- configuration files. It does not support hot deploy or -->
- <!-- non standard contexts (see ContextDeployer above). -->
- <!-- -->
- <!-- This deployer is configured to deploy webapps from the -->
- <!-- $JETTY_HOME/webapps directory -->
- <!-- -->
- <!-- Normally only one type of deployer need be used. -->
- <!-- -->
- <!-- =========================================================== -->
- <Call name="addLifeCycle">
- <Arg>
- <New class="org.eclipse.jetty.deploy.WebAppDeployer">
- <Set name="contexts"><Ref id="Contexts"/></Set>
- <Set name="webAppDir"><SystemProperty name="jetty.home" default="."/>/apps</Set>
- <Set name="parentLoaderPriority">false</Set>
- <Set name="extract">true</Set>
- <Set name="allowDuplicates">false</Set>
- </New>
- </Arg>
- </Call>
+ </Arg>
+ </Call>
- <!-- =========================================================== -->
- <!-- Configure Request Log -->
- <!-- Request logs may be configured for the entire server here, -->
- <!-- or they can be configured for a specific web app in a -->
- <!-- contexts configuration (see $(jetty.home)/contexts/test.xml -->
- <!-- for an example). -->
- <!-- =========================================================== -->
- <Ref id="RequestLog">
- <Set name="requestLog">
- <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
- <Set name="filename"><SystemProperty name="jetty.logs" default="./logs"/>/request-yyyy_mm_dd.log</Set>
- <Set name="filenameDateFormat">yyyyMMdd</Set>
- <Set name="retainDays">90</Set>
- <Set name="append">true</Set>
- <Set name="extended">true</Set>
- <Set name="logCookies">false</Set>
- <Set name="LogTimeZone">GMT</Set>
- </New>
+ <!-- =========================================================== -->
+ <!-- Set handler Collection Structure -->
+ <!-- =========================================================== -->
+ <Set name="handler">
+ <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
+ <Set name="handlers">
+ <Array type="org.eclipse.jetty.server.Handler">
+ <Item>
+ <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
+ </Item>
+ <Item>
+ <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
+ </Item>
+ </Array>
</Set>
- </Ref>
+ </New>
+ </Set>
- <!-- =========================================================== -->
- <!-- extra options -->
- <!-- =========================================================== -->
- <Set name="stopAtShutdown">true</Set>
- <Set name="sendServerVersion">true</Set>
- <Set name="sendDateHeader">true</Set>
- <Set name="gracefulShutdown">1000</Set>
+ <Call name="setRequestLog">
+ <Arg>
+ <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
+ <Set name="filename"><SystemProperty name="jetty.logs" default="./logs"/>/request-yyyy_mm_dd.log</Set>
+ <Set name="filenameDateFormat">yyyyMMdd</Set>
+ <Set name="retainDays">90</Set>
+ <Set name="append">true</Set>
+ <Set name="extended">true</Set>
+ <Set name="logCookies">false</Set>
+ <Set name="LogTimeZone">GMT</Set>
+ </New>
+ </Arg>
+ </Call>
+ <Call name="addBean">
+ <Arg>
+ <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
+ <Set name="contexts">
+ <Ref refid="Contexts" />
+ </Set>
+ <Call id="webappprovider" name="addAppProvider">
+ <Arg>
+ <New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
+ <Set name="monitoredDirName"><Property name="jetty.base" default="." />/apps</Set>
+ <Set name="configurationClasses">
+ <Array type="java.lang.String">
+ <Item>org.eclipse.jetty.webapp.WebInfConfiguration</Item>
+ <Item>org.eclipse.jetty.webapp.WebXmlConfiguration</Item>
+ <Item>org.eclipse.jetty.webapp.MetaInfConfiguration</Item>
+ <Item>org.eclipse.jetty.webapp.FragmentConfiguration</Item>
+ <Item>org.eclipse.jetty.plus.webapp.EnvConfiguration</Item>
+ <Item>org.eclipse.jetty.plus.webapp.PlusConfiguration</Item>
+ <!--Item>org.eclipse.jetty.annotations.AnnotationConfiguration</Item-->
+ <Item>org.eclipse.jetty.webapp.JettyWebXmlConfiguration</Item>
+ </Array>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+ </New>
+ </Arg>
+ </Call>
-
- <!-- =========================================================== -->
- <!-- JNDI java:comp/env -->
- <!-- To use JNDI with Jetty, you will need to tell your -->
- <!-- WebAppContext to process the naming related items in -->
- <!-- web.xml. For an example of how to do that, see the test -->
- <!-- webapp below. More information can be found at -->
- <!-- http://docs.codehaus.org/display/JETTY/Jetty+Wiki -->
<!-- =========================================================== -->
-
-
- <!-- Configuring <resource-ref> and <resource-env-ref>s -->
- <!-- -->
- <!-- The following are examples of setting up a resource that -->
- <!-- can be referenced in a web.xml file as a <resource-ref> or -->
- <!-- a <resource-env-ref>. The first argument is the name of the -->
- <!-- resource relative to java:comp/env and must be the SAME as -->
- <!-- the <res-ref-name> or <resource-env-ref-name> in web.xml. -->
- <!-- The second argument is the construction of the resource -->
- <!-- object. Any object at all can be configured. -->
-
-
- <!-- These examples set up a javax.sql.DataSource around an -->
- <!-- XADataSource that is provided by the Derby relational db. -->
- <!-- The DataSource wrapper that is registered in JNDI is -->
- <!-- provided by Atomikos, and works with the Atomikos -->
- <!-- transaction manager configured further below. To use these -->
- <!-- examples, download Atomikos http://www.atomikos.com and -->
- <!-- Derby http://db.apache.org/derby -->
-
-
- <!-- Configuring Transactions -->
- <!-- -->
- <!-- The following is a example of a setting up a JTA -->
- <!-- transaction manager that can be referenced by looking up -->
- <!-- java:comp/UserTransaction. Note that this is just an -->
- <!-- example and if you uncomment it, you will need to download -->
- <!-- the atomikos jar (see http://www.atomikos.com/download.html)-->
- <!-- You can configure any transaction manager that implements -->
- <!-- javax.transaction.UserTransaction. -->
+ <!-- extra options -->
+ <!-- =========================================================== -->
+ <Set name="stopAtShutdown">true</Set>
<Call name="setAttribute">
</Arg>
</New>
- <!-- Users / Security Database -->
- <!--
- <New id="users" class="org.eclipse.jetty.plus.jndi.Resource">
- <Arg>jdbc/users</Arg>
- <Arg>
- <New class="org.apache.derby.jdbc.EmbeddedDataSource">
- <Set name="DatabaseName"><SystemProperty name="appserver.base" default=".."/>/data/databases/users</Set>
- <Set name="user">sa</Set>
- <Set name="createDatabase">create</Set>
- </New>
- </Arg>
- </New>
-
- <New id="usersShutdown" class="org.eclipse.jetty.plus.jndi.Resource">
- <Arg>jdbc/usersShutdown</Arg>
- <Arg>
- <New class="org.apache.derby.jdbc.EmbeddedDataSource">
- <Set name="DatabaseName"><SystemProperty name="appserver.base" default=".."/>/data/databases/users</Set>
- <Set name="user">sa</Set>
- <Set name="shutdownDatabase">shutdown</Set>
- </New>
- </Arg>
- </New>
- -->
<New id="users" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg>jdbc/users</Arg>
<Arg>
</New>
- <!--
- <New id="ArchivaWebAppContext" class="org.eclipse.jetty.webapp.WebAppContext">
- <Arg><Ref id="Handlers"/></Arg>
- <Arg><SystemProperty name="jetty.home" default="."/>/apps/archiva</Arg>
- <Arg>/</Arg>
- <Set name="extractWAR">false</Set>
- <Set name="throwUnavailableOnStartupException">true</Set>
- </New>
- -->
</Configure>