Fixed the CLM Issues
[holmes/common.git] / holmes-actions / src / main / java / org / onap / holmes / common / dcae / utils / DcaeConfigurationParser.java
index 2c878b0..c1eede7 100644 (file)
@@ -1,5 +1,5 @@
 /*\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
 public class DcaeConfigurationParser {\r
 \r
     private static final String RULE_CONTENT_SPLIT = "\\$\\$\\$";\r
@@ -43,9 +45,9 @@ public class DcaeConfigurationParser {
 \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
@@ -54,73 +56,73 @@ public class DcaeConfigurationParser {
         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
+        if (entity.has("type") && !entity.get("type").isJsonNull()) {\r
+            securityInfo.setType(entity.get("type").getAsString());\r
         }\r
-        if (entity.containsKey("aaf_password")) {\r
-            securityInfo.setAafPassword(entity.getString("aaf_password"));\r
+        if (entity.has("aaf_password") && !entity.get("aaf_password").isJsonNull()) {\r
+            securityInfo.setAafPassword(entity.get("aaf_password").getAsString());\r
         }\r
-        if (entity.containsKey("aaf_username")) {\r
-            securityInfo.setAafUsername(entity.getString("aaf_username"));\r
+        if (entity.has("aaf_username") && !entity.get("aaf_username").isJsonNull()) {\r
+            securityInfo.setAafUsername(entity.get("aaf_username").getAsString());\r
         }\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
+        if (jsonDmaapInfo.has("location") && !jsonDmaapInfo.get("location").isJsonNull()){\r
+            dmaapInfo.setLocation(jsonDmaapInfo.get("location").getAsString());\r
         }\r
-        if (jsonDmaapInfo.containsKey("topic_url")) {\r
-            dmaapInfo.setTopicUrl(jsonDmaapInfo.getString("topic_url"));\r
+        if (jsonDmaapInfo.has("topic_url") && !jsonDmaapInfo.get("topic_url").isJsonNull()) {\r
+            dmaapInfo.setTopicUrl(jsonDmaapInfo.get("topic_url").getAsString());\r
         }\r
-        if (jsonDmaapInfo.containsKey("client_id")) {\r
-            dmaapInfo.setClientId(jsonDmaapInfo.getString("client_id"));\r
+        if (jsonDmaapInfo.has("client_id") && !jsonDmaapInfo.get("client_id").isJsonNull()) {\r
+            dmaapInfo.setClientId(jsonDmaapInfo.get("client_id").getAsString());\r
         }\r
-        if (jsonDmaapInfo.containsKey("client_role")) {\r
-            dmaapInfo.setClientRole(jsonDmaapInfo.getString("client_role"));\r
+        if (jsonDmaapInfo.has("client_role") && !jsonDmaapInfo.get("client_role").isJsonNull()) {\r
+            dmaapInfo.setClientRole(jsonDmaapInfo.get("client_role").getAsString());\r
         }\r
-        if (jsonDmaapInfo.containsKey("type")) {\r
-            dmaapInfo.setType(jsonDmaapInfo.getString("type"));\r
+        if (jsonDmaapInfo.has("type") && !jsonDmaapInfo.get("type").isJsonNull()) {\r
+            dmaapInfo.setType(jsonDmaapInfo.get("type").getAsString());\r
         }\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