diff options
author | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2018-11-05 11:00:36 -0500 |
---|---|---|
committer | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2018-11-05 17:03:14 -0500 |
commit | 61affc6311906aee71b16ee8632c1e7468cd1990 (patch) | |
tree | 5dec424176ff959080cc7f801c6d4cb0c60ca949 /bpmn/MSORESTClient/src/main | |
parent | 6fa3d2b80d2384b830e3231fe69a8daf7884a35e (diff) |
Catchup commits for Dublin
added property for retry timer multiplier for testing
Infra APIH table, fixed test assertNull condition.
Infra APIH table, added tests for request-url = null.
Infra APIH should write request_url to infra_active_requests.
Return SelfLink URL on ServiceInstantiation SyncResponse.
Added JUNITS. Added helper method to get AAI ResourceUri to faciliate
unit test. Fixed code to correctly extract related generic vnf or vce
id.
updated unit test coverage for update network
Handle REST NotFoundException for serviceInstance nodes query. Process
should continue for new order request and throw exception only for SUPP
request.
Added disconnect functionality to the gw vnf test tool.
Added conversion of vnf management option to dhv change speed
sync subnet status with network update
updated macroData vol assigned delete continue script
Correct the name of DeleteVfModuleBB subprocess.
fix the custom resolver to not convert int in string to int
Write the returned value from Homing to gBBInput
Use explicit conversion to JSON to read cloudConfiguration settings.
added property for retry timer multiplier for testing
avoid storing AAI yang models in execution
added handlingCode to rollback test in workflowactionbb
passed in alacarte flag to execute layer for rainy day
added test cases for RollbackToAssigned rainy day hand
added rollback to assign in catalog db rainy day hand
Updated vnf adapter delete stubs to be a post for test.
Added a javadoc to basic auth override method
Added a check to not add blank headers to the headerMap in httpClient.
Added check for if entity exist before calling readEntity.
Fixed failing junits and updated way the body is obtained
Added missing import statement for http client.
Fixed mistakes and made updates caught during review.
Removed post and httpPost methods from RESTClient and refactored
references
Refactored multiple http post references to use httpClient instead.
Removed close connection method and randomized port in unit test
Added http client unit test, coverage is currently at 90 percent
Resolve conflict in sdnc adapter reste v1 method
Began removing http delete and delete methods from RESTClient and
aaiUtil.
Removed http put method and executeput method, refactored references.
fixed broken tests in the branch in jenkins build
Fix Springboot 2.0 start up issues, and other issues
added in implementation to generate self link if there isnt one
removed dbcp2 from poms that still had them
added rollbackstatusmessage to stub in testprocess
added rollback_status_message to the schema sql file
Added variable for rollbackStatusMessage
Added rollbackStatusMessage to get response
added rollback status message to archived infra request
set rollback status message to successful on boolean
added logic to split rollback and regular error message
added rollback status message to infra active requests
pushing the cloud config changes as well
Added media type and fixed cast plural issue.
Made various updated and fixes to code that was changed.
Removed all no longer used RESTClient imports from classes
Removed and refactored references for aaiUtil methods and all remaining
RESTClient methods, removed RESTClient project and updated poms.
Return canonical stack id on multicloud create
Fix OOF Config Ingestion
Fix variable to retrieve sdnc endpoint
Prepare resources for service uuid req
Fix swapped parameters for multicloud DELETE
Update msb-java-sdk to resolve license issues
cloud owner support for SDNC interface
correlationId is now read from userParams
Fix up request body of multicloud adapter body
removed LinkedHashMap<?,?> from java classes
Cut over logging project to release not snapshot
Update unit tests, revert test code, fix comments
Fix remaining number of Unit Tests, on avpn flow
Fix JUNITS add callback url, fix BPMN issues
Update SDNC interaction to support a-sync
updated bpm assert import and corrected tests
updated test case to be mockito 2 compliant
additional changes to import statements and tests
Change the place where the data for multistage gets set
Update treatment of PENDING_ACTIVATION VF_MODULE CREATE entries to
SILENT_SUCCESS to support first stage of multistage.
Implement second stage of multistage design VF Module Creation
removed LinkedHashMap<?,?> from java classes
Removed SNAPSHOT from dependency
Cut over logging project to release not snapshot
Fixed failing BBInputSetup tests
Update unit tests, revert test code, fix comments
Updated apih tests to use networkInstanceGroup
Updated ModelType enum and fixed compilation issues
Fix remaining number of Unit Tests, on avpn flow
Fix JUNITS add callback url, fix BPMN issues
Implementation of the first stage of multistage design for VF Module
creation.
Update SDNC interaction to support a-sync
no longer leave modified files after test runs
Remove generated CSAR, that occurs during JUNIT
Update Camunda Pods to use Flyway Migration in 1902
Updated hashcode method and removed comment.
Added aggregate routes to the sdnw request and updated pom sdnw
dependency.
Began to set aggreagate route information for vrf configuration.
modified remaining files with att-aic references
Correct rollbackData setting and protect against potential null objects.
correct AAIObjectPlurals enum value name
Update POJO to use type URL for selfLink.
Optional<URL> - construct SelfLink Url format.
Construct SelfLink Url format from full Url.
added missing properties to application-test.yaml
fixed compliation error after merge of unit test
restored files which should not have been deleted
Fix SO vulnerabilities with cxf
Fixing bpmn infra endpoint in so-monitoring yaml
removed att-aic from codebase
default cloud owner now configurable
Set homingService in WorkflowAction
Fix Java Ex in Homing
Version should be 1.3.1 to release new dockers
Pnf Spring Environment correction
test property now has dynamic wiremock port
removed test specific wiremock rule that was causing problems
re-enabled and corrected integration tests for so-bpmn-tasks
Test to get sniro homing v2 test working by splitting test suites for
each spring application
Reverted changes to old migration scripts..
Fixed spring context issue with test HomingV2.
Removed unused import to fix compilation errors
Fixed onap changes to homing, migrated homingV2 to homingBB, fixed
broken junits again.
- Updated isUseHttpsWithDmaapTest to check assertTrue rather than
assertFalse.
- Upgraded code to make the isUseHttpsWithDmaap configurable. It will
default to true if no value is found in the config file.
moved workflowaction test class to the test section
added status message update for retry and rollback
beefed up error message debug logging and req db msg
added debug lines to workflowactionbbtasks reqdbcall
Issue-ID: SO-1187
Change-Id: Iec1aff4ed30a43c0e0b2cdb06c28d8db8a99a830
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
Diffstat (limited to 'bpmn/MSORESTClient/src/main')
6 files changed, 0 insertions, 1089 deletions
diff --git a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/APIResponse.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/APIResponse.java deleted file mode 100644 index b77c90b215..0000000000 --- a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/APIResponse.java +++ /dev/null @@ -1,145 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * 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.onap.so.rest; - -import java.io.IOException; -import java.util.Arrays; - -import org.apache.http.Header; -import org.apache.http.HttpResponse; -import org.apache.http.util.EntityUtils; - -/** - * An immutable class that encapsulates an API response. - * - * @version 1.0 - * @since 1.0 - */ -public class APIResponse { - private final int statusCode; - private final byte[] responseBody; - private final HttpHeader[] headers; - - /** - * Internal method used to create http headers using the specified - * HttpResponse object. - * - * @param httpResponse used to create headers - * @return http headers - */ - private static HttpHeader[] buildHeaders(final HttpResponse httpResponse) { - final Header[] headers = httpResponse.getAllHeaders(); - - HttpHeader[] httpHeaders = new HttpHeader[headers.length]; - for (int i = 0; i < headers.length; ++i) { - final Header header = headers[i]; - final String name = header.getName(); - final String value = header.getValue(); - final HttpHeader httpHeader = new HttpHeader(name, value); - httpHeaders[i] = httpHeader; - } - - return httpHeaders; - } - - /** - * Create an APIResponse object using the specified HttpResponse object. - * - * @param httpResponse used to create the APIResponse - * - * @throws RESTException if unable to read from the HttpResponse object - */ - public APIResponse(final HttpResponse httpResponse) throws RESTException { - try { - this.statusCode = httpResponse.getStatusLine().getStatusCode(); - - if (httpResponse.getEntity() == null) - { - this.responseBody = null; - } - else - { - this.responseBody = EntityUtils.toByteArray(httpResponse.getEntity()); - } - - this.headers = buildHeaders(httpResponse); - } catch (IOException ioe) { - throw new RESTException(ioe); - } - } - - /** - * Gets the http status code returned by the api server. - * <p> - * For example, status code 200 represents 'OK.' - * - * @return status code - */ - public int getStatusCode() { - return this.statusCode; - } - - /** - * Gets the http response body as a byte array. - * - * @return http response body - */ - public byte[] getResponseBodyAsByteArray() { - // avoid exposing internals, create copy - if (this.responseBody != null) { - return Arrays.copyOf(this.responseBody, this.responseBody.length); - } else { - return null; - } - } - - /** - * Gets the http response body as a string. - * - * @return http response body - */ - public String getResponseBodyAsString() { - if (this.responseBody != null) { - return new String(this.responseBody); - } else { - return ""; - } - } - - /** - * Gets a list of all the headers returned by the API response. - * - * @return an array of all the HttpHeaders - */ - public HttpHeader[] getAllHeaders() { - // avoid exposing internals, create copy - return Arrays.copyOf(this.headers, this.headers.length); - } - - public String getFirstHeader(String name) { - for (HttpHeader header : headers) { - if (header.getName().equals(name)) { - return header.getValue(); - } - } - return null; - } -} diff --git a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HostNameVerifier.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HostNameVerifier.java deleted file mode 100644 index 3d10c0391d..0000000000 --- a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HostNameVerifier.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.onap.so.rest; - -import javax.net.ssl.SSLException; - -import org.apache.http.conn.ssl.AbstractVerifier; -import org.onap.so.logger.MsoLogger; - -/** - * @version 1.0 - * Place holder to validate host name, for now just invokes the super class method - * - */ -public class HostNameVerifier extends AbstractVerifier { - - private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, HostNameVerifier.class); - - public final void verify( - final String host, - final String[] cns, - final String[] subjectAlts) throws SSLException { - try { - verify(host, cns, subjectAlts, true); - } catch (SSLException sex) { - LOGGER.debug("Exception:", sex); - } - } - -} diff --git a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HttpHeader.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HttpHeader.java deleted file mode 100644 index a96793334d..0000000000 --- a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/HttpHeader.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * 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.onap.so.rest; - -/** - * An immutable class used to wrap an http header. - * - * @version 1.0 - * @since 1.0 - */ -public class HttpHeader { - private final String name; - private final String value; - - /** - * Create an http header using the specified name and value - * - * @param name name of http header - * @param value value of http header - */ - public HttpHeader(final String name, final String value) { - if (name == null) { - throw new IllegalArgumentException("Name may not be null."); - } - - this.name = name; - this.value = value; - } - - /** - * Gets the header name. - * - * @return header name - */ - public String getName() { - return this.name; - } - - /** - * Gets the header value. - * - * @return header value - */ - public String getValue() { - return this.value; - } -} diff --git a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTClient.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTClient.java deleted file mode 100644 index c9dd6303bc..0000000000 --- a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTClient.java +++ /dev/null @@ -1,614 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.onap.so.rest; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URI; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.net.ssl.SSLSocketFactory; - -import org.apache.http.HttpEntity; -import org.apache.http.HttpHost; -import org.apache.http.HttpResponse; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; -import org.apache.http.client.methods.HttpGet; -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.config.Registry; -import org.apache.http.config.RegistryBuilder; -import org.apache.http.conn.socket.ConnectionSocketFactory; -import org.apache.http.conn.socket.PlainConnectionSocketFactory; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; -import org.apache.http.message.AbstractHttpMessage; -import org.apache.http.util.EntityUtils; -import org.onap.so.logger.MsoLogger; -/** - * Client used to send RESTFul requests. - * <p> - * Many of the methods return a reference to the 'this,' thereby allowing - * method chaining. - * <br> - * An example of usage can be found below: - * <pre> - * RESTClient client; - * try { - * client = new RESTClient("http://www.openecomp.org"); - * APIResponse response = client - * .setHeader("Accept", "application/json") - * .setHeader("Clientid", "clientid") - * .setHeader("header", "value") - * .httpPost("postbody"); - * if (response.getStatusCode() == 200) { - * System.out.println("Success!"); - * } - * } catch (RESTException re) { - * // Handle Exception - * } - * </pre> - * - * @version 1.0 - * @since 1.0 - */ -public class RESTClient { - - private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL,RESTClient.class); - private final String proxyHost; - private final int proxyPort; - - private final String url; - - private final Map<String, List<String>> headers; - private final Map<String, List<String>> parameters; - - - - private HttpEntity httpEntity; - - /** - * Internal method used to build an APIResponse using the specified - * HttpResponse object. - * - * @param response response wrapped inside an APIResponse object - * @return api response - */ - private APIResponse buildResponse(HttpResponse response) - throws RESTException { - - return new APIResponse(response); - } - - /** - * Used to release any resources used by the connection. - * @param response HttpResponse object used for releasing the connection - * @throws RESTException if unable to release connection - * - */ - private void releaseConnection(HttpResponse response) throws RESTException { - try { - EntityUtils.consume(response.getEntity()); - } catch (IOException ioe) { - throw new RESTException(ioe); - } - } - - /** - * Sets headers to the http message. - * - * @param httpMsg http message to set headers for - */ - private void addInternalHeaders(AbstractHttpMessage httpMsg) { - if (headers.isEmpty()) { - return; - } - - final Set<String> keySet = headers.keySet(); - for (final String key : keySet) { - final List<String> values = headers.get(key); - for (final String value : values) { - httpMsg.addHeader(key, value); - } - } - } - - /** - * Builds the query part of a URL. - * - * @return query - */ - private String buildQuery() { - if (this.parameters.size() == 0) { - return ""; - } - - StringBuilder sb = new StringBuilder(); - String charSet = "UTF-8"; - try { - Iterator<String> keyitr = this.parameters.keySet().iterator(); - for (int i = 0; keyitr.hasNext(); ++i) { - if (i > 0) { - sb.append("&"); - } - - final String name = keyitr.next(); - final List<String> values = this.parameters.get(name); - for(final String value : values) { - sb.append(URLEncoder.encode(name, charSet)); - sb.append("="); - sb.append(URLEncoder.encode(value, charSet)); - } - } - } catch (UnsupportedEncodingException e) { - LOGGER.debug("Exception :", e); - } - return sb.toString(); - } - - /** - * Creates an http client that can be used for sending http requests. - * - * @return created http client - * - * @throws RESTException if unable to create http client. - */ - private CloseableHttpClient createClient() throws RESTException { - HttpClientBuilder clientBuilder; - try { - SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory( - (SSLSocketFactory) SSLSocketFactory.getDefault(), - new HostNameVerifier()); - Registry<ConnectionSocketFactory> registry = RegistryBuilder - .<ConnectionSocketFactory> create() - .register("http", PlainConnectionSocketFactory.getSocketFactory()) - .register("https", sslSocketFactory).build(); - PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager(registry); - clientBuilder = HttpClientBuilder.create().setConnectionManager(manager); - } catch (Exception ex) { - LOGGER.debug("Exception :", ex); - throw new RESTException(ex.getMessage()); - } - clientBuilder.disableRedirectHandling(); - - if ((this.proxyHost != null) && (this.proxyPort != -1)) { - HttpHost proxy = new HttpHost(this.proxyHost, this.proxyPort); - clientBuilder.setProxy(proxy); - } - int timeoutInSeconds = 300; - RequestConfig requestConfig = RequestConfig.custom() - .setConnectTimeout(timeoutInSeconds * 1000) - .setConnectionRequestTimeout(timeoutInSeconds * 1000) - .setSocketTimeout(timeoutInSeconds * 1000).build(); - return clientBuilder.setDefaultRequestConfig(requestConfig).build(); - } - - - - - - /** - * Creates a RESTClient with the specified URL, proxy host, and proxy port. - * - * @param url URL to send request to - * @param proxyHost proxy host to use for sending request - * @param proxyPort proxy port to use for sendin request - * - * @throws RESTException if unable to create a RESTClient - */ - public RESTClient(String url, String proxyHost, int proxyPort) { - this(new RESTConfig(url, proxyHost, proxyPort)); - } - - /** - * Creates a RESTClient with the specified URL. No proxy host nor port will - * be used. - * - * @param url URL to send request to - * - * @throws RESTException if unable to create a RESTClient - */ - public RESTClient(String url) { - this(new RESTConfig(url)); - } - - /** - * Creates a RESTClient with the RESTConfig object. - * - * @param restConfig config to use for sending request - * - * @throws RESTException if unable to create a RESTClient - */ - public RESTClient(RESTConfig restConfig) { - this.headers = new LinkedHashMap<>(); - this.parameters = new LinkedHashMap<>(); - this.url = restConfig.getURL(); - this.proxyHost = restConfig.getProxyHost(); - this.proxyPort = restConfig.getProxyPort(); - } - - /** - * Adds parameter to be sent during http request. - * <p> - * Does not remove any parameters with the same name, thus allowing - * duplicates. - * - * @param name name of parameter - * @param value value of parametr - * @return a reference to 'this', which can be used for method chaining - */ - public RESTClient addParameter(String name, String value) { - if (!parameters.containsKey(name)) { - parameters.put(name, new ArrayList<>()); - } - - List<String> values = parameters.get(name); - values.add(value); - - return this; - } - - /** - * Sets parameter to be sent during http request. - * <p> - * Removes any parameters with the same name, thus disallowing duplicates. - * - * @param name name of parameter - * @param value value of parametr - * @return a reference to 'this', which can be used for method chaining - */ - public RESTClient setParameter(String name, String value) { - if (parameters.containsKey(name)) { - parameters.get(name).clear(); - } - - addParameter(name, value); - - return this; - } - - /** - * Adds http header to be sent during http request. - * <p> - * Does not remove any headers with the same name, thus allowing - * duplicates. - * - * @param name name of header - * @param value value of header - * @return a reference to 'this', which can be used for method chaining - */ - public RESTClient addHeader(String name, String value) { - if (!headers.containsKey(name)) { - headers.put(name, new ArrayList<>()); - } - - List<String> values = headers.get(name); - values.add(value); - - return this; - } - - /** - * Sets http header to be sent during http request. - * <p> - * Does not remove any headers with the same name, thus allowing - * duplicates. - * - * @param name name of header - * @param value value of header - * @return a reference to 'this', which can be used for method chaining - */ - public RESTClient setHeader(String name, String value) { - if (headers.containsKey(name)) { - headers.get(name).clear(); - } - - addHeader(name, value); - - return this; - } - - /** - * Convenience method for adding the authorization header using the - * specified OAuthToken object. - * - * @param token token to use for setting authorization - * @return a reference to 'this,' which can be used for method chaining - */ - public RESTClient addAuthorizationHeader(String token) { - this.addHeader("Authorization", token); - return this; - } - - /** - * Sends an http GET request using the parameters and headers previously - * set. - * - * @return api response - * - * @throws RESTException if request was unsuccessful - */ - public APIResponse httpGet() throws RESTException { - HttpResponse response = null; - - try (CloseableHttpClient httpClient = createClient()) { - String query = ""; - if (!buildQuery().equals("")) { - query = "?" + buildQuery(); - } - HttpGet httpGet = new HttpGet(this.getURL() + query); - addInternalHeaders(httpGet); - - LOGGER.debug("Executing GET to url: " + this.getURL() + query); - - response = httpClient.execute(httpGet); - - return buildResponse(response); - } catch (IOException ioe) { - throw new RESTException(ioe); - } finally { - if (response != null) { - this.releaseConnection(response); - } - } - } - - /** - * Alias for httpPost() - * - * @see RESTClient#httpPost() - */ - public APIResponse post() throws RESTException { - return httpPost(); - } - - /** - * Sends an http POST request. - * <p> - * POST body will be set to the values set using add/setParameter() - * - * @return api response - * - * @throws RESTException if POST was unsuccessful - */ - public APIResponse httpPost() throws RESTException { - return httpPost(buildQuery()); - } - - /** - * Sends an http POST request using the specified body. - * - * @return api response - * - * @throws RESTException if POST was unsuccessful - */ - public APIResponse httpPost(String body) throws RESTException { - HttpResponse response = null; - try (CloseableHttpClient httpClient = createClient()) { - HttpPost httpPost = new HttpPost(this.getURL()); - addInternalHeaders(httpPost); - if (body != null && !body.equals("")) { - httpEntity = new StringEntity(body); - httpPost.setEntity(new StringEntity(body)); - } - LOGGER.debug("Executing POST to url: " + this.getURL()); - - response = httpClient.execute(httpPost); - - return buildResponse(response); - - } catch (IOException e) { - throw new RESTException(e); - } finally { - if (response != null) { - this.releaseConnection(response); - } - } - } - - /** - * - * @param body Data to PUT - * @return API response - * @throws RESTException - */ - public APIResponse httpPut(String body) throws RESTException { - HttpResponse response = null; - try (CloseableHttpClient httpClient = createClient()) { - - String query = ""; - if (!buildQuery().equals("")) { - query = "?" + buildQuery(); - } - HttpPut httpPut = new HttpPut(this.getURL() + query); - addInternalHeaders(httpPut); - if (body != null && !body.equals("")) { - httpEntity = new StringEntity(body); - httpPut.setEntity(httpEntity); - } - LOGGER.debug("Executing PUT to url: " + this.getURL() + query); - - response = httpClient.execute(httpPut); - - return buildResponse(response); - } catch (IOException e) { - throw new RESTException(e); - } finally { - if (response != null) { - this.releaseConnection(response); - } - } - } - - /** - * Alias for httpPatch(). - * - * @see RESTClient#httpPatch() - */ - public APIResponse patch(String body) throws RESTException { - return httpPatch(body); - } - - /** - * - * @param body Data to PATCH - * @return API response - * @throws RESTException - */ - public APIResponse httpPatch(String body) throws RESTException { - HttpResponse response = null; - try (CloseableHttpClient httpClient = createClient()) { - String query = ""; - if (!buildQuery().equals("")) { - query = "?" + buildQuery(); - } - HttpPatch httpPatch = new HttpPatch(this.getURL() + query); - addInternalHeaders(httpPatch); - if (body != null && !body.equals("")) { - httpEntity = new StringEntity(body); - httpPatch.setEntity(httpEntity); - } - LOGGER.debug("Executing PATCH to url: " + this.getURL() + query); - - response = httpClient.execute(httpPatch); - - return buildResponse(response); - } catch (IOException e) { - throw new RESTException(e); - } finally { - if (response != null) { - this.releaseConnection(response); - } - } - } - - /** - * Alias for httpDelete(). - * - * @see RESTClient#httpDelete() - */ - public APIResponse delete() throws RESTException { - return httpDelete(); - } - - /** - * Sends an http DELETE request using the parameters and headers previously - * set. - * - * @return api response - * - * @throws RESTException if request was unsuccessful - */ - public APIResponse httpDelete() throws RESTException { - return httpDelete(null); - } - - /** - * Sends an http DELETE request with a body, using the parameters and headers - * previously set. - * - * @return api response - * - * @throws RESTException if request was unsuccessful - */ - public APIResponse httpDelete(String body) throws RESTException { - HttpResponse response = null; - - try (CloseableHttpClient httpClient = createClient()){ - - String query = ""; - if (!buildQuery().equals("")) { - query = "?" + buildQuery(); - } - HttpDeleteWithBody httpDelete = new HttpDeleteWithBody(this.getURL() + query); - addInternalHeaders(httpDelete); - - if (body != null && !body.equals("")) { - httpEntity = new StringEntity(body); - httpDelete.setEntity(httpEntity); - } - - LOGGER.debug("Executing DELETE to url: " + this.getURL() + query); - - response = httpClient.execute(httpDelete); - - return buildResponse(response); - } catch (IOException ioe) { - throw new RESTException(ioe); - } finally { - if (response != null) { - this.releaseConnection(response); - } - } - } - - public String getURL() { - return url; - } - public Map<String,List<String>> getHeaders() { - return headers; - } - public Map<String,List<String>> getParameters() { - return parameters; - } - public HttpEntity getHttpEntity() { - return httpEntity; - } - - - /** - * Allows inclusion of a request body with DELETE. - */ - private class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase { - public static final String METHOD_NAME = "DELETE"; - - @Override - public String getMethod() { - return METHOD_NAME; - } - - public HttpDeleteWithBody(final String uri) { - super(); - setURI(URI.create(uri)); - } - - public HttpDeleteWithBody(final URI uri) { - super(); - setURI(uri); - } - - public HttpDeleteWithBody() { - super(); - } - } -} diff --git a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTConfig.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTConfig.java deleted file mode 100644 index b5fecbdb87..0000000000 --- a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTConfig.java +++ /dev/null @@ -1,131 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * 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.onap.so.rest; - -/** - * Configuration values to be used by the RESTClient. - * - * @version 1.0 - * - */ -public class RESTConfig { - private final String URL; - - private final boolean trustAllCerts; - private final String proxyHost; - private final int proxyPort; - - /** - * Creates a RESTConfig with the specified URL. - * <p> - * By default, no proxy will be used, and only valid certificates will - * be used. - * - * @param URL url to set - */ - public RESTConfig(final String URL) { - this(URL, null, -1, false); - } - - /** - * Creates a RESTConfig with the specified URL and whether to trust all - * certificates. - * <p> - * Trusting all certificates is useful for testing self-signed - * certificates. By default, no proxy will be used. - * - * @param URL url to set - * @param trustAllCerts whether to trust all certificates - */ - public RESTConfig(final String URL, final boolean trustAllCerts) { - this(URL, null, -1, trustAllCerts); - } - - /** - * Creates a RESTConfig with the specified URL and proxy. - * <p> - * By default, only valid certificates will be allowed. - * - * @param URL url to set - * @param proxyHost proxy host to set - * @param proxyPort proxy port to set - */ - public RESTConfig(final String URL, final String proxyHost, - final int proxyPort) { - - this(URL, proxyHost, proxyPort, false); - } - - /** - * Creates a RESTConfig object with the specified URL, proxy host, proxy - * port, and whether to trust all certificates. Allowing all certificates - * is useful for testing self-signed certificates. - * - * @param URL url to set - * @param proxyHost proxy host to set - * @param proxyPort porxy port to set - * @param trustAllCerts whether to trust all certificates - */ - public RESTConfig(final String URL, final String proxyHost, - final int proxyPort, boolean trustAllCerts) { - - this.URL = URL; - this.proxyHost = proxyHost; - this.proxyPort = proxyPort; - this.trustAllCerts = trustAllCerts; - } - - /** - * Gets the URL to use. - * - * @return URL to use - */ - public String getURL() { - return this.URL; - } - - /** - * Gets whether to trust all certificates. - * - * @return true if to trust all certificates, false otherwise - */ - public boolean trustAllCerts() { - return this.trustAllCerts; - } - - /** - * Gets proxy host or null if proxy host has not been set. - * - * @return proxy host - */ - public String getProxyHost() { - return this.proxyHost; - } - - /** - * Gets proxy port or -1 if no proxy port has been set. - * - * @return proxy port - */ - public int getProxyPort() { - return this.proxyPort; - } -} diff --git a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTException.java b/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTException.java deleted file mode 100644 index 579927c2ce..0000000000 --- a/bpmn/MSORESTClient/src/main/java/org/onap/so/rest/RESTException.java +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * 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.onap.so.rest; - -/** - * A custom exception class. - * - * @version 1.0 - * - */ -public class RESTException extends Exception { - private static final long serialVersionUID = -6874042744590915838L; - // http status code - private final int statusCode; - - // error message - private final String errorMessage; - - /** - * {@inheritDoc} - * @see Exception#RESTException(String) - */ - public RESTException(final String errorMessage) { - this(-1, errorMessage); - } - - /** - * {@inheritDoc} - * @see Exception#RESTException(Throwable) - */ - public RESTException(final Throwable cause) { - super(cause); - this.statusCode = -1; - this.errorMessage = cause.getMessage(); - } - - /** - * Creates a RESTException with the specified status code and error - * message. - * - * @param statusCode http status code - * @param errorMessage http error message - */ - public RESTException(final int statusCode, final String errorMessage) { - super(statusCode + ":" + errorMessage); - this.statusCode = statusCode; - this.errorMessage = errorMessage; - } - - /** - * Gets the status code or -1 if none has been set. - * - * @return status code - */ - public int getStatusCode() { - return this.statusCode; - } - - /** - * Gets the error message. - * - * @return error message - */ - public String getErrorMessage() { - return this.errorMessage; - } -} |