You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@apache.org on 2001/06/23 21:27:24 UTC

cvs commit: jakarta-tomcat-4.0/tester/web/WEB-INF web.xml

craigmcc    01/06/23 12:27:24

  Modified:    tester/src/bin tester.xml
               tester/web/WEB-INF web.xml
  Added:       tester/src/tester/org/apache/tester Context00.java
                        Context01.java Context02.java ContextBean.java
  Log:
  Add a set of unit tests for servlet context attributes.
  
  NOTE:  If you uncomment the clearAttributes() call in StandardContext, and
  then run the "ServletContext" target in tester.xml, the application
  restart will fail on ClassNotFoundException errors on the listeners and
  filters.
  
  Revision  Changes    Path
  1.51      +52 -1     jakarta-tomcat-4.0/tester/src/bin/tester.xml
  
  Index: tester.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/tester/src/bin/tester.xml,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- tester.xml	2001/06/20 22:37:06	1.50
  +++ tester.xml	2001/06/23 19:27:24	1.51
  @@ -15,7 +15,7 @@
     <taskdef  name="tester"     classname="org.apache.tester.TestClient"/>
   
   
  -  <target name="all" depends="ROOT,Authentication,CaseSensitive,Decoding,ErrorPage,FilterRequest,FilterResponse,Jndi,RequestDispatcher,Resources,ServletRequest,ServletResponse,HttpSession,XercesTest,SSITest,CGITest"/>
  +  <target name="all" depends="ROOT,Authentication,CaseSensitive,Decoding,ErrorPage,FilterRequest,FilterResponse,Jndi,RequestDispatcher,Resources,ServletContext,ServletRequest,ServletResponse,HttpSession,XercesTest,SSITest,CGITest"/>
   
   
     <target name="ROOT">
  @@ -852,6 +852,57 @@
              debug="${debug}"
            request="${context.path}/Resources06?path=/WEB-INF"
         outContent="Resources06 PASSED"/>
  +
  +  </target>
  +
  +
  +  <target name="ServletContext">
  +
  +    <!-- ========== Servlet Context Attributes ============================ -->
  +
  +    <tester host="${host}" port="${port}" protocol="${protocol}"
  +           debug="${debug}"
  +         request="${context.path}/Context00"
  +      outContent="Context00 PASSED"/>
  +
  +    <tester host="${host}" port="${port}" protocol="${protocol}"
  +           debug="${debug}"
  +         request="${context.path}/Context01"
  +      outContent="Context01 PASSED"/>
  +
  +    <!-- NOTE: Assign role "manager" to user "tomcat" for this to work -->
  +    <tester host="${host}" port="${port}" protocol="${protocol}"
  +           debug="${debug}"
  +       inHeaders="Authorization:Basic dG9tY2F0OnRvbWNhdA=="
  +         request="${manager.path}/reload?path=${reload.path}"
  +      outContent="OK - Reloaded application at context path ${reload.path}"/>
  +
  +    <tester host="${host}" port="${port}" protocol="${protocol}"
  +           debug="${debug}"
  +         request="${context.path}/Context02"
  +      outContent="Context02 PASSED"/>
  +
  +    <tester host="${host}" port="${port}" protocol="${protocol}"
  +           debug="${debug}"
  +         request="${context.path}/WrappedContext00"
  +      outContent="Context00 PASSED"/>
  +
  +    <tester host="${host}" port="${port}" protocol="${protocol}"
  +           debug="${debug}"
  +         request="${context.path}/WrappedContext01"
  +      outContent="Context01 PASSED"/>
  +
  +    <!-- NOTE: Assign role "manager" to user "tomcat" for this to work -->
  +    <tester host="${host}" port="${port}" protocol="${protocol}"
  +           debug="${debug}"
  +       inHeaders="Authorization:Basic dG9tY2F0OnRvbWNhdA=="
  +         request="${manager.path}/reload?path=${reload.path}"
  +      outContent="OK - Reloaded application at context path ${reload.path}"/>
  +
  +    <tester host="${host}" port="${port}" protocol="${protocol}"
  +           debug="${debug}"
  +         request="${context.path}/WrappedContext02"
  +      outContent="Context02 PASSED"/>
   
     </target>
   
  
  
  
  1.1                  jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/Context00.java
  
  Index: Context00.java
  ===================================================================
  /* ========================================================================= *
   *                                                                           *
   *                 The Apache Software License,  Version 1.1                 *
   *                                                                           *
   *         Copyright (c) 1999, 2000  The Apache Software Foundation.         *
   *                           All rights reserved.                            *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * Redistribution and use in source and binary forms,  with or without modi- *
   * fication, are permitted provided that the following conditions are met:   *
   *                                                                           *
   * 1. Redistributions of source code  must retain the above copyright notice *
   *    notice, this list of conditions and the following disclaimer.          *
   *                                                                           *
   * 2. Redistributions  in binary  form  must  reproduce the  above copyright *
   *    notice,  this list of conditions  and the following  disclaimer in the *
   *    documentation and/or other materials provided with the distribution.   *
   *                                                                           *
   * 3. The end-user documentation  included with the redistribution,  if any, *
   *    must include the following acknowlegement:                             *
   *                                                                           *
   *       "This product includes  software developed  by the Apache  Software *
   *        Foundation <http://www.apache.org/>."                              *
   *                                                                           *
   *    Alternately, this acknowlegement may appear in the software itself, if *
   *    and wherever such third-party acknowlegements normally appear.         *
   *                                                                           *
   * 4. The names  "The  Jakarta  Project",  "Tomcat",  and  "Apache  Software *
   *    Foundation"  must not be used  to endorse or promote  products derived *
   *    from this  software without  prior  written  permission.  For  written *
   *    permission, please contact <ap...@apache.org>.                        *
   *                                                                           *
   * 5. Products derived from this software may not be called "Apache" nor may *
   *    "Apache" appear in their names without prior written permission of the *
   *    Apache Software Foundation.                                            *
   *                                                                           *
   * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES *
   * INCLUDING, BUT NOT LIMITED TO,  THE IMPLIED WARRANTIES OF MERCHANTABILITY *
   * AND FITNESS FOR  A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL *
   * THE APACHE  SOFTWARE  FOUNDATION OR  ITS CONTRIBUTORS  BE LIABLE  FOR ANY *
   * DIRECT,  INDIRECT,   INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL *
   * DAMAGES (INCLUDING,  BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS *
   * OR SERVICES;  LOSS OF USE,  DATA,  OR PROFITS;  OR BUSINESS INTERRUPTION) *
   * HOWEVER CAUSED AND  ON ANY  THEORY  OF  LIABILITY,  WHETHER IN  CONTRACT, *
   * STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN *
   * ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF  ADVISED  OF THE *
   * POSSIBILITY OF SUCH DAMAGE.                                               *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * This software  consists of voluntary  contributions made  by many indivi- *
   * duals on behalf of the  Apache Software Foundation.  For more information *
   * on the Apache Software Foundation, please see <http://www.apache.org/>.   *
   *                                                                           *
   * ========================================================================= */
  
  package org.apache.tester;
  
  
  import java.io.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import org.apache.tester.shared.SharedSessionBean;
  import org.apache.tester.unshared.UnsharedSessionBean;
  
  
  /**
   * Part 0 of Context Tests.  This servlet is never executed directly.  Its
   * purpose is to create a servlet context attribute at <code>init()</code>
   * time, and remove it at <code>destroy()</code> time.
   *
   * @author Craig R. McClanahan
   * @version $Revision: 1.1 $ $Date: 2001/06/23 19:27:24 $
   */
  
  public class Context00 extends HttpServlet {
  
  
      public void destroy() {
          getServletContext().log("Context00: Removing attribute 'context00'");
          getServletContext().removeAttribute("context00");
      }
  
  
      public void init() throws ServletException {
          getServletContext().log("Context00: Setting attribute 'context00'");
          ContextBean cb = new ContextBean();
          cb.setStringProperty("Context00");
          getServletContext().setAttribute("context00", cb);
      }
  
  
      public void doGet(HttpServletRequest request, HttpServletResponse response)
          throws IOException, ServletException {
          response.setContentType("text/plain");
          PrintWriter writer = response.getWriter();
          writer.println("Context00 PASSED");
          while (true) {
              String message = StaticLogger.read();
              if (message == null)
                  break;
              writer.println(message);
          }
          StaticLogger.reset();
      }
  
  
  }
  
  
  
  1.1                  jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/Context01.java
  
  Index: Context01.java
  ===================================================================
  /* ========================================================================= *
   *                                                                           *
   *                 The Apache Software License,  Version 1.1                 *
   *                                                                           *
   *         Copyright (c) 1999, 2000  The Apache Software Foundation.         *
   *                           All rights reserved.                            *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * Redistribution and use in source and binary forms,  with or without modi- *
   * fication, are permitted provided that the following conditions are met:   *
   *                                                                           *
   * 1. Redistributions of source code  must retain the above copyright notice *
   *    notice, this list of conditions and the following disclaimer.          *
   *                                                                           *
   * 2. Redistributions  in binary  form  must  reproduce the  above copyright *
   *    notice,  this list of conditions  and the following  disclaimer in the *
   *    documentation and/or other materials provided with the distribution.   *
   *                                                                           *
   * 3. The end-user documentation  included with the redistribution,  if any, *
   *    must include the following acknowlegement:                             *
   *                                                                           *
   *       "This product includes  software developed  by the Apache  Software *
   *        Foundation <http://www.apache.org/>."                              *
   *                                                                           *
   *    Alternately, this acknowlegement may appear in the software itself, if *
   *    and wherever such third-party acknowlegements normally appear.         *
   *                                                                           *
   * 4. The names  "The  Jakarta  Project",  "Tomcat",  and  "Apache  Software *
   *    Foundation"  must not be used  to endorse or promote  products derived *
   *    from this  software without  prior  written  permission.  For  written *
   *    permission, please contact <ap...@apache.org>.                        *
   *                                                                           *
   * 5. Products derived from this software may not be called "Apache" nor may *
   *    "Apache" appear in their names without prior written permission of the *
   *    Apache Software Foundation.                                            *
   *                                                                           *
   * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES *
   * INCLUDING, BUT NOT LIMITED TO,  THE IMPLIED WARRANTIES OF MERCHANTABILITY *
   * AND FITNESS FOR  A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL *
   * THE APACHE  SOFTWARE  FOUNDATION OR  ITS CONTRIBUTORS  BE LIABLE  FOR ANY *
   * DIRECT,  INDIRECT,   INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL *
   * DAMAGES (INCLUDING,  BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS *
   * OR SERVICES;  LOSS OF USE,  DATA,  OR PROFITS;  OR BUSINESS INTERRUPTION) *
   * HOWEVER CAUSED AND  ON ANY  THEORY  OF  LIABILITY,  WHETHER IN  CONTRACT, *
   * STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN *
   * ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF  ADVISED  OF THE *
   * POSSIBILITY OF SUCH DAMAGE.                                               *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * This software  consists of voluntary  contributions made  by many indivi- *
   * duals on behalf of the  Apache Software Foundation.  For more information *
   * on the Apache Software Foundation, please see <http://www.apache.org/>.   *
   *                                                                           *
   * ========================================================================= */
  
  package org.apache.tester;
  
  
  import java.io.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import org.apache.tester.shared.SharedSessionBean;
  import org.apache.tester.unshared.UnsharedSessionBean;
  
  
  /**
   * Part 1 of Context Tests.  Exercise various methods for dealing with
   * servlet context attributes.  Leave an attribute named "context01"
   * present, which should be erased after a web application restart.
   *
   * @author Craig R. McClanahan
   * @version $Revision: 1.1 $ $Date: 2001/06/23 19:27:24 $
   */
  
  public class Context01 extends HttpServlet {
  
      public void doGet(HttpServletRequest request, HttpServletResponse response)
          throws IOException, ServletException {
  
          response.setContentType("text/plain");
          boolean ok = true;
          PrintWriter writer = response.getWriter();
          ServletContext context = getServletContext();
  
          // Ensure that there is no existing attribute
          if (ok) {
              if (context.getAttribute("context01") != null) {
                  writer.println("Context01 FAILED - Attribute already exists");
                  ok = false;
              }
          }
  
          // Create and stash a context attribute
          if (ok) {
              context.setAttribute("context01", "This is Context01");
          }
  
          // Ensure that we can retrieve the attribute successfully
          if (ok) {
              Object bean = context.getAttribute("context01");
              if (bean == null) {
                  writer.println("Context01 FAILED - Cannot retrieve attribute");
                  ok = false;
              } else if (!(bean instanceof String)) {
                  writer.println("Context01 FAILED - Attribute instance of " +
                                 bean.getClass().getName());
                  ok = false;
              } else {
                  String value = (String) bean;
                  if (!"This is Context01".equals(value)) {
                      writer.println("Context01 FAILED - Value = " + value);
                      ok = false;
                  }
              }
          }
  
          // Ensure that setAttribute("name", null) works correctly
          if (ok) {
              context.setAttribute("FOO", "BAR");
              context.setAttribute("FOO", null);
              if (context.getAttribute("FOO") != null) {
                  writer.println("Context01 FAILED - setAttribute(name,null)");
                  ok = false;
              }
          }
  
          // Report success if everything is still ok
          if (ok)
              writer.println("Context01 PASSED");
          while (true) {
              String message = StaticLogger.read();
              if (message == null)
                  break;
              writer.println(message);
          }
          StaticLogger.reset();
  
      }
  
  }
  
  
  
  1.1                  jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/Context02.java
  
  Index: Context02.java
  ===================================================================
  /* ========================================================================= *
   *                                                                           *
   *                 The Apache Software License,  Version 1.1                 *
   *                                                                           *
   *         Copyright (c) 1999, 2000  The Apache Software Foundation.         *
   *                           All rights reserved.                            *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * Redistribution and use in source and binary forms,  with or without modi- *
   * fication, are permitted provided that the following conditions are met:   *
   *                                                                           *
   * 1. Redistributions of source code  must retain the above copyright notice *
   *    notice, this list of conditions and the following disclaimer.          *
   *                                                                           *
   * 2. Redistributions  in binary  form  must  reproduce the  above copyright *
   *    notice,  this list of conditions  and the following  disclaimer in the *
   *    documentation and/or other materials provided with the distribution.   *
   *                                                                           *
   * 3. The end-user documentation  included with the redistribution,  if any, *
   *    must include the following acknowlegement:                             *
   *                                                                           *
   *       "This product includes  software developed  by the Apache  Software *
   *        Foundation <http://www.apache.org/>."                              *
   *                                                                           *
   *    Alternately, this acknowlegement may appear in the software itself, if *
   *    and wherever such third-party acknowlegements normally appear.         *
   *                                                                           *
   * 4. The names  "The  Jakarta  Project",  "Tomcat",  and  "Apache  Software *
   *    Foundation"  must not be used  to endorse or promote  products derived *
   *    from this  software without  prior  written  permission.  For  written *
   *    permission, please contact <ap...@apache.org>.                        *
   *                                                                           *
   * 5. Products derived from this software may not be called "Apache" nor may *
   *    "Apache" appear in their names without prior written permission of the *
   *    Apache Software Foundation.                                            *
   *                                                                           *
   * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES *
   * INCLUDING, BUT NOT LIMITED TO,  THE IMPLIED WARRANTIES OF MERCHANTABILITY *
   * AND FITNESS FOR  A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL *
   * THE APACHE  SOFTWARE  FOUNDATION OR  ITS CONTRIBUTORS  BE LIABLE  FOR ANY *
   * DIRECT,  INDIRECT,   INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL *
   * DAMAGES (INCLUDING,  BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS *
   * OR SERVICES;  LOSS OF USE,  DATA,  OR PROFITS;  OR BUSINESS INTERRUPTION) *
   * HOWEVER CAUSED AND  ON ANY  THEORY  OF  LIABILITY,  WHETHER IN  CONTRACT, *
   * STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN *
   * ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF  ADVISED  OF THE *
   * POSSIBILITY OF SUCH DAMAGE.                                               *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * This software  consists of voluntary  contributions made  by many indivi- *
   * duals on behalf of the  Apache Software Foundation.  For more information *
   * on the Apache Software Foundation, please see <http://www.apache.org/>.   *
   *                                                                           *
   * ========================================================================= */
  
  package org.apache.tester;
  
  
  import java.io.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import org.apache.tester.shared.SharedSessionBean;
  import org.apache.tester.unshared.UnsharedSessionBean;
  
  
  /**
   * Part 2 of Context Tests.  The context attribute from Context00 should
   * still be here after a restart (because Context00 is a load-on-startup
   * servlet, so the <code>init()</code> method should have been triggered
   * during the restart).  However, the context attribute from Context01
   * should <strong>not</strong> be here, because context attributes should
   * be cleaned up during a restart.
   *
   * @author Craig R. McClanahan
   * @version $Revision: 1.1 $ $Date: 2001/06/23 19:27:24 $
   */
  
  public class Context02 extends HttpServlet {
  
      public void doGet(HttpServletRequest request, HttpServletResponse response)
          throws IOException, ServletException {
  
          response.setContentType("text/plain");
          boolean ok = true;
          PrintWriter writer = response.getWriter();
          ServletContext context = getServletContext();
  
          // Check for the attribute from Context01
          if (ok) {
              Object bean = context.getAttribute("context01");
              if (bean != null) {
                  writer.println("Context02 FAILED - context01 value " +
                                 bean);
                  ok = false;
                  context.removeAttribute("context01");
              }
          }
  
          // Check for the attribute from Context00
          if (ok) {
              Object bean = context.getAttribute("context00");
              if (bean == null) {
                  writer.println("Context02 FAILED - context00 missing");
                  ok = false;
              } else if (!(bean instanceof ContextBean)) {
                  writer.println("Context02 FAILED - context00 class " +
                                 bean.getClass().getName());
                  ok = false;
              } else {
                  String value = ((ContextBean) bean).getStringProperty();
                  if (!"Context00".equals(value)) {
                      writer.println("Context02 FAILED - context00 value " +
                                     value);
                      ok = false;
                  }
              }
          }
  
          // Report success if everything is still ok
          if (ok)
              writer.println("Context02 PASSED");
          while (true) {
              String message = StaticLogger.read();
              if (message == null)
                  break;
              writer.println(message);
          }
          StaticLogger.reset();
  
      }
  
  }
  
  
  
  1.1                  jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/ContextBean.java
  
  Index: ContextBean.java
  ===================================================================
  /* ========================================================================= *
   *                                                                           *
   *                 The Apache Software License,  Version 1.1                 *
   *                                                                           *
   *         Copyright (c) 1999, 2000  The Apache Software Foundation.         *
   *                           All rights reserved.                            *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * Redistribution and use in source and binary forms,  with or without modi- *
   * fication, are permitted provided that the following conditions are met:   *
   *                                                                           *
   * 1. Redistributions of source code  must retain the above copyright notice *
   *    notice, this list of conditions and the following disclaimer.          *
   *                                                                           *
   * 2. Redistributions  in binary  form  must  reproduce the  above copyright *
   *    notice,  this list of conditions  and the following  disclaimer in the *
   *    documentation and/or other materials provided with the distribution.   *
   *                                                                           *
   * 3. The end-user documentation  included with the redistribution,  if any, *
   *    must include the following acknowlegement:                             *
   *                                                                           *
   *       "This product includes  software developed  by the Apache  Software *
   *        Foundation <http://www.apache.org/>."                              *
   *                                                                           *
   *    Alternately, this acknowlegement may appear in the software itself, if *
   *    and wherever such third-party acknowlegements normally appear.         *
   *                                                                           *
   * 4. The names  "The  Jakarta  Project",  "Tomcat",  and  "Apache  Software *
   *    Foundation"  must not be used  to endorse or promote  products derived *
   *    from this  software without  prior  written  permission.  For  written *
   *    permission, please contact <ap...@apache.org>.                        *
   *                                                                           *
   * 5. Products derived from this software may not be called "Apache" nor may *
   *    "Apache" appear in their names without prior written permission of the *
   *    Apache Software Foundation.                                            *
   *                                                                           *
   * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES *
   * INCLUDING, BUT NOT LIMITED TO,  THE IMPLIED WARRANTIES OF MERCHANTABILITY *
   * AND FITNESS FOR  A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL *
   * THE APACHE  SOFTWARE  FOUNDATION OR  ITS CONTRIBUTORS  BE LIABLE  FOR ANY *
   * DIRECT,  INDIRECT,   INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL *
   * DAMAGES (INCLUDING,  BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS *
   * OR SERVICES;  LOSS OF USE,  DATA,  OR PROFITS;  OR BUSINESS INTERRUPTION) *
   * HOWEVER CAUSED AND  ON ANY  THEORY  OF  LIABILITY,  WHETHER IN  CONTRACT, *
   * STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN *
   * ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF  ADVISED  OF THE *
   * POSSIBILITY OF SUCH DAMAGE.                                               *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * This software  consists of voluntary  contributions made  by many indivi- *
   * duals on behalf of the  Apache Software Foundation.  For more information *
   * on the Apache Software Foundation, please see <http://www.apache.org/>.   *
   *                                                                           *
   * ========================================================================= */
  
  package org.apache.tester;
  
  
  import java.io.Serializable;
  
  
  /**
   * Simple JavaBean to use for context attribute tests.
   *
   * @author Craig R. McClanahan
   * @version $Revision: 1.1 $ $Date: 2001/06/23 19:27:24 $
   */
  
  public class ContextBean implements Serializable {
  
  
      // ------------------------------------------------------------- Properties
  
  
      /**
       * A string property.
       */
      protected String stringProperty = "Default String Property Value";
  
      public String getStringProperty() {
          return (this.stringProperty);
      }
  
      public void setStringProperty(String stringProperty) {
          this.stringProperty = stringProperty;
      }
  
  
      // --------------------------------------------------------- Public Methods
  
  
      /**
       * Return a string representation of this bean.
       */
      public String toString() {
  
          StringBuffer sb = new StringBuffer("ContextBean[stringProperty=");
          sb.append(this.stringProperty);
          sb.append("]");
          return (sb.toString());
  
      }
  
  
  }
  
  
  
  
  1.38      +61 -0     jakarta-tomcat-4.0/tester/web/WEB-INF/web.xml
  
  Index: web.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/tester/web/WEB-INF/web.xml,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- web.xml	2001/05/30 21:54:54	1.37
  +++ web.xml	2001/06/23 19:27:24	1.38
  @@ -70,6 +70,21 @@
   
       <filter-mapping>
           <filter-name>HttpFilter</filter-name>
  +        <url-pattern>/WrappedContext00</url-pattern>
  +    </filter-mapping>
  +
  +    <filter-mapping>
  +        <filter-name>HttpFilter</filter-name>
  +        <url-pattern>/WrappedContext01</url-pattern>
  +    </filter-mapping>
  +
  +    <filter-mapping>
  +        <filter-name>HttpFilter</filter-name>
  +        <url-pattern>/WrappedContext02</url-pattern>
  +    </filter-mapping>
  +
  +    <filter-mapping>
  +        <filter-name>HttpFilter</filter-name>
           <url-pattern>/WrappedDecoding01</url-pattern>
       </filter-mapping>
   
  @@ -417,6 +432,22 @@
       </servlet>
   
       <servlet>
  +        <servlet-name>Context00</servlet-name>
  +        <servlet-class>org.apache.tester.Context00</servlet-class>
  +        <load-on-startup>99</load-on-startup>
  +    </servlet>
  +
  +    <servlet>
  +        <servlet-name>Context01</servlet-name>
  +        <servlet-class>org.apache.tester.Context01</servlet-class>
  +    </servlet>
  +
  +    <servlet>
  +        <servlet-name>Context02</servlet-name>
  +        <servlet-class>org.apache.tester.Context02</servlet-class>
  +    </servlet>
  +
  +    <servlet>
           <servlet-name>Decoding01</servlet-name>
           <servlet-class>org.apache.tester.Decoding01</servlet-class>
       </servlet>
  @@ -764,6 +795,36 @@
       <servlet-mapping>
           <servlet-name>Authentication05</servlet-name>
           <url-pattern>/disallowed/Authentication05</url-pattern>
  +    </servlet-mapping>
  +
  +    <servlet-mapping>
  +        <servlet-name>Context00</servlet-name>
  +        <url-pattern>/Context00</url-pattern>
  +    </servlet-mapping>
  +
  +    <servlet-mapping>
  +        <servlet-name>Context00</servlet-name>
  +        <url-pattern>/WrappedContext00</url-pattern>
  +    </servlet-mapping>
  +
  +    <servlet-mapping>
  +        <servlet-name>Context01</servlet-name>
  +        <url-pattern>/Context01</url-pattern>
  +    </servlet-mapping>
  +
  +    <servlet-mapping>
  +        <servlet-name>Context01</servlet-name>
  +        <url-pattern>/WrappedContext01</url-pattern>
  +    </servlet-mapping>
  +
  +    <servlet-mapping>
  +        <servlet-name>Context02</servlet-name>
  +        <url-pattern>/Context02</url-pattern>
  +    </servlet-mapping>
  +
  +    <servlet-mapping>
  +        <servlet-name>Context02</servlet-name>
  +        <url-pattern>/WrappedContext02</url-pattern>
       </servlet-mapping>
   
       <servlet-mapping>