This is an automated email from the ASF dual-hosted git repository.
heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
The following commit(s) were added to refs/heads/master by this push:
new 86d519a3a3 add patch support to http tool
86d519a3a3 is described below
commit 86d519a3a3a8aca65f9d76638683e41f1778ea10
Author: Alex Heneveld <[email protected]>
AuthorDate: Mon May 27 11:07:47 2024 +0100
add patch support to http tool
---
.../org/apache/brooklyn/util/http/HttpTool.java | 38 +++++++++++++---------
.../brooklyn/util/http/executor/HttpExecutor.java | 1 +
.../executor/apacheclient/HttpExecutorImpl.java | 3 ++
3 files changed, 27 insertions(+), 15 deletions(-)
diff --git
a/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java
b/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java
index 7a3d5ac022..8d26faa707 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java
@@ -18,9 +18,6 @@
*/
package org.apache.brooklyn.util.http;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URI;
@@ -40,10 +37,12 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLSession;
-
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.base.Throwables;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Multimap;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.crypto.SslTrustUtils;
import org.apache.brooklyn.util.exceptions.Exceptions;
@@ -65,6 +64,7 @@ import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.methods.HttpPatch;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.HttpRequestBase;
@@ -87,12 +87,8 @@ import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
-import com.google.common.base.Throwables;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Multimap;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
/**
* A utility tool for HTTP operations.
@@ -530,7 +526,14 @@ public class HttpTool {
this.uri(uri);
}
}
-
+
+ public static class HttpPatchBuilder extends HttpRequestBuilder<HttpPatch>
{
+ public HttpPatchBuilder(URI uri) {
+ super(HttpPatch.class);
+ this.uri(uri);
+ }
+ }
+
public static HttpToolResponse httpGet(HttpClient httpClient, URI uri,
Map<String,String> headers) {
HttpGet req = new HttpGetBuilder(uri).headers(headers).build();
return execAndConsume(httpClient, req);
@@ -555,7 +558,12 @@ public class HttpTool {
HttpPut req = new
HttpPutBuilder(uri).headers(headers).body(body).build();
return execAndConsume(httpClient, req);
}
-
+
+ public static HttpToolResponse httpPatch(HttpClient httpClient, URI uri,
Multimap<String, String> headers, byte[] body) {
+ HttpPatch req = new
HttpPatchBuilder(uri).headers(headers).body(body).build();
+ return execAndConsume(httpClient, req);
+ }
+
public static HttpToolResponse httpPut(HttpClient httpClient, URI uri,
Map<String, String> headers, byte[] body) {
HttpPut req = new
HttpPutBuilder(uri).headers(headers).body(body).build();
return execAndConsume(httpClient, req);
diff --git
a/utils/common/src/main/java/org/apache/brooklyn/util/http/executor/HttpExecutor.java
b/utils/common/src/main/java/org/apache/brooklyn/util/http/executor/HttpExecutor.java
index d070d57c88..d9660e3fa1 100644
---
a/utils/common/src/main/java/org/apache/brooklyn/util/http/executor/HttpExecutor.java
+++
b/utils/common/src/main/java/org/apache/brooklyn/util/http/executor/HttpExecutor.java
@@ -34,6 +34,7 @@ public interface HttpExecutor {
static final String POST = "POST";
static final String PUT = "PUT";
+ static final String PATCH = "PATCH";
static final String DELETE = "DELETE";
diff --git
a/utils/common/src/main/java/org/apache/brooklyn/util/http/executor/apacheclient/HttpExecutorImpl.java
b/utils/common/src/main/java/org/apache/brooklyn/util/http/executor/apacheclient/HttpExecutorImpl.java
index 50c248bc82..1e333cf8fa 100644
---
a/utils/common/src/main/java/org/apache/brooklyn/util/http/executor/apacheclient/HttpExecutorImpl.java
+++
b/utils/common/src/main/java/org/apache/brooklyn/util/http/executor/apacheclient/HttpExecutorImpl.java
@@ -94,6 +94,9 @@ public class HttpExecutorImpl implements HttpExecutor {
case HttpExecutor.PUT:
response = HttpTool.httpPut(httpClient, request.uri(),
request.headers(), orEmpty(request.body()));
break;
+ case HttpExecutor.PATCH:
+ response = HttpTool.httpPatch(httpClient, request.uri(),
request.headers(), orEmpty(request.body()));
+ break;
case HttpExecutor.DELETE:
response = HttpTool.httpDelete(httpClient, request.uri(),
request.headers());
break;