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;

Reply via email to