From b124ec93d5b5ad22867a84624a0a07ab625d4356 Mon Sep 17 00:00:00 2001 From: Jorge Hernandez Date: Mon, 18 Mar 2019 15:59:04 -0500 Subject: TopicSinkClient support for unmanaged topics Change-Id: I6b92dcc0f225aa712b34adb9a1f9ab47df412c81 Issue-ID: POLICY-1608 Signed-off-by: Jorge Hernandez --- .../event/comm/client/TopicSinkClient.java | 31 +++++++++++++++------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'policy-endpoints/src/main/java/org/onap/policy/common/endpoints') diff --git a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/event/comm/client/TopicSinkClient.java b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/event/comm/client/TopicSinkClient.java index e44d1f76..f08a1381 100644 --- a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/event/comm/client/TopicSinkClient.java +++ b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/event/comm/client/TopicSinkClient.java @@ -23,6 +23,7 @@ package org.onap.policy.common.endpoints.event.comm.client; import java.util.List; import lombok.Getter; +import lombok.NonNull; import org.onap.policy.common.endpoints.event.comm.TopicEndpoint; import org.onap.policy.common.endpoints.event.comm.TopicSink; import org.onap.policy.common.utils.coder.Coder; @@ -42,15 +43,10 @@ public class TopicSinkClient { */ private static final Coder CODER = new StandardCoder(); - /** - * Topic to which messages are published. - */ - @Getter - private final String topic; - /** * Where messages are published. */ + @Getter private final TopicSink sink; /** @@ -60,8 +56,6 @@ public class TopicSinkClient { * @throws TopicSinkClientException if the topic does not exist */ public TopicSinkClient(final String topic) throws TopicSinkClientException { - this.topic = topic; - final List lst = getTopicSinks(topic); if (lst.isEmpty()) { throw new TopicSinkClientException("no sinks for topic: " + topic); @@ -70,6 +64,25 @@ public class TopicSinkClient { this.sink = lst.get(0); } + /** + * Constructs the client from a sink object. + * + * @param sink topic sink publisher + */ + public TopicSinkClient(@NonNull TopicSink sink) { + this.sink = sink; + } + + + /** + * Gets the canonical topic name. + * + * @return topic name + */ + public String getTopic() { + return this.sink.getTopic(); + } + /** * Sends a message to the topic, after encoding the message as json. * @@ -82,7 +95,7 @@ public class TopicSinkClient { return sink.send(json); } catch (RuntimeException | CoderException e) { - logger.warn("send to {} failed because of {}", topic, e.getMessage(), e); + logger.warn("send to {} failed because of {}", sink.getTopic(), e.getMessage(), e); return false; } } -- cgit 1.2.3-korg