From 18d79592085657e5d91daee17c09775e80fc671b Mon Sep 17 00:00:00 2001 From: Congcong Peng Date: Tue, 27 Feb 2018 16:37:17 +0800 Subject: [PATCH] change version Issue-ID: HOLMES-115 Change-Id: I74c2ce4f9186a80c2ffab79a10086690ca98da06 Signed-off-by: Congcong Peng --- dmaap-dsa/pom.xml | 63 +++++++++----- .../holmes/dsa/dmaappolling/DMaaPResponseUtil.java | 95 +++++++++++----------- .../dsa/dmaappolling/DMaaPResponseUtilTest.java | 4 +- pom.xml | 2 +- 4 files changed, 93 insertions(+), 71 deletions(-) diff --git a/dmaap-dsa/pom.xml b/dmaap-dsa/pom.xml index 9c981ea..fdd2462 100644 --- a/dmaap-dsa/pom.xml +++ b/dmaap-dsa/pom.xml @@ -29,13 +29,6 @@ jar - - - - - - - org.onap.msb.java-sdk msb-java-sdk @@ -78,16 +71,44 @@ log4j-over-slf4j org.slf4j - - - - - - - - + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.core + jackson-core + + + + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + commons-collections + commons-collections + + + commons-beanutils + commons-beanutils + + + commons-collections + commons-collections + 3.2.2 + + + com.alibaba + fastjson + 1.1.23 + + org.projectlombok lombok @@ -186,12 +207,12 @@ com.google.guava guava 19.0 - - - - - - + + + com.fasterxml.jackson.core + jackson-core + + diff --git a/dmaap-dsa/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java b/dmaap-dsa/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java index f19402c..be30153 100644 --- a/dmaap-dsa/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java +++ b/dmaap-dsa/src/main/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtil.java @@ -15,95 +15,96 @@ */ package org.onap.holmes.dsa.dmaappolling; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import org.jvnet.hk2.annotations.Service; import org.onap.holmes.common.api.stat.AlarmAdditionalField; import org.onap.holmes.common.api.stat.VesAlarm; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + @Service public class DMaaPResponseUtil { public VesAlarm convertJsonToVesAlarm(String responseJson) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - JsonNode jsonNode = mapper.readTree(responseJson); - VesAlarm vesAlarm = new VesAlarm(); + JSONObject jsonNode = JSON.parseObject(responseJson); - JsonNode eventJson = jsonNode.get("event"); + VesAlarm vesAlarm = new VesAlarm(); - JsonNode commonEventHeaderJson = eventJson.get("commonEventHeader"); + JSONObject eventJson = JSON.parseObject(jsonNode.get("event") +""); + JSONObject commonEventHeaderJson = JSON.parseObject(eventJson.get("commonEventHeader") +""); convertCommonEventHeaderJsonToEvent(commonEventHeaderJson, vesAlarm); - JsonNode faultFieldsJson = eventJson.get("faultFields"); + JSONObject faultFieldsJson = JSON.parseObject(eventJson.get("faultFields") +""); convertFaultFieldsJsonToEvent(faultFieldsJson, vesAlarm); return vesAlarm; } - private void convertCommonEventHeaderJsonToEvent(JsonNode commonEventHeaderJson, + private void convertCommonEventHeaderJsonToEvent(JSONObject commonEventHeaderJson, VesAlarm vesAlarm) { - vesAlarm.setDomain(commonEventHeaderJson.get("domain").asText()); - vesAlarm.setEventId(commonEventHeaderJson.get("eventId").asText()); - vesAlarm.setEventName(commonEventHeaderJson.get("eventName").asText()); + vesAlarm.setDomain((String) commonEventHeaderJson.get("domain")); + vesAlarm.setEventId((String) commonEventHeaderJson.get("eventId")); + vesAlarm.setEventName((String) commonEventHeaderJson.get("eventName")); vesAlarm.setAlarmIsCleared(vesAlarm.getEventName().endsWith("Cleared") ? 1 : 0); vesAlarm.setEventType(getTextElementByNode(commonEventHeaderJson, "eventType")); vesAlarm.setInternalHeaderFields( getTextElementByNode(commonEventHeaderJson, "internalHeaderFields")); - vesAlarm.setLastEpochMicrosec(commonEventHeaderJson.get("lastEpochMicrosec").asLong()); + vesAlarm.setLastEpochMicrosec(commonEventHeaderJson.getLong("lastEpochMicrosec")); vesAlarm.setNfcNamingCode(getTextElementByNode(commonEventHeaderJson, "nfcNamingCode")); vesAlarm.setNfNamingCode(getTextElementByNode(commonEventHeaderJson, "nfNamingCode")); - vesAlarm.setPriority(commonEventHeaderJson.get("priority").asText()); + vesAlarm.setPriority((String) commonEventHeaderJson.get("priority")); vesAlarm.setReportingEntityId( getTextElementByNode(commonEventHeaderJson, "reportingEntityId")); - vesAlarm.setReportingEntityName(commonEventHeaderJson.get("reportingEntityName").asText()); - vesAlarm.setSequence(commonEventHeaderJson.get("sequence").asInt()); + vesAlarm.setReportingEntityName( (String) commonEventHeaderJson.get("reportingEntityName")); + vesAlarm.setSequence((Integer) commonEventHeaderJson.get("sequence")); vesAlarm.setSourceId(getTextElementByNode(commonEventHeaderJson, "sourceId")); - vesAlarm.setSourceName(commonEventHeaderJson.get("sourceName").asText()); - vesAlarm.setStartEpochMicrosec(commonEventHeaderJson.get("startEpochMicrosec").asLong()); - vesAlarm.setVersion(commonEventHeaderJson.get("version").asLong()); + vesAlarm.setSourceName( (String) commonEventHeaderJson.get("sourceName")); + vesAlarm.setStartEpochMicrosec(commonEventHeaderJson.getLong("startEpochMicrosec")); + vesAlarm.setVersion(commonEventHeaderJson.getLong("version")); } - private void convertFaultFieldsJsonToEvent(JsonNode faultFieldsJson, VesAlarm vesAlarm) { + private void convertFaultFieldsJsonToEvent(JSONObject faultFieldsJson, VesAlarm vesAlarm) { vesAlarm.setAlarmAdditionalInformation(getListElementByNode(faultFieldsJson, "alarmAdditionalInformation")); - vesAlarm.setAlarmCondition(faultFieldsJson.get("alarmCondition").asText()); + vesAlarm.setAlarmCondition(faultFieldsJson.getString("alarmCondition")); vesAlarm.setAlarmInterfaceA(getTextElementByNode(faultFieldsJson, "alarmInterfaceA")); vesAlarm.setEventCategory(getTextElementByNode(faultFieldsJson,"eventCategory")); - vesAlarm.setEventSeverity(faultFieldsJson.get("eventSeverity").asText()); - vesAlarm.setEventSourceType(faultFieldsJson.get("eventSourceType").asText()); - vesAlarm.setFaultFieldsVersion(faultFieldsJson.get("faultFieldsVersion").asLong()); - vesAlarm.setSpecificProblem(faultFieldsJson.get("specificProblem").asText()); - vesAlarm.setVfStatus(faultFieldsJson.get("vfStatus").asText()); + vesAlarm.setEventSeverity(faultFieldsJson.getString("eventSeverity")); + vesAlarm.setEventSourceType(faultFieldsJson.getString("eventSourceType")); + vesAlarm.setFaultFieldsVersion(faultFieldsJson.getLong("faultFieldsVersion")); + vesAlarm.setSpecificProblem(faultFieldsJson.getString("specificProblem")); + vesAlarm.setVfStatus(faultFieldsJson.getString("vfStatus")); } - private String getTextElementByNode(JsonNode jsonNode,String name){ - if(jsonNode.has(name)){ - return jsonNode.get(name).asText(); + private String getTextElementByNode(JSONObject jsonNode,String name){ + if(jsonNode.get(name) != null){ + return jsonNode.getString(name); } return null; } - private Long getLongElementByNode(JsonNode jsonNode, String name) { - if(jsonNode.has(name)){ - return jsonNode.get(name).asLong(); + private Long getLongElementByNode(JSONObject jsonNode, String name) { + if(jsonNode.get(name) != null){ + return jsonNode.getLong(name); } return null; } - private List getListElementByNode(JsonNode jsonNode, String name){ + private List getListElementByNode(JSONObject jsonNode, String name){ List alarms = new ArrayList(); - if (jsonNode.has(name)) { - JsonNode alarmAdditionalInformations = jsonNode.get(name); - if (alarmAdditionalInformations.isArray()) { - alarmAdditionalInformations.forEach(alarm -> { - if(alarm.has("name") && alarm.has("value")) { - AlarmAdditionalField field = new AlarmAdditionalField(); - field.setName(getTextElementByNode(alarm, "name")); - field.setValue(getTextElementByNode(alarm, "value")); - alarms.add(field); - } - }); + if (jsonNode.get(name) != null) { + JSONArray alarmAdditionalInformations = jsonNode.getJSONArray(name); + for (int i = 0; i < alarmAdditionalInformations.size(); i++) { + JSONObject jsonObject = alarmAdditionalInformations.getJSONObject(i); + if (jsonObject.get("name") != null + && jsonObject.get("value") != null) { + AlarmAdditionalField field = new AlarmAdditionalField(); + field.setName(getTextElementByNode(jsonObject, "name")); + field.setValue(getTextElementByNode(jsonObject, "value")); + alarms.add(field); + } } } return alarms; diff --git a/dmaap-dsa/src/test/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtilTest.java b/dmaap-dsa/src/test/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtilTest.java index 87be654..26fba51 100644 --- a/dmaap-dsa/src/test/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtilTest.java +++ b/dmaap-dsa/src/test/java/org/onap/holmes/dsa/dmaappolling/DMaaPResponseUtilTest.java @@ -22,7 +22,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -//import com.alibaba.fastjson.JSONException; +import com.alibaba.fastjson.JSONException; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -163,7 +163,7 @@ public class DMaaPResponseUtilTest { @Test public void testDMaaPResponseUtil_input_illegal() throws Exception { String json = "***"; - thrown.expect(IOException.class); + thrown.expect(JSONException.class); dMaaPResponseUtil.convertJsonToVesAlarm(json); } diff --git a/pom.xml b/pom.xml index f01101b..9828732 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ org.onap.holmes.common holmes-actions - 1.0.0 + 1.1.0-SNAPSHOT io.dropwizard -- 2.16.6