You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/01/23 11:12:29 UTC
[camel] 08/09: CAMEL-15844: Camel components creating consumer
should not do init/start logic in their constructors.
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 <cl...@gmail.com>
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();