*/\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
@Getter\r
@Setter\r
@Service\r
+@Slf4j\r
public class Publisher {\r
\r
private String topic;\r
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
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