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