<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $Id$ -->
<!DOCTYPE Configure PUBLIC
	"-//Mort Bay Consulting//DTD Configure 1.2//EN"
	"http://jetty.mortbay.org/configure_1_2.dtd">
<!--
  This configuration file is used to allow the Tutorial to be run directly from
  the main distribution directory (i.e., without having to build the frameworks).
  -->
<Configure class="org.mortbay.jetty.Server">
  <Call name="addListener">
    <Arg>
      <New class="org.mortbay.http.SocketListener">
        <Set name="Port">8080</Set>
        <Set name="MinThreads">1</Set>
        <Set name="MaxThreads">10</Set>
        <Set name="MaxIdleTimeMs">50000</Set>
      </New>
    </Arg>
  </Call>
  
  <Call name="addWebApplication">
    <Arg>/workbench</Arg>
    <Arg>lib/examples/workbench.war</Arg>
    <Set name="DefaultsDescriptor">config/webdefault.xml</Set>
  </Call>
  
   <Call name="addContext">
    <Arg>/private/*</Arg>
    <Set name="ResourceBase">private</Set>
    
    <Call name="addHandler">
      <Arg><New class="org.mortbay.http.handler.ResourceHandler"/></Arg>
    </Call>
    
    <Call name="addHandler">
    	<Arg><New class="org.mortbay.http.handler.NotFoundHandler"/></Arg>
    </Call>
  </Call>
  
  <Call name="addContext">
    <Arg>/</Arg>   
    <Set name="realmName">Jetty Demo Realm</Set>
   
    <Call name="addServlet">
      <Arg>Admin</Arg>
      <Arg>/</Arg>
      <Arg>org.mortbay.servlet.AdminServlet</Arg>
    </Call>
    
    <Call name="setAttribute">
      <Arg>org.mortbay.http.HttpServer</Arg>
      <Arg><Call name="getHttpServer"/></Arg>
    </Call>
  </Call> 
   
</Configure>
