X-Git-Url: https://gerrit.onap.org/r/gitweb?p=holmes%2Fdsa.git;a=blobdiff_plain;f=dmaap-dsa%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fdsa%2Fdmaappolling%2FSubscriber.java;h=b67fc8f5febe191dc01a4c7be4193f229f80922c;hp=8b7c727826d417d02a424ee49a35522d47ef2475;hb=e2f4343a4a4b9fb84b46857e0283084d5de5da77;hpb=8b558989dd5af250972f45b5edd9f3be835f6dcd diff --git a/dmaap-dsa/src/main/java/org/onap/holmes/dsa/dmaappolling/Subscriber.java b/dmaap-dsa/src/main/java/org/onap/holmes/dsa/dmaappolling/Subscriber.java index 8b7c727..b67fc8f 100644 --- a/dmaap-dsa/src/main/java/org/onap/holmes/dsa/dmaappolling/Subscriber.java +++ b/dmaap-dsa/src/main/java/org/onap/holmes/dsa/dmaappolling/Subscriber.java @@ -18,20 +18,25 @@ package org.onap.holmes.dsa.dmaappolling; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.Response; +import java.util.UUID; + import lombok.Getter; import lombok.Setter; -import org.glassfish.jersey.client.ClientConfig; +import lombok.extern.slf4j.Slf4j; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; import org.onap.holmes.common.api.stat.VesAlarm; import org.onap.holmes.common.dropwizard.ioc.utils.ServiceLocatorHolder; import org.onap.holmes.common.exception.CorrelationException; +import org.onap.holmes.common.utils.GsonUtil; +import org.onap.holmes.common.utils.HttpsUtils; @Getter @Setter +@Slf4j public class Subscriber { private DMaaPResponseUtil dMaaPResponseUtil = ServiceLocatorHolder.getLocator() @@ -52,13 +57,14 @@ public class Subscriber { * The number of milliseconds to poll interval time. This should normally be used, and set at * 15000 or higher. */ - private int period = 15000; + private int period = timeout; private boolean secure; private String topic; private String url; - private String consumerGroup = "homlesGroup1"; - private String consumer = "homles1"; + private String uuid = UUID.randomUUID() + ""; + private String consumerGroup = "homlesGroup" + uuid; + private String consumer = "homles" + uuid; private String authInfo; private String authExpDate; @@ -67,7 +73,7 @@ public class Subscriber { try { response = getDMaaPData(); } catch (Exception e) { - throw new CorrelationException("Failed to get DMapp data.", e); + throw new CorrelationException("Failed to get data from DMaaP.", e); } try { return extractVesAlarm(response); @@ -76,11 +82,28 @@ public class Subscriber { } } - private List getDMaaPData() { - Client client = ClientBuilder.newClient(new ClientConfig()); - WebTarget webTarget = client.target(url + "/" + consumerGroup + "/" + consumer); - Response response = webTarget.queryParam("timeout", timeout).request().get(); - return response.readEntity(List.class); + private List getDMaaPData() throws Exception { + String response; + CloseableHttpClient closeableHttpClient = null; + HttpGet httpGet = new HttpGet(url + "/" + consumerGroup + "/" + consumer + "?timeout=" + period); + try { + closeableHttpClient = HttpsUtils.getHttpClient(timeout); + HttpResponse httpResponse = HttpsUtils + .get(httpGet, new HashMap<>(), closeableHttpClient); + response = HttpsUtils.extractResponseEntity(httpResponse); + } catch (Exception e) { + throw e; + } finally { + httpGet.releaseConnection(); + if (closeableHttpClient != null) { + try { + closeableHttpClient.close(); + } catch (IOException e) { + log.warn("Failed to close http client!"); + } + } + } + return GsonUtil.jsonToBean(response, List.class); } private List extractVesAlarm(List responseEntity) throws IOException {