You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by oz...@apache.org on 2004/10/01 01:30:12 UTC

cvs commit: jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib WebdavResource.java

ozeigermann    2004/09/30 16:30:12

  Modified:    webdavclient/clientlib/src/java/org/apache/webdav/lib
                        WebdavResource.java
  Log:
  Applied patch for enhancement #31491 contributed by Thomas Draier
  
  Revision  Changes    Path
  1.31      +85 -14    jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavResource.java
  
  Index: WebdavResource.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavResource.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- WebdavResource.java	17 Aug 2004 21:49:46 -0000	1.30
  +++ WebdavResource.java	30 Sep 2004 23:30:12 -0000	1.31
  @@ -33,13 +33,7 @@
   import java.text.DateFormat;
   import java.text.ParseException;
   import java.text.SimpleDateFormat;
  -import java.util.Collection;
  -import java.util.Date;
  -import java.util.Enumeration;
  -import java.util.Hashtable;
  -import java.util.Locale;
  -import java.util.TimeZone;
  -import java.util.Vector;
  +import java.util.*;
   
   import org.apache.commons.httpclient.Credentials;
   import org.apache.commons.httpclient.HostConfiguration;
  @@ -805,6 +799,11 @@
   
       protected boolean followRedirects = false;
   
  +    /**
  +     * Map of additional headers
  +     */
  +    protected Map headers = new HashMap();
  +
       // --------------------------------------------------------- Basic settings
   
       /**
  @@ -844,6 +843,16 @@
   
       }
   
  +    /**
  +     * Add all additionals headers that have been previously registered
  +     * with addRequestHeader to the method
  +     */
  +    protected void generateAdditionalHeaders(HttpMethod method) {
  +        for (Iterator iterator = headers.keySet().iterator(); iterator.hasNext();) {
  +            String header = (String) iterator.next();
  +            method.setRequestHeader(header, (String) headers.get(header));
  +        }
  +    }
   
       /**
        * Parse the <code>java.util.Date</code> string for HTTP-date.
  @@ -1511,6 +1520,18 @@
       }
   
   
  +    /**
  +     * Add a header in the request sent to the webdav server
  +     *
  +     * @param header Header name
  +     * @param value Value
  +     */
  +    public void addRequestHeader(String header, String value) {
  +        headers.put(header, value);
  +    }
  +
  +
  +
       // ------------------------------------------------ DAV properties checking
   
   
  @@ -2254,6 +2275,7 @@
           }
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2299,6 +2321,7 @@
           method.setFollowRedirects(this.followRedirects);
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Enumeration responses = method.getResponses();
  @@ -2365,6 +2388,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Enumeration responses = method.getResponses();
  @@ -2429,6 +2453,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Enumeration responses = method.getResponses();
  @@ -2488,6 +2513,7 @@
           GetMethod method = new GetMethod(URIUtil.encodePathQuery(path));
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           int statusCode = method.getStatusLine().getStatusCode();
  @@ -2528,6 +2554,7 @@
           setClient();
           GetMethod method = new GetMethod(URIUtil.encodePathQuery(path));
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2567,6 +2594,7 @@
           GetMethod method = new GetMethod(URIUtil.encodePathQuery(path));
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2637,6 +2665,7 @@
           method.setRequestBody(new ByteArrayInputStream(data));
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2679,6 +2708,7 @@
           method.setRequestContentLength(PutMethod.CONTENT_LENGTH_CHUNKED);
           method.setRequestBody(is);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2723,6 +2753,7 @@
               method.setRequestHeader("Content-Type", getGetContentType());
           method.setRequestBody(data);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2771,6 +2802,7 @@
                                          : PutMethod.CONTENT_LENGTH_CHUNKED);
           method.setRequestBody(new FileInputStream(file));
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2818,6 +2850,7 @@
               method.setRequestHeader("Content-Type", getGetContentType());
           method.setRequestBody(url.openStream());
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2861,6 +2894,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -2919,6 +2953,7 @@
           method.setFollowRedirects(this.followRedirects);
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Vector options = new Vector();
  @@ -2978,6 +3013,7 @@
           method.setFollowRedirects(this.followRedirects);
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Vector options = new Vector();
  @@ -3032,6 +3068,7 @@
           method.setFollowRedirects(this.followRedirects);
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Vector options = new Vector();
  @@ -3118,6 +3155,7 @@
           method.setFollowRedirects(this.followRedirects);
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -3137,6 +3175,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Vector results = new Vector();
  @@ -3176,6 +3215,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           return method.getResponses();
  @@ -3192,6 +3232,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           /*first draft, does work anyhow
  @@ -3245,6 +3286,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Vector results = new Vector();
  @@ -3283,6 +3325,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           client.executeMethod(method);
   
           Vector results = new Vector();
  @@ -3362,6 +3405,7 @@
   
           // Default depth=infinity, type=allprop
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int status = client.executeMethod(method);
   
           // Set status code for this resource.
  @@ -3436,6 +3480,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int status = client.executeMethod(method);
   
           // Set status code for this resource.
  @@ -3535,6 +3580,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int status = client.executeMethod(method);
   
           // Also accept OK sent by buggy servers.
  @@ -3858,6 +3904,7 @@
           }
           if (hasSomething) {
               generateTransactionHeader(method);
  +            generateAdditionalHeaders(method);
               int statusCode = client.executeMethod(method);
               // Possbile Status Codes => SC_OK
               // WebdavStatus.SC_FORBIDDEN, SC_CONFLICT, SC_LOCKED, 507
  @@ -3899,6 +3946,7 @@
           HeadMethod method = new HeadMethod(URIUtil.encodePathQuery(path));
   
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -3943,6 +3991,7 @@
   
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -3991,6 +4040,7 @@
           generateIfHeader(method);
           method.setOverwrite(overwrite);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           // Possbile MOVE Status Codes => SC_CREATED, SC_NO_CONTENT
  @@ -4040,6 +4090,7 @@
           generateIfHeader(method);
           method.setOverwrite(overwrite);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           // Possbile COPY Status Codes => SC_CREATED, SC_NO_CONTENT
  @@ -4085,6 +4136,7 @@
   
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           // Possbile MKCOL Status Codes => SC_CREATED
  @@ -4201,6 +4253,7 @@
           method.setFollowRedirects(this.followRedirects);
   
           generateIfHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
           String lock = method.getLockToken();
           WebdavState state = (WebdavState) client.getState();
  @@ -4271,6 +4324,7 @@
           method.setFollowRedirects(this.followRedirects);
   
           generateIfHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
           String txHandle = method.getLockToken();
           WebdavState state = (WebdavState) client.getState();
  @@ -4344,6 +4398,7 @@
           method.setFollowRedirects(this.followRedirects);
   
           generateIfHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -4422,6 +4477,7 @@
   
           generateIfHeader(method);
           method.setLockToken(lock);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -4521,6 +4577,7 @@
   
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -4540,6 +4597,7 @@
           method.setFollowRedirects(this.followRedirects);
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -4561,6 +4619,7 @@
   
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -4605,6 +4664,7 @@
           method.setFollowRedirects(this.followRedirects);
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           // Possbile MKCOL Status Codes => SC_CREATED
  @@ -4735,6 +4795,7 @@
   
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -4775,6 +4836,7 @@
   
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -4818,6 +4880,7 @@
   
           generateIfHeader(method);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           setStatusCode(statusCode);
  @@ -4925,6 +4988,7 @@
           method.setDebug(debug);
           method.setFollowRedirects(this.followRedirects);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int status = client.executeMethod(method);
   
           // Set status code for this resource.
  @@ -4981,6 +5045,7 @@
           method.setDebug(debug);
           method.setOverwrite(overwrite);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           // Possbile BIND Status Codes => SC_CREATED, SC_NO_CONTENT
  @@ -5023,6 +5088,7 @@
               new UnbindMethod(URIUtil.encodePath(binding));
           method.setDebug(debug);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           // Possbile BIND Status Codes => SC_CREATED, SC_NOT_FOUND
  @@ -5080,6 +5146,7 @@
           method.setDebug(debug);
           method.setOverwrite(overwrite);
           generateTransactionHeader(method);
  +        generateAdditionalHeaders(method);
           int statusCode = client.executeMethod(method);
   
           // Possbile BIND Status Codes => SC_CREATED, SC_NO_CONTENT
  @@ -5127,7 +5194,8 @@
          method.setSubsciptionLifetime(lifetime);
          method.setNotificationType(notificationType);
          method.setNotificationDelay(notificationDelay);
  -       
  +       generateAdditionalHeaders(method);
  +
          int statusCode = client.executeMethod(method);
          
          if (statusCode == HttpStatus.SC_OK) {
  @@ -5159,7 +5227,8 @@
          method.setFollowRedirects(this.followRedirects);
          
          method.setSubscriptionId(subscriptionId);
  -       
  +       generateAdditionalHeaders(method);
  +
          int statusCode = client.executeMethod(method);
          
          if (statusCode == HttpStatus.SC_OK) {
  @@ -5196,7 +5265,8 @@
          method.setFollowRedirects(this.followRedirects);   
          
          method.addSubscriptionId(subscriptionId);
  -       
  +       generateAdditionalHeaders(method);
  +
          int statusCode = client.executeMethod(method);
          
          if (statusCode == HttpStatus.SC_OK) {
  @@ -5233,7 +5303,8 @@
          method.setFollowRedirects(this.followRedirects);
          
          method.addSubscriptionId(subscriptionId);
  -       
  +       generateAdditionalHeaders(method);
  +
          int statusCode = client.executeMethod(method);
          
          if (statusCode == HttpStatus.SC_MULTI_STATUS) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org