Catch empty response from DmaaP 17/51117/2
authorwasala <przemyslaw.wasala@nokia.com>
Mon, 11 Jun 2018 12:16:09 +0000 (14:16 +0200)
committerwasala <przemyslaw.wasala@nokia.com>
Tue, 12 Jun 2018 06:21:22 +0000 (08:21 +0200)
Change-Id: Ibd8739c3f9718eec15ff20e0b88d0bfcd4f6d84d
Issue-ID: DCAEGEN2-540
Signed-off-by: wasala <przemyslaw.wasala@nokia.com>
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java
prh-app-server/src/main/resources/logback-spring.xml
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParserTest.java

index 3bac7c3..ab4ec63 100644 (file)
@@ -40,14 +40,15 @@ public class DmaapConsumerJsonParser {
     private static final String PNF_VENDOR_NAME = "pnfVendorName";
     private static final String PNF_SERIAL_NUMBER = "pnfSerialNumber";
 
-    public ConsumerDmaapModel getJsonObject(String message) throws DmaapNotFoundException {
+    public Optional<ConsumerDmaapModel> getJsonObject(String message) throws DmaapNotFoundException {
         JsonElement jsonElement = new JsonParser().parse(message);
         if (jsonElement.isJsonObject()) {
-            return create(jsonElement.getAsJsonObject());
+            return Optional.of(create(jsonElement.getAsJsonObject()));
         } else {
-            return create(StreamSupport.stream(jsonElement.getAsJsonArray().spliterator(), false).findFirst()
-                .flatMap(this::getJsonObjectFromAnArray)
-                .orElseThrow(() -> new DmaapNotFoundException("Json object not found in json array")));
+            return Optional
+                .of(create(StreamSupport.stream(jsonElement.getAsJsonArray().spliterator(), false).findFirst()
+                    .flatMap(this::getJsonObjectFromAnArray)
+                    .orElse(null)));
         }
     }
 
index 01b85a9..9d81836 100644 (file)
@@ -60,7 +60,9 @@ public class DmaapConsumerTaskImpl extends
     @Override
     ConsumerDmaapModel consume(String message) throws DmaapNotFoundException {
         logger.trace("Method called with arg {}", message);
-        return dmaapConsumerJsonParser.getJsonObject(message);
+        return dmaapConsumerJsonParser.getJsonObject(message)
+            .orElseThrow(() -> new DmaapNotFoundException(String.format("Nothing to consume from DmaaP %s topic.",
+                resolveConfiguration().dmaapTopicName())));
     }
 
     @Override
index af4ab18..8f24d99 100644 (file)
@@ -33,7 +33,9 @@
         <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
         <timeBasedFileNamingAndTriggeringPolicy
           class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-          <maxFileSize>10MB</maxFileSize>
+          <maxFileSize>50MB</maxFileSize>
+          <maxHistory>30</maxHistory>
+          <totalSizeCap>10GB</totalSizeCap>
         </timeBasedFileNamingAndTriggeringPolicy>
       </rollingPolicy>
     </appender>
index 3dc8107..a3f5284 100644 (file)
@@ -96,7 +96,7 @@ class DmaapConsumerJsonParserTest {
         JsonElement jsonElement = new JsonParser().parse(parsed);
         Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
             .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
-        ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(message);
+        ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(message).get();
         //then
         Assertions.assertNotNull(consumerDmaapModel);
         Assertions.assertEquals(expectedObject, consumerDmaapModel);
@@ -135,7 +135,7 @@ class DmaapConsumerJsonParserTest {
         JsonElement jsonElement = new JsonParser().parse(parsed);
         Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
             .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
-        ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(message);
+        ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(message).get();
         //then
         Assertions.assertNotNull(consumerDmaapModel);
         Assertions.assertEquals(expectedObject, consumerDmaapModel);
@@ -172,7 +172,7 @@ class DmaapConsumerJsonParserTest {
         JsonElement jsonElement = new JsonParser().parse(parsed);
         Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
             .when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
-        ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(message);
+        ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(message).get();
         //then
         Assertions.assertNotNull(consumerDmaapModel);
         Assertions.assertEquals(expectedObject, consumerDmaapModel);