/*\r
- * Copyright 2017 ZTE Corporation.\r
+ * Copyright 2017-2020 ZTE Corporation.\r
*\r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
*/\r
package org.onap.holmes.common.dcae.utils;\r
\r
-import com.alibaba.fastjson.JSON;\r
-import com.alibaba.fastjson.JSONObject;\r
-import java.util.Arrays;\r
-import java.util.List;\r
-import java.util.Map.Entry;\r
-import java.util.Set;\r
-import java.util.stream.Stream;\r
+import com.google.gson.JsonElement;\r
+import com.google.gson.JsonObject;\r
+import com.google.gson.JsonParser;\r
import org.apache.commons.lang3.StringUtils;\r
import org.onap.holmes.common.dcae.entity.DcaeConfigurations;\r
import org.onap.holmes.common.dcae.entity.Rule;\r
import org.onap.holmes.common.dcae.entity.SecurityInfo;\r
import org.onap.holmes.common.exception.CorrelationException;\r
\r
+import java.util.Arrays;\r
+import java.util.List;\r
+import java.util.Map.Entry;\r
+import java.util.Set;\r
+import java.util.stream.Stream;\r
+\r
+import static org.onap.holmes.common.utils.GsonUtil.getAsString;\r
+\r
public class DcaeConfigurationParser {\r
\r
private static final String RULE_CONTENT_SPLIT = "\\$\\$\\$";\r
\r
DcaeConfigurations ret = new DcaeConfigurations();\r
\r
- JSONObject jsonObject = null;\r
+ JsonObject jsonObject = null;\r
try {\r
- jsonObject = JSON.parseObject(jsonStr);\r
+ jsonObject = JsonParser.parseString(jsonStr).getAsJsonObject();\r
} catch (Exception e) {\r
throw new CorrelationException(e.getMessage(), e);\r
}\r
fillInPublishesInfo(ret, jsonObject);\r
fillInSubscribesInfo(ret, jsonObject);\r
\r
- JSONObject finalJsonObject = jsonObject;\r
+ JsonObject finalJsonObject = jsonObject;\r
Stream.of(jsonObject.keySet().toArray(new String[0]))\r
.filter(key -> !OBJECT_ATTRS.contains(key))\r
- .forEach(key -> ret.put(key, finalJsonObject.getString(String.valueOf(key))));\r
+ .forEach(key -> ret.put(key, finalJsonObject.get(String.valueOf(key)).getAsString()));\r
return ret;\r
}\r
\r
- private static void fillInPublishesInfo(DcaeConfigurations ret, JSONObject jsonObject) {\r
- if (jsonObject.containsKey("streams_publishes")) {\r
- JSONObject publishes = jsonObject.getJSONObject("streams_publishes");\r
+ private static void fillInPublishesInfo(DcaeConfigurations ret, JsonObject jsonObject) {\r
+ if (jsonObject.has("streams_publishes")) {\r
+ JsonObject publishes = jsonObject.get("streams_publishes").getAsJsonObject();\r
for (Object key : publishes.keySet()) {\r
ret.addPubSecInfo((String) key,\r
- createSecurityInfo((String) key, publishes.getJSONObject((String) key)));\r
+ createSecurityInfo((String) key, publishes.get((String) key).getAsJsonObject()));\r
}\r
}\r
}\r
\r
- private static void fillInSubscribesInfo(DcaeConfigurations ret, JSONObject jsonObject) {\r
- if (jsonObject.containsKey("streams_subscribes")) {\r
- JSONObject subscribes = jsonObject.getJSONObject("streams_subscribes");\r
+ private static void fillInSubscribesInfo(DcaeConfigurations ret, JsonObject jsonObject) {\r
+ if (jsonObject.has("streams_subscribes")) {\r
+ JsonObject subscribes = jsonObject.get("streams_subscribes").getAsJsonObject();\r
for (Object key : subscribes.keySet()) {\r
ret.addSubSecInfo((String) key,\r
- createSecurityInfo((String) key, subscribes.getJSONObject((String) key)));\r
+ createSecurityInfo((String) key, subscribes.get((String) key).getAsJsonObject()));\r
}\r
}\r
}\r
\r
- private static SecurityInfo createSecurityInfo(String key, JSONObject entity) {\r
+ private static SecurityInfo createSecurityInfo(String key, JsonObject entity) {\r
SecurityInfo securityInfo = new SecurityInfo();\r
- if (entity.containsKey("type")) {\r
- securityInfo.setType(entity.getString("type"));\r
- }\r
- if (entity.containsKey("aaf_password")) {\r
- securityInfo.setAafPassword(entity.getString("aaf_password"));\r
- }\r
- if (entity.containsKey("aaf_username")) {\r
- securityInfo.setAafUsername(entity.getString("aaf_username"));\r
- }\r
+ securityInfo.setType(getAsString(entity, "type"));\r
+ securityInfo.setAafPassword(getAsString(entity, "aaf_password"));\r
+ securityInfo.setAafUsername(getAsString(entity, "aaf_username"));\r
securityInfo.setSecureTopic(!key.endsWith("unsecure"));\r
- fillInDmaapInfo(securityInfo, entity.getJSONObject("dmaap_info"));\r
+ fillInDmaapInfo(securityInfo, entity.get("dmaap_info").getAsJsonObject());\r
return securityInfo;\r
}\r
\r
- private static void fillInDmaapInfo(SecurityInfo securityInfo, JSONObject jsonDmaapInfo) {\r
+ private static void fillInDmaapInfo(SecurityInfo securityInfo, JsonObject jsonDmaapInfo) {\r
SecurityInfo.DmaapInfo dmaapInfo = securityInfo.getDmaapInfo();\r
- if (jsonDmaapInfo.containsKey("location")){\r
- dmaapInfo.setLocation(jsonDmaapInfo.getString("location"));\r
- }\r
- if (jsonDmaapInfo.containsKey("topic_url")) {\r
- dmaapInfo.setTopicUrl(jsonDmaapInfo.getString("topic_url"));\r
- }\r
- if (jsonDmaapInfo.containsKey("client_id")) {\r
- dmaapInfo.setClientId(jsonDmaapInfo.getString("client_id"));\r
- }\r
- if (jsonDmaapInfo.containsKey("client_role")) {\r
- dmaapInfo.setClientRole(jsonDmaapInfo.getString("client_role"));\r
- }\r
- if (jsonDmaapInfo.containsKey("type")) {\r
- dmaapInfo.setType(jsonDmaapInfo.getString("type"));\r
- }\r
+ dmaapInfo.setLocation(getAsString(jsonDmaapInfo, "location"));\r
+ dmaapInfo.setTopicUrl(getAsString(jsonDmaapInfo, "topic_url"));\r
+ dmaapInfo.setClientId(getAsString(jsonDmaapInfo, "client_id"));\r
+ dmaapInfo.setClientRole(getAsString(jsonDmaapInfo, "client_role"));\r
+ dmaapInfo.setType(getAsString(jsonDmaapInfo, "type"));\r
}\r
\r
- private static void fillInRules(DcaeConfigurations ret, JSONObject jsonObject) {\r
- Set<Entry<String, Object>> entries = jsonObject.entrySet();\r
- for (Entry<String, Object> entry : entries) {\r
+ private static void fillInRules(DcaeConfigurations ret, JsonObject jsonObject) {\r
+ Set<Entry<String, JsonElement>> entries = jsonObject.entrySet();\r
+ for (Entry<String, JsonElement> entry : entries) {\r
if (entry.getKey().startsWith("holmes.default.rule")) {\r
- String value = (String) entry.getValue();\r
+ String value = entry.getValue().getAsString();\r
String[] contents = value.split(RULE_CONTENT_SPLIT);\r
ret.addDefaultRule(new Rule(entry.getKey(), contents[0], contents[1], 1));\r
}\r