diff --git a/extensions/apachehc/pom.xml b/extensions/apachehc/pom.xml
index 302c8a5f3e..5f8d32687a 100644
--- a/extensions/apachehc/pom.xml
+++ b/extensions/apachehc/pom.xml
@@ -42,7 +42,7 @@
org.apache.httpcomponents
httpclient
- 4.0.1
+ 4.0.3
org.mortbay.jetty
diff --git a/extensions/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java b/extensions/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java
index b868032cec..c035e580e6 100644
--- a/extensions/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java
+++ b/extensions/apachehc/src/main/java/org/jclouds/http/apachehc/ApacheHCUtils.java
@@ -143,6 +143,12 @@ public class ApacheHCUtils {
Entity.setContentType(payload.getContentType());
apacheRequest.setEntity(Entity);
}
+ if (payload.getContentDisposition() != null)
+ apacheRequest.addHeader("Content-Disposition", payload.getContentDisposition());
+ if (payload.getContentEncoding() != null)
+ apacheRequest.addHeader("Content-Encoding", payload.getContentEncoding());
+ if (payload.getContentLanguage() != null)
+ apacheRequest.addHeader("Content-Language", payload.getContentLanguage());
assert (apacheRequest.getEntity() != null);
}
diff --git a/extensions/apachehc/src/test/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorServiceTest.java b/extensions/apachehc/src/test/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorServiceTest.java
index 9d33a06955..099cc3dae8 100644
--- a/extensions/apachehc/src/test/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorServiceTest.java
+++ b/extensions/apachehc/src/test/java/org/jclouds/http/apachehc/ApacheHCHttpCommandExecutorServiceTest.java
@@ -24,7 +24,10 @@ import static org.jclouds.Constants.*;
import static org.jclouds.Constants.PROPERTY_MAX_CONNECTIONS_PER_HOST;
import static org.jclouds.Constants.PROPERTY_USER_THREADS;
+import java.io.IOException;
import java.util.Properties;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
import org.jclouds.http.BaseHttpCommandExecutorServiceIntegrationTest;
import org.jclouds.http.apachehc.config.ApacheHCHttpCommandExecutorServiceModule;
@@ -56,4 +59,23 @@ public class ApacheHCHttpCommandExecutorServiceTest extends BaseHttpCommandExecu
props.setProperty(PROPERTY_USER_THREADS, 0 + "");
}
+ @Override
+ public void testPostContentDisposition() throws ExecutionException, InterruptedException, TimeoutException,
+ IOException {
+ // TODO: currently times out, see issue
+ // http://code.google.com/p/jclouds/issues/detail?id=353
+ }
+
+ @Override
+ public void testPostContentEncoding() throws ExecutionException, InterruptedException, TimeoutException, IOException {
+ // TODO: currently times out, see issue
+ // http://code.google.com/p/jclouds/issues/detail?id=353
+ }
+
+ @Override
+ public void testPostContentLanguage() throws ExecutionException, InterruptedException, TimeoutException, IOException {
+ // TODO: currently times out, see issue
+ // http://code.google.com/p/jclouds/issues/detail?id=353
+ }
+
}
\ No newline at end of file
diff --git a/extensions/gae/src/main/java/org/jclouds/gae/ConvertToGaeRequest.java b/extensions/gae/src/main/java/org/jclouds/gae/ConvertToGaeRequest.java
index cdf12273a5..16dfbbc58d 100644
--- a/extensions/gae/src/main/java/org/jclouds/gae/ConvertToGaeRequest.java
+++ b/extensions/gae/src/main/java/org/jclouds/gae/ConvertToGaeRequest.java
@@ -93,6 +93,12 @@ public class ConvertToGaeRequest implements Function {
request.getPayload().setContentMD5(oldPayload.getContentMD5());
if (oldPayload.getContentType() != null)
request.getPayload().setContentType(oldPayload.getContentType());
+ if (oldPayload.getContentDisposition() != null)
+ request.getPayload().setContentDisposition(oldPayload.getContentDisposition());
+ if (oldPayload.getContentEncoding() != null)
+ request.getPayload().setContentEncoding(oldPayload.getContentEncoding());
+ if (oldPayload.getContentLanguage() != null)
+ request.getPayload().setContentLanguage(oldPayload.getContentLanguage());
}
gaeRequest.setPayload(array);
} catch (IOException e) {
@@ -105,6 +111,12 @@ public class ConvertToGaeRequest implements Function {
.getContentMD5())));
if (request.getPayload().getContentType() != null)
gaeRequest.setHeader(new HTTPHeader(HttpHeaders.CONTENT_TYPE, request.getPayload().getContentType()));
+ if (request.getPayload().getContentDisposition() != null)
+ gaeRequest.setHeader(new HTTPHeader("Content-Disposition", request.getPayload().getContentDisposition()));
+ if (request.getPayload().getContentEncoding() != null)
+ gaeRequest.setHeader(new HTTPHeader("Content-Encoding", request.getPayload().getContentEncoding()));
+ if (request.getPayload().getContentLanguage() != null)
+ gaeRequest.setHeader(new HTTPHeader("Content-Language", request.getPayload().getContentLanguage()));
Long length = checkNotNull(request.getPayload().getContentLength(), "payload.getContentLength");
gaeRequest.setHeader(new HTTPHeader(HttpHeaders.CONTENT_LENGTH, length.toString()));
} else {
diff --git a/extensions/gae/src/test/java/org/jclouds/gae/AsyncGaeHttpCommandExecutorServiceIntegrationTest.java b/extensions/gae/src/test/java/org/jclouds/gae/AsyncGaeHttpCommandExecutorServiceIntegrationTest.java
index f7f46ba97a..e4c9e2c8e2 100644
--- a/extensions/gae/src/test/java/org/jclouds/gae/AsyncGaeHttpCommandExecutorServiceIntegrationTest.java
+++ b/extensions/gae/src/test/java/org/jclouds/gae/AsyncGaeHttpCommandExecutorServiceIntegrationTest.java
@@ -357,6 +357,25 @@ public class AsyncGaeHttpCommandExecutorServiceIntegrationTest extends BaseHttpC
// disabled since test data is too big
}
+ @Override
+ public void testPostContentDisposition() throws ExecutionException, InterruptedException, TimeoutException,
+ IOException {
+ setupApiProxy();
+ super.testPostContentDisposition();
+ }
+
+ @Override
+ public void testPostContentEncoding() throws ExecutionException, InterruptedException, TimeoutException, IOException {
+ setupApiProxy();
+ super.testPostContentEncoding();
+ }
+
+ @Override
+ public void testPostContentLanguage() throws ExecutionException, InterruptedException, TimeoutException, IOException {
+ setupApiProxy();
+ super.testPostContentLanguage();
+ }
+
// http://code.google.com/p/googleappengine/issues/detail?id=3599
@Override
@Test(enabled = true, expectedExceptions = IllegalArgumentException.class)