Fix case sensitive issue in msg body
[holmes/common.git] / holmes-actions / src / main / java / org / onap / holmes / common / dmaap / Publisher.java
index ad5109b..09bb013 100644 (file)
  */\r
 package org.onap.holmes.common.dmaap;\r
 \r
+import java.io.IOException;\r
+import lombok.extern.slf4j.Slf4j;\r
+import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;\r
+import org.apache.http.client.methods.HttpPost;\r
+import org.apache.http.impl.client.CloseableHttpClient;\r
 import org.onap.holmes.common.dmaap.entity.PolicyMsg;\r
 import org.onap.holmes.common.exception.CorrelationException;\r
 import com.alibaba.fastjson.JSON;\r
+import com.google.gson.Gson;\r
 import java.util.HashMap;\r
 import javax.ws.rs.core.MediaType;\r
 import lombok.Getter;\r
@@ -31,6 +37,7 @@ import org.onap.holmes.common.utils.HttpsUtils;
 @Getter\r
 @Setter\r
 @Service\r
+@Slf4j\r
 public class Publisher {\r
 \r
     private String topic;\r
@@ -41,7 +48,8 @@ public class Publisher {
     public boolean publish(PolicyMsg msg) throws CorrelationException {\r
         String content;\r
         try {\r
-            content = JSON.toJSONString(msg);\r
+            //content = JSON.toJSONString(msg);\r
+               content = new Gson().toJson(msg);\r
         } catch (Exception e) {\r
             throw new CorrelationException("Failed to convert the message object to a json string.",\r
                     e);\r
@@ -50,10 +58,22 @@ public class Publisher {
         HashMap<String, String> headers = new HashMap<>();\r
         headers.put("Accept", MediaType.APPLICATION_JSON);\r
         headers.put("Content-Type", MediaType.APPLICATION_JSON);\r
+        CloseableHttpClient httpClient = null;\r
+        HttpPost httpPost = new HttpPost(url);\r
         try {\r
-            httpResponse = HttpsUtils.post(url, headers, new HashMap<>(), new StringEntity(content, "utf-8"));\r
+            httpClient = HttpsUtils.getHttpClient(HttpsUtils.DEFUALT_TIMEOUT);\r
+            httpResponse = HttpsUtils.post(httpPost, headers, new HashMap<>(), new StringEntity(content, "utf-8"), httpClient);\r
         } catch (Exception e) {\r
             throw new CorrelationException("Failed to connect to DCAE.", e);\r
+        } finally {\r
+            httpPost.releaseConnection();\r
+            if (httpClient != null) {\r
+                try {\r
+                    httpClient.close();\r
+                } catch (IOException e) {\r
+                    log.warn("Failed to close http client!");\r
+                }\r
+            }\r
         }\r
         return checkStatus(httpResponse);\r
     }\r