dims        02/02/24 03:10:58

  Modified:    .        build.xml
               src/java/org/apache/cocoon/environment/http HttpRequest.java
               src/java/org/apache/cocoon/servlet CocoonServlet.java
               src/webapp/WEB-INF web.xml
  Added:       src/java/org/apache/cocoon/components/request
                        MaybeUploadRequestFactoryImpl.java
                        RequestFactory.java SimpleRequestFactoryImpl.java
  Removed:     src/java/org/apache/cocoon/environment/http
                        RequestWrapper22.java RequestWrapper23.java
                        RequestWrapperMaybeUpload22.java
                        RequestWrapperMaybeUpload23.java
  Log:
  Changes:
  - Trying to componentize the RequestWrapper stuff into a separate package under 
components as RequestFactory
  - Allow selection of RequestFactory from web.xml
  - Now with these changes you can compile using servlet_2_2.jar and still deploy on 
Tomcat 4.0.2
  - This will allow more RequestFactory's to be added later and not depend on 
MaybeUpload.
  - Deployer can choose the RequestFactory Not the person compiling the code :-)
  
  Revision  Changes    Path
  1.172     +3 -56     xml-cocoon2/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/build.xml,v
  retrieving revision 1.171
  retrieving revision 1.172
  diff -u -r1.171 -r1.172
  --- build.xml 18 Feb 2002 14:09:50 -0000      1.171
  +++ build.xml 24 Feb 2002 11:10:58 -0000      1.172
  @@ -727,6 +727,7 @@
   
           <exclude name="**/components/store/Jisp*.java" unless="jisp.present"/>
           <exclude name="**/jisp.xconf"                  unless="jisp.present"/>
  +        <exclude name="**/MaybeUpload*.java"           
unless="maybeupload.present"/>
   
           <exclude name="**/http/RequestWrapper*.java"/>
           <exclude name="**/browser/*.x*"/>
  @@ -745,60 +746,6 @@
     </target>
   
     <!-- =================================================================== -->
  -  <!-- Prepares the servlet 2.3 source code if maybeupload is present      -->
  -  <!-- =================================================================== -->
  -  <target name="prepare-src-23-maybeupload" if="servlet23.present, 
maybeupload.present">
  -    <copy 
file="${java.dir}/org/apache/cocoon/environment/http/RequestWrapperMaybeUpload23.java"
  -        tofile="${build.src}/org/apache/cocoon/environment/http/RequestWrapper.java"
  -        filtering="on"
  -        overwrite="true"/>
  -  </target>
  -
  -  <!-- =================================================================== -->
  -  <!-- Prepares the servlet 2.3 source code                                -->
  -  <!-- =================================================================== -->
  -  <target name="prepare-src-23" if="servlet23.present" unless="maybeupload.present">
  -    <copy 
file="${java.dir}/org/apache/cocoon/environment/http/RequestWrapper23.java"
  -        tofile="${build.src}/org/apache/cocoon/environment/http/RequestWrapper.java"
  -        filtering="on"
  -        overwrite="true"/>
  -  </target>
  -
  -  <!-- =================================================================== -->
  -  <!-- Prepares the servlet 2.2 source code if maybeupload is present      -->
  -  <!-- =================================================================== -->
  -  <target name="prepare-src-22-maybeupload" unless="servlet23.present" 
if="maybeupload.present">
  -    <copy 
file="${java.dir}/org/apache/cocoon/environment/http/RequestWrapperMaybeUpload22.java"
  -        tofile="${build.src}/org/apache/cocoon/environment/http/RequestWrapper.java"
  -        filtering="on"
  -        overwrite="true"/>
  -  </target>
  -
  -  <!-- =================================================================== -->
  -  <!-- Prepares the servlet 2.2 source code                                -->
  -  <!-- =================================================================== -->
  -  <target name="prepare-src-22" unless="servlet23.present, maybeupload.present">
  -    <copy 
file="${java.dir}/org/apache/cocoon/environment/http/RequestWrapper22.java"
  -        tofile="${build.src}/org/apache/cocoon/environment/http/RequestWrapper.java"
  -        filtering="on"/>
  -  </target>
  -
  -  <!-- =================================================================== -->
  -  <!-- Prepares the servlet source                                         -->
  -  <!-- =================================================================== -->
  -  <target name="prepare-src-servlet" depends="prepare-src-main" 
