summaryrefslogtreecommitdiffstats
path: root/common-app-api/src/main/java/org/openecomp/sdc/common/http/client/api/HttpClientConfigImmutable.java
diff options
context:
space:
mode:
Diffstat (limited to 'common-app-api/src/main/java/org/openecomp/sdc/common/http/client/api/HttpClientConfigImmutable.java')
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/http/client/api/HttpClientConfigImmutable.java154
1 files changed, 154 insertions, 0 deletions
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/http/client/api/HttpClientConfigImmutable.java b/common-app-api/src/main/java/org/openecomp/sdc/common/http/client/api/HttpClientConfigImmutable.java
new file mode 100644
index 0000000000..bfd3b473b4
--- /dev/null
+++ b/common-app-api/src/main/java/org/openecomp/sdc/common/http/client/api/HttpClientConfigImmutable.java
@@ -0,0 +1,154 @@
+package org.openecomp.sdc.common.http.client.api;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.openecomp.sdc.common.http.config.BasicAuthorization;
+import org.openecomp.sdc.common.http.config.ClientCertificate;
+import org.openecomp.sdc.common.http.config.HttpClientConfig;
+import org.openecomp.sdc.common.http.config.Timeouts;
+
+final class HttpClientConfigImmutable {
+
+ private final Map<String, String> headers;
+ private final BasicAuthorization basicAuthorization;
+ private final ClientCertificate clientCertificate;
+ private final Timeouts timeouts;
+ /*
+ * use ComparableHttpRequestRetryHandler.compare instead of default generated equals
+ */
+ private final ComparableHttpRequestRetryHandler retryHandler;
+ private final int numOfRetries;
+
+ static HttpClientConfigImmutable getOrCreate(HttpClientConfig httpClientConfig) {
+ // TODO: retrive from a pool if exist, otherwise create new
+ return new HttpClientConfigImmutable(httpClientConfig);
+ }
+
+ HttpClientConfigImmutable(HttpClientConfig httpClientConfig) {
+ timeouts = httpClientConfig.getTimeouts() != null ? new Timeouts(httpClientConfig.getTimeouts()) : null;
+ basicAuthorization = httpClientConfig.getBasicAuthorization() != null ? new BasicAuthorization(httpClientConfig.getBasicAuthorization()) : null;
+ clientCertificate = httpClientConfig.getClientCertificate() != null ? new ClientCertificate(httpClientConfig.getClientCertificate()) : null;
+ headers = httpClientConfig.getHeaders() != null ? Collections.unmodifiableMap(new HashMap<>(httpClientConfig.getHeaders())) : null;
+ retryHandler = httpClientConfig.getRetryHandler();
+ numOfRetries = httpClientConfig.getNumOfRetries();
+ }
+
+ Map<String, String> getHeaders() {
+ return headers;
+ }
+
+ int getNumOfRetries() {
+ return numOfRetries;
+ }
+
+ String getBasicAuthPassword() {
+ return basicAuthorization != null ? basicAuthorization.getPassword() : null;
+ }
+
+ String getBasicAuthUserName() {
+ return basicAuthorization != null ? basicAuthorization.getUserName() : null;
+ }
+
+ String getClientCertKeyStore() {
+ return clientCertificate != null ? clientCertificate.getKeyStore() : null;
+ }
+
+ String getClientCertKeyPassword() {
+ return clientCertificate != null ? clientCertificate.getKeyStorePassword() : null;
+ }
+
+ ClientCertificate getClientCertificate() {
+ return clientCertificate != null ? new ClientCertificate(clientCertificate) : null;
+ }
+
+ int getReadTimeoutMs() {
+ return timeouts.getReadTimeoutMs();
+ }
+
+ int getConnectTimeoutMs() {
+ return timeouts.getConnectTimeoutMs();
+ }
+
+ int getConnectPoolTimeoutMs() {
+ return timeouts.getConnectPoolTimeoutMs();
+ }
+
+ ComparableHttpRequestRetryHandler getRetryHandler() {
+ return retryHandler;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((basicAuthorization == null) ? 0 : basicAuthorization.hashCode());
+ result = prime * result + ((clientCertificate == null) ? 0 : clientCertificate.hashCode());
+ result = prime * result + ((headers == null) ? 0 : headers.hashCode());
+ result = prime * result + ((retryHandler == null) ? 0 : retryHandler.hashCode());
+ result = prime * result + ((timeouts == null) ? 0 : timeouts.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ HttpClientConfigImmutable other = (HttpClientConfigImmutable) obj;
+ if (basicAuthorization == null) {
+ if (other.basicAuthorization != null)
+ return false;
+ }
+ else if (!basicAuthorization.equals(other.basicAuthorization))
+ return false;
+ if (clientCertificate == null) {
+ if (other.clientCertificate != null)
+ return false;
+ }
+ else if (!clientCertificate.equals(other.clientCertificate))
+ return false;
+ if (headers == null) {
+ if (other.headers != null)
+ return false;
+ }
+ else if (!headers.equals(other.headers))
+ return false;
+ if (retryHandler == null) {
+ if (other.retryHandler != null)
+ return false;
+ }
+ else if (!retryHandler.compare(other.retryHandler))
+ return false;
+ if (timeouts == null) {
+ if (other.timeouts != null)
+ return false;
+ }
+ else if (!timeouts.equals(other.timeouts))
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("HttpClientConfigImmutable [basicAuthorization=");
+ builder.append(basicAuthorization);
+ builder.append(", clientCertificate=");
+ builder.append(clientCertificate);
+ builder.append(", retryHandler=");
+ builder.append(retryHandler);
+ builder.append(", timeouts=");
+ builder.append(timeouts);
+ builder.append(", headers=");
+ builder.append(headers);
+ builder.append(", numOfRetries=");
+ builder.append(numOfRetries);
+ builder.append("]");
+ return builder.toString();
+ }
+}