<!-- =============================================================== -->
<!-- Configure the Jetty Server                                      -->
<!--                                                                 -->
<!-- Documentation of this file format can be found at:              -->
<!-- http://docs.codehaus.org/display/JETTY/jetty.xml                -->
<!--                                                                 -->
<!-- =============================================================== -->
<Configure id="Server" class="org.eclipse.jetty.server.Server">
  <!-- =========================================================== -->
  <!-- Server Thread Pool                                          -->
  <!-- =========================================================== -->
  <Set name="ThreadPool">
    <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
      <Set name="minThreads">4</Set>
      <Set name="maxThreads">128</Set>
      <!--<Set name="lowThreads">2</Set>-->
      <Set name="name">JettyFEF</Set>
    </New>
  </Set>

  <!-- =========================================================== -->
  <!-- Set connectors                                              -->
  <!-- =========================================================== -->
  <!-- One of each type!                                           -->
  <!-- =========================================================== -->
  <!-- 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="port">
        	<SystemProperty name="netkernel.http.frontend.port" default="8080" />
        </Set>
        <Set name="maxIdleTime">30000</Set>
        <Set name="Acceptors">1</Set>
        <Set name="lowResourcesConnections">50</Set>
        <Set name="lowResourceMaxIdleTime">5000</Set>
        <Set name="statsOn">true</Set>
      </New>
    </Arg>
  </Call>
  
  <!--
  		Uncomment for SSL Connector.
  	    See Jetty wiki for details:  http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
  <Call name="addConnector">
    <Arg>
      <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
        <Set name="port">8443</Set>
        <Set name="maxIdleTime">30000</Set>
        <Set name="Acceptors">2</Set>
        <Set name="confidentialPort">1060</Set>
        <Set name="lowResourcesConnections">100</Set>
        <Set name="lowResourceMaxIdleTime">5000</Set>
        <Set name="statsOn">true</Set>
        <Set name="keystore">/home/pjr/workspace/install/keystore</Set>
        <Set name="password">test123</Set>
        <Set name="truststore">/home/pjr/workspace/install/keystore</Set>
        <Set name="trustPassword">test123</Set>
        <Set name="keyPassword">test123</Set>
      </New>
    </Arg>
  </Call>
	-->
	
	<Call name="setHandler">
		<Arg>
			<New id="NetKernelHandler" class="org.eclipse.jetty.server.handler.HandlerList">
				<!--Uncomment for NCSA Logging
				<Call name="addHandler">
					<Arg>
						<New id="Logger" class="org.eclipse.jetty.server.handler.RequestLogHandler">
							 <Set name="requestLog">
								 <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
								      <Set name="filename">./log/BEFNetKernelHTTP_ExptFulcrum_yyyy_mm_dd.log</Set>
									  <Set name="filenameDateFormat">yyyy_MM_dd</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>
						 </New>
					</Arg>
				</Call>
				-->
				<Call name="addHandler">
					<Arg>
						<New id="NetKernelWebSocketHandler" class="org.netkernel.http.transport.NetKernelWebSocketHandler">
							<Set name="maxIdleTime">300000</Set>	<!--5 Minutes-->
						</New>
					</Arg>
				</Call>
				<Call name="addHandler">
					<Arg>
						<New id="NetKernelHandler" class="org.netkernel.http.transport.NetKernelHandler">
						</New>
					</Arg>
				</Call>
			</New>
		</Arg>
	</Call>
		
  <!-- =========================================================== -->
  <!-- extra options                                               -->
  <!-- =========================================================== -->
  <Set name="stopAtShutdown">false</Set>
  <Set name="sendServerVersion">true</Set>
  <Set name="sendDateHeader">true</Set>
  <Set name="gracefulShutdown">100</Set>
</Configure>