This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit db21bfdb0d0bd19717ec4d775b72ce0c57d2aa8f Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Tue Sep 8 18:01:34 2020 +0200 CAMEL-15508 - Camel-NSQ: Support custom NSQLookup implementation --- .../org/apache/camel/component/nsq/NsqConfiguration.java | 14 ++++++++++++++ .../java/org/apache/camel/component/nsq/NsqConsumer.java | 9 ++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConfiguration.java b/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConfiguration.java index 584f4fa..24c6cf7 100644 --- a/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConfiguration.java +++ b/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConfiguration.java @@ -19,6 +19,7 @@ package org.apache.camel.component.nsq; import java.util.Set; import com.github.brainlag.nsq.ServerAddress; +import com.github.brainlag.nsq.lookup.NSQLookup; import com.google.common.collect.Sets; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriParam; @@ -56,6 +57,8 @@ public class NsqConfiguration { @UriParam(label = "consumer", defaultValue = "-1", javaType = "java.time.Duration", description = "The NSQ consumer timeout period for messages retrieved from the queue. A value of -1 is the server default") private long messageTimeout = -1; + @UriParam(label = "consumer", description = "A Custom NSQ lookup implementation") + private NSQLookup customNSQLookup; @UriParam(description = "A String to identify the kind of client") private String userAgent; @UriParam(label = "security") @@ -225,4 +228,15 @@ public class NsqConfiguration { this.sslContextParameters = sslContextParameters; } + public NSQLookup getCustomNSQLookup() { + return customNSQLookup; + } + + /** + * Set a custom NSQLookup implementation + */ + public void setCustomNSQLookup(NSQLookup customNSQLookup) { + this.customNSQLookup = customNSQLookup; + } + } diff --git a/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConsumer.java b/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConsumer.java index 3792863..7fb4979 100644 --- a/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConsumer.java +++ b/components/camel-nsq/src/main/java/org/apache/camel/component/nsq/NsqConsumer.java @@ -29,6 +29,7 @@ import org.apache.camel.ExchangePattern; import org.apache.camel.ExtendedExchange; import org.apache.camel.Processor; import org.apache.camel.support.DefaultConsumer; +import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,9 +63,15 @@ public class NsqConsumer extends DefaultConsumer { super.doStart(); LOG.debug("Starting NSQ Consumer"); executor = getEndpoint().createExecutor(); + + NSQLookup lookup; LOG.debug("Getting NSQ Connection"); - NSQLookup lookup = new DefaultNSQLookup(); + if (ObjectHelper.isEmpty(configuration.getCustomNSQLookup())) { + lookup = new DefaultNSQLookup(); + } else { + lookup = configuration.getCustomNSQLookup(); + } for (ServerAddress server : configuration.getServerAddresses()) { lookup.addLookupAddress(server.getHost(),