summaryrefslogtreecommitdiffstats
path: root/common-app-api/src/main/java/org/openecomp/sdc/common/rest/impl/HttpRestClientServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'common-app-api/src/main/java/org/openecomp/sdc/common/rest/impl/HttpRestClientServiceImpl.java')
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/rest/impl/HttpRestClientServiceImpl.java427
1 files changed, 0 insertions, 427 deletions
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/rest/impl/HttpRestClientServiceImpl.java b/common-app-api/src/main/java/org/openecomp/sdc/common/rest/impl/HttpRestClientServiceImpl.java
deleted file mode 100644
index eed083ab68..0000000000
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/rest/impl/HttpRestClientServiceImpl.java
+++ /dev/null
@@ -1,427 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.common.rest.impl;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.CertificateException;
-import java.util.Map.Entry;
-import java.util.Properties;
-
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLException;
-import javax.net.ssl.SSLSession;
-import javax.net.ssl.SSLSocket;
-import javax.net.ssl.TrustManager;
-
-import org.apache.http.ConnectionReuseStrategy;
-import org.apache.http.HeaderElement;
-import org.apache.http.HeaderElementIterator;
-import org.apache.http.HeaderIterator;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.conn.ConnectionKeepAliveStrategy;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.conn.ssl.X509HostnameVerifier;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
-import org.apache.http.message.BasicHeaderElementIterator;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.HttpParams;
-import org.apache.http.protocol.HTTP;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.util.EntityUtils;
-import org.openecomp.sdc.common.rest.api.IRestClient;
-import org.openecomp.sdc.common.rest.api.RestClientServiceExeption;
-import org.openecomp.sdc.common.rest.api.RestConfigurationInfo;
-import org.openecomp.sdc.common.rest.api.RestResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class HttpRestClientServiceImpl implements IRestClient {
-
- private Logger log = LoggerFactory.getLogger(HttpRestClientServiceImpl.class.getName());
-
- public final static int DEFAULT_CONNECTION_POOL_SIZE = 10;
-
- public final static int DEFAULT_CONNECT_TIMEOUT = 10;
-
- private DefaultHttpClient httpClient;
-
- private SSLSocketFactory sslFactory;
-
- private Logger logger = LoggerFactory.getLogger(HttpRestClientServiceImpl.class.getName());
-
- PoolingClientConnectionManager cm = null;
-
- public boolean init() {
-
- return init(new RestConfigurationInfo());
-
- }
-
- public boolean init(RestConfigurationInfo restConfigurationInfo) {
-
- boolean initialized = false;
-
- logger.debug("HttpRestClientServiceImpl::init - start. restConfigurationInfo= {}", restConfigurationInfo);
-
- try {
- createHttpClient(restConfigurationInfo);
-
- initialized = true;
- } catch (KeyManagementException e) {
- String msg = "Failed creating client config for rest. " + e.getMessage();
- logger.error(msg, e);
- // throw new RestClientServiceExeption(e.getMessage());
- } catch (NoSuchAlgorithmException e) {
- String msg = "Failed creating client config for rest. " + e.getMessage();
- logger.error(msg, e);
- // throw new RestClientServiceExeption(msg);
- }
-
- logger.debug("HttpRestClientServiceImpl::init - finish successfully");
-
- return initialized;
- }
-
- public void destroy() {
-
- if (this.httpClient != null) {
- this.httpClient.getConnectionManager().shutdown();
- logger.info("After closing connection Manager of rest Client.");
- }
-
- }
-
- private void createHttpClient(RestConfigurationInfo restConfigurationInfo) throws KeyManagementException, NoSuchAlgorithmException {
-
- PoolingClientConnectionManager cm = new PoolingClientConnectionManager();
-
- Integer connPoolSizeObj = restConfigurationInfo.getConnectionPoolSize();
- int connPoolSize = DEFAULT_CONNECTION_POOL_SIZE;
- if (connPoolSizeObj != null) {
- connPoolSize = connPoolSizeObj.intValue();
- if (connPoolSize <= 0) {
- connPoolSize = DEFAULT_CONNECTION_POOL_SIZE;
- }
- }
- cm.setMaxTotal(connPoolSize);
-
- this.httpClient = new DefaultHttpClient(cm);
-
- int timeoutInSec = restConfigurationInfo.getReadTimeoutInSec() == null ? 0 : restConfigurationInfo.getReadTimeoutInSec();
- int connectTimeoutInSec = restConfigurationInfo.getConnectTimeoutInSec() == null ? DEFAULT_CONNECT_TIMEOUT : restConfigurationInfo.getConnectTimeoutInSec();
- HttpParams params = new BasicHttpParams();
- params.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeoutInSec * 1000);
- params.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeoutInSec * 1000);
-
- this.httpClient.setParams(params);
-
- Boolean ignoreCertificateObj = restConfigurationInfo.getIgnoreCertificate();
- boolean ignoreCertificate = false;
- if (ignoreCertificateObj != null) {
- ignoreCertificate = ignoreCertificateObj.booleanValue();
- }
- if (ignoreCertificate == true) {
-
- this.sslFactory = createSSLSocketFactory();
-
- Scheme scheme = new Scheme("https", 9443, sslFactory);
- this.httpClient.getConnectionManager().getSchemeRegistry().register(scheme);
- }
-
- // addKeepAlive();
-
- this.cm = cm;
- }
-
- private void addKeepAlive() {
-
- this.httpClient.setReuseStrategy(new ConnectionReuseStrategy() {
-
- public boolean keepAlive(HttpResponse response, HttpContext context) {
- // TODO Auto-generated method stub
- return true;
- }
-
- });
-
- this.httpClient.setKeepAliveStrategy(new ConnectionKeepAliveStrategy() {
-
- public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
- log.debug("============ In getKeepAliveDuration ================= ");
-
- HeaderIterator headerIterator = response.headerIterator(HTTP.CONN_KEEP_ALIVE);
- if (headerIterator != null) {
- HeaderElementIterator it = new BasicHeaderElementIterator(headerIterator);
- while (it.hasNext()) {
- HeaderElement he = it.nextElement();
- String param = he.getName();
- String value = he.getValue();
- if (value != null && param.equalsIgnoreCase("timeout")) {
- try {
- log.debug("============ In getKeepAliveDuration ================= {}", value);
-
- return Long.parseLong(value) * 1000;
- } catch (NumberFormatException ignore) {
- log.error("Failed parsing retrieved value of timeout header.", ignore);
- }
- }
- }
- }
- return 20;
- }
- });
-
- }
-
- protected SSLSocketFactory createSSLSocketFactory() throws NoSuchAlgorithmException, KeyManagementException {
- TrustManager easyTrustManager = new javax.net.ssl.X509TrustManager() {
-
- public void checkClientTrusted(java.security.cert.X509Certificate[] arg0, String arg1) throws CertificateException {
- // TODO Auto-generated method stub
-
- }
-
- public void checkServerTrusted(java.security.cert.X509Certificate[] arg0, String arg1) throws CertificateException {
- // TODO Auto-generated method stub
-
- }
-
- public java.security.cert.X509Certificate[] getAcceptedIssuers() {
- // TODO Auto-generated method stub
- return null;
- }
-
- };
-
- SSLContext sslContext = SSLContext.getInstance("TLS");
- sslContext.init(null, new TrustManager[] { easyTrustManager }, null);
- SSLSocketFactory sslFactory = new SSLSocketFactory(sslContext);
-
- sslFactory.setHostnameVerifier(new X509HostnameVerifier() {
-
- public boolean verify(String arg0, SSLSession arg1) {
- // TODO Auto-generated method stub
- return false;
- }
-
- public void verify(String host, SSLSocket ssl) throws IOException {
- // TODO Auto-generated method stub
-
- }
-
- public void verify(String host, java.security.cert.X509Certificate cert) throws SSLException {
- // TODO Auto-generated method stub
-
- }
-
- public void verify(String host, String[] cns, String[] subjectAlts) throws SSLException {
- // TODO Auto-generated method stub
-
- }
-
- });
- return sslFactory;
- }
-
- /**
- * Executes RS-GET to perform FIND.
- *
- * @param headerParameterKey
- * String
- * @param headerParameterValue
- * String
- * @return String
- */
- public RestResponse doGET(String uri, Properties headers) {
- logger.debug("Before executing uri {}. headers = {}", uri, headers);
-
- HttpGet httpGet = new HttpGet(uri);
-
- RestResponse response = execute(httpGet, headers);
-
- return response;
- }
-
- private void addHeadersToRequest(HttpRequestBase httpRequestBase, Properties headers) {
-
- if (headers != null) {
- for (Entry<Object, Object> entry : headers.entrySet()) {
- httpRequestBase.addHeader(entry.getKey().toString(), entry.getValue().toString());
- }
- }
-
- }
-
- public RestResponse doPOST(String uri, Properties headers, Object objectToCreate) {
-
- logger.debug("Before executing uri {}. body = {}. headers = {}", uri, (objectToCreate != null ? objectToCreate.toString() : null), headers);
-
- HttpPost httpPost = new HttpPost(uri);
-
- if (objectToCreate != null) {
- StringEntity se;
- try {
- se = new StringEntity(objectToCreate.toString());
-
- // se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
- // "application/json"));
- httpPost.setEntity(se);
- } catch (UnsupportedEncodingException e) {
- String msg = "Failed creating Entity for post request." + e.getMessage();
- log.error(msg, e);
- return null;
- // throw new RestClientServiceExeption(msg);
- }
- }
-
- RestResponse response = execute(httpPost, headers);
-
- return response;
-
- }
-
- public RestResponse doPUT(String uri, Properties headers, Object objectToCreate) {
-
- logger.debug("Before executing uri {}. body = {}. headers = {}", uri, (objectToCreate != null ? objectToCreate.toString() : null), headers);
-
- HttpPut httpPut = new HttpPut(uri);
-
- if (objectToCreate != null) {
- StringEntity se;
- try {
- se = new StringEntity(objectToCreate.toString());
-
- // se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
- // "application/json"));
- httpPut.setEntity(se);
- } catch (UnsupportedEncodingException e) {
- String msg = "Failed creating Entity for post request." + e.getMessage();
- // throw new RestClientServiceExeption(msg);
- log.error(msg, e);
- return null;
- }
- }
-
- RestResponse response = execute(httpPut, headers);
-
- return response;
- }
-
- private RestResponse execute(HttpRequestBase httpRequestBase, Properties headers) {
-
- String response = null;
- String statusDesc = null;
- int statusCode = HttpStatus.SC_OK;
-
- try {
-
- addHeadersToRequest(httpRequestBase, headers);
-
- HttpResponse httpResponse = this.httpClient.execute(httpRequestBase);
-
- statusCode = httpResponse.getStatusLine().getStatusCode();
- statusDesc = httpResponse.getStatusLine().getReasonPhrase();
-
- HttpEntity entity = httpResponse.getEntity();
- if (entity != null) {
- response = EntityUtils.toString(entity);
- }
- // ensure the connection gets released to the manager
- EntityUtils.consume(entity);
-
- logResponse(response, httpRequestBase.getMethod());
-
- } catch (Exception exception) {
- httpRequestBase.abort();
- log.error("Failed to execute the {} request {}", httpRequestBase.getMethod(), httpRequestBase.getURI(), exception);
- // processAndThrowException(exception);
- return null;
- }
-
- RestResponse restResponse = new RestResponse(response, statusDesc, statusCode);
-
- if (logger.isDebugEnabled()) {
- URI uri = httpRequestBase.getURI();
- String url = uri.toString();
- logger.debug("After executing uri {}. response = {}", url, restResponse);
- }
-
- return restResponse;
- }
-
- public RestResponse doDELETE(String uri, Properties headers) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("Before executing uri {}. headers = {}", uri, headers);
- }
-
- HttpDelete httpDelete = new HttpDelete(uri);
-
- RestResponse restResponse = execute(httpDelete, headers);
-
- return restResponse;
-
- }
-
- /**
- * This method print the JSON response from the REST Server
- *
- * @param response
- * the JSON response from the REST server
- * @param method
- * name of method
- */
- private void logResponse(String response, String method) {
- logger.debug("{} response = {}", method, response);
- }
-
- /**
- * Exception during client invocation usually it happens when status code starting with 400 or 500 is returned
- *
- * @param exception
- * Exception
- * @throws RSClientServiceExeption
- */
- private void processAndThrowException(Exception exception) throws RestClientServiceExeption {
-
- logger.debug("\n------------------------");
- logger.debug("FAILURE: {}", exception.getMessage());
-
- throw new RestClientServiceExeption(exception);
-
- }
-
-}