This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit f7b457a959faf12049b1045c5db586877aff05d2 Author: Claus Ibsen <[email protected]> AuthorDate: Sat Jan 23 11:55:44 2021 +0100 CAMEL-15844: Camel components creating consumer should not do init/start logic in their constructors. --- components/camel-stomp/README.md | 20 -------------------- .../camel/component/stomp/StompConsumer.java | 2 +- .../camel/component/weather/WeatherConsumer.java | 11 ++++++++--- .../camel/component/weather/WeatherEndpoint.java | 2 +- .../camel/component/web3j/Web3jConsumer.java | 22 ++++------------------ 5 files changed, 14 insertions(+), 43 deletions(-) diff --git a/components/camel-stomp/README.md b/components/camel-stomp/README.md deleted file mode 100644 index 8341d09..0000000 --- a/components/camel-stomp/README.md +++ /dev/null @@ -1,20 +0,0 @@ -camel-stomp -=========== - -Camel component used for communicating with [Stomp] (http://stomp.github.io/) compliant message brokers, like [Apache ActiveMQ](http://activemq.apache.org) or [ActiveMQ Apollo](http://activemq.apache.org/apollo/). - -URI format ----------- - - stomp:destination - -Where destination is broker specific. With ActiveMQ you can use queues and topics in the form of - - stomp:queue:test - -Samples -------- - - from("direct:foo").to("stomp:queue:test") - - diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConsumer.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConsumer.java index dc2ed63..ff28a15 100644 --- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConsumer.java +++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConsumer.java @@ -28,7 +28,6 @@ public class StompConsumer extends DefaultConsumer { public StompConsumer(Endpoint endpoint, Processor processor) { super(endpoint, processor); - id = getEndpoint().getNextId(); } @Override @@ -38,6 +37,7 @@ public class StompConsumer extends DefaultConsumer { @Override protected void doStart() throws Exception { + id = getEndpoint().getNextId(); getEndpoint().addConsumer(this); super.doStart(); } diff --git a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConsumer.java b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConsumer.java index ec98e10..850f3da 100644 --- a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConsumer.java +++ b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConsumer.java @@ -33,11 +33,10 @@ public class WeatherConsumer extends ScheduledPollConsumer { private static final Logger LOG = LoggerFactory.getLogger(WeatherConsumer.class); - private final String query; + private String query; - public WeatherConsumer(WeatherEndpoint endpoint, Processor processor, String query) { + public WeatherConsumer(WeatherEndpoint endpoint, Processor processor) { super(endpoint, processor); - this.query = query; } @Override @@ -46,6 +45,12 @@ public class WeatherConsumer extends ScheduledPollConsumer { } @Override + protected void doStart() throws Exception { + super.doStart(); + this.query = this.getEndpoint().getWeatherQuery().getQuery(); + } + + @Override protected int poll() throws Exception { LOG.debug("Going to execute the Weather query {}", query); HttpClient httpClient = getEndpoint().getConfiguration().getHttpClient(); diff --git a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java index 24cdef7..70cf52d 100644 --- a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java +++ b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java @@ -45,7 +45,7 @@ public class WeatherEndpoint extends DefaultPollingEndpoint { @Override public Consumer createConsumer(Processor processor) throws Exception { - WeatherConsumer answer = new WeatherConsumer(this, processor, getWeatherQuery().getQuery()); + WeatherConsumer answer = new WeatherConsumer(this, processor); // ScheduledPollConsumer default delay is 500 millis and that is too often for polling a feed, so we override // with a new default value. End user can override this value by providing a consumer.delay parameter diff --git a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConsumer.java b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConsumer.java index fed6c12..1cbc8ff 100644 --- a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConsumer.java +++ b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jConsumer.java @@ -35,14 +35,13 @@ import static org.apache.camel.component.web3j.Web3jHelper.toDefaultBlockParamet */ public class Web3jConsumer extends DefaultConsumer { private static final Logger LOG = LoggerFactory.getLogger(Web3jConsumer.class); - private final Web3j web3j; private final Web3jConfiguration configuration; + private Web3j web3j; private Subscription subscription; private Web3jEndpoint endpoint; public Web3jConsumer(Web3jEndpoint endpoint, Processor processor, Web3jConfiguration configuration) { super(endpoint, processor); - this.web3j = endpoint.getWeb3j(); this.endpoint = endpoint; this.configuration = configuration; } @@ -55,6 +54,9 @@ public class Web3jConsumer extends DefaultConsumer { @Override protected void doStart() throws Exception { super.doStart(); + + this.web3j = getEndpoint().getWeb3j(); + LOG.info("Subscribing to: {}", endpoint.getNodeAddress()); switch (configuration.getOperation()) { case Web3jConstants.ETH_LOG_OBSERVABLE: @@ -163,22 +165,6 @@ public class Web3jConsumer extends DefaultConsumer { LOG.info("Subscribed: {}", this.configuration); } - private EthFilter buildEthFilter() { - EthFilter ethFilter = new EthFilter( - toDefaultBlockParameter(configuration.getFromBlock()), toDefaultBlockParameter(configuration.getToBlock()), - configuration.getAddresses()); - if (configuration.getTopics() != null) { - for (String topic : configuration.getTopics()) { - if (topic != null && topic.length() > 0) { - ethFilter.addSingleTopic(topic); - } else { - ethFilter.addNullTopic(); - } - } - } - return ethFilter; - } - private void ethBlockHashObservable(String x) { LOG.debug("processEthBlock {}", x); Exchange exchange = this.getEndpoint().createExchange();
