Response handlers for DmaaP clients changed 79/45279/1
authorpwielebs <piotr.wielebski@nokia.com>
Mon, 30 Apr 2018 15:15:58 +0000 (17:15 +0200)
committerpwielebs <piotr.wielebski@nokia.com>
Mon, 30 Apr 2018 15:16:59 +0000 (17:16 +0200)
Change-Id: I625521013aa02e6709be95ad7b3443707a549f05
Issue-ID: DCAEGEN2-451
Signed-off-by: pwielebs <piotr.wielebski@nokia.com>
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIConsumerTaskImpl.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIProducerTaskImpl.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTasks.java
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/service/CommonMethods.java [deleted file]
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/service/consumer/ExtendedDmaapConsumerHttpClientImpl.java
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/service/producer/ExtendedDmaapProducerHttpClientImpl.java
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/service/producer/ExtendedDmaapProducerHttpClientImplTest.java

index 64ccad5..3504bf9 100644 (file)
@@ -45,7 +45,7 @@ public class AAIConsumerTaskImpl extends AAIConsumerTask<AAIClientConfiguration>
     private final Config prhAppConfig;
     private final HttpRequestDetails requestDetails;
     private AAIProducerClient producerClient;
-    public Optional<String> response;
+    Optional<String> response;
 
     @Autowired
     public AAIConsumerTaskImpl(AppConfig prhAppConfig, HttpRequestDetails requestDetails) {
index a5d173b..5e8dcea 100644 (file)
@@ -47,9 +47,7 @@ public class AAIProducerTaskImpl extends AAIProducerTask<AAIClientConfiguration>
     private final Config prhAppConfig;
     private AAIProducerClient producerClient;
     private HttpRequestDetails requestDetails;
-    private String jsonBody = "{\"ipaddress-v4-oam\":\"11.22.33.155\"}";
-    private String pnfName = "example-pnf-name-val-40510"; // pnf name received from dmaap required for URI
-    public Optional<String> response;
+    Optional<String> response;
 
     @Autowired
     public AAIProducerTaskImpl(AppConfig prhAppConfig, HttpRequestDetails requestDetails) {
index 2922da1..c80b8a7 100644 (file)
  */
 package org.onap.dcaegen2.services.prh.tasks;
 
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import org.onap.dcaegen2.services.config.DmaapConsumerConfiguration;
 import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/23/18
  */
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/service/CommonMethods.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/service/CommonMethods.java
deleted file mode 100644 (file)
index fe79280..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
- * ================================================================================
- * Copyright (C) 2018 NOKIA 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.dcaegen2.services.service;
-
-import org.apache.http.HttpEntity;
-import org.apache.http.client.ResponseHandler;
-import org.apache.http.util.EntityUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Optional;
-
-public class CommonMethods {
-
-    private static Logger logger = LoggerFactory.getLogger(CommonMethods.class);
-
-    private CommonMethods() {}
-
-    public static ResponseHandler<Optional<String>> dmaapResponseHandler() {
-        return httpResponse ->  {
-            final int responseCode = httpResponse.getStatusLine().getStatusCode();
-            final HttpEntity responseEntity = httpResponse.getEntity();
-
-            if (HttpUtils.isSuccessfulResponseCode(responseCode) && responseEntity != null) {
-                logger.info("HTTP response successful.");
-                final String response = EntityUtils.toString(responseEntity);
-                return Optional.of(response);
-            } else {
-                String response = responseEntity != null ? EntityUtils.toString(responseEntity) : "";
-                logger.error("HTTP response not successful : {}", response);
-                return Optional.empty();
-            }
-        };
-    }
-}
index 5acf204..0b76cca 100644 (file)
 
 package org.onap.dcaegen2.services.service.consumer;
 
+import org.apache.http.HttpEntity;
+import org.apache.http.client.ResponseHandler;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpRequestBase;
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.util.EntityUtils;
 import org.onap.dcaegen2.services.config.DmaapConsumerConfiguration;
-import org.onap.dcaegen2.services.service.CommonMethods;
 import org.onap.dcaegen2.services.service.DmaapHttpClientImpl;
+import org.onap.dcaegen2.services.service.HttpUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -67,7 +70,7 @@ public class ExtendedDmaapConsumerHttpClientImpl {
         Optional<HttpRequestBase> request = createRequest();
 
         try {
-            extendedDetails = closeableHttpClient.execute(request.get(), CommonMethods.dmaapResponseHandler());
+            extendedDetails = closeableHttpClient.execute(request.get(), dmaapConsumerResponseHandler());
         } catch (IOException | NullPointerException e) {
             logger.error("Exception while executing HTTP request: {}", e);
         }
@@ -122,6 +125,24 @@ public class ExtendedDmaapConsumerHttpClientImpl {
 
         return extendedURI;
     }
+
+    private ResponseHandler<Optional<String>> dmaapConsumerResponseHandler() {
+        return httpResponse ->  {
+            final int responseCode = httpResponse.getStatusLine().getStatusCode();
+            logger.info("Status code of operation: {}", responseCode);
+            final HttpEntity responseEntity = httpResponse.getEntity();
+
+            if (HttpUtils.isSuccessfulResponseCode(responseCode) ) {
+                logger.info("HTTP response successful.");
+                final String dmaapResponse = EntityUtils.toString(responseEntity);
+                return Optional.of(dmaapResponse);
+            } else {
+                String dmaapResponse = responseEntity != null ? EntityUtils.toString(responseEntity) : "";
+                logger.error("HTTP response not successful : {}", dmaapResponse);
+                return Optional.of("" + responseCode);
+            }
+        };
+    }
 }
 
 
index 9b6c96f..17e34ed 100644 (file)
 
 package org.onap.dcaegen2.services.service.producer;
 
+import org.apache.http.HttpEntity;
+import org.apache.http.client.ResponseHandler;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.methods.HttpRequestBase;
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.util.EntityUtils;
 import org.onap.dcaegen2.services.config.DmaapPublisherConfiguration;
-import org.onap.dcaegen2.services.service.CommonMethods;
 import org.onap.dcaegen2.services.service.DmaapHttpClientImpl;
+import org.onap.dcaegen2.services.service.HttpUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,7 +67,7 @@ public class ExtendedDmaapProducerHttpClientImpl {
         Optional<HttpRequestBase> request = createRequest(requestDetails);
 
         try {
-            extendedDetails = closeableHttpClient.execute(request.get(), CommonMethods.dmaapResponseHandler());
+            extendedDetails = closeableHttpClient.execute(request.get(), dmaapProducerResponseHandler());
         } catch (IOException | NullPointerException e) {
             logger.error("Exception while executing HTTP request: {}", e);
         }
@@ -138,4 +141,20 @@ public class ExtendedDmaapProducerHttpClientImpl {
         post.setEntity(stringEntity.get());
         return post;
     }
+
+    private ResponseHandler<Optional<String>> dmaapProducerResponseHandler() {
+        return httpResponse ->  {
+            final int responseCode = httpResponse.getStatusLine().getStatusCode();
+            final HttpEntity responseEntity = httpResponse.getEntity();
+
+            if (HttpUtils.isSuccessfulResponseCode(responseCode)) {
+                logger.info("HTTP response successful.");
+                return Optional.of("" + responseCode);
+            } else {
+                String response = responseEntity != null ? EntityUtils.toString(responseEntity) : "";
+                logger.error("HTTP response not successful : {}", response);
+                return Optional.of("" + responseCode);
+            }
+        };
+    }
 }
index 67c58f5..0560432 100644 (file)
@@ -47,6 +47,8 @@ public class ExtendedDmaapProducerHttpClientImplTest {
 
     private static Optional<String> expectedResult = Optional.empty();
     private static final String JSON_MESSAGE = "{ \"ipaddress-v4-oam\": \"11.22.33.44\" }";
+    private static final String RESPONSE_SUCCESS = "200";
+    private static final String RESPONSE_FAILURE = "404";
 
     @BeforeAll
     public static void init() throws NoSuchFieldException, IllegalAccessException {
@@ -70,7 +72,7 @@ public class ExtendedDmaapProducerHttpClientImplTest {
 
     @Test
     public void getHttpResponsePost_success() throws IOException {
-        expectedResult = Optional.of(JSON_MESSAGE);
+        expectedResult = Optional.of(RESPONSE_SUCCESS);
 
         when(closeableHttpClientMock.execute(any(HttpPost.class), any(ResponseHandler.class)))
                 .thenReturn(expectedResult);
@@ -81,8 +83,8 @@ public class ExtendedDmaapProducerHttpClientImplTest {
     }
 
     @Test
-    public void getExtendedDetails_returnsNull() throws IOException {
-        expectedResult = Optional.of(JSON_MESSAGE);
+    public void getExtendedDetails_returnsFailure() throws IOException {
+        expectedResult = Optional.of(RESPONSE_FAILURE);
         when(closeableHttpClientMock.execute(any(HttpPost.class), any(ResponseHandler.class))).
                 thenReturn(Optional.empty());
         Optional<String>  actualResult = objectUnderTest.getHttpProducerResponse(requestDetailsMock);