You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@locus.apache.org on 2000/09/10 01:21:21 UTC

cvs commit: jakarta-tomcat/src/etc/jserv tomcat.conf tomcat.properties

costin      00/09/09 16:21:21

  Added:       src/etc/ant test-tomcat.xml
               src/etc/jk jni_workers.properties mod_jk.conf obj.conf
                        uriworkermap.properties workers.properties
                        wrapper.properties
               src/etc/jserv tomcat.conf tomcat.properties
  Removed:     src/etc  jni_workers.properties manifest.servlet mod_jk.conf
                        obj.conf test-tomcat.xml tomcat.conf
                        tomcat.properties uriworkermap.properties
                        workers.properties wrapper.properties
  Log:
  Moved jk files to conf/jk, jserv files to conf/jserv.
  Other modules/connectors may be added - each will have it's own
  separate dir.
  
  conf/ant will have various ant files used for tomcat, including templates
  for webapp building, (automated ) admin tasks, etc.
  
  Revision  Changes    Path
  1.1                  jakarta-tomcat/src/etc/ant/test-tomcat.xml
  
  Index: test-tomcat.xml
  ===================================================================
  <project name="TestRun" default="main">
     <!-- To test tomcat standalone, type:
            bin/tomcat.sh ant -f conf/test-tomcat.xml client
          
          To test apache, type:
            bin/tomcat.sh ant -f conf/test-tomcat.xml -Dport=8001 -Dhttp.protocol=HTTP/1.1 client
      -->
    
     <target name="init">
       <property name="host" value="localhost" />
       <property name="port"     value="8080" />
       <property name="tomcat.home" value="." />
       <property name="gdir" value="${tomcat.home}/lib/test/Golden" />
       <property name="http.protocol" value="HTTP/1.0" />
       
       <taskdef name="gtest" classname="org.apache.tomcat.task.GTest" />
     </target>
  
    <!-- ==================== File tests ==================== -->
    <target name="file">
      <gtest host="${host}" port="${port}"  description="Content Type Test"
             request="GET /test/binaries/image1.gif HTTP/1.0"
             expectHeaders="Content-Type:image/gif" />
  
      <gtest host="${host}" port="${port}"  description="File Integrity and Length Test"
             request="GET /test/binaries/image1.gif HTTP/1.0"
             goldenFile="${gdir}/image1.gif"
             exactMatch="true"  />
  
      <gtest host="${host}" port="${port}"  description="Welcome File Test1"
             request="GET /test/welcome HTTP/1.0"
             expectHeaders="Location:/welcome/" 
             returnCode="${http.protocol} 302" />
  
      <!-- 302 is a valid response 
      <gtest host="${host}" port="${port}"  description="Welcome File Test2"
             request="GET /test/binaries HTTP/1.0"
             returnCode="${http.protocol} 200" />
       --> 
  
      <!-- 302 is a valid response
      <gtest host="${host}" port="${port}"  description="Welcome File Test3"
             request="GET /test/welcome/ HTTP/1.0"
             returnCode="${http.protocol} 200" 
             goldenFile="${gdir}/welcome.txt" />
      -->
     </target>
  
    <!-- ==================== Dispatch tests ==================== -->
      <target name="dispatch">
        <gtest host="${host}" port="${port}"  description="SimpleRedirect"
               request="GET /test/servlet/dispatch.SimpleRedirectServlet?/index.html HTTP/1.0"
               expectHeaders="Location:http://${host}:${port}/index.html" 
               returnCode="${http.protocol} 302" 
         />
        <gtest host="${host}" port="${port}"  description="SimpleRedirect2"
               request="GET /test/servlet/dispatch.SimpleRedirectServlet?index.html HTTP/1.0"
               expectHeaders="Location:http://${host}:${port}/test/servlet/index.html" 
               returnCode="${http.protocol} 302" 
         />
        <gtest host="${host}" port="${port}"  description="SimpleInclude"
               request="GET /test/servlet/dispatch.SimpleIncludeServlet HTTP/1.0"
               expectHeaders="Content-Type:text/foobar" 
               returnCode="${http.protocol} 200"
               goldenFile="${gdir}/SimpleInclude.txt" 
         />
        <gtest host="${host}" port="${port}"  description="SimpleForward"
               request="GET /test/servlet/dispatch.SimpleForwardServlet HTTP/1.0"
               expectHeaders="Content-Type:text/funky" 
               returnCode="${http.protocol} 200"
               goldenFile="${gdir}/SimpleForward.txt" 
         />
        <gtest host="${host}" port="${port}"  description="PrintWriterTest"
               request="GET /test/servlet/dispatch.PrintWriterTest1Servlet HTTP/1.0"
               returnCode="${http.protocol} 200"
               responseMatch="PreInclude" 
         />
        <gtest host="${host}" port="${port}"  description="PrintWriterTest"
               request="GET /test/servlet/dispatch.PrintWriterTest1Servlet HTTP/1.0"
               returnCode="${http.protocol} 200"
               responseMatch="PostInclude" 
         />
        <gtest host="${host}" port="${port}"  description="PrintWriterTest"
               request="GET /test/servlet/dispatch.PrintWriterTest1Servlet HTTP/1.0"
               returnCode="${http.protocol} 200"
               responseMatch="Included servlet error: 500" 
         />
        <gtest host="${host}" port="${port}"  description="Mismatch2"
               request="GET /test/servlet/dispatch.Mismatch2 HTTP/1.0"
               returnCode="${http.protocol} 200"
               goldenFile="${gdir}/Mismatch2.txt" 
         />
  
        <gtest host="${host}" port="${port}"  description="IncludeMismatch1-1"
               request="GET /test/servlet/dispatch.IncludeMismatch1 HTTP/1.0"
               returnCode="${http.protocol} 200"
               responseMatch="LINE1" 
         />
  
        <gtest host="${host}" port="${port}"  description="IncludeMismatch1-2"
               request="GET /test/servlet/dispatch.IncludeMismatch1 HTTP/1.0"
               returnCode="${http.protocol} 200"
               responseMatch="error: 500" 
         />
  
        <gtest host="${host}" port="${port}"  description="IncludeMismatch1-3"
               request="GET /test/servlet/dispatch.IncludeMismatch1 HTTP/1.0"
               returnCode="${http.protocol} 200"
               responseMatch="LINE1" 
         />
  
        <gtest host="${host}" port="${port}"  description="IncludeFile"
               request="GET /test/servlet/dispatch.IncludeFileServlet HTTP/1.0"
               returnCode="${http.protocol} 200"
               expectHeaders="Content-Type:text/foobar" 
               goldenFile="${gdir}/IncludeFile.txt" 
         />
  
        <!-- Parameter order may change 
        <gtest host="${host}" port="${port}"  description="ForwardWithQuery"
               request="GET /test/servlet/dispatch.ForwardWithQueryServlet?name=Sun%20Microsystems&amp;age=100000&amp;city=Cupertino HTTP/1.0"
               returnCode="${http.protocol} 200"
               expectHeaders="Content-Type:text/funky" 
               goldenFile="${gdir}/ForwardWithQuery.txt" 
         />    
         -->
  
      
  
      </target>
  
    <!-- ==================== Jsp tests ==================== -->
    <target name="jsp">
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/HelloWorld.jsp HTTP/1.0"
             goldenFile="${gdir}/HelloWorld.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/doesNotExist.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/ HTTP/1.0"
             goldenFile="${gdir}/index.txt"  
             description="Serves index.html"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             description="Getting -- HTTP/1.0 302 Found"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/HelloWorld.jsp?????? HTTP/1.0"
             goldenFile="${gdir}/HelloWorld.txt"
             debug="0"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/HelloWorld.jsp?a=b&amp;c=d HTTP/1.0"
             goldenFile="${gdir}/HelloWorld.txt"
             debug="0"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/HelloWorld.jsp?&amp;&amp; HTTP/1.0"
             goldenFile="${gdir}/HelloWorld.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/declaration/IntegerOverflow.jsp HTTP/1.0"
             returnCode="${http.protocol} 500"
             debug="0"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/error/err.jsp HTTP/1.0"
             goldenFile="${gdir}/Err.txt"
             returnCode="${http.protocol} 200"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/forward/forward.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/jsptoserv/jsptoservlet.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/jsptoservlet.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/initDestroy.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/classTest.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/classTest.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/import.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/import.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/buffer.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/buffer.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/buffer1.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/buffer2.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/buffer3.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/buffer4.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/comments.jsp HTTP/1.0"
             returnCode="${http.protocol} 500"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/parse.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/parse.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageInfo.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageLanguage.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageIsThreadSafe.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageSession.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageAutoFlush.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageError.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageExtends.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageIsErrorPage.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageContentType.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageImport2.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageImport.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/pageImport.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/beanTest1.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/beanTest.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/beanTest2.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/beanScopePage.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/beanScopeSession.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             debug="0"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitOut.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitOut.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitConfig.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitConfig.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitException.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitException.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitPageContext.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitPageContext.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitContext.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitContext.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitRequest.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitRequest.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitResponse.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitResponse.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitSession.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitSession.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/implicitPageContext.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/implicitPageContext.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageInvalid.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageDouble.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/pageContent3.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/servlet/servletParam1 HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/servletParam1.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/servlet/servletParam2 HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/servletParam2.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/servlet/ServletParam HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/ServletParam.txt"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/bigDeclaration.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/include/include.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             goldenFile="${gdir}/Include.txt"
      />
   
      <gtest host="${host}" port="${port}"  request="GET /test/jsp/chinese.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
     <gtest host="${host}" port="${port}"  request="GET /test/jsp/japanese.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
     <gtest host="${host}" port="${port}"  request="GET /test/jsp/extends1.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" 
      />
  
     <gtest host="${host}" port="${port}"  request="GET /test/jsp/extends2.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" 
      />
  
     <gtest host="${host}" port="${port}"  request="GET /test/jsp/extends3.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
     <gtest host="${host}" port="${port}"  request="GET /test/jsp/extends4.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
      />
  
     </target>
  
    <target name="wrong_request">
      <gtest host="${host}" port="${port}"  request="GET /test/*.jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <gtest host="${host}" port="${port}"  request="GET *jsp HTTP/1.0"
             returnCode="${http.protocol} 200"
             magnitude="false" />
  
      <!-- Hangs on apache - apache expects a 1.0 request 
          gtest host="${host}" port="${port}"  request="GET /test/jsp/HelloWorld.jsp HTTP"
             returnCode="${http.protocol} 400"
      /-->
  
      <!-- Hangs on apache - apache expects a 1.0 request 
          gtest host="${host}" port="${port}"  request="GET /test/jsp/HelloWorld.jsp 1.0"
             returnCode="${http.protocol} 400"
      / -->
  
      <!-- Hangs on apache - apache expects a 1.0 request 
         gtest host="${host}" port="${port}"  request="GET /test/jsp/HelloWorld.jsp /1.0"
             returnCode="${http.protocol} 400"
      / -->
  
    </target>
  
  
  
     <target name="get">
        <gtest host="${host}" port="${port}"  request="GET /test/servlet/Cookie25 HTTP/1.0"
               expectHeaders="Set-Cookie2:foo=bar;Version=1;Max-Age=8640000"
        />
  
        <gtest host="${host}" port="${port}"  request="GET /test/servlet/ResponseError HTTP/1.0"
               returnCode="${http.protocol} 400"
               responseMatch="Wrong data"
        />
  
        <gtest host="${host}" port="${port}"  request="GET /test/request/uri/does/not/exist"
               returnCode="404"
        />
  
        <gtest host="${host}" port="${port}"  request="GET /test/request/uri/does/not/exist HTTP/1.0"
               returnCode="${http.protocol} 404"
        />
  
        <gtest host="${host}" port="${port}"  request="GET /test/"
               returnCode="Error: "
               magnitude="false" />
  
        <!-- Hangs apache - it starts with " ", apache expects a 1.0 request
             gtest host="${host}" port="${port}"  request="   GET   /   "
               returnCode="Error: "
               magnitude="false" / -->
  
        <!-- 302 is a valid response
        <gtest host="${host}" port="${port}"  request="GET /test/ HTTP/1.0"
               returnCode="${http.protocol} 200"
        />
        -->
  
        <!-- 302 is a valid response
        <gtest host="${host}" port="${port}"  request="   GET   /   HTTP/1.0"
               returnCode="${http.protocol} 200"
        />
        -->
  
        <gtest host="${host}" port="${port}"  request="GET /test/index.ht ml HTTP/1.0"
               returnCode="${http.protocol} 400"
        />
  
        <gtest host="${host}" port="${port}"  request="   GET   /index.ht ml HTTP/1.0 "  
               returnCode="${http.protocol} 400"
        />
  
  
        <gtest host="${host}" port="${port}"  request="GET /test/servlet HTTP/1.0"
               returnCode="${http.protocol} 404"
        />
  
        <gtest host="${host}" port="${port}"  request="GET /test/servlet/ HTTP/1.0"
               returnCode="${http.protocol} 404"
        />
  
        <gtest host="${host}" port="${port}"  request="GET /test/servlet/foo HTTP/1.0"
               returnCode="${http.protocol} 404"
        />
  
        <gtest host="${host}" port="${port}"  request="GET /test/welcome HTTP/1.0"
               returnCode="${http.protocol} 302"
        />
  
  
     </target>
  
  
     <target name="requestMap">
        <gtest host="${host}" port="${port}"  description="/foo/bar/index.html : 1.0 : 200"
               request="GET /test/foo/bar/index.html HTTP/1.0"
               responseMatch="Servlet: Servlet1"
              />
  
        <gtest host="${host}" port="${port}"  description="/foo/bar/index.bop : 1.0 : 200"
               request="GET /test/foo/bar/index.bop HTTP/1.0"
               responseMatch="Servlet: Servlet1"
              />
  
        <gtest host="${host}" port="${port}"  description="/baz : 1.0 : 200"
               request="GET /test/baz HTTP/1.0"
               responseMatch="Servlet: Servlet2"
              />
  
        <gtest host="${host}" port="${port}"  description="/baz/index.html : 1.0 : 200"
               request="GET /test/baz/index.html HTTP/1.0"
               responseMatch="Servlet: Servlet2"
              />
  
        <gtest host="${host}" port="${port}"  description="/catalog : 1.0 : 200"
               request="GET /test/catalog HTTP/1.0"
               responseMatch="Servlet: Servlet3"
              />
  
        <gtest host="${host}" port="${port}"  description="/catalog/index.html : 1.0 : 200"
               request="GET /test/catalog/index.html HTTP/1.0"
               returnCode="${http.protocol} 404"
               />
  
        <gtest host="${host}" port="${port}"  description="/catalog/racecar.bop : 1.0 : 200"
               request="GET /test/catalog/racecar.bop HTTP/1.0"
               responseMatch="Servlet: Servlet4"
              />
  
        <gtest host="${host}" port="${port}"  description="/index.bop : 1.0 : 200"
               request="GET /test/index.bop HTTP/1.0"
               responseMatch="Servlet: Servlet4"
              />
     </target>
  
    <target name="post1">
      <gtest host="${host}" port="${port}"  description="Content Type Test"
             request="POST /test/servlet/Post HTTP/1.0"
             debug="10"
             content="Test POST BODY" />
     </target>
     
     <target name="post">
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/request.NotThere HTTP/1.0"
               content="name=lightness of being"
               returnCode="${http.protocol} 404"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet HTTP/1.0"
               content="name=lightness of being"
               returnCode="${http.protocol} 200"
              />
  
        <gtest host="${host}" port="${port}"  request="GHOST /test/servlet/request.EchoServlet HTTP/1.0"
               content="name=lightness of being"
               returnCode="${http.protocol} 501"
              />
  
        <!-- Hangs on apache, apache expects a 1.0 requets
          gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet HT TP/1.0"
               content="name=lightness of being"
               returnCode="Error: 400"
              /-->
  
        <!-- tomcat will wait a request - it's the same as if the client will do a post and stop
             transmiting.
             XXX XXX Tomcat needs timeout 
        <gtest host="${host}" port="${port}"  request="POST "
               content="name=lightness of being"
               returnCode="Error: 400"
              />
         -->
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet HTTP/1.0"
               content=""
               returnCode="${http.protocol} 200"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet HTTP/1.0"
               content=""
               returnCode="${http.protocol} 404"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/ HTTP/1.0"
               content=""
               returnCode="${http.protocol} 404"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/"
               content=""
               returnCode="${http.protocol} 400"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet"
               content="name=lightness of being"
               returnCode="${http.protocol} 200"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet"
               content="name=lightness of being,,,,,,,....###///&amp;&amp;@@@@@***"
               returnCode="${http.protocol} 200"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet"
               content="name=lightness of being,,,,,,,....###///&amp;&amp;&amp;&amp;@@@@@***"
               returnCode="${http.protocol} 200"
              />
  
        <gtest host="${host}" port="${port}"  request="POST \/test/servlet/request.EchoServlet?name=sun&amp;age=2000"
               content="name=lightness of being,,,,,,,....###///&amp;@@@@@***"
               returnCode="${http.protocol} 200"
              />
  
        <gtest host="${host}" port="${port}"  request="POST \"
               content="name=lightness of being"
               returnCode="Error: 400"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet HTTP/1.0"
               content="name=lightness of being"
               returnCode="${http.protocol} 200"
              />
  
        <gtest host="${host}" port="${port}"  request="post /test/servlet/request.EchoServlet HTTP/1.0"
               content="name=lightness of being"
               returnCode="${http.protocol} 501"
              />
  
        <gtest host="${host}" port="${port}"  request="GET http://www.javasoft.com/index.html HTTP/1.0   "
               returnCode="${http.protocol} 400"
              />
  
        <gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet HTTP/1.0"
               headers="Content-Encoding: x-gzip"
               content="name=lightness of being"
               returnCode="${http.protocol} 200"
              />
  
        <!-- Can't be OK - we don't implement HTTP/4.4 
         gtest host="${host}" port="${port}"  request="POST /test/servlet/request.EchoServlet  HTTP/4.4"
               content="name=lightness of being"
               returnCode="${http.protocol} 200"
              / -->
     </target>
  
  
     <target name="startup">
       <java classname="org.apache.tomcat.startup.Tomcat" args="" />
     </target>
  
  
     <target name="client" depends="file,dispatch,get,requestMap,post,jsp,wrong_request">
     </target>
  
  
     <target name="shutdown">
       <java classname="org.apache.tomcat.startup.Tomcat" args="-stop" />
     </target>
  
  
     <target name="main" depends="startup,client,shutdown" />
  
  
  </project>
  
  
  
  
  1.1                  jakarta-tomcat/src/etc/jk/jni_workers.properties
  
  Index: jni_workers.properties
  ===================================================================
  
  #
  # Sample worker configuration file with a jni worker
  #
  # You will probably need to update your tomcat
  # root directory and JVM library path
  #
  # You should begin by replacing any occurrence of d:\tomcat with
  # your own tomcat root. Following that replace path starting with
  # d:\sdk\jdk1.2.2\ with your own java home.
  #
  worker.list=jni
  
  worker.jni.type=jni
  
  #
  # Additional class path components.
  #
  worker.jni.class_path=d:\tomcat\classes
  worker.jni.class_path=d:\tomcat\lib\xml.jar
  worker.jni.class_path=d:\tomcat\lib\jasper.jar
  worker.jni.class_path=d:\tomcat\lib\servlet.jar
  worker.jni.class_path=d:\tomcat\lib\webserver.jar
  worker.jni.class_path=d:\sdk\jdk1.2.2\lib\tools.jar
  # worker.jni.class_path=d:\SQLLIB\java\db2java.zip
  
  #
  # Setting the command line for tomcat
  #
  worker.jni.cmd_line=-config
  worker.jni.cmd_line=d:\tomcat\conf\jni_server.xml
  
  #
  # The JVM that we are about to use
  #
  # This is for jdk1.2.x
  #
  worker.jni.jvm_lib=d:\sdk\jdk1.2.2\jre\bin\classic\jvm.dll
  #
  # And this is for jdk1.1.7
  #
  #worker.jni.jvm_lib=d:\sdk\jdk1.1.7\bin\javai.dll
  #
  
  #
  # Setting the place for the stdout and stderr of tomcat
  #
  worker.jni.stdout=d:\tomcat\jvm.stdout
  worker.jni.stderr=d:\tomcat\jvm.stderr
  
  #
  # Setting the tomcat.home Java property
  #
  worker.jni.sysprops=tomcat.home=D:\tomcat\
  
  #
  # Java system properties
  #
  # worker.jni.sysprops=java.compiler=NONE
  # worker.jni.sysprops=myprop=mypropvalue
  
  #
  # Additional path components.
  #
  # worker.jni.ld_path=d:\SQLLIB\bin
  #
  
  
  
  
  
  1.1                  jakarta-tomcat/src/etc/jk/mod_jk.conf
  
  Index: mod_jk.conf
  ===================================================================
  
  LoadModule jk_module modules/mod_jk.dll
  
  <IfModule mod_jk.c>
  
  JkWorkersFile <fill-path-to>/workers.properties
  JkLogFile  logs/jk.log
  JkLogLevel warn
  JkMount /*.jsp ajp12
  JkMount /servlet/* ajp12
  JkMount /examples/* ajp12
  
  </IfModule>
  
  
  
  1.1                  jakarta-tomcat/src/etc/jk/obj.conf
  
  Index: obj.conf
  ===================================================================
  
  Init fn=flex-init access="d:/web-servers/ent3.6/https-ps139-16/logs/access" format.access="%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] \"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length%"
  Init fn=load-types mime-types=mime.types
  
  #
  # Initializing the redirector
  #
  Init fn="load-modules" funcs="jk_init,jk_service" shlib="d:/tomcat/bin/netscape/nt4/i386/nsapi_redirect.dll"
  Init fn="jk_init" worker_file="d:/tomcat/conf/workers.properties" log_level="debug" log_file="d:/tomcat/nsapi.log"
  
  <Object name=default>
  #
  # Assign contexts to Tomcat
  #
  NameTrans fn="assign-name" from="/servlet/*" name="servlet"
  NameTrans fn="assign-name" from="/examples/*" name="servlet"
  #
  # Advanced context configuration
  #
  # NameTrans fn="assign-name" from="/examples/jsp/*.jsp" name="servlet"
  # NameTrans fn="assign-name" from="/examples/servlet/*" name="servlet"
  # NameTrans fn=pfx2dir from=/examples dir="d:/tomcat/examples"
  
  NameTrans fn=pfx2dir from=/ns-icons dir="d:/web-servers/ent3.6/ns-icons"
  NameTrans fn=pfx2dir from=/mc-icons dir="d:/web-servers/ent3.6/ns-icons"
  NameTrans fn="pfx2dir" from="/help" dir="d:/web-servers/ent3.6/manual/https/ug"
  NameTrans fn=document-root root="d:/web-servers/ent3.6/docs"
  
  #
  # Advanced context configuration
  #
  # PathCheck fn="deny-existence" path="*/WEB-INF/*"
  
  PathCheck fn=nt-uri-clean
  PathCheck fn="check-acl" acl="default"
  PathCheck fn=find-pathinfo
  PathCheck fn=find-index index-names="index.jsp,index.html,home.html"
  ObjectType fn=type-by-extension
  ObjectType fn=force-type type=text/plain
  Service method=(GET|HEAD) type=magnus-internal/imagemap fn=imagemap
  Service method=(GET|HEAD) type=magnus-internal/directory fn=index-common
  Service method=(GET|HEAD) type=*~magnus-internal/* fn=send-file
  AddLog fn=flex-log name="access"
  </Object>
  
  <Object name=cgi>
  ObjectType fn=force-type type=magnus-internal/cgi
  Service fn=send-cgi
  </Object>
  
  <Object name=servlet>
  #
  # Pass the request to the ajp12 worker
  #
  ObjectType fn=force-type type=text/plain
  Service fn="jk_service" worker="ajp12"
  
  #
  # Pass the request to the jni worker
  #
  # Service fn="jk_service" worker="ajp12"
  #
  </Object>
  
  
  
  
  1.1                  jakarta-tomcat/src/etc/jk/uriworkermap.properties
  
  Index: uriworkermap.properties
  ===================================================================
  
  #
  # Simple worker configuration file
  #
  
  # Mount the servlet context to the ajp12 worker
  /servlet/*=ajp12
  
  # Mount the examples context to the ajp12 worker
  /examples/*=ajp12
  
  # Advanced mount of the examples context
  # /examples/*.jsp=ajp12
  # /examples/servlet/*=ajp12
  
  
  
  1.1                  jakarta-tomcat/src/etc/jk/workers.properties
  
  Index: workers.properties
  ===================================================================
  #
  # $Header: /home/cvs/jakarta-tomcat/src/etc/jk/workers.properties,v 1.1 2000/09/09 23:21:20 costin Exp $
  # $Revision: 1.1 $
  # $Date: 2000/09/09 23:21:20 $
  #
  #
  # workers.properties -
  #
  # This file provides jk deriven plugins with with the needed information to
  # connect to the different tomcat workers.
  #
  # As a general note, the characters $( and ) are used internally to define
  # macros. Do not use them in your own configuration!!!
  #
  # Whenever you see a set of lines such as:
  # x=value
  # y=$(x)\something
  #
  # the final value for y will be value\something
  #
  # Normaly all you will need to modify is the first properties, i.e.
  # workers.tomcat_home, workers.java_home and ps. Most of the configuration
  # is derived from these.
  #
  # When you are done updating workers.tomcat_home, workers.java_home and ps
  # you should have 3 workers configured:
  #
  # - An ajp12 worker that connects to localhost:8007
  # - An ajp13 worker that connects to localhost:8009
  # - A jni inprocess worker.
  # - A load balancer worker
  #
  # However by default the plugins will only use the ajp12 worker. To have
  # the plugins use other workers you should modify the worker.list property.
  #
  #
  
  #
  # workers.tomcat_home should point to the location where you
  # installed tomcat. This is where you have your conf, webapps and lib
  # directories.
  #
  workers.tomcat_home=d:\Jakarta\build\tomcat
  
  #
  # workers.java_home should point to your Java installation. Normally
  # you should have a bin and lib directories beneath it.
  #
  workers.java_home=d:\sdk\jdk1.2.2
  
  #
  # You should configure your environment slash... ps=\ on NT and / on UNIX
  # and maybe something different elsewhere.
  #
  ps=\
  # ps=/
  
  #
  #------ ADVANCED MODE ------------------------------------------------
  #---------------------------------------------------------------------
  #
  
  #
  #------ DEFAULT worket list ------------------------------------------
  #---------------------------------------------------------------------
  #
  #
  # The workers that your plugins should create and work with
  #
  worker.list=ajp12, ajp13
  
  #
  #------ DEFAULT ajp12 WORKER DEFINITION ------------------------------
  #---------------------------------------------------------------------
  #
  
  #
  # Defining a worker named ajp12 and of type ajp12
  # Note that the name and the type do not have to match.
  #
  worker.ajp12.port=8007
  worker.ajp12.host=localhost
  worker.ajp12.type=ajp12
  #
  # Specifies the load balance factor when used with
  # a load balancing worker.
  # Note:
  #  ----> lbfactor must be > 0
  #  ----> Low lbfactor means less work done by the worker.
  worker.ajp12.lbfactor=1
  
  #
  #------ DEFAULT ajp13 WORKER DEFINITION ------------------------------
  #---------------------------------------------------------------------
  #
  
  #
  # Defining a worker named ajp13 and of type ajp13
  # Note that the name and the type do not have to match.
  #
  worker.ajp13.port=8009
  worker.ajp13.host=localhost
  worker.ajp13.type=ajp13
  #
  # Specifies the load balance factor when used with
  # a load balancing worker.
  # Note:
  #  ----> lbfactor must be > 0
  #  ----> Low lbfactor means less work done by the worker.
  worker.ajp13.lbfactor=1
  
  #
  # Specify the size of the open connection cache.
  #worker.ajp13.cachesize
  
  #
  #------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
  #---------------------------------------------------------------------
  #
  
  #
  # The loadbalancer (type lb) workers perform wighted round-robin
  # load balancing with sticky sessions.
  # Note:
  #  ----> If a worker die the load balancer will check its state
  #        once in a while. Until then all work is redirected to peer
  #        workers.
  worker.loadbalancer.type=lb
  worker.loadbalancer.balanced_workers=ajp12, ajp13
  
  
  #
  #------ DEFAULT JNI WORKER DEFINITION---------------------------------
  #---------------------------------------------------------------------
  #
  
  #
  # Defining a worker named inprocess and of type jni
  # Note that the name and the type do not have to match.
  #
  worker.inprocess.type=jni
  
  #
  #------ CLASSPATH DEFINITION -----------------------------------------
  #---------------------------------------------------------------------
  #
  
  #
  # Additional class path components.
  #
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)classes
  
  #
  # The exact identity of the XML parser used in unknown yet, so I put
  # them all.
  #
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)xml.jar
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jaxp.jar
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)parser.jar
  
  #
  # Tomcat's implementation
  #
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jasper.jar
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)servlet.jar
  worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)webserver.jar
  
  #
  # Javac as available from Java2SE
  #
  worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
  
  #
  # Setting the command line for tomcat
  #
  worker.inprocess.cmd_line=-config
  worker.inprocess.cmd_line=$(workers.tomcat_home)/conf/jni_server.xml
  worker.inprocess.cmd_line=-home
  worker.inprocess.cmd_line=$(workers.tomcat_home)
  
  #
  # The JVM that we are about to use
  #
  # This is for Java2
  #
  worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
  
  #
  # And this is for jdk1.1.X
  #
  #worker.inprocess.jvm_lib=$(workers.java_home)$(ps)bin$(ps)javai.dll
  #
  
  #
  # Setting the place for the stdout and stderr of tomcat
  #
  worker.inprocess.stdout=$(workers.tomcat_home)$(ps)inprocess.stdout
  worker.inprocess.stderr=$(workers.tomcat_home)$(ps)inprocess.stderr
  
  #
  # Setting the tomcat.home Java property
  #
  worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home)
  
  #
  # Java system properties
  #
  # worker.inprocess.sysprops=java.compiler=NONE
  # worker.inprocess.sysprops=myprop=mypropvalue
  
  #
  # Additional path components.
  #
  # worker.inprocess.ld_path=d:$(ps)SQLLIB$(ps)bin
  #
  
  
  
  
  
  1.1                  jakarta-tomcat/src/etc/jk/wrapper.properties
  
  Index: wrapper.properties
  ===================================================================
  #
  # $Header: /home/cvs/jakarta-tomcat/src/etc/jk/wrapper.properties,v 1.1 2000/09/09 23:21:20 costin Exp $
  # $Revision: 1.1 $
  # $Date: 2000/09/09 23:21:20 $
  #
  #
  # jk_service.properties - a bootstrup file for the Tomcat NT service.
  #
  # This file provides jk_nt_service with the needed information to
  # start tomcat at a different process.
  #
  # As a general note, the characters $( and ) are used internally to define
  # macros. Do not use them!!!
  #
  # Whenever you see a set of lines such as:
  # x=value
  # y=$(x)\something
  #
  # the final value for y will be value\something
  #
  # Normaly all you will need to modify is the first two properties, i.e.
  # wrapper.tomcat_home and wrapper.java_home. Most of the configuration
  # is derived from these two.
  #
  
  #
  # wrapper.tomcat_home should point to the location where you
  # installed tomcat. This is where you have your conf, webapps and lib
  # directories.
  #
  wrapper.tomcat_home=<put your Tomcat home>
  
  #
  # wrapper.java_home should point to your Java installation. Normally
  # you should have a bin and lib directories beneath it.
  #
  wrapper.java_home=<put your Java home>
  
  #
  #------ ADVANCED MODE ------------------------------------------------
  # Make sure that you read the how-to before making too many changes.
  #---------------------------------------------------------------------
  #
  
  #
  # Defining where the service is going to put the standard
  # output of Tomcat. This is where System.out.println and
  # System.err.println goes to.
  #
  wrapper.stdout=$(wrapper.tomcat_home)\jvm.stdout
  wrapper.stderr=$(wrapper.tomcat_home)\jvm.stderr
  
  #
  # Additions to the path. put here directories where you store DLLs for
  # native methods etc.
  #
  wrapper.ld_path=d:\
  wrapper.ld_path=c:\
  
  #
  # Defining the classpath. All the rows that belongs to the class_path
  # property are concatenated to create the classpath for Tomcat.
  #
  # If you have additional locations that you would like to add to the
  # claspath you should add a new wrapper.class_path=<location> line.
  #
  wrapper.class_path=$(wrapper.tomcat_home)\classes
  wrapper.class_path=$(wrapper.tomcat_home)\lib\xml.jar
  wrapper.class_path=$(wrapper.tomcat_home)\lib\webserver.jar
  wrapper.class_path=$(wrapper.tomcat_home)\lib\servlet.jar
  wrapper.class_path=$(wrapper.tomcat_home)\lib\jasper.jar
  
  #
  # This is where Javac is located in JDK1.2.x
  #
  wrapper.class_path=$(wrapper.java_home)\lib\tools.jar
  #
  # and a tribute to JDK1.1.x
  #
  wrapper.class_path=$(wrapper.java_home)\lib\classes.zip
  
  #
  # This is the Java interpreter used for running Tomcat
  #
  wrapper.javabin=$(wrapper.java_home)\bin\java.exe
  
  #
  # This is Tomcat's startup class (the class that contains Tomcat's
  # starting point.
  #
  wrapper.startup_class=org.apache.tomcat.startup.Tomcat
  
  #
  # This is the location where tomcat's server.xml configuration file 
  # is located. 
  #
  wrapper.server_xml=$(wrapper.tomcat_home)\conf\server.xml
  
  #
  # The NT service uses AJP12/AJP13 to shutdown Tomcat. The 
  # wrapper.shutdown_port tells the service the identity of the port that 
  # is used by AJP12/AJP13.
  #
  wrapper.shutdown_port=8007
  
  #
  # Can either be ajp12 or ajp13 depending on your configuration.
  #
  # Default value is ajp12
  #
  wrapper.shutdown_protocol=ajp12
  
  #
  # This is the command line that is used to start Tomcat. You can *add* extra
  # parameters to it but you can not remove anything.
  #
  wrapper.cmd_line=$(wrapper.javabin) -classpath $(wrapper.class_path) $(wrapper.startup_class) -config $(wrapper.server_xml) -home $(wrapper.tomcat_home)
  
  
  1.1                  jakarta-tomcat/src/etc/jserv/tomcat.conf
  
  Index: tomcat.conf
  ===================================================================
  ###############################################################################
  #                     Apache JServ Configuration File                         #
  ###############################################################################
  
  # Note: this file should be appended or included into your httpd.conf
  
  # Tell Apache on win32 to load the Apache JServ communication module
  # LoadModule jserv_module modules/ApacheModuleJServ.dll
  
  # Tell Apache on Unix to load the Apache JServ communication module
  # For shared object builds only!!!
  # @LOAD_OR_NOT@LoadModule jserv_module @LIBEXECDIR@/mod_jserv.so
  LoadModule jserv_module libexec/mod_jserv.so
  
  <IfModule mod_jserv.c>
  # Do not edit! 
  ApJServManual on
  ApJServDefaultProtocol ajpv12
  ApJServSecretKey DISABLED
  ApJServMountCopy on
  ApJServLogLevel notice
  
  
  ### Change if you run tomcat on a different host
  #ApJServDefaultHost localhost
  ApJServDefaultPort 8007
  
  
  #################### All jsp files will go to tomcat ####################
  ApJServMount default /root
   
  AddType text/jsp .jsp
  AddHandler jserv-servlet .jsp
  
  ############################## Context mapping - all requests go to tomcat
  
  ApJServMount /examples /root
  
  ############################## Context mapping - you need to "deploy"
  # ( copy or ln -s ) the context into htdocs
  ##
  
  # ApJservMount /CONTEXT/servlet  /root
  # <Location /CONTEXT/WEB-INF/ >
  #      AllowOverride None
  #      deny from all
  # </Location>  
  
  
  </IfModule>
  
  
  
  1.1                  jakarta-tomcat/src/etc/jserv/tomcat.properties
  
  Index: tomcat.properties
  ===================================================================
  ###############################################################################
  #                        Apache JServ Configuration File                      #
  ###############################################################################
  
  ################################ W A R N I N G ################################
  # Unlike normal Java properties, JServ configurations have some important 
  # extentions:
  #
  #    1) commas are used as token separators
  #    2) multiple definitions of the same key are concatenated in a 
  #       comma-separated list.
  ###############################################################################
  
  #
  # Execution parameters
  #######################
  
  # The Java Virtual Machine interpreter.
  # Syntax: wrapper.bin=[filename] (String)
  # Note: specify a full path if the interpreter is not visible in your path.
  wrapper.bin=@JAVA@
  
  # Arguments passed to Java interpreter (optional)
  # Syntax: wrapper.bin.parameters=[parameters] (String)
  # Default: NONE
  
  # Apache JServ entry point class (should not be changed)
  # Syntax: wrapper.class=[classname] (String)
  # Default: "org.apache.jserv.JServ"
  
  # Arguments passed to main class after the properties filename (not used)
  # Syntax: wrapper.class.parameters=[parameters] (String)
  # Default: NONE
  # Note: currently not used
  
  # PATH environment value passed to the JVM
  # Syntax: wrapper.path=[path] (String)
  # Default: "/bin:/usr/bin:/usr/local/bin" for Unix systems
  #          "c:\(windows-dir);c:\(windows-system-dir)" for Win32 systems
  # Notes: if more than one line is supplied these will be concatenated using
  #        ":" or ";" (depending wether Unix or Win32) characters
  #        Under Win32 (windows-dir) and (windows-system-dir) will be
  #        automatically evaluated to match your system requirements
  
  # CLASSPATH environment value passed to the JVM
  # Syntax: wrapper.classpath=[path] (String)
  # Default: NONE (Sun's JDK/JRE already have a default classpath)
  # Note: if more than one line is supplied these will be concatenated using
  #       ":" or ";" (depending wether Unix or Win32) characters. JVM must be
  #       able to find JSDK and JServ classes and any utility classes used by
  #       your servlets.
  # Note: the classes you want to be automatically reloaded upon modification
  #       MUST NOT be in this classpath or the classpath of the shell
  #       you start the Apache from.
  #
  wrapper.classpath=@JSERV_CLASSES@
  wrapper.classpath=@JSDK_CLASSES@
  
  # An environment name with value passed to the JVM
  # Syntax: wrapper.env=[name]=[value] (String)
  # Default: NONE on Unix Systems
  #          SystemDrive and SystemRoot with appropriate values on Win32 systems
  
  # An environment name with value copied from caller to Java Virtual Machine
  # Syntax: wrapper.env.copy=[name] (String)
  # Default: NONE
  
  # Copies all environment from caller to Java Virtual Machine
  # Syntax: wrapper.env.copyall=[true|false] (boolean)
  # Default: false
  
  # Protocol used for signal handling
  # Syntax: wrapper.protocol=[name] (String)
  # Default: ajpv12
  
  #
  # General parameters
  ######################
  
  # Set the default IP address or hostname Apache JServ binds (or listens) to.
  #
  # If you have a machine with multiple IP addresses, this address
  # will be the one used. If you set the value to localhost, it
  # will be resolved to the IP address configured for the locahost
  # on your system (generally this is 127.0.0.1). This feature is so 
  # that one can have multiple instances of Apache JServ listening on 
  # the same port number, but different IP addresses on the same machine.
  # Use bindaddress=* only if you know exactly what you are doing here,
  # as it could let JServ wide open to the internet.
  # You must understand that JServ has to answer only to Apache, and should not
  # be reachable by nobody but mod_jserv. So localhost is usually a
  # good option. The second best choice would be an internal network address
  # (protected by a firewall) if JServ is running on another machine than Apache.
  # Ask your network admin.
  # "*" _may_ be used on boxes where some of the clients get connected using
  # "localhost"and others using another IP addr.
  #
  # Syntax: bindaddress=[ipaddress] or [localhost] or [*]
  # Default: localhost
  bindaddress=localhost
  
  # Set the port Apache JServ listens to.
  # Syntax: port=[1024,65535] (int)
  # Default: 8007
  port=8007
  
  #
  # Servlet Zones parameters
  ###########################
  
  # List of servlet zones Apache JServ manages
  # Syntax: zones=[servlet zone],[servlet zone]... (Comma separated list of String)
  # Default: NONE
  zones=root
  
  # Configuration file for each servlet zone (one per servlet zone)
  # Syntax: [servlet zone name as on the zones list].properties=[full path to configFile] (String)
  # Default: NONE
  # Note: if the file could not be opened, try using absolute paths.
  root.properties=@JSERV_CONF@/zone.properties
  
  #
  # Thread Pool parameters
  #########################
  
  # Enables or disables the use of the thread pool.
  # Syntax: pool=[true|false] (boolean)
  # Default: false
  # WARNING: the pool has not been extensively tested and may generate deadlocks. 
  # For this reason, we advise against using this code in production environments.
  pool=false
  
  # Indicates the number of idle threads that the pool may contain.
  # Syntax: pool.capacity=(int)>0
  # Default: 10
  # NOTE: depending on your system load, this number should be low for contantly
  # loaded servers and should be increased depending on load bursts.
  pool.capacity=10
  
  # Indicates the pool controller that should be used to control the 
  # level of the recycled threads.
  # Syntax: pool.controller=[full class of controller] (String)
  # Default: org.apache.java.recycle.DefaultController
  # NOTE: it is safe to leave this unchanged unless special recycle behavior
  # is needed. Look at the "org.apache.java.recycle" package javadocs for more
  # info on other pool controllers and their behavior.
  pool.controller=org.apache.java.recycle.DefaultController
  
  #
  # Security parameters
  #####################
  
  # Enable/disable the execution of org.apache.jserv.JServ as a servlet.
  # This is disabled by default because it may give informations that should
  # be restricted.
  # Note that the execution of Apache JServ as a servlet is filtered by the web
  # server modules by default so that both sides should be enabled to let this 
  # service work.
  # This service is useful for installation and configuration since it gives 
  # feedback about the exact configurations Apache JServ is using, but it should
  # be disabled when both installation and configuration processes are done.
  # Syntax: security.selfservlet=[true|false] (boolean)
  # Default: false
  # WARNING: disable this in a production environment since may give reserved
  # information to untrusted users.
  security.selfservlet=true
  
  # Set the maximum number of socket connections Apache JServ may handle 
  # simultaneously. Make sure your operating environment has enough file
  # descriptors to allow this number.
  # Syntax: security.maxConnections=(int)>1
  # Default: 50
  security.maxConnections=50
  
  # Backlog setting for very fine performance tunning of JServ.
  # Unless you are familiar to sockets leave this value commented out.
  # security.backlog=5
  
  # List of IP addresses allowed to connect to Apache JServ. This is a first 
  # security filtering to reject possibly unsecure connections and avoid the 
  # overhead of connection authentication.
  # Syntax: security.allowedAddresses=[IP address],[IP Address]... (Comma separated list of IP addresses)
  # Default: 127.0.0.1
  #security.allowedAddresses=127.0.0.1
  
  # Enable/disable connection authentication. 
  # NOTE: unauthenticated connections are a little faster since authentication 
  # handshake is not performed at connection creation.
  # WARNING: authentication is disabled by default because we believe that
  # connection restriction from all IP addresses but localhost reduces your
  # time to get Apache JServ to run. If you allow other addresses to connect and
  # you don't trust it, you should enable authentication to prevent untrusted
  # execution of your servlets. Beware: if authentication is disabled and the
  # IP address is allowed, everyone on that machine can execute your servlets!
  # Syntax: security.authentication=[true,false] (boolean)
  # Default: true
  security.authentication=false
  
  # Authentication secret key.
  # The secret key is passed as a file that must be kept secure and must
  # be exactly the same of those used by clients to authenticate themselves.
  # Syntax: security.secretKey=[secret key path and filename] (String)
  # Default: NONE
  # Note: if the file could not be opened, try using absolute paths.
  #security.secretKey=@JSERV_CONF@/jserv.secret.key
  
  # Length of the randomly generated challenge string (in bytes) used to
  # authenticate connections. 5 is the lowest possible choice to force a safe
  # level of security and reduce connection creation overhead.
  # Syntax: security.challengeSize=(int)>5
  # Default: 5
  #security.challengeSize=5
  
  #
  # Logging parameters
  ####################
  
  # Enable/disable Apache JServ logging.
  # WARNING: logging is a very expensive operation in terms of performance. You
  # should reduced the generated log to a minumum or even disable it if fast 
  # execution is an issue.  Note that if all log channels (see below) are
  # enabled, the log may become really big since each servlet request may
  # generate many Kb of log. Some log channels are mainly for debugging
  # purposes and should be disabled in a production environment.
  # Syntax: log=[true,false] (boolean)
  # Default: true
  log=true
  
  # Set the name of the trace/log file.  To avoid possible confusion about
  # the location of this file, an absolute pathname is recommended.
  # 
  # This log file is different than the log file that is in the
  # jserv.conf file. This is the log file for the Java portion of Apache
  # JServ.
  #
  # On Unix, this file must have write permissions by the owner of the JVM
  # process. In other words, if you are running Apache JServ in manual mode
  # and Apache is running as user nobody, then the file must have its
  # permissions set so that that user can write to it.
  # Syntax: log.file=[log path and filename] (String)
  # Default: NONE
  # Note: if the file could not be opened, try using absolute paths.
  log.file=@JSERV_LOG@/jserv.log
  
  # Enable the timestamp before the log message
  # Syntax: log.timestamp=[true,false] (boolean)
  # Default: true
  log.timestamp=true
  
  # Use the given string as a data format 
  # (see java.text.SimpleDateFormat for the list of options)
  # Syntax: log.dateFormat=(String)
  # Default: [dd/MM/yyyy HH:mm:ss:SSS zz]
  log.dateFormat=[dd/MM/yyyy HH:mm:ss:SSS zz]
   
  # Since all the messages logged are processed by a thread running with
  # minimum priority, it's of vital importance that this thread gets a chance
  # to run once in a while. If it doesn't, the log queue overflow occurs,
  # usually resulting in the OutOfMemoryError.
  #
  # To prevent this from happening, two parameters are used: log.queue.maxage
  # and log.queue.maxsize. The former defines the maximum time for the logged
  # message to stay in the queue, the latter defines maximum number of
  # messages in the queue.
  #
  # If one of those conditions becomes true (age > maxage || size > maxsize),
  # the log message stating that fact is generated and the log queue is
  # flushed in the separate thread.
  #
  # If you ever see such a message, either your system doesn't live up to its
  # expectations or you have a runaway loop (probably, but not necessarily,
  # generating a lot of log messages).
  #
  # WARNING: Default values are lousy, you probably want to tweak them and
  # report the results back to the development team.
  
  # Syntax: log.queue.maxage = [milliseconds]
  # Default: 5000
  log.queue.maxage = 5000
  
  # Syntax: log.queue.maxsize = [integer]
  # Default: 1000
  log.queue.maxsize = 1000
  
  # Enable/disable logging the channel name
  # Default: false
  # log.channel=false
  
  # Enable/disable channels, each logging different actions.
  # Syntax: log.channel.[channel name]=[true,false] (boolean)
  # Default: false
  
  # Info channel - quite a lot of informational messages
  # hopefully you don't need them under normal circumstances
  # log.channel.info=true
  
  # Servlets exception, i.e. exception caught during 
  # servlet.service() processing are monitored here
  # you probably want to have this one switched on
  log.channel.servletException=true
  
  # JServ exception, caught internally in jserv
  # we suggest to leave it on
  log.channel.jservException=true
  
  # Warning channel, it catches all the important
  # messages that don't cause JServ to stop, leave it on
  log.channel.warning=true
  
  # Servlet log
  # All messages logged by servlets. Probably you want 
  # this one to be switched on.
  log.channel.servletLog=true
  
  # Critical errors
  # Messages produced by critical events causing jserv to stop
  log.channel.critical=true
  
  # Debug channel
  # Only for internal debugging purposes
  # log.channel.debug=true