if="servlet.present">
  -    <antcall target="prepare-src-22"/>
  -    <antcall target="prepare-src-22-maybeupload"/>
  -    <antcall target="prepare-src-23"/>
  -    <antcall target="prepare-src-23-maybeupload"/>
  -  </target>
  -
  -  <!-- =================================================================== -->
  -  <!-- Prepares the source code                                            -->
  -  <!-- =================================================================== -->
  -  <target name="prepare-src" depends="prepare-src-servlet"/>
  -
  -  <!-- =================================================================== -->
     <!-- Set a variable if the generated java code is already up-to-date.    -->
     <!-- =================================================================== -->
     <target name="generate-java-code-check" depends="init">
  @@ -825,7 +772,7 @@
     <!-- =================================================================== -->
     <!-- Compiles the source directory                                       -->
     <!-- =================================================================== -->
  -  <target name="compile" depends="prepare-src"
  +  <target name="compile" depends="prepare-src-main"
             description="Compiles the source code">
       <copy todir="${build.dest}">
         <fileset dir="${build.src}">
  @@ -1299,7 +1246,7 @@
     <!-- =================================================================== -->
     <!-- Creates the API documentation                                       -->
     <!-- =================================================================== -->
  -  <target name="javadocs" depends="prepare-src, javadocs_check, javadocs_done"
  +  <target name="javadocs" depends="prepare-src-main, javadocs_check, javadocs_done"
         unless="javadocs.notrequired"
         description="* Generates the API documentation">
       <mkdir dir="${build.javadocs}"/>
  
  
  
  1.1                  
