From 45018c1970772037139134fcc2d69da360a03c66 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Mon, 14 Jan 2019 09:38:23 -0500 Subject: Remove model-imp/rest checkstyle suppressions Renamed "RESTManager" class to "RestManager". This did not require any changes to rules. Updated license data in pom. Change-Id: Ide59b99b8c5d939804b7540c71a686404195173c Issue-ID: POLICY-1141 Signed-off-by: Jim Hahn --- .../model-impl/rest/checkstyle-suppressions.xml | 30 ---- controlloop/common/model-impl/rest/pom.xml | 3 +- .../java/org/onap/policy/rest/RESTManager.java | 192 --------------------- .../java/org/onap/policy/rest/RestManager.java | 192 +++++++++++++++++++++ .../test/java/org/onap/policy/rest/GetTest.java | 14 +- .../test/java/org/onap/policy/rest/PairTest.java | 8 +- .../test/java/org/onap/policy/rest/PostTest.java | 10 +- 7 files changed, 209 insertions(+), 240 deletions(-) delete mode 100644 controlloop/common/model-impl/rest/checkstyle-suppressions.xml delete mode 100644 controlloop/common/model-impl/rest/src/main/java/org/onap/policy/rest/RESTManager.java create mode 100644 controlloop/common/model-impl/rest/src/main/java/org/onap/policy/rest/RestManager.java (limited to 'controlloop/common/model-impl/rest') diff --git a/controlloop/common/model-impl/rest/checkstyle-suppressions.xml b/controlloop/common/model-impl/rest/checkstyle-suppressions.xml deleted file mode 100644 index 19202a9f0..000000000 --- a/controlloop/common/model-impl/rest/checkstyle-suppressions.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - diff --git a/controlloop/common/model-impl/rest/pom.xml b/controlloop/common/model-impl/rest/pom.xml index d2a1dc041..43f84fe76 100644 --- a/controlloop/common/model-impl/rest/pom.xml +++ b/controlloop/common/model-impl/rest/pom.xml @@ -2,7 +2,7 @@ ============LICENSE_START======================================================= Drools PDP Application Models ================================================================================ - 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. @@ -70,7 +70,6 @@ true - ${project.basedir}/checkstyle-suppressions.xml true true warning diff --git a/controlloop/common/model-impl/rest/src/main/java/org/onap/policy/rest/RESTManager.java b/controlloop/common/model-impl/rest/src/main/java/org/onap/policy/rest/RESTManager.java deleted file mode 100644 index a7e373b5f..000000000 --- a/controlloop/common/model-impl/rest/src/main/java/org/onap/policy/rest/RESTManager.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * rest - * ================================================================================ - * Copyright (C) 2017-2018 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.policy.rest; - -import java.nio.charset.Charset; -import java.util.Map; -import java.util.Map.Entry; -import javax.xml.bind.DatatypeConverter; - -import org.apache.http.HttpHeaders; -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpRequestBase; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.util.EntityUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class RESTManager { - - private static final Logger logger = LoggerFactory.getLogger(RESTManager.class); - - public class Pair { - public final A first; - public final B second; - - public Pair(A first, B second) { - this.first = first; - this.second = second; - } - } - - /** - * Perform REST Post. - * - * @param url the url - * @param username the user name - * @param password the password - * @param headers any headers - * @param contentType what the content type is - * @param body body to send - * @return the response status code and the body - */ - public Pair post(String url, String username, String password, - Map headers, String contentType, String body) { - HttpPost post = new HttpPost(url); - addHeaders(post, username, password, headers); - post.addHeader("Content-Type", contentType); - try { - StringEntity input = new StringEntity(body); - input.setContentType(contentType); - post.setEntity(input); - } catch (Exception e) { - logger.error("post threw: ", e); - return null; - } - return sendRequest(post); - } - - /** - * Do a REST get. - * - * @param url URL - * @param username user name - * @param password password - * @param headers any headers to add - * @return a Pair for the response status and the body - */ - public Pair get(String url, String username, String password, - Map headers) { - HttpGet get = new HttpGet(url); - addHeaders(get, username, password, headers); - return sendRequest(get); - } - - /** - * Perform REST Delete. - * - * @param url the url - * @param username the user name - * @param password the password - * @param headers any headers - * @param contentType what the content type is - * @param body body (optional) to send - * @return the response status code and the body - */ - public Pair delete(String url, String username, String password, Map headers, - String contentType, String body) { - HttpDeleteWithBody delete = new HttpDeleteWithBody(url); - addHeaders(delete, username, password, headers); - delete.addHeader("Content-Type", contentType); - if (body != null && !body.isEmpty()) { - try { - StringEntity input = new StringEntity(body); - input.setContentType(contentType); - delete.setEntity(input); - } catch (Exception e) { - logger.error("delete threw: ", e); - return null; - } - } - return sendRequest(delete); - } - - /** - * Send REST request. - * - * @param request http request to send - * @return the response status code and the body - */ - private Pair sendRequest(HttpRequestBase request) { - if (logger.isDebugEnabled()) { - logger.debug("***** sendRequest to url {}:", request.getURI()); - } - - try (CloseableHttpClient client = - HttpClientBuilder - .create() - .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) - .build()) { - HttpResponse response = client.execute(request); - if (response != null) { - String returnBody = EntityUtils.toString(response.getEntity(), "UTF-8"); - logger.debug("HTTP Response Status Code: {}", - response.getStatusLine().getStatusCode()); - logger.debug("HTTP Response Body:"); - logger.debug(returnBody); - - return new Pair<>(response.getStatusLine().getStatusCode(), - returnBody); - } else { - logger.error("Response from {} is null", request.getURI()); - return null; - } - } catch (Exception e) { - logger.error("Request failed to {}", request.getURI(), e); - return null; - } - } - - /** - * Add header to the request. - * - * @param request http request to send - * @param username the user name - * @param password the password - * @param headers any headers - */ - private void addHeaders(HttpRequestBase request, String username, String password, Map headers) { - String authHeader = makeAuthHeader(username, password); - if (headers != null) { - for (Entry entry : headers.entrySet()) { - request.addHeader(entry.getKey(), headers.get(entry.getKey())); - } - } - if (authHeader != null) { - request.setHeader(HttpHeaders.AUTHORIZATION, authHeader); - } - } - - private String makeAuthHeader(String username, String password) { - if (username == null || username.isEmpty()) { - return null; - } - - String auth = username + ":" + (password == null ? "" : password); - return "Basic " + DatatypeConverter.printBase64Binary(auth.getBytes(Charset.forName("ISO-8859-1"))); - } -} diff --git a/controlloop/common/model-impl/rest/src/main/java/org/onap/policy/rest/RestManager.java b/controlloop/common/model-impl/rest/src/main/java/org/onap/policy/rest/RestManager.java new file mode 100644 index 000000000..84a220b9a --- /dev/null +++ b/controlloop/common/model-impl/rest/src/main/java/org/onap/policy/rest/RestManager.java @@ -0,0 +1,192 @@ +/* + * ============LICENSE_START======================================================= + * rest + * ================================================================================ + * 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. + * 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.policy.rest; + +import java.nio.charset.Charset; +import java.util.Map; +import java.util.Map.Entry; +import javax.xml.bind.DatatypeConverter; + +import org.apache.http.HttpHeaders; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpRequestBase; +import org.apache.http.conn.ssl.NoopHostnameVerifier; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RestManager { + + private static final Logger logger = LoggerFactory.getLogger(RestManager.class); + + public class Pair { + public final A first; + public final B second; + + public Pair(A first, B second) { + this.first = first; + this.second = second; + } + } + + /** + * Perform REST Post. + * + * @param url the url + * @param username the user name + * @param password the password + * @param headers any headers + * @param contentType what the content type is + * @param body body to send + * @return the response status code and the body + */ + public Pair post(String url, String username, String password, + Map headers, String contentType, String body) { + HttpPost post = new HttpPost(url); + addHeaders(post, username, password, headers); + post.addHeader("Content-Type", contentType); + try { + StringEntity input = new StringEntity(body); + input.setContentType(contentType); + post.setEntity(input); + } catch (Exception e) { + logger.error("post threw: ", e); + return null; + } + return sendRequest(post); + } + + /** + * Do a REST get. + * + * @param url URL + * @param username user name + * @param password password + * @param headers any headers to add + * @return a Pair for the response status and the body + */ + public Pair get(String url, String username, String password, + Map headers) { + HttpGet get = new HttpGet(url); + addHeaders(get, username, password, headers); + return sendRequest(get); + } + + /** + * Perform REST Delete. + * + * @param url the url + * @param username the user name + * @param password the password + * @param headers any headers + * @param contentType what the content type is + * @param body body (optional) to send + * @return the response status code and the body + */ + public Pair delete(String url, String username, String password, Map headers, + String contentType, String body) { + HttpDeleteWithBody delete = new HttpDeleteWithBody(url); + addHeaders(delete, username, password, headers); + delete.addHeader("Content-Type", contentType); + if (body != null && !body.isEmpty()) { + try { + StringEntity input = new StringEntity(body); + input.setContentType(contentType); + delete.setEntity(input); + } catch (Exception e) { + logger.error("delete threw: ", e); + return null; + } + } + return sendRequest(delete); + } + + /** + * Send REST request. + * + * @param request http request to send + * @return the response status code and the body + */ + private Pair sendRequest(HttpRequestBase request) { + if (logger.isDebugEnabled()) { + logger.debug("***** sendRequest to url {}:", request.getURI()); + } + + try (CloseableHttpClient client = + HttpClientBuilder + .create() + .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) + .build()) { + HttpResponse response = client.execute(request); + if (response != null) { + String returnBody = EntityUtils.toString(response.getEntity(), "UTF-8"); + logger.debug("HTTP Response Status Code: {}", + response.getStatusLine().getStatusCode()); + logger.debug("HTTP Response Body:"); + logger.debug(returnBody); + + return new Pair<>(response.getStatusLine().getStatusCode(), + returnBody); + } else { + logger.error("Response from {} is null", request.getURI()); + return null; + } + } catch (Exception e) { + logger.error("Request failed to {}", request.getURI(), e); + return null; + } + } + + /** + * Add header to the request. + * + * @param request http request to send + * @param username the user name + * @param password the password + * @param headers any headers + */ + private void addHeaders(HttpRequestBase request, String username, String password, Map headers) { + String authHeader = makeAuthHeader(username, password); + if (headers != null) { + for (Entry entry : headers.entrySet()) { + request.addHeader(entry.getKey(), headers.get(entry.getKey())); + } + } + if (authHeader != null) { + request.setHeader(HttpHeaders.AUTHORIZATION, authHeader); + } + } + + private String makeAuthHeader(String username, String password) { + if (username == null || username.isEmpty()) { + return null; + } + + String auth = username + ":" + (password == null ? "" : password); + return "Basic " + DatatypeConverter.printBase64Binary(auth.getBytes(Charset.forName("ISO-8859-1"))); + } +} diff --git a/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/GetTest.java b/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/GetTest.java index 11366c6a0..37e38ec70 100755 --- a/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/GetTest.java +++ b/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/GetTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * rest * ================================================================================ - * 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. @@ -24,19 +24,19 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Test; -import org.onap.policy.rest.RESTManager.Pair; +import org.onap.policy.rest.RestManager.Pair; public class GetTest { @Test(expected = NullPointerException.class) public void testUrlNull() { - RESTManager mgr = new RESTManager(); + RestManager mgr = new RestManager(); mgr.get(null, "user", null, null); } @Test public void testUsernameNull() { - RESTManager mgr = new RESTManager(); + RestManager mgr = new RestManager(); Pair result = mgr.get("http://www.example.org", null, null, null); assertEquals((Integer)200, result.first); @@ -46,7 +46,7 @@ public class GetTest { @Test public void testUsernameEmpty() { - RESTManager mgr = new RESTManager(); + RestManager mgr = new RestManager(); Pair result = mgr.get("http://www.example.org", "", null, null); assertEquals((Integer)200, result.first); @@ -56,11 +56,11 @@ public class GetTest { @Test public void testUrlExampleOrg() { - RESTManager mgr = new RESTManager(); + RestManager mgr = new RestManager(); Pair result = mgr.get("http://www.example.org", "user", null, null); assertEquals((Integer)200, result.first); assertTrue(result.second != null); assertTrue(result.second.length() > 0); } -} \ No newline at end of file +} diff --git a/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/PairTest.java b/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/PairTest.java index e245eabdb..6269e9de4 100755 --- a/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/PairTest.java +++ b/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/PairTest.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * rest * ================================================================================ - * + * Modifications Copyright (C) 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. @@ -23,13 +23,13 @@ package org.onap.policy.rest; import static org.junit.Assert.assertEquals; import org.junit.Test; -import org.onap.policy.rest.RESTManager.Pair; +import org.onap.policy.rest.RestManager.Pair; public class PairTest { @Test public void testPair() { - RESTManager mgr = new RESTManager(); + RestManager mgr = new RestManager(); Pair pii = mgr.new Pair<>(1, 2); assertEquals((Integer) 1, (Integer) pii.first); diff --git a/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/PostTest.java b/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/PostTest.java index aedd0b288..834c29873 100755 --- a/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/PostTest.java +++ b/controlloop/common/model-impl/rest/src/test/java/org/onap/policy/rest/PostTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * rest * ================================================================================ - * 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. @@ -23,27 +23,27 @@ package org.onap.policy.rest; import static org.junit.Assert.assertEquals; import org.junit.Test; -import org.onap.policy.rest.RESTManager.Pair; +import org.onap.policy.rest.RestManager.Pair; public class PostTest { @Test public void testUsernameNull() { - RESTManager mgr = new RESTManager(); + RestManager mgr = new RestManager(); Pair result = mgr.post("http://www.example.org", null, null, null, null, null); assertEquals(null, result); } @Test public void testUsernameEmpty() { - RESTManager mgr = new RESTManager(); + RestManager mgr = new RestManager(); Pair result = mgr.post("http://www.example.org", "", null, null, null, null); assertEquals(null, result); } @Test public void testBodyNull() { - RESTManager mgr = new RESTManager(); + RestManager mgr = new RestManager(); Pair result = mgr.post("http://www.example.org", "user", null, null, null, null); assertEquals(null, result); } -- cgit