diff options
Diffstat (limited to 'policy-endpoints/src/main/java')
-rw-r--r-- | policy-endpoints/src/main/java/org/onap/policy/common/endpoints/event/comm/client/TopicSinkClient.java | 31 |
1 files changed, 22 insertions, 9 deletions
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; @@ -43,14 +44,9 @@ 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<TopicSink> lst = getTopicSinks(topic); if (lst.isEmpty()) { throw new TopicSinkClientException("no sinks for topic: " + topic); @@ -71,6 +65,25 @@ public class TopicSinkClient { } /** + * 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. * * @param message message to be encoded and sent @@ -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; } } |