xml-cocoon2/src/java/org/apache/cocoon/components/request/MaybeUploadRequestFactoryImpl.java
  
  Index: MaybeUploadRequestFactoryImpl.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  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  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" 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
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  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 (INCLU-
   DING, 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 individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.apache.cocoon.components.request;
  
  import uk.co.weft.maybeupload.MaybeUploadRequestWrapper;
  
  import javax.servlet.http.HttpServletRequest;
  import java.io.File;
  import java.util.Map;
  import java.util.Vector;
  
  /**
   *
   * Extends the {@link RequestFactory} class
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Davanum Srinivas</a>
   * @version CVS $Id: MaybeUploadRequestFactoryImpl.java,v 1.1 2002/02/24 11:10:58 
dims Exp $
   */
  
  public final class MaybeUploadRequestFactoryImpl extends RequestFactory {
      /**
       * Return a wrapped request object
       */
      public HttpServletRequest getServletRequest(HttpServletRequest request,
                                                         boolean 
saveUploadedFilesToDisk,
                                                         File    uploadDirectory,
                                                         boolean allowOverwrite,
                                                         boolean silentlyRename,
                                                         int     maxUploadSize) {
          HttpServletRequest req = request;
          String contentType = req.getContentType();
  
          if (contentType == null) {
              contentType = "application/x-www-form-urlencoded";
          }
  
          if (contentType.startsWith("multipart/form-data")) {
              try {
                  req = new MaybeUploadRequestWrapperEx(request,
                                           saveUploadedFilesToDisk,
                                           uploadDirectory,
                                           allowOverwrite,
                                           silentlyRename,
                                           maxUploadSize);
              } catch (Exception e) {
                  req = request;
              }
          }
  
          return req;
      }
  
      /**
       * Implementation of the get method
       */
      public Object get(HttpServletRequest request, String name) {
          // FIXME We should get rid of this instanceof test
          if (request instanceof MaybeUploadRequestWrapper) {
              return ((MaybeUploadRequestWrapper) request).get(name);
          } else {
              String[] values = request.getParameterValues(name);
  
              if (values == null) return null;
  
              if (values.length == 1) {
                  return values[0];
              }
  
              if (values.length > 1) {
                  Vector vect = new Vector(values.length);
  
                  for (int i = 0; i < values.length; i++) {
                      vect.add(values[i]);
                  }
  
                  return vect;
              }
          }
          return null;
      }
  
      public class MaybeUploadRequestWrapperEx extends MaybeUploadRequestWrapper 
implements HttpServletRequest {
          public MaybeUploadRequestWrapperEx(HttpServletRequest httpservletrequest, 
boolean flag1, File file, boolean flag2, boolean flag3, int size)
              throws Exception {
              super(httpservletrequest, flag1, file, flag2, flag3, size);
          }
  
          public Map getParameterMap() {
              // FIXME:
              return null;
          }
  
          public void setCharacterEncoding(String s) {
              // FIXME:
          }
  
          public StringBuffer getRequestURL() {
              // FIXME:
              return null;
          }
      }
  }
  
  
  
  
  1.1                  
xml-cocoon2/src/java/org/apache/cocoon/components/request/RequestFactory.java
  
  Index: RequestFactory.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  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  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" 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
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  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 (INCLU-
   DING, 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 individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.request;
  
  import org.apache.avalon.framework.component.Component;
  
  import javax.servlet.http.HttpServletRequest;
  import java.io.File;
  
  /**
   * This is the interface of Request Wrapper in Cocoon.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Davanum Srinivas</a>
   * @version CVS $Id: RequestFactory.java,v 1.1 2002/02/24 11:10:58 dims Exp $
   */
  public abstract class   RequestFactory
          implements Component {
  
      static private RequestFactory factory;
  
      public static synchronized RequestFactory getRequestFactory(String className) {
          if(factory != null)
              return factory;
          try {
              ClassLoader loader = Thread.currentThread().getContextClassLoader();
              Class clazz = loader.loadClass(className);
              factory = (RequestFactory)clazz.newInstance();
          } catch (Throwable t){}
          if(factory == null) {
              try {
                  Class clazz = Class.forName(className);
                  factory = (RequestFactory)clazz.newInstance();
              } catch (Throwable t){}
          }
          if(factory == null)
              factory = new SimpleRequestFactoryImpl();
          return factory;
      }
  
      /**
       * Return a wrapped request object
       */
      public abstract HttpServletRequest getServletRequest(HttpServletRequest request,
                                                  boolean saveUploadedFilesToDisk,
                                                  File uploadDirectory,
                                                  boolean allowOverwrite,
                                                  boolean silentlyRename,
                                                  int maxUploadSize);
      /**
       * Implementation of the get method
       */
      public abstract Object get(HttpServletRequest request, String name);
  }
  
  
  1.1                  
xml-cocoon2/src/java/org/apache/cocoon/components/request/SimpleRequestFactoryImpl.java
  
  Index: SimpleRequestFactoryImpl.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  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  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" 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
      [EMAIL PROTECTED]
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  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 (INCLU-
   DING, 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 individuals
   on  behalf of the Apache Software  Foundation and was  originally created by
   Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.apache.cocoon.components.request;
  
  import javax.servlet.http.HttpServletRequest;
  import java.io.File;
  import java.util.Vector;
  
  /**
   *
   * Extends the {@link RequestFactory} class
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Davanum Srinivas</a>
   * @version CVS $Id: SimpleRequestFactoryImpl.java,v 1.1 2002/02/24 11:10:58 dims 
Exp $
   */
  
  public final class SimpleRequestFactoryImpl extends RequestFactory {
  
      /**
       * Return a wrapped request object
       */
      public HttpServletRequest getServletRequest(HttpServletRequest request,
                                                         boolean 
saveUploadedFilesToDisk,
                                                         File    uploadDirectory,
                                                         boolean allowOverwrite,
                                                         boolean silentlyRename,
                                                         int     maxUploadSize) {
          return request;
      }
  
      /**
       * Implementation of the get method
       */
      public Object get(HttpServletRequest request, String name) {
          String[] values = request.getParameterValues(name);
  
          if (values == null) return null;
  
          if (values.length == 1) {
              return values[0];
      }
  
          if (values.length > 1) {
              Vector vect = new Vector(values.length);
  
              for (int i = 0; i < values.length; i++) {
                  vect.add(values[i]);
              }
  
              return vect;
          }
          return null;
      }
  }
  
  
  
  1.6       +3 -2      
xml-cocoon2/src/java/org/apache/cocoon/environment/http/HttpRequest.java
  
  Index: HttpRequest.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/http/HttpRequest.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- HttpRequest.java  22 Feb 2002 07:03:50 -0000      1.5
  +++ HttpRequest.java  24 Feb 2002 11:10:58 -0000      1.6
  @@ -53,6 +53,7 @@
   import org.apache.cocoon.environment.Cookie;
   import org.apache.cocoon.environment.Request;
   import org.apache.cocoon.environment.Session;
  +import org.apache.cocoon.components.request.RequestFactory;
   
   import javax.servlet.RequestDispatcher;
   import javax.servlet.ServletInputStream;
  @@ -66,7 +67,7 @@
    * to provide request information for HTTP servlets.
    *
    * @author <a href="mailto:giacomo@apache,org";>Giacomo Pati</a>
  - * @version CVS $Id: HttpRequest.java,v 1.5 2002/02/22 07:03:50 cziegeler Exp $
  + * @version CVS $Id: HttpRequest.java,v 1.6 2002/02/24 11:10:58 dims Exp $
    */
   
   public class HttpRequest implements Request {
  @@ -95,7 +96,7 @@
       /* The HttpServletRequest interface methods */
   
       public Object get(String name) {
  -        return RequestWrapper.get(this.req, name);
  +        return RequestFactory.getRequestFactory(null).get(this.req, name);
       }
   
       public String getAuthType() {
  
  
  
  1.14      +11 -3     
xml-cocoon2/src/java/org/apache/cocoon/servlet/CocoonServlet.java
  
  Index: CocoonServlet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/servlet/CocoonServlet.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- CocoonServlet.java        23 Feb 2002 21:15:45 -0000      1.13
  +++ CocoonServlet.java        24 Feb 2002 11:10:58 -0000      1.14
  @@ -65,6 +65,7 @@
   import org.apache.cocoon.components.notification.NotifyingBuilder;
   import org.apache.cocoon.components.notification.DefaultNotifyingBuilder;
   import org.apache.cocoon.components.notification.Notifier;
  +import org.apache.cocoon.components.request.RequestFactory;
   import org.apache.cocoon.ResourceNotFoundException;
   import org.apache.cocoon.ConnectionResetException;
   import org.apache.cocoon.Cocoon;
  @@ -72,7 +73,6 @@
   import org.apache.cocoon.environment.Environment;
   import org.apache.cocoon.environment.http.HttpContext;
   import org.apache.cocoon.environment.http.HttpEnvironment;
  -import org.apache.cocoon.environment.http.RequestWrapper;
   import org.apache.cocoon.util.ClassUtils;
   import org.apache.cocoon.util.IOUtils;
   import org.apache.cocoon.util.StringUtils;
  @@ -118,7 +118,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Berin Loritsch</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Leo Sutic</a>
  - * @version CVS $Id: CocoonServlet.java,v 1.13 2002/02/23 21:15:45 dims Exp $
  + * @version CVS $Id: CocoonServlet.java,v 1.14 2002/02/24 11:10:58 dims Exp $
    */
   public class CocoonServlet extends HttpServlet {
   
  @@ -165,6 +165,7 @@
       protected RepositoryClassLoader classLoader;
   
       private String parentComponentManagerClass;
  +    private String requestFactoryClass;
   
       protected String forceLoadParameter;
       protected String forceSystemProperty;
  @@ -364,6 +365,13 @@
               }
           }
   
  +        requestFactoryClass = conf.getInitParameter("request-factory");
  +        if (requestFactoryClass == null) {
  +            if (log.isDebugEnabled()) {
  +                log.debug("request-factory was not set - defaulting to null.");
  +            }
  +        }
  +
           this.containerEncoding = conf.getInitParameter("container-encoding");
               if (containerEncoding == null) {
                   containerEncoding = "ISO-8859-1";
  @@ -883,7 +891,7 @@
           // This is more scalable
           long start = System.currentTimeMillis();
           res.addHeader("X-Cocoon-Version", Constants.VERSION);
  -        HttpServletRequest request = RequestWrapper.getServletRequest(req,
  +        HttpServletRequest request = 
RequestFactory.getRequestFactory(requestFactoryClass).getServletRequest(req,
                                            CocoonServlet.SAVE_UPLOADED_FILES_TO_DISK,
                                            this.uploadDir,
                                            CocoonServlet.ALLOW_OVERWRITE,
  
  
  
  1.4       +37 -29    xml-cocoon2/src/webapp/WEB-INF/web.xml
  
  Index: web.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/web.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- web.xml   5 Feb 2002 13:51:53 -0000       1.3
  +++ web.xml   24 Feb 2002 11:10:58 -0000      1.4
  @@ -57,8 +57,8 @@
       </init-param>
   
       <!--
  -      This parameter indicates the category id of the logger from the LogKit 
  -      configuration used by the CocoonServlet. 
  +      This parameter indicates the category id of the logger from the LogKit
  +      configuration used by the CocoonServlet.
       -->
       <init-param>
         <param-name>servlet-logger</param-name>
  @@ -68,8 +68,8 @@
       <!--
         This parameter indicates the category id of the logger from the LogKit
         management configuration for the Cocoon engine.
  -      This logger is used for all components described in the cocoon.xconf 
  -      and sitemap.xmap file not having specified a logger with the 
  +      This logger is used for all components described in the cocoon.xconf
  +      and sitemap.xmap file not having specified a logger with the
         logger="..." attribute in the component configuration file.
       -->
       <init-param>
  @@ -82,7 +82,7 @@
         As soon as the logkit.xconf the setting of the logkit.xconf configuration is
         used instead! Only for startup and if the logkit.xconf is not 
readable/available
         this log level is of importance.
  - 
  +
         Available levels are:
           DEBUG:        prints all level of log messages.
           INFO:         prints all level of log messages except DEBUG ones.
  @@ -95,7 +95,7 @@
         <param-value>DEBUG</param-value>
       </init-param>
   
  -    <!-- 
  +    <!--
         Allow reinstantiating (reloading) of the cocoon instance. If this is
         set to "yes" or "true", a new cocoon instance can be created using
         the request parameter "cocoon-reload".
  @@ -104,8 +104,8 @@
         <param-name>allow-reload</param-name>
         <param-value>yes</param-value>
       </init-param>
  -  
  -    <!-- 
  +
  +    <!--
         This parameter is used to list classes that should be loaded
         at initialization time of the servlet.
         Usually this classes are JDBC Drivers used
  @@ -113,22 +113,22 @@
       <init-param>
         <param-name>load-class</param-name>
         <param-value>
  -        <!-- For IBM WebSphere: 
  +        <!-- For IBM WebSphere:
           com.ibm.servlet.classloader.Handler -->
   
           <!-- For Database Driver: -->
           @database-driver@
  -        
  +
           <!-- For parent ComponentManager sample:
           org.apache.cocoon.samples.parentcm.Configurator
           -->
         </param-value>
       </init-param>
  -  
  -    <!-- 
  -      This parameter allows to specify where Cocoon should put files 
  -      which are uploaded by the upload.xsp sample. The path specified 
  -      is always relative to the context path of the servlet. 
  +
  +    <!--
  +      This parameter allows to specify where Cocoon should put files
  +      which are uploaded by the upload.xsp sample. The path specified
  +      is always relative to the context path of the servlet.
         The default directory is "upload-dir" in the work-directory
   
       <init-param>
  @@ -137,10 +137,10 @@
       </init-param>
       -->
   
  -    <!-- 
  -      This parameter allows to specify where Cocoon should put files 
  -      which are cached by the storing class. The path specified 
  -      is always relative to the context path of the servlet. 
  +    <!--
  +      This parameter allows to specify where Cocoon should put files
  +      which are cached by the storing class. The path specified
  +      is always relative to the context path of the servlet.
         The default directory is "cache-dir" in the work-directory
   
       <init-param>
  @@ -148,11 +148,11 @@
         <param-value>/WEB-INF/work/cache-dir</param-value>
       </init-param>
       -->
  -  
  -    <!-- 
  +
  +    <!--
         This parameter allows to specify where Cocoon should put it's
  -      working files. The path specified is always relative to the 
  -      context path of the Cocoon servlet. 
  +      working files. The path specified is always relative to the
  +      context path of the Cocoon servlet.
         Usually it is obtained from the servlet engine.
   
       <init-param>
  @@ -183,8 +183,8 @@
   
         Cocoon honors the Loggable and Initializable interfaces for this class,
         if it implements them.
  -    
  -      If you uncomment the following lines the parent CM is set to the Parent CM 
sample, which will look up 
  +
  +      If you uncomment the following lines the parent CM is set to the Parent CM 
sample, which will look up
         a configuration via JNDI at 
org/apache/cocoon/samples/parentcm/ParentCMConfiguration
         and use it.
       <init-param>
  @@ -193,7 +193,15 @@
       </init-param>
       -->
   
  -    <!-- 
  +    <!--
  +      This parameter allows you to select the request factory.
  +    -->
  +    <init-param>
  +      <param-name>request-factory</param-name>
  +      
<param-value>org.apache.cocoon.components.request.MaybeUploadRequestFactoryImpl</param-value>
  +    </init-param>
  +
  +    <!--
         If you set this parameter to 'true' or 'yes', Cocoon will add processing
         time to the end of each response. Value 'hide' adds processing time as an HTML
         comment. By default, processing time is not added (corresponds to value 'no').
  @@ -214,15 +222,15 @@
     <!--
       Cocoon handles all the URL space assigned to the webapp using its sitemap.
       It is recommended to leave it unchanged. Under some circumstances though
  -    (like integration with proprietary webapps or servlets) you might have 
  +    (like integration with proprietary webapps or servlets) you might have
       to change this parameter.
     -->
     <servlet-mapping>
       <servlet-name>Cocoon2</servlet-name>
       <url-pattern>/</url-pattern>
     </servlet-mapping>
  -  <!-- 
  -    Some servlet engines (Tomcat) have defaults which are not overriden 
  +  <!--
  +    Some servlet engines (Tomcat) have defaults which are not overriden
       by '/' mapping, but must be overriden explicitly.
     -->
     <servlet-mapping>
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to