diff options
Diffstat (limited to 'prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java')
-rw-r--r-- | prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java index ab4ec633..a62321ca 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java @@ -24,15 +24,20 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.util.Optional; import java.util.stream.StreamSupport; +import org.onap.dcaegen2.services.prh.exceptions.DmaapEmptyResponseException; import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException; +import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException; import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 5/8/18 */ public class DmaapConsumerJsonParser { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); private static final String EVENT = "event"; private static final String OTHER_FIELDS = "otherFields"; private static final String PNF_OAM_IPV_4_ADDRESS = "pnfOamIpv4Address"; @@ -40,16 +45,21 @@ public class DmaapConsumerJsonParser { private static final String PNF_VENDOR_NAME = "pnfVendorName"; private static final String PNF_SERIAL_NUMBER = "pnfSerialNumber"; - public Optional<ConsumerDmaapModel> getJsonObject(String message) throws DmaapNotFoundException { + + public Optional<ConsumerDmaapModel> getJsonObject(String message) + throws PrhTaskException { JsonElement jsonElement = new JsonParser().parse(message); + Optional<ConsumerDmaapModel> consumerDmaapModel; if (jsonElement.isJsonObject()) { - return Optional.of(create(jsonElement.getAsJsonObject())); + consumerDmaapModel = Optional.of(create(jsonElement.getAsJsonObject())); } else { - return Optional + consumerDmaapModel = Optional .of(create(StreamSupport.stream(jsonElement.getAsJsonArray().spliterator(), false).findFirst() .flatMap(this::getJsonObjectFromAnArray) - .orElse(null))); + .orElseThrow(DmaapEmptyResponseException::new))); } + logger.info("Parsed model from DmaaP after getting it: {}", consumerDmaapModel); + return consumerDmaapModel; } public Optional<JsonObject> getJsonObjectFromAnArray(JsonElement element) { |