You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2002/03/10 00:22:38 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java WebdavServlet.java

remm        02/03/09 15:22:38

  Modified:    catalina/src/share/org/apache/catalina/servlets
                        DefaultServlet.java WebdavServlet.java
  Log:
  - Add some hooks to allow the directory context implementation
    to compute strong etags.
  
  Revision  Changes    Path
  1.51      +22 -26    jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- DefaultServlet.java	8 Jan 2002 12:14:57 -0000	1.50
  +++ DefaultServlet.java	9 Mar 2002 23:22:38 -0000	1.51
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.50 2002/01/08 12:14:57 remm Exp $
  - * $Revision: 1.50 $
  - * $Date: 2002/01/08 12:14:57 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.51 2002/03/09 23:22:38 remm Exp $
  + * $Revision: 1.51 $
  + * $Date: 2002/03/09 23:22:38 $
    *
    * ====================================================================
    *
  @@ -125,7 +125,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.50 $ $Date: 2002/01/08 12:14:57 $
  + * @version $Revision: 1.51 $ $Date: 2002/03/09 23:22:38 $
    */
   
   public class DefaultServlet
  @@ -785,7 +785,7 @@
                                        ResourceInfo resourceInfo)
           throws IOException {
   
  -        String eTag = getETag(resourceInfo, true);
  +        String eTag = getETag(resourceInfo);
           long fileLength = resourceInfo.length;
           long lastModified = resourceInfo.date;
   
  @@ -918,31 +918,21 @@
   
   
       /**
  -     * Get the ETag value associated with a file.
  -     *
  -     * @param resourceInfo File object
  -     * @param strong True if we want a strong ETag, in which case a checksum
  -     * of the file has to be calculated
  -     */
  -    protected String getETagValue(ResourceInfo resourceInfo, boolean strong) {
  -        // FIXME : Compute a strong ETag if requested, using an MD5 digest
  -        // of the file contents
  -        return resourceInfo.length + "-" + resourceInfo.date;
  -    }
  -
  -
  -    /**
        * Get the ETag associated with a file.
        *
        * @param resourceInfo File object
        * @param strong True if we want a strong ETag, in which case a checksum
        * of the file has to be calculated
        */
  -    protected String getETag(ResourceInfo resourceInfo, boolean strong) {
  -        if (strong)
  -            return "\"" + getETagValue(resourceInfo, strong) + "\"";
  -        else
  -            return "W/\"" + getETagValue(resourceInfo, strong) + "\"";
  +    protected String getETag(ResourceInfo resourceInfo) {
  +        if (resourceInfo.strongETag != null) {
  +            return resourceInfo.strongETag;
  +        } else if (resourceInfo.weakETag != null) {
  +            return resourceInfo.weakETag;
  +        } else {
  +            return "W/\"" + resourceInfo.length + "-" 
  +                + resourceInfo.date + "\"";
  +        }
       }
   
   
  @@ -1199,7 +1189,7 @@
               ranges = parseRange(request, response, resourceInfo);
   
               // ETag header
  -            response.setHeader("ETag", getETag(resourceInfo, true));
  +            response.setHeader("ETag", getETag(resourceInfo));
   
               // Last-Modified header
               if (debug > 0)
  @@ -1416,7 +1406,7 @@
           String headerValue = request.getHeader("If-Range");
           if (headerValue != null) {
   
  -            String eTag = getETag(resourceInfo, true);
  +            String eTag = getETag(resourceInfo);
               long lastModified = resourceInfo.date;
   
               Date date = null;
  @@ -2269,6 +2259,8 @@
           public long date;
           public long length;
           public boolean collection;
  +        public String weakETag;
  +        public String strongETag;
           public boolean exists;
           public DirContext resources;
           protected InputStream is;
  @@ -2285,6 +2277,8 @@
               date = 0;
               length = -1;
               collection = true;
  +            weakETag = null;
  +            strongETag = null;
               exists = false;
               resources = null;
               is = null;
  @@ -2329,6 +2323,8 @@
                           } else {
                               httpDate = FastHttpDateFormat.getCurrentDate();
                           }
  +                        weakETag = tempAttrs.getETag();
  +                        strongETag = tempAttrs.getETag(true);
                           length = tempAttrs.getContentLength();
                       }
                   } catch (NamingException e) {
  
  
  
  1.27      +11 -7     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- WebdavServlet.java	3 Jan 2002 08:52:56 -0000	1.26
  +++ WebdavServlet.java	9 Mar 2002 23:22:38 -0000	1.27
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.26 2002/01/03 08:52:56 remm Exp $
  - * $Revision: 1.26 $
  - * $Date: 2002/01/03 08:52:56 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.27 2002/03/09 23:22:38 remm Exp $
  + * $Revision: 1.27 $
  + * $Date: 2002/03/09 23:22:38 $
    *
    * ====================================================================
    *
  @@ -126,7 +126,7 @@
    * are handled by the DefaultServlet.
    *
    * @author Remy Maucherat
  - * @version $Revision: 1.26 $ $Date: 2002/01/03 08:52:56 $
  + * @version $Revision: 1.27 $ $Date: 2002/03/09 23:22:38 $
    */
   
   public class WebdavServlet
  @@ -1388,6 +1388,11 @@
       // -------------------------------------------------------- Private Methods
   
   
  +    protected String getETagValue(ResourceInfo resourceInfo) {
  +        return resourceInfo.length + "-" + resourceInfo.date;
  +    }
  +
  +
       /**
        * Generate the namespace declarations.
        */
  @@ -2043,7 +2048,7 @@
                       (null, "getcontenttype",
                        getServletContext().getMimeType(resourceInfo.path));
                   generatedXML.writeProperty(null, "getetag",
  -                                           getETagValue(resourceInfo, true));
  +                                           getETagValue(resourceInfo));
                   generatedXML.writeElement(null, "resourcetype",
                                             XMLWriter.NO_CONTENT);
               } else {
  @@ -2170,8 +2175,7 @@
                           propertiesNotFound.addElement(property);
                       } else {
                           generatedXML.writeProperty
  -                            (null, "getetag",
  -                             getETagValue(resourceInfo, true));
  +                            (null, "getetag", getETagValue(resourceInfo));
                       }
                   } else if (property.equals("getlastmodified")) {
                       if (resourceInfo.collection) {
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>