aboutsummaryrefslogtreecommitdiffstats
path: root/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http
diff options
context:
space:
mode:
authorJorge Hernandez <jorge.hernandez-herrero@att.com>2019-01-15 13:28:16 -0600
committerJorge Hernandez <jorge.hernandez-herrero@att.com>2019-01-16 09:36:37 -0600
commit9f15e1987dc9fc6bb8196c415b817b3f1cf6bd5f (patch)
tree0aab018cb4a9186f7ae2efc2a88ba3200c58f6d4 /policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http
parent2a191bf0d0a5cb3beb436a025d2f4efa419bb354 (diff)
Add post and delete http client methods
Additional clean up for sonars have also been added for the classes that have been modified Issue-ID: POLICY-1367 Change-Id: Ie97d9057273e89850420a7c1b5b2d275709bdfd0 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
Diffstat (limited to 'policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http')
-rw-r--r--policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClient.java156
-rw-r--r--policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClientFactory.java17
-rw-r--r--policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/IndexedHttpClientFactory.java2
-rw-r--r--policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/internal/JerseyClient.java32
4 files changed, 164 insertions, 43 deletions
diff --git a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClient.java b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClient.java
index 72847b18..2e3b9afb 100644
--- a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClient.java
+++ b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClient.java
@@ -1,8 +1,8 @@
/*-
* ============LICENSE_START=======================================================
- * policy-endpoints
+ * ONAP
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,36 +27,136 @@ import javax.ws.rs.core.Response;
import org.onap.policy.common.capabilities.Startable;
+/**
+ * Http Client interface.
+ */
public interface HttpClient extends Startable {
- public static final HttpClientFactory factory = new IndexedHttpClientFactory();
-
- public Response get(String path);
-
- public Response get();
-
- public Response put(String path, Entity<?> entity, Map<String, Object> headers);
-
- public static <T> T getBody(Response response, Class<T> entityType) {
+ /**
+ * Factory.
+ */
+ HttpClientFactory factory = new IndexedHttpClientFactory();
+
+ /**
+ * GET request.
+ *
+ * @param path context uri path.
+ * @return response
+ */
+ Response get(String path);
+
+ /**
+ * GET request.
+ *
+ * @return response
+ */
+ Response get();
+
+ /**
+ * PUT request.
+ *
+ * @param path context uri path
+ * @param entity body
+ * @param headers headers
+ *
+ * @return response.
+ */
+ Response put(String path, Entity<?> entity, Map<String, Object> headers);
+
+ /**
+ * POST request.
+ *
+ * @param path context uri path
+ * @param entity body
+ * @param headers headers
+ *
+ * @return response.
+ */
+ Response post(String path, Entity<?> entity, Map<String, Object> headers);
+
+ /**
+ * DELETE request.
+ *
+ * @param path context uri path
+ * @param headers headers
+ *
+ * @return response.
+ */
+ Response delete(String path, Map<String, Object> headers);
+
+ /**
+ * Retrieve the body from the HTTP transaction.
+ *
+ * @param response response.
+ * @param entityType body type.
+ * @param <T> body class.
+ *
+ * @return response.
+ */
+ static <T> T getBody(Response response, Class<T> entityType) {
return response.readEntity(entityType);
}
- public String getName();
-
- public boolean isHttps();
-
- public boolean isSelfSignedCerts();
-
- public String getHostname();
-
- public int getPort();
-
- public String getBasePath();
-
- public String getUserName();
-
- public String getPassword();
-
- public String getBaseUrl();
+ /**
+ * Get the client name.
+ * @return name
+ */
+ String getName();
+
+ /**
+ * HTTPS support.
+ *
+ * @return if the client uses https
+ */
+ boolean isHttps();
+
+ /**
+ * Self-signed certificates.
+ *
+ * @return if the self-signed certificates are allowed
+ */
+ boolean isSelfSignedCerts();
+
+ /**
+ * Get the host name.
+ *
+ * @return host name
+ */
+ String getHostname();
+
+ /**
+ * Get the port.
+ *
+ * @return port
+ */
+ int getPort();
+
+ /**
+ * Get the base path.
+ *
+ * @return base path
+ */
+ String getBasePath();
+
+ /**
+ * Get the user name.
+ *
+ * @return the user name
+ */
+ String getUserName();
+
+ /**
+ * Get the password.
+ *
+ * @return the password
+ */
+ String getPassword();
+
+ /**
+ * Get the base URL.
+ *
+ * @return the base URL
+ */
+ String getBaseUrl();
}
diff --git a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClientFactory.java b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClientFactory.java
index 133dfaea..f482eb01 100644
--- a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClientFactory.java
+++ b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/HttpClientFactory.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * policy-endpoints
+ * ONAP
* ================================================================================
* Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2018 Samsung Electronics Co., Ltd.
@@ -35,13 +35,13 @@ public interface HttpClientFactory {
/**
* Build and http client with the following parameters.
*/
- public HttpClient build(BusTopicParams busTopicParams)
+ HttpClient build(BusTopicParams busTopicParams)
throws KeyManagementException, NoSuchAlgorithmException;
/**
* Build http client from properties.
*/
- public List<HttpClient> build(Properties properties) throws KeyManagementException, NoSuchAlgorithmException;
+ List<HttpClient> build(Properties properties) throws KeyManagementException, NoSuchAlgorithmException;
/**
* Get http client.
@@ -49,21 +49,24 @@ public interface HttpClientFactory {
* @param name the name
* @return the http client
*/
- public HttpClient get(String name);
+ HttpClient get(String name);
/**
* List of http clients.
*
* @return http clients
*/
- public List<HttpClient> inventory();
+ List<HttpClient> inventory();
/**
* Destroy by name.
*
* @param name name
*/
- public void destroy(String name);
+ void destroy(String name);
- public void destroy();
+ /**
+ * destroy the factory.
+ */
+ void destroy();
}
diff --git a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/IndexedHttpClientFactory.java b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/IndexedHttpClientFactory.java
index d4d4a281..9aef09e4 100644
--- a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/IndexedHttpClientFactory.java
+++ b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/IndexedHttpClientFactory.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * ONAP Policy Engine - Common Modules
+ * ONAP
* ================================================================================
* Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
diff --git a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/internal/JerseyClient.java b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/internal/JerseyClient.java
index 94635615..b55a7bb2 100644
--- a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/internal/JerseyClient.java
+++ b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/client/internal/JerseyClient.java
@@ -1,8 +1,8 @@
/*
* ============LICENSE_START=======================================================
- * policy-endpoints
+ * ONAP
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2018 Samsung Electronics Co., Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -46,6 +46,9 @@ import org.onap.policy.common.endpoints.http.client.HttpClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Http Client implementation using a Jersey Client.
+ */
public class JerseyClient implements HttpClient {
/**
@@ -164,11 +167,17 @@ public class JerseyClient implements HttpClient {
@Override
public Response put(String path, Entity<?> entity, Map<String, Object> headers) {
- Builder builder = this.client.target(this.baseUrl).path(path).request();
- for (Entry<String, Object> header : headers.entrySet()) {
- builder.header(header.getKey(), header.getValue());
- }
- return builder.put(entity);
+ return getBuilder(path, headers).put(entity);
+ }
+
+ @Override
+ public Response post(String path, Entity<?> entity, Map<String, Object> headers) {
+ return getBuilder(path, headers).post(entity);
+ }
+
+ @Override
+ public Response delete(String path, Map<String, Object> headers) {
+ return getBuilder(path, headers).delete();
}
@Override
@@ -274,4 +283,13 @@ public class JerseyClient implements HttpClient {
return builder.toString();
}
+ private Builder getBuilder(String path, Map<String, Object> headers) {
+ Builder builder = this.client.target(this.baseUrl).path(path).request();
+ for (Entry<String, Object> header : headers.entrySet()) {
+ builder.header(header.getKey(), header.getValue());
+ }
+ return builder;
+ }
+
+
}