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/02/06 13:55:56 UTC
[camel] 01/02: CAMEL-16102: Source code generate @InvokeOnHeader
for reflection free
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 11b34af8a60686b5250aff858644df34ad402501
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Feb 6 13:19:14 2021 +0100
CAMEL-16102: Source code generate @InvokeOnHeader for reflection free
---
.../camel/catalog/components/spring-redis.json | 1 +
.../camel/catalog/docs/spring-redis-component.adoc | 3 +-
.../AtomixMapProducerInvokeOnHeaderFactory.java | 48 ++
...omixMessagingProducerInvokeOnHeaderFactory.java | 28 +
...tomixMultiMapProducerInvokeOnHeaderFactory.java | 44 ++
.../AtomixQueueProducerInvokeOnHeaderFactory.java | 42 ++
.../AtomixSetProducerInvokeOnHeaderFactory.java | 36 ++
.../AtomixValueProducerInvokeOnHeaderFactory.java | 32 ++
...l.component.atomix.client.map.AtomixMapProducer | 2 +
...atomix.client.messaging.AtomixMessagingProducer | 2 +
...t.atomix.client.multimap.AtomixMultiMapProducer | 2 +
...mponent.atomix.client.queue.AtomixQueueProducer | 2 +
...l.component.atomix.client.set.AtomixSetProducer | 2 +
...mponent.atomix.client.value.AtomixValueProducer | 2 +
.../atomix/AtomixAsyncMessageProcessor.java | 8 +-
.../client/AbstractAtomixClientProducer.java | 81 +--
.../atomix/client/map/AtomixMapProducer.java | 56 +-
.../client/messaging/AtomixMessagingProducer.java | 16 +-
.../client/multimap/AtomixMultiMapProducer.java | 118 ++--
.../atomix/client/queue/AtomixQueueProducer.java | 44 +-
.../atomix/client/set/AtomixSetProducer.java | 32 +-
.../atomix/client/value/AtomixValueProducer.java | 24 +-
...CaffeineCacheProducerInvokeOnHeaderFactory.java | 38 ++
...eineLoadCacheProducerInvokeOnHeaderFactory.java | 38 ++
....component.caffeine.cache.CaffeineCacheProducer | 2 +
...mponent.caffeine.load.CaffeineLoadCacheProducer | 2 +
.../ConsulAgentProducerInvokeOnHeaderFactory.java | 32 ++
...ConsulCatalogProducerInvokeOnHeaderFactory.java | 38 ++
...ulCoordinatesProducerInvokeOnHeaderFactory.java | 28 +
.../ConsulEventProducerInvokeOnHeaderFactory.java | 28 +
.../ConsulHealthProducerInvokeOnHeaderFactory.java | 32 ++
...onsulKeyValueProducerInvokeOnHeaderFactory.java | 42 ++
...PreparedQueryProducerInvokeOnHeaderFactory.java | 30 ++
...ConsulSessionProducerInvokeOnHeaderFactory.java | 34 ++
.../ConsulStatusProducerInvokeOnHeaderFactory.java | 28 +
...l.component.consul.endpoint.ConsulAgentProducer | 2 +
...component.consul.endpoint.ConsulCatalogProducer | 2 +
...onent.consul.endpoint.ConsulCoordinatesProducer | 2 +
...l.component.consul.endpoint.ConsulEventProducer | 2 +
....component.consul.endpoint.ConsulHealthProducer | 2 +
...omponent.consul.endpoint.ConsulKeyValueProducer | 2 +
...ent.consul.endpoint.ConsulPreparedQueryProducer | 2 +
...component.consul.endpoint.ConsulSessionProducer | 2 +
....component.consul.endpoint.ConsulStatusProducer | 2 +
.../consul/endpoint/ConsulAgentProducer.java | 26 +-
.../consul/endpoint/ConsulStatusProducer.java | 14 +-
.../corda/CordaProducerInvokeOnHeaderFactory.java | 100 ++++
.../org.apache.camel.component.corda.CordaProducer | 2 +
.../EhcacheProducerInvokeOnHeaderFactory.java | 42 ++
....apache.camel.component.ehcache.EhcacheProducer | 2 +
.../camel-infinispan-common/pom.xml | 39 --
.../InfinispanProducerInvokeOnHeaderFactory.java | 62 +++
...e.camel.component.infinispan.InfinispanProducer | 2 +
.../services/org/apache/camel/other.properties | 7 +
.../src/generated/resources/infinispan-common.json | 14 +
.../component/infinispan/InfinispanProducer.java | 16 -
...ispanEmbeddedProducerInvokeOnHeaderFactory.java | 28 +
....infinispan.embedded.InfinispanEmbeddedProducer | 2 +
...inispanRemoteProducerInvokeOnHeaderFactory.java | 28 +
...nent.infinispan.remote.InfinispanRemoteProducer | 2 +
...ujiServiceNowProducerInvokeOnHeaderFactory.java | 27 +
...nkiServiceNowProducerInvokeOnHeaderFactory.java | 34 ++
...servicenow.releases.fuji.FujiServiceNowProducer | 2 +
...ow.releases.helsinki.HelsinkiServiceNowProducer | 2 +
.../releases/fuji/FujiServiceNowProducer.java | 27 +-
.../helsinki/HelsinkiServiceNowProducer.java | 85 ++-
.../component/redis/RedisComponentConfigurer.java | 11 +
.../redis/RedisProducerInvokeOnHeaderFactory.java | 236 ++++++++
.../org.apache.camel.component.redis.RedisProducer | 2 +
.../apache/camel/component/redis/spring-redis.json | 1 +
.../src/main/docs/spring-redis-component.adoc | 3 +-
.../redis/AbstractRedisProcessorCreator.java | 56 --
.../component/redis/AllRedisProcessorsCreator.java | 46 --
.../org/apache/camel/component/redis/Command.java | 2 +-
.../redis/ConnectionRedisProcessorsCreator.java | 33 --
.../camel/component/redis/ExchangeConverter.java | 2 +-
.../component/redis/GeoRedisProcessorsCreator.java | 47 --
.../redis/HashesRedisProcessorsCreator.java | 54 --
.../redis/KeysRedisProcessorsCreator.java | 53 --
.../redis/ListsRedisProcessorsCreator.java | 69 ---
.../redis/PubSubRedisProcessorsCreator.java | 34 --
.../camel/component/redis/RedisComponent.java | 18 +-
.../camel/component/redis/RedisEndpoint.java | 15 +-
.../camel/component/redis/RedisProducer.java | 598 ++++++++++++++++++++-
.../redis/SetsRedisProcessorsCreator.java | 59 --
.../redis/SortedSetsRedisProcessorsCreator.java | 73 ---
.../redis/StringsRedisProcessorsCreator.java | 66 ---
.../redis/TransactionRedisProcessorsCreator.java | 35 --
.../web3j/Web3jProducerInvokeOnHeaderFactory.java | 168 ++++++
.../org.apache.camel.component.web3j.Web3jProducer | 2 +
.../camel/component/web3j/Web3jProducer.java | 10 -
.../java/org/apache/camel/spi/InvokeOnHeader.java | 28 +-
.../apache/camel/spi/InvokeOnHeaderStrategy.java | 43 ++
.../java/org/apache/camel/spi/InvokeOnHeaders.java | 41 --
.../impl/engine/DefaultUriFactoryResolver.java | 7 +-
.../dsl/SpringRedisComponentBuilderFactory.java | 17 +
.../apache/camel/support/BaseSelectorProducer.java | 56 --
.../camel/support/HeaderSelectorProducer.java | 149 ++---
.../modules/ROOT/pages/spring-redis-component.adoc | 3 +-
.../maven/packaging/GenerateComponentMojo.java | 2 +
.../packaging/GenerateInvokeOnHeaderMojo.java | 276 ++++++++++
.../apache/camel/maven/packaging/GenerateMojo.java | 2 +
102 files changed, 2696 insertions(+), 1199 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/spring-redis.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/spring-redis.json
index baa7b66..f219a0b 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/spring-redis.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/spring-redis.json
@@ -22,6 +22,7 @@
"lenientProperties": false
},
"componentProperties": {
+ "redisTemplate": { "kind": "property", "displayName": "Redis Template", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.springframework.data.redis.core.RedisTemplate", "deprecated": false, "autowired": true, "secret": false, "description": "Reference to a pre-configured RedisTemplate instance to use." },
"bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...]
"lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
"autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/spring-redis-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/spring-redis-component.adoc
index c24bb95..ce57b66 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/spring-redis-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/spring-redis-component.adoc
@@ -44,13 +44,14 @@ You can append query options to the URI in the following format,
// component options: START
-The Spring Redis component supports 3 options, which are listed below.
+The Spring Redis component supports 4 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
+| *redisTemplate* (common) | *Autowired* Reference to a pre-configured RedisTemplate instance to use. | | RedisTemplate
| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/map/AtomixMapProducerInvokeOnHeaderFactory.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/map/AtomixMapProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..3480b94
--- /dev/null
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/map/AtomixMapProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,48 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.atomix.client.map;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.atomix.client.map.AtomixMapProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class AtomixMapProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.atomix.client.map.AtomixMapProducer target = (org.apache.camel.component.atomix.client.map.AtomixMapProducer) obj;
+ switch (key) {
+ case "clear":
+ case "CLEAR": target.onClear(exchange.getMessage(), callback); return callback;
+ case "contains_key":
+ case "CONTAINS_KEY": target.onContainsKey(exchange.getMessage(), callback); return callback;
+ case "contains_value":
+ case "CONTAINS_VALUE": target.onContainsValue(exchange.getMessage(), callback); return callback;
+ case "entry_set":
+ case "ENTRY_SET": target.onEntrySet(exchange.getMessage(), callback); return callback;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage(), callback); return callback;
+ case "is_empty":
+ case "IS_EMPTY": target.onIsEmpty(exchange.getMessage(), callback); return callback;
+ case "put":
+ case "PUT": target.onPut(exchange.getMessage(), callback); return callback;
+ case "put_if_absent":
+ case "PUT_IF_ABSENT": target.onPutIfAbsent(exchange.getMessage(), callback); return callback;
+ case "remove":
+ case "REMOVE": target.onRemove(exchange.getMessage(), callback); return callback;
+ case "replace":
+ case "REPLACE": target.onReplace(exchange.getMessage(), callback); return callback;
+ case "size":
+ case "SIZE": target.onSize(exchange.getMessage(), callback); return callback;
+ case "values":
+ case "VALUES": target.onValues(exchange.getMessage(), callback); return callback;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingProducerInvokeOnHeaderFactory.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..995bae3
--- /dev/null
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,28 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.atomix.client.messaging;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.atomix.client.messaging.AtomixMessagingProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class AtomixMessagingProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.atomix.client.messaging.AtomixMessagingProducer target = (org.apache.camel.component.atomix.client.messaging.AtomixMessagingProducer) obj;
+ switch (key) {
+ case "broadcast":
+ case "BROADCAST": target.onBroadcast(exchange.getMessage(), callback); return callback;
+ case "direct":
+ case "DIRECT": target.onDirect(exchange.getMessage(), callback); return callback;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapProducerInvokeOnHeaderFactory.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..8056159
--- /dev/null
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,44 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.atomix.client.multimap;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.atomix.client.multimap.AtomixMultiMapProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class AtomixMultiMapProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.atomix.client.multimap.AtomixMultiMapProducer target = (org.apache.camel.component.atomix.client.multimap.AtomixMultiMapProducer) obj;
+ switch (key) {
+ case "clear":
+ case "CLEAR": target.onClear(exchange.getMessage(), callback); return callback;
+ case "contains_entry":
+ case "CONTAINS_ENTRY": target.onContainsEntry(exchange.getMessage(), callback); return callback;
+ case "contains_key":
+ case "CONTAINS_KEY": target.onContainsKey(exchange.getMessage(), callback); return callback;
+ case "contains_value":
+ case "CONTAINS_VALUE": target.onContainsValue(exchange.getMessage(), callback); return callback;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage(), callback); return callback;
+ case "is_empty":
+ case "IS_EMPTY": target.onIsEmpty(exchange.getMessage(), callback); return callback;
+ case "put":
+ case "PUT": target.onPut(exchange.getMessage(), callback); return callback;
+ case "remove":
+ case "REMOVE": target.onRemove(exchange.getMessage(), callback); return callback;
+ case "remove_value":
+ case "REMOVE_VALUE": target.onRemoveValue(exchange.getMessage(), callback); return callback;
+ case "size":
+ case "SIZE": target.onSize(exchange.getMessage(), callback); return callback;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/queue/AtomixQueueProducerInvokeOnHeaderFactory.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/queue/AtomixQueueProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..e62c138
--- /dev/null
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/queue/AtomixQueueProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,42 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.atomix.client.queue;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.atomix.client.queue.AtomixQueueProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class AtomixQueueProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.atomix.client.queue.AtomixQueueProducer target = (org.apache.camel.component.atomix.client.queue.AtomixQueueProducer) obj;
+ switch (key) {
+ case "add":
+ case "ADD": target.onAdd(exchange.getMessage(), callback); return callback;
+ case "clear":
+ case "CLEAR": target.onClear(exchange.getMessage(), callback); return callback;
+ case "contains":
+ case "CONTAINS": target.onContains(exchange.getMessage(), callback); return callback;
+ case "is_empty":
+ case "IS_EMPTY": target.onIsEmpty(exchange.getMessage(), callback); return callback;
+ case "offer":
+ case "OFFER": target.onOffer(exchange.getMessage(), callback); return callback;
+ case "peek":
+ case "PEEK": target.onPeek(exchange.getMessage(), callback); return callback;
+ case "poll":
+ case "POLL": target.onPoll(exchange.getMessage(), callback); return callback;
+ case "remove":
+ case "REMOVE": target.onRemove(exchange.getMessage(), callback); return callback;
+ case "size":
+ case "SIZE": target.onSize(exchange.getMessage(), callback); return callback;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/set/AtomixSetProducerInvokeOnHeaderFactory.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/set/AtomixSetProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..9311986
--- /dev/null
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/set/AtomixSetProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,36 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.atomix.client.set;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.atomix.client.set.AtomixSetProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class AtomixSetProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.atomix.client.set.AtomixSetProducer target = (org.apache.camel.component.atomix.client.set.AtomixSetProducer) obj;
+ switch (key) {
+ case "add":
+ case "ADD": target.onAdd(exchange.getMessage(), callback); return callback;
+ case "clear":
+ case "CLEAR": target.onClear(exchange.getMessage(), callback); return callback;
+ case "contains":
+ case "CONTAINS": target.onContains(exchange.getMessage(), callback); return callback;
+ case "is_empty":
+ case "IS_EMPTY": target.onIsEmpty(exchange.getMessage(), callback); return callback;
+ case "remove":
+ case "REMOVE": target.onRemove(exchange.getMessage(), callback); return callback;
+ case "size":
+ case "SIZE": target.onSize(exchange.getMessage(), callback); return callback;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/value/AtomixValueProducerInvokeOnHeaderFactory.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/value/AtomixValueProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..2aef392
--- /dev/null
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/value/AtomixValueProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,32 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.atomix.client.value;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.atomix.client.value.AtomixValueProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class AtomixValueProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.atomix.client.value.AtomixValueProducer target = (org.apache.camel.component.atomix.client.value.AtomixValueProducer) obj;
+ switch (key) {
+ case "compare_and_set":
+ case "COMPARE_AND_SET": target.onCompareAndSet(exchange.getMessage(), callback); return callback;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage(), callback); return callback;
+ case "get_and_set":
+ case "GET_AND_SET": target.onGetAndSet(exchange.getMessage(), callback); return callback;
+ case "set":
+ case "SET": target.onSet(exchange.getMessage(), callback); return callback;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.map.AtomixMapProducer b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.map.AtomixMapProducer
new file mode 100644
index 0000000..ad0a22c
--- /dev/null
+++ b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.map.AtomixMapProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.atomix.client.map.AtomixMapProducerInvokeOnHeaderFactory
diff --git a/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.messaging.AtomixMessagingProducer b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.messaging.AtomixMessagingProducer
new file mode 100644
index 0000000..845cc5b
--- /dev/null
+++ b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.messaging.AtomixMessagingProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.atomix.client.messaging.AtomixMessagingProducerInvokeOnHeaderFactory
diff --git a/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.multimap.AtomixMultiMapProducer b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.multimap.AtomixMultiMapProducer
new file mode 100644
index 0000000..d4e57ec
--- /dev/null
+++ b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.multimap.AtomixMultiMapProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.atomix.client.multimap.AtomixMultiMapProducerInvokeOnHeaderFactory
diff --git a/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.queue.AtomixQueueProducer b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.queue.AtomixQueueProducer
new file mode 100644
index 0000000..67df94d
--- /dev/null
+++ b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.queue.AtomixQueueProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.atomix.client.queue.AtomixQueueProducerInvokeOnHeaderFactory
diff --git a/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.set.AtomixSetProducer b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.set.AtomixSetProducer
new file mode 100644
index 0000000..03bb4d2
--- /dev/null
+++ b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.set.AtomixSetProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.atomix.client.set.AtomixSetProducerInvokeOnHeaderFactory
diff --git a/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.value.AtomixValueProducer b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.value.AtomixValueProducer
new file mode 100644
index 0000000..2ca7b91
--- /dev/null
+++ b/components/camel-atomix/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.atomix.client.value.AtomixValueProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.atomix.client.value.AtomixValueProducerInvokeOnHeaderFactory
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/AtomixAsyncMessageProcessor.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/AtomixAsyncMessageProcessor.java
index 3d25a9e..246ad32 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/AtomixAsyncMessageProcessor.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/AtomixAsyncMessageProcessor.java
@@ -21,11 +21,7 @@ import org.apache.camel.Message;
@FunctionalInterface
public interface AtomixAsyncMessageProcessor {
- /**
- * @param message
- * @param callback
- * @return
- * @throws Exception
- */
+
boolean process(Message message, AsyncCallback callback) throws Exception;
+
}
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientProducer.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientProducer.java
index f11ada9..f39d217 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientProducer.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/AbstractAtomixClientProducer.java
@@ -16,74 +16,31 @@
*/
package org.apache.camel.component.atomix.client;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import io.atomix.resource.Resource;
import org.apache.camel.AsyncCallback;
-import org.apache.camel.Exchange;
import org.apache.camel.Message;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.component.atomix.AtomixAsyncMessageProcessor;
-import org.apache.camel.spi.InvokeOnHeader;
-import org.apache.camel.support.DefaultAsyncProducer;
+import org.apache.camel.support.HeaderSelectorProducer;
import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_ACTION_HAS_RESULT;
-import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_NAME;
-import static org.apache.camel.support.ObjectHelper.invokeMethodSafe;
+import static org.apache.camel.component.atomix.client.AtomixClientConstants.*;
public abstract class AbstractAtomixClientProducer<E extends AbstractAtomixClientEndpoint, R extends Resource>
- extends DefaultAsyncProducer {
+ extends HeaderSelectorProducer {
private static final Logger LOG = LoggerFactory.getLogger(AbstractAtomixClientProducer.class);
- private final Map<String, AtomixAsyncMessageProcessor> processors;
private ConcurrentMap<String, R> resources;
- protected AbstractAtomixClientProducer(E endpoint) {
- super(endpoint);
-
- this.processors = new HashMap<>();
+ protected AbstractAtomixClientProducer(E endpoint, String defaultHeader) {
+ super(endpoint, RESOURCE_ACTION, defaultHeader);
this.resources = new ConcurrentHashMap<>();
}
- @Override
- protected void doInit() throws Exception {
- for (final Method method : getClass().getDeclaredMethods()) {
- InvokeOnHeader[] annotations = method.getAnnotationsByType(InvokeOnHeader.class);
- if (annotations != null && annotations.length > 0) {
- for (InvokeOnHeader annotation : annotations) {
- bind(annotation, method);
- }
- }
- }
-
- super.doInit();
- }
-
- @Override
- public boolean process(Exchange exchange, AsyncCallback callback) {
- final Message message = exchange.getIn();
- final String key = getProcessorKey(message);
-
- AtomixAsyncMessageProcessor processor = this.processors.get(key);
- if (processor != null) {
- try {
- return processor.process(message, callback);
- } catch (Exception e) {
- throw new RuntimeCamelException(e);
- }
- } else {
- throw new RuntimeCamelException("No handler for action " + key);
- }
- }
-
// **********************************
//
// **********************************
@@ -118,36 +75,8 @@ public abstract class AbstractAtomixClientProducer<E extends AbstractAtomixClien
return resources.computeIfAbsent(resourceName, name -> createResource(name));
}
- protected abstract String getProcessorKey(Message message);
-
protected abstract String getResourceName(Message message);
protected abstract R createResource(String name);
- // ************************************
- // Binding helpers
- // ************************************
-
- private void bind(InvokeOnHeader annotation, final Method method) {
- if (method.getParameterCount() == 2) {
-
- if (!Message.class.isAssignableFrom(method.getParameterTypes()[0])) {
- throw new IllegalArgumentException("First argument should be of type Message");
- }
- if (!AsyncCallback.class.isAssignableFrom(method.getParameterTypes()[1])) {
- throw new IllegalArgumentException("Second argument should be of type AsyncCallback");
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("bind key={}, class={}, method={}",
- annotation.value(), this.getClass(), method.getName());
- }
-
- this.processors.put(annotation.value(), (m, c) -> (boolean) invokeMethodSafe(method, this, m, c));
- } else {
- throw new IllegalArgumentException(
- "Illegal number of parameters for method: " + method.getName() + ", required: 2, found: "
- + method.getParameterCount());
- }
- }
}
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/map/AtomixMapProducer.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/map/AtomixMapProducer.java
index 3d8eac4..ca79ee5 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/map/AtomixMapProducer.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/map/AtomixMapProducer.java
@@ -26,7 +26,6 @@ import org.apache.camel.component.atomix.client.AbstractAtomixClientProducer;
import org.apache.camel.spi.InvokeOnHeader;
import org.apache.camel.util.ObjectHelper;
-import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_ACTION;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_DEFAULT_VALUE;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_KEY;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_NAME;
@@ -39,7 +38,7 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
private final AtomixMapConfiguration configuration;
protected AtomixMapProducer(AtomixMapEndpoint endpoint) {
- super(endpoint);
+ super(endpoint, endpoint.getConfiguration().getDefaultAction().name());
this.configuration = endpoint.getConfiguration();
}
@@ -53,7 +52,7 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
}
@InvokeOnHeader("PUT")
- boolean onPut(Message message, AsyncCallback callback) throws Exception {
+ void onPut(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final Object key = message.getHeader(RESOURCE_KEY, configuration::getKey, Object.class);
final Object val = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -69,12 +68,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.put(key, val).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("PUT_IF_ABSENT")
- boolean onPutIfAbsent(Message message, AsyncCallback callback) throws Exception {
+ void onPutIfAbsent(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final Object key = message.getHeader(RESOURCE_KEY, configuration::getKey, Object.class);
final Object val = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -90,12 +87,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.putIfAbsent(key, val).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("GET")
- boolean onGet(Message message, AsyncCallback callback) throws Exception {
+ void onGet(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final Object key = message.getHeader(RESOURCE_KEY, configuration::getKey, Object.class);
final Object defaultValue = message.getHeader(RESOURCE_DEFAULT_VALUE);
@@ -121,22 +116,18 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
result -> processResult(message, callback, result));
}
}
-
- return false;
}
@InvokeOnHeader("CLEAR")
- boolean onClear(Message message, AsyncCallback callback) throws Exception {
+ void onClear(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
map.clear().thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("SIZE")
- boolean onSize(Message message, AsyncCallback callback) throws Exception {
+ void onSize(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -148,12 +139,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.size().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("IS_EMPTY")
- boolean onIsEmpty(Message message, AsyncCallback callback) throws Exception {
+ void onIsEmpty(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -165,12 +154,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.isEmpty().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("ENTRY_SET")
- boolean onEntrySet(Message message, AsyncCallback callback) throws Exception {
+ void onEntrySet(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -182,12 +169,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.entrySet().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("VALUES")
- boolean onValues(Message message, AsyncCallback callback) throws Exception {
+ void onValues(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -199,12 +184,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.values().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("CONTAINS_KEY")
- boolean onContainsKey(Message message, AsyncCallback callback) throws Exception {
+ void onContainsKey(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -219,12 +202,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.containsKey(key).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("CONTAINS_VALUE")
- boolean onContainsValue(Message message, AsyncCallback callback) throws Exception {
+ void onContainsValue(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -239,12 +220,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.containsValue(value).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("REMOVE")
- boolean onRemove(Message message, AsyncCallback callback) throws Exception {
+ void onRemove(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final Object key = message.getHeader(RESOURCE_KEY, message::getBody, Object.class);
final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -258,12 +237,10 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
map.remove(key).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("REPLACE")
- boolean onReplace(Message message, AsyncCallback callback) throws Exception {
+ void onReplace(Message message, AsyncCallback callback) throws Exception {
final DistributedMap<Object, Object> map = getResource(message);
final long ttl = getResourceTtl(message);
final Object key = message.getHeader(RESOURCE_KEY, configuration::getKey, Object.class);
@@ -290,8 +267,6 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
result -> processResult(message, callback, result));
}
}
-
- return false;
}
// *********************************
@@ -299,11 +274,6 @@ public final class AtomixMapProducer extends AbstractAtomixClientProducer<Atomix
// *********************************
@Override
- protected String getProcessorKey(Message message) {
- return message.getHeader(RESOURCE_ACTION, configuration::getDefaultAction, String.class);
- }
-
- @Override
protected String getResourceName(Message message) {
return message.getHeader(RESOURCE_NAME, getAtomixEndpoint()::getResourceName, String.class);
}
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingProducer.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingProducer.java
index 1dacf9e..a062824 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingProducer.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingProducer.java
@@ -28,7 +28,6 @@ import org.apache.camel.util.ObjectHelper;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.BROADCAST_TYPE;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.CHANNEL_NAME;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.MEMBER_NAME;
-import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_ACTION;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_NAME;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_VALUE;
import static org.apache.camel.component.atomix.client.messaging.AtomixMessaging.OPTIONS_BROADCAST;
@@ -39,7 +38,7 @@ public final class AtomixMessagingProducer extends AbstractAtomixClientProducer<
private final AtomixMessagingConfiguration configuration;
protected AtomixMessagingProducer(AtomixMessagingEndpoint endpoint) {
- super(endpoint);
+ super(endpoint, endpoint.getConfiguration().getDefaultAction().name());
this.configuration = endpoint.getConfiguration();
}
@@ -48,7 +47,7 @@ public final class AtomixMessagingProducer extends AbstractAtomixClientProducer<
// *********************************
@InvokeOnHeader("DIRECT")
- boolean onDirect(Message message, AsyncCallback callback) throws Exception {
+ void onDirect(Message message, AsyncCallback callback) throws Exception {
final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
final String memberName = message.getHeader(MEMBER_NAME, configuration::getMemberName, String.class);
final String channelName = message.getHeader(CHANNEL_NAME, configuration::getChannelName, String.class);
@@ -63,12 +62,10 @@ public final class AtomixMessagingProducer extends AbstractAtomixClientProducer<
producer.send(value).thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("BROADCAST")
- boolean onBroadcast(Message message, AsyncCallback callback) throws Exception {
+ void onBroadcast(Message message, AsyncCallback callback) throws Exception {
final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
final String channelName = message.getHeader(CHANNEL_NAME, configuration::getChannelName, String.class);
final AtomixMessaging.BroadcastType type
@@ -86,8 +83,6 @@ public final class AtomixMessagingProducer extends AbstractAtomixClientProducer<
producer.send(value).thenRun(
() -> processResult(message, callback, null));
-
- return false;
}
// *********************************
@@ -95,11 +90,6 @@ public final class AtomixMessagingProducer extends AbstractAtomixClientProducer<
// *********************************
@Override
- protected String getProcessorKey(Message message) {
- return message.getHeader(RESOURCE_ACTION, configuration::getDefaultAction, String.class);
- }
-
- @Override
protected String getResourceName(Message message) {
return message.getHeader(RESOURCE_NAME, getAtomixEndpoint()::getResourceName, String.class);
}
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapProducer.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapProducer.java
index 4e2972e..4d89c2f 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapProducer.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapProducer.java
@@ -26,7 +26,6 @@ import org.apache.camel.component.atomix.client.AbstractAtomixClientProducer;
import org.apache.camel.spi.InvokeOnHeader;
import org.apache.camel.util.ObjectHelper;
-import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_ACTION;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_KEY;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_NAME;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_READ_CONSISTENCY;
@@ -37,7 +36,7 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
private final AtomixMultiMapConfiguration configuration;
protected AtomixMultiMapProducer(AtomixMultiMapEndpoint endpoint) {
- super(endpoint);
+ super(endpoint, endpoint.getConfiguration().getDefaultAction().name());
this.configuration = endpoint.getConfiguration();
}
@@ -51,7 +50,7 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
}
@InvokeOnHeader("PUT")
- boolean onPut(Message message, AsyncCallback callback) throws Exception {
+ void onPut(Message message, AsyncCallback callback) throws Exception {
final DistributedMultiMap<Object, Object> map = getResource(message);
final Object key = message.getHeader(RESOURCE_KEY, configuration::getKey, Object.class);
final Object val = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -67,12 +66,10 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
map.put(key, val).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("GET")
- boolean onGet(Message message, AsyncCallback callback) throws Exception {
+ void onGet(Message message, AsyncCallback callback) throws Exception {
final DistributedMultiMap<Object, Object> map = getResource(message);
final Object key = message.getHeader(RESOURCE_KEY, configuration::getKey, Object.class);
final ReadConsistency consistency
@@ -87,22 +84,18 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
map.get(key).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("CLEAR")
- boolean onClear(Message message, AsyncCallback callback) throws Exception {
+ void onClear(Message message, AsyncCallback callback) throws Exception {
final DistributedMultiMap<Object, Object> map = getResource(message);
map.clear().thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("SIZE")
- boolean onSize(Message message, AsyncCallback callback) throws Exception {
+ void onSize(Message message, AsyncCallback callback) throws Exception {
final DistributedMultiMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -125,12 +118,10 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
result -> processResult(message, callback, result));
}
}
-
- return false;
}
@InvokeOnHeader("IS_EMPTY")
- boolean onIsEmpty(Message message, AsyncCallback callback) throws Exception {
+ void onIsEmpty(Message message, AsyncCallback callback) throws Exception {
final DistributedMultiMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -142,12 +133,10 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
map.isEmpty().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("CONTAINS_KEY")
- boolean onContainsKey(Message message, AsyncCallback callback) throws Exception {
+ void onContainsKey(Message message, AsyncCallback callback) throws Exception {
final DistributedMultiMap<Object, Object> map = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -162,56 +151,48 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
map.containsKey(key).thenAccept(
result -> processResult(message, callback, result));
}
+ }
+
+ @InvokeOnHeader("CONTAINS_VALUE")
+ void onContainsValue(Message message, AsyncCallback callback) throws Exception {
+ final DistributedMultiMap<Object, Object> map = getResource(message);
+ final ReadConsistency consistency
+ = message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
+ final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
- return false;
+ ObjectHelper.notNull(value, RESOURCE_VALUE);
+
+ if (consistency != null) {
+ map.containsValue(value, consistency).thenAccept(
+ result -> processResult(message, callback, result));
+ } else {
+ map.containsValue(value).thenAccept(
+ result -> processResult(message, callback, result));
+ }
}
- // @InvokeOnHeader("CONTAINS_VALUE")
- // boolean onContainsValue(Message message, AsyncCallback callback) throws Exception {
- // final DistributedMultiMap<Object, Object> map = getResource(message);
- // final ReadConsistency consistency = message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
- // final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
- //
- // ObjectHelper.notNull(value, RESOURCE_VALUE);
- //
- // if (consistency != null) {
- // map.containsValue(value, consistency).thenAccept(
- // result -> processResult(message, callback, result)
- // );
- // } else {
- // map.containsValue(value).thenAccept(
- // result -> processResult(message, callback, result)
- // );
- // }
- //
- // return false;
- // }
-
- // @InvokeOnHeader("CONTAINS_ENTRY")
- // boolean onContainsEntry(Message message, AsyncCallback callback) throws Exception {
- // final DistributedMultiMap<Object, Object> map = getResource(message);
- // final ReadConsistency consistency = message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
- // final Object key = message.getHeader(RESOURCE_KEY, message::getBody, Object.class);
- // final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
- //
- // ObjectHelper.notNull(key, RESOURCE_VALUE);
- // ObjectHelper.notNull(value, RESOURCE_KEY);
- //
- // if (consistency != null) {
- // map.containsEntry(key, value, consistency).thenAccept(
- // result -> processResult(message, callback, result)
- // );
- // } else {
- // map.containsEntry(key, value).thenAccept(
- // result -> processResult(message, callback, result)
- // );
- // }
- //
- // return false;
- // }
+ @InvokeOnHeader("CONTAINS_ENTRY")
+ void onContainsEntry(Message message, AsyncCallback callback) throws Exception {
+ final DistributedMultiMap<Object, Object> map = getResource(message);
+ final ReadConsistency consistency
+ = message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
+ final Object key = message.getHeader(RESOURCE_KEY, message::getBody, Object.class);
+ final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
+
+ ObjectHelper.notNull(key, RESOURCE_VALUE);
+ ObjectHelper.notNull(value, RESOURCE_KEY);
+
+ if (consistency != null) {
+ map.containsEntry(key, value, consistency).thenAccept(
+ result -> processResult(message, callback, result));
+ } else {
+ map.containsEntry(key, value).thenAccept(
+ result -> processResult(message, callback, result));
+ }
+ }
@InvokeOnHeader("REMOVE")
- boolean onRemove(Message message, AsyncCallback callback) throws Exception {
+ void onRemove(Message message, AsyncCallback callback) throws Exception {
final DistributedMultiMap<Object, Object> map = getResource(message);
final Object key = message.getHeader(RESOURCE_KEY, message::getBody, Object.class);
final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -225,12 +206,10 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
map.remove(key).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("REMOVE_VALUE")
- boolean onRemoveValue(Message message, AsyncCallback callback) throws Exception {
+ void onRemoveValue(Message message, AsyncCallback callback) throws Exception {
final DistributedMultiMap<Object, Object> map = getResource(message);
final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -238,8 +217,6 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
map.removeValue(value).thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
// *********************************
@@ -247,11 +224,6 @@ public final class AtomixMultiMapProducer extends AbstractAtomixClientProducer<A
// *********************************
@Override
- protected String getProcessorKey(Message message) {
- return message.getHeader(RESOURCE_ACTION, configuration::getDefaultAction, String.class);
- }
-
- @Override
protected String getResourceName(Message message) {
return message.getHeader(RESOURCE_NAME, getAtomixEndpoint()::getResourceName, String.class);
}
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/queue/AtomixQueueProducer.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/queue/AtomixQueueProducer.java
index 5c3f21a..2415fdb 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/queue/AtomixQueueProducer.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/queue/AtomixQueueProducer.java
@@ -24,7 +24,6 @@ import org.apache.camel.component.atomix.client.AbstractAtomixClientProducer;
import org.apache.camel.spi.InvokeOnHeader;
import org.apache.camel.util.ObjectHelper;
-import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_ACTION;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_NAME;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_READ_CONSISTENCY;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_VALUE;
@@ -33,7 +32,7 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
private final AtomixQueueConfiguration configuration;
protected AtomixQueueProducer(AtomixQueueEndpoint endpoint) {
- super(endpoint);
+ super(endpoint, endpoint.getConfiguration().getDefaultAction().name());
this.configuration = endpoint.getConfiguration();
}
@@ -42,7 +41,7 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
// *********************************
@InvokeOnHeader("ADD")
- boolean onAdd(Message message, AsyncCallback callback) throws Exception {
+ void onAdd(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
final Object val = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -50,12 +49,10 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
queue.add(val).thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("OFFER")
- boolean onOffer(Message message, AsyncCallback callback) throws Exception {
+ void onOffer(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
final Object val = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -63,42 +60,34 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
queue.offer(val).thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("PEEK")
- boolean onPeek(Message message, AsyncCallback callback) throws Exception {
+ void onPeek(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
queue.peek().thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("POLL")
- boolean onPoll(Message message, AsyncCallback callback) throws Exception {
+ void onPoll(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
queue.poll().thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("CLEAR")
- boolean onClear(Message message, AsyncCallback callback) throws Exception {
+ void onClear(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
queue.clear().thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("CONTAINS")
- boolean onContains(Message message, AsyncCallback callback) throws Exception {
+ void onContains(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -113,12 +102,10 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
queue.contains(value).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("IS_EMPTY")
- boolean onIsEmpty(Message message, AsyncCallback callback) throws Exception {
+ void onIsEmpty(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -130,12 +117,10 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
queue.isEmpty().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("REMOVE")
- boolean onRemove(Message message, AsyncCallback callback) throws Exception {
+ void onRemove(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -146,12 +131,10 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
queue.remove(value).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("SIZE")
- boolean onSize(Message message, AsyncCallback callback) throws Exception {
+ void onSize(Message message, AsyncCallback callback) throws Exception {
final DistributedQueue<Object> queue = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -163,8 +146,6 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
queue.size().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
// *********************************
@@ -172,11 +153,6 @@ public final class AtomixQueueProducer extends AbstractAtomixClientProducer<Atom
// *********************************
@Override
- protected String getProcessorKey(Message message) {
- return message.getHeader(RESOURCE_ACTION, configuration::getDefaultAction, String.class);
- }
-
- @Override
protected String getResourceName(Message message) {
return message.getHeader(RESOURCE_NAME, getAtomixEndpoint()::getResourceName, String.class);
}
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/set/AtomixSetProducer.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/set/AtomixSetProducer.java
index fef2eea..f10c1e4 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/set/AtomixSetProducer.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/set/AtomixSetProducer.java
@@ -26,7 +26,6 @@ import org.apache.camel.component.atomix.client.AbstractAtomixClientProducer;
import org.apache.camel.spi.InvokeOnHeader;
import org.apache.camel.util.ObjectHelper;
-import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_ACTION;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_NAME;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_READ_CONSISTENCY;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_TTL;
@@ -36,7 +35,7 @@ public final class AtomixSetProducer extends AbstractAtomixClientProducer<Atomix
private final AtomixSetConfiguration configuration;
protected AtomixSetProducer(AtomixSetEndpoint endpoint) {
- super(endpoint);
+ super(endpoint, endpoint.getConfiguration().getDefaultAction().name());
this.configuration = endpoint.getConfiguration();
}
@@ -50,7 +49,7 @@ public final class AtomixSetProducer extends AbstractAtomixClientProducer<Atomix
}
@InvokeOnHeader("ADD")
- boolean onAdd(Message message, AsyncCallback callback) throws Exception {
+ void onAdd(Message message, AsyncCallback callback) throws Exception {
final DistributedSet<Object> set = getResource(message);
final long ttl = getResourceTtl(message);
final Object val = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -64,22 +63,18 @@ public final class AtomixSetProducer extends AbstractAtomixClientProducer<Atomix
set.add(val).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("CLEAR")
- boolean onClear(Message message, AsyncCallback callback) throws Exception {
+ void onClear(Message message, AsyncCallback callback) throws Exception {
final DistributedSet<Object> set = getResource(message);
set.clear().thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("CONTAINS")
- boolean onContains(Message message, AsyncCallback callback) throws Exception {
+ void onContains(Message message, AsyncCallback callback) throws Exception {
final DistributedSet<Object> set = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -94,12 +89,10 @@ public final class AtomixSetProducer extends AbstractAtomixClientProducer<Atomix
set.contains(value).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("IS_EMPTY")
- boolean onIsEmpty(Message message, AsyncCallback callback) throws Exception {
+ void onIsEmpty(Message message, AsyncCallback callback) throws Exception {
final DistributedSet<Object> set = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -111,12 +104,10 @@ public final class AtomixSetProducer extends AbstractAtomixClientProducer<Atomix
set.isEmpty().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("REMOVE")
- boolean onRemove(Message message, AsyncCallback callback) throws Exception {
+ void onRemove(Message message, AsyncCallback callback) throws Exception {
final DistributedSet<Object> set = getResource(message);
final Object value = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -124,12 +115,10 @@ public final class AtomixSetProducer extends AbstractAtomixClientProducer<Atomix
set.remove(value).thenAccept(
result -> processResult(message, callback, result));
-
- return false;
}
@InvokeOnHeader("SIZE")
- boolean onSize(Message message, AsyncCallback callback) throws Exception {
+ void onSize(Message message, AsyncCallback callback) throws Exception {
final DistributedSet<Object> set = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -141,8 +130,6 @@ public final class AtomixSetProducer extends AbstractAtomixClientProducer<Atomix
set.size().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
// *********************************
@@ -150,11 +137,6 @@ public final class AtomixSetProducer extends AbstractAtomixClientProducer<Atomix
// *********************************
@Override
- protected String getProcessorKey(Message message) {
- return message.getHeader(RESOURCE_ACTION, configuration::getDefaultAction, String.class);
- }
-
- @Override
protected String getResourceName(Message message) {
return message.getHeader(RESOURCE_NAME, getAtomixEndpoint()::getResourceName, String.class);
}
diff --git a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/value/AtomixValueProducer.java b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/value/AtomixValueProducer.java
index f5a5dfa..f827ecd 100644
--- a/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/value/AtomixValueProducer.java
+++ b/components/camel-atomix/src/main/java/org/apache/camel/component/atomix/client/value/AtomixValueProducer.java
@@ -26,7 +26,6 @@ import org.apache.camel.component.atomix.client.AbstractAtomixClientProducer;
import org.apache.camel.spi.InvokeOnHeader;
import org.apache.camel.util.ObjectHelper;
-import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_ACTION;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_NAME;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_OLD_VALUE;
import static org.apache.camel.component.atomix.client.AtomixClientConstants.RESOURCE_READ_CONSISTENCY;
@@ -37,7 +36,7 @@ public final class AtomixValueProducer extends AbstractAtomixClientProducer<Atom
private final AtomixValueConfiguration configuration;
protected AtomixValueProducer(AtomixValueEndpoint endpoint) {
- super(endpoint);
+ super(endpoint, endpoint.getConfiguration().getDefaultAction().name());
this.configuration = endpoint.getConfiguration();
}
@@ -51,7 +50,7 @@ public final class AtomixValueProducer extends AbstractAtomixClientProducer<Atom
}
@InvokeOnHeader("SET")
- boolean onSet(Message message, AsyncCallback callback) throws Exception {
+ void onSet(Message message, AsyncCallback callback) throws Exception {
final DistributedValue<Object> value = getResource(message);
final long ttl = getResourceTtl(message);
final Object val = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -65,12 +64,10 @@ public final class AtomixValueProducer extends AbstractAtomixClientProducer<Atom
value.set(val).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("GET")
- boolean onGet(Message message, AsyncCallback callback) throws Exception {
+ void onGet(Message message, AsyncCallback callback) throws Exception {
final DistributedValue<Object> value = getResource(message);
final ReadConsistency consistency
= message.getHeader(RESOURCE_READ_CONSISTENCY, configuration::getReadConsistency, ReadConsistency.class);
@@ -82,12 +79,10 @@ public final class AtomixValueProducer extends AbstractAtomixClientProducer<Atom
value.get().thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("GET_AND_SET")
- boolean onGetAndSet(Message message, AsyncCallback callback) throws Exception {
+ void onGetAndSet(Message message, AsyncCallback callback) throws Exception {
final DistributedValue<Object> value = getResource(message);
final long ttl = getResourceTtl(message);
final Object val = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -101,12 +96,10 @@ public final class AtomixValueProducer extends AbstractAtomixClientProducer<Atom
value.getAndSet(val).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
@InvokeOnHeader("COMPARE_AND_SET")
- boolean onCompareAndSet(Message message, AsyncCallback callback) throws Exception {
+ void onCompareAndSet(Message message, AsyncCallback callback) throws Exception {
final DistributedValue<Object> value = getResource(message);
final long ttl = getResourceTtl(message);
final Object newVal = message.getHeader(RESOURCE_VALUE, message::getBody, Object.class);
@@ -122,8 +115,6 @@ public final class AtomixValueProducer extends AbstractAtomixClientProducer<Atom
value.compareAndSet(oldVal, newVal).thenAccept(
result -> processResult(message, callback, result));
}
-
- return false;
}
// *********************************
@@ -131,11 +122,6 @@ public final class AtomixValueProducer extends AbstractAtomixClientProducer<Atom
// *********************************
@Override
- protected String getProcessorKey(Message message) {
- return message.getHeader(RESOURCE_ACTION, configuration::getDefaultAction, String.class);
- }
-
- @Override
protected String getResourceName(Message message) {
return message.getHeader(RESOURCE_NAME, getAtomixEndpoint()::getResourceName, String.class);
}
diff --git a/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/cache/CaffeineCacheProducerInvokeOnHeaderFactory.java b/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/cache/CaffeineCacheProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..969d830
--- /dev/null
+++ b/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/cache/CaffeineCacheProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,38 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.caffeine.cache;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.caffeine.cache.CaffeineCacheProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CaffeineCacheProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.caffeine.cache.CaffeineCacheProducer target = (org.apache.camel.component.caffeine.cache.CaffeineCacheProducer) obj;
+ switch (key) {
+ case "cleanup":
+ case "CLEANUP": target.onCleanUp(exchange.getMessage()); return null;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage()); return null;
+ case "get_all":
+ case "GET_ALL": target.onGetAll(exchange.getMessage()); return null;
+ case "invalidate":
+ case "INVALIDATE": target.onInvalidate(exchange.getMessage()); return null;
+ case "invalidate_all":
+ case "INVALIDATE_ALL": target.onInvalidateAll(exchange.getMessage()); return null;
+ case "put":
+ case "PUT": target.onPut(exchange.getMessage()); return null;
+ case "put_all":
+ case "PUT_ALL": target.onPutAll(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheProducerInvokeOnHeaderFactory.java b/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..e5d840c
--- /dev/null
+++ b/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,38 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.caffeine.load;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.caffeine.load.CaffeineLoadCacheProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CaffeineLoadCacheProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.caffeine.load.CaffeineLoadCacheProducer target = (org.apache.camel.component.caffeine.load.CaffeineLoadCacheProducer) obj;
+ switch (key) {
+ case "cleanup":
+ case "CLEANUP": target.onCleanUp(exchange.getMessage()); return null;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage()); return null;
+ case "get_all":
+ case "GET_ALL": target.onGetAll(exchange.getMessage()); return null;
+ case "invalidate":
+ case "INVALIDATE": target.onInvalidate(exchange.getMessage()); return null;
+ case "invalidate_all":
+ case "INVALIDATE_ALL": target.onInvalidateAll(exchange.getMessage()); return null;
+ case "put":
+ case "PUT": target.onPut(exchange.getMessage()); return null;
+ case "put_all":
+ case "PUT_ALL": target.onPutAll(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-caffeine/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.caffeine.cache.CaffeineCacheProducer b/components/camel-caffeine/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.caffeine.cache.CaffeineCacheProducer
new file mode 100644
index 0000000..0b79096
--- /dev/null
+++ b/components/camel-caffeine/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.caffeine.cache.CaffeineCacheProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.caffeine.cache.CaffeineCacheProducerInvokeOnHeaderFactory
diff --git a/components/camel-caffeine/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.caffeine.load.CaffeineLoadCacheProducer b/components/camel-caffeine/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.caffeine.load.CaffeineLoadCacheProducer
new file mode 100644
index 0000000..2e40d7c
--- /dev/null
+++ b/components/camel-caffeine/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.caffeine.load.CaffeineLoadCacheProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.caffeine.load.CaffeineLoadCacheProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulAgentProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulAgentProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..ac38091
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulAgentProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,32 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulAgentProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulAgentProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulAgentProducer target = (org.apache.camel.component.consul.endpoint.ConsulAgentProducer) obj;
+ switch (key) {
+ case "agent":
+ case "AGENT": return target.invokeAgent(exchange.getMessage());
+ case "checks":
+ case "CHECKS": return target.invokeChecks(exchange.getMessage());
+ case "members":
+ case "MEMBERS": return target.invokeMembers(exchange.getMessage());
+ case "services":
+ case "SERVICES": return target.invokeServices(exchange.getMessage());
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulCatalogProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulCatalogProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..6f29a57
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulCatalogProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,38 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulCatalogProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulCatalogProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulCatalogProducer target = (org.apache.camel.component.consul.endpoint.ConsulCatalogProducer) obj;
+ switch (key) {
+ case "deregister":
+ case "DEREGISTER": target.deregister(exchange.getMessage()); return null;
+ case "get_node":
+ case "GET_NODE": target.getNode(exchange.getMessage()); return null;
+ case "get_service":
+ case "GET_SERVICE": target.getService(exchange.getMessage()); return null;
+ case "list_datacenters":
+ case "LIST_DATACENTERS": target.listDatacenters(exchange.getMessage()); return null;
+ case "list_nodes":
+ case "LIST_NODES": target.listNodes(exchange.getMessage()); return null;
+ case "list_services":
+ case "LIST_SERVICES": target.listServices(exchange.getMessage()); return null;
+ case "register":
+ case "REGISTER": target.register(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulCoordinatesProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulCoordinatesProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..b853a79
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulCoordinatesProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,28 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulCoordinatesProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulCoordinatesProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulCoordinatesProducer target = (org.apache.camel.component.consul.endpoint.ConsulCoordinatesProducer) obj;
+ switch (key) {
+ case "datacenters":
+ case "DATACENTERS": target.datacenters(exchange.getMessage()); return null;
+ case "nodes":
+ case "NODES": target.nodes(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulEventProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulEventProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..04d6159
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulEventProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,28 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulEventProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulEventProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulEventProducer target = (org.apache.camel.component.consul.endpoint.ConsulEventProducer) obj;
+ switch (key) {
+ case "fire":
+ case "FIRE": target.fire(exchange.getMessage()); return null;
+ case "list":
+ case "LIST": target.list(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulHealthProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulHealthProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..4369f0b
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulHealthProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,32 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulHealthProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulHealthProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulHealthProducer target = (org.apache.camel.component.consul.endpoint.ConsulHealthProducer) obj;
+ switch (key) {
+ case "checks":
+ case "CHECKS": target.checks(exchange.getMessage()); return null;
+ case "node_checks":
+ case "NODE_CHECKS": target.nodeChecks(exchange.getMessage()); return null;
+ case "service_checks":
+ case "SERVICE_CHECKS": target.serviceChecks(exchange.getMessage()); return null;
+ case "service_instances":
+ case "SERVICE_INSTANCES": target.serviceInstances(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulKeyValueProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulKeyValueProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..cf1fbef
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulKeyValueProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,42 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulKeyValueProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulKeyValueProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulKeyValueProducer target = (org.apache.camel.component.consul.endpoint.ConsulKeyValueProducer) obj;
+ switch (key) {
+ case "delete_key":
+ case "DELETE_KEY": target.deleteKey(exchange.getMessage()); return null;
+ case "delete_keys":
+ case "DELETE_KEYS": target.deleteKeys(exchange.getMessage()); return null;
+ case "get_keys":
+ case "GET_KEYS": target.getKeys(exchange.getMessage()); return null;
+ case "get_sessions":
+ case "GET_SESSIONS": target.getSessions(exchange.getMessage()); return null;
+ case "get_value":
+ case "GET_VALUE": target.getValue(exchange.getMessage()); return null;
+ case "get_values":
+ case "GET_VALUES": target.getValues(exchange.getMessage()); return null;
+ case "lock":
+ case "LOCK": target.lock(exchange.getMessage()); return null;
+ case "put":
+ case "PUT": target.put(exchange.getMessage()); return null;
+ case "unlock":
+ case "UNLOCK": target.unlock(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulPreparedQueryProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulPreparedQueryProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..4a42005
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulPreparedQueryProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,30 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulPreparedQueryProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulPreparedQueryProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulPreparedQueryProducer target = (org.apache.camel.component.consul.endpoint.ConsulPreparedQueryProducer) obj;
+ switch (key) {
+ case "create":
+ case "CREATE": target.create(exchange.getMessage()); return null;
+ case "execute":
+ case "EXECUTE": target.execute(exchange.getMessage()); return null;
+ case "get":
+ case "GET": target.get(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulSessionProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulSessionProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..6b55ad4
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulSessionProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,34 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulSessionProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulSessionProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulSessionProducer target = (org.apache.camel.component.consul.endpoint.ConsulSessionProducer) obj;
+ switch (key) {
+ case "create":
+ case "CREATE": target.create(exchange.getMessage()); return null;
+ case "destroy":
+ case "DESTROY": target.destroy(exchange.getMessage()); return null;
+ case "info":
+ case "INFO": target.info(exchange.getMessage()); return null;
+ case "list":
+ case "LIST": target.list(exchange.getMessage()); return null;
+ case "renew":
+ case "RENEW": target.renew(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulStatusProducerInvokeOnHeaderFactory.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulStatusProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..59e5f27
--- /dev/null
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/endpoint/ConsulStatusProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,28 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.consul.endpoint;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.consul.endpoint.ConsulStatusProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulStatusProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.consul.endpoint.ConsulStatusProducer target = (org.apache.camel.component.consul.endpoint.ConsulStatusProducer) obj;
+ switch (key) {
+ case "leader":
+ case "LEADER": return target.invokeChecks(exchange.getMessage());
+ case "peers":
+ case "PEERS": return target.invokePeers(exchange.getMessage());
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulAgentProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulAgentProducer
new file mode 100644
index 0000000..712694b
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulAgentProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulAgentProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulCatalogProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulCatalogProducer
new file mode 100644
index 0000000..2869dc1
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulCatalogProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulCatalogProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulCoordinatesProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulCoordinatesProducer
new file mode 100644
index 0000000..6ead52c
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulCoordinatesProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulCoordinatesProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulEventProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulEventProducer
new file mode 100644
index 0000000..b1d5fb3
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulEventProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulEventProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulHealthProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulHealthProducer
new file mode 100644
index 0000000..5e0ff3d
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulHealthProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulHealthProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulKeyValueProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulKeyValueProducer
new file mode 100644
index 0000000..c1b996a
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulKeyValueProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulKeyValueProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulPreparedQueryProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulPreparedQueryProducer
new file mode 100644
index 0000000..01430e1
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulPreparedQueryProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulPreparedQueryProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulSessionProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulSessionProducer
new file mode 100644
index 0000000..9c27499
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulSessionProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulSessionProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulStatusProducer b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulStatusProducer
new file mode 100644
index 0000000..51170ed
--- /dev/null
+++ b/components/camel-consul/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.consul.endpoint.ConsulStatusProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.consul.endpoint.ConsulStatusProducerInvokeOnHeaderFactory
diff --git a/components/camel-consul/src/main/java/org/apache/camel/component/consul/endpoint/ConsulAgentProducer.java b/components/camel-consul/src/main/java/org/apache/camel/component/consul/endpoint/ConsulAgentProducer.java
index 1f00c79..57f72e7 100644
--- a/components/camel-consul/src/main/java/org/apache/camel/component/consul/endpoint/ConsulAgentProducer.java
+++ b/components/camel-consul/src/main/java/org/apache/camel/component/consul/endpoint/ConsulAgentProducer.java
@@ -18,17 +18,35 @@ package org.apache.camel.component.consul.endpoint;
import com.orbitz.consul.AgentClient;
import com.orbitz.consul.Consul;
+import org.apache.camel.Message;
import org.apache.camel.component.consul.ConsulConfiguration;
import org.apache.camel.component.consul.ConsulEndpoint;
+import org.apache.camel.spi.InvokeOnHeader;
public final class ConsulAgentProducer extends AbstractConsulProducer<AgentClient> {
public ConsulAgentProducer(ConsulEndpoint endpoint, ConsulConfiguration configuration) {
super(endpoint, configuration, Consul::agentClient);
+ }
+
+ @InvokeOnHeader("CHECKS")
+ public Object invokeChecks(Message message) throws Exception {
+ return getClient().getChecks();
+ }
+
+ @InvokeOnHeader("SERVICES")
+ public Object invokeServices(Message message) throws Exception {
+ return getClient().getServices();
+ }
+
+ @InvokeOnHeader("MEMBERS")
+ public Object invokeMembers(Message message) throws Exception {
+ return getClient().getMembers();
+ }
- bind(ConsulAgentActions.CHECKS, wrap(c -> c.getChecks()));
- bind(ConsulAgentActions.SERVICES, wrap(c -> c.getServices()));
- bind(ConsulAgentActions.MEMBERS, wrap(c -> c.getMembers()));
- bind(ConsulAgentActions.AGENT, wrap(c -> c.getAgent()));
+ @InvokeOnHeader("AGENT")
+ public Object invokeAgent(Message message) throws Exception {
+ return getClient().getAgent();
}
+
}
diff --git a/components/camel-consul/src/main/java/org/apache/camel/component/consul/endpoint/ConsulStatusProducer.java b/components/camel-consul/src/main/java/org/apache/camel/component/consul/endpoint/ConsulStatusProducer.java
index 59223d0..6e13f3a 100644
--- a/components/camel-consul/src/main/java/org/apache/camel/component/consul/endpoint/ConsulStatusProducer.java
+++ b/components/camel-consul/src/main/java/org/apache/camel/component/consul/endpoint/ConsulStatusProducer.java
@@ -18,15 +18,25 @@ package org.apache.camel.component.consul.endpoint;
import com.orbitz.consul.Consul;
import com.orbitz.consul.StatusClient;
+import org.apache.camel.Message;
import org.apache.camel.component.consul.ConsulConfiguration;
import org.apache.camel.component.consul.ConsulEndpoint;
+import org.apache.camel.spi.InvokeOnHeader;
public final class ConsulStatusProducer extends AbstractConsulProducer<StatusClient> {
public ConsulStatusProducer(ConsulEndpoint endpoint, ConsulConfiguration configuration) {
super(endpoint, configuration, Consul::statusClient);
+ }
+
+ @InvokeOnHeader("LEADER")
+ public Object invokeChecks(Message message) throws Exception {
+ return getClient().getLeader();
+ }
- bind(ConsulStatusActions.LEADER, wrap(c -> c.getLeader()));
- bind(ConsulStatusActions.PEERS, wrap(c -> c.getPeers()));
+ @InvokeOnHeader("PEERS")
+ public Object invokePeers(Message message) throws Exception {
+ return getClient().getPeers();
}
+
}
diff --git a/components/camel-corda/src/generated/java/org/apache/camel/component/corda/CordaProducerInvokeOnHeaderFactory.java b/components/camel-corda/src/generated/java/org/apache/camel/component/corda/CordaProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..b3bfe0b
--- /dev/null
+++ b/components/camel-corda/src/generated/java/org/apache/camel/component/corda/CordaProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,100 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.corda;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.corda.CordaProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CordaProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.corda.CordaProducer target = (org.apache.camel.component.corda.CordaProducer) obj;
+ switch (key) {
+ case "accept_newnetwork_parameters":
+ case "ACCEPT_NEWNETWORK_PARAMETERS": target.acceptNewNetworkParameters(exchange.getMessage()); return null;
+ case "add_vault_transaction_note":
+ case "ADD_VAULT_TRANSACTION_NOTE": target.addVaultTransactionNote(exchange.getMessage()); return null;
+ case "attachment_exists":
+ case "ATTACHMENT_EXISTS": target.attachmentExists(exchange.getMessage()); return null;
+ case "clear_network_map_cache":
+ case "CLEAR_NETWORK_MAP_CACHE": target.clearNetworkMapCache(exchange.getMessage()); return null;
+ case "current_node_time":
+ case "CURRENT_NODE_TIME": target.currentNodeTime(exchange.getMessage()); return null;
+ case "get_protocol_version":
+ case "GET_PROTOCOL_VERSION": target.getProtocolVersion(exchange.getMessage()); return null;
+ case "get_vault_transaction_notes":
+ case "GET_VAULT_TRANSACTION_NOTES": target.getVaultTransactionNotes(exchange.getMessage()); return null;
+ case "is_flows_draining_mode_enabled":
+ case "IS_FLOWS_DRAINING_MODE_ENABLED": target.isFlowsDrainingModeEnabled(exchange.getMessage()); return null;
+ case "is_waiting_for_shutdown":
+ case "IS_WAITING_FOR_SHUTDOWN": target.isWaitingForShutdown(exchange.getMessage()); return null;
+ case "kill_flow":
+ case "KILL_FLOW": target.killFlow(exchange.getMessage()); return null;
+ case "network_map_snapshot":
+ case "NETWORK_MAP_SNAPSHOT": target.networkMapSnapshot(exchange.getMessage()); return null;
+ case "network_parameters_feed":
+ case "NETWORK_PARAMETERS_FEED": target.networkParametersFeed(exchange.getMessage()); return null;
+ case "node_info":
+ case "NODE_INFO": target.nodeInfo(exchange.getMessage()); return null;
+ case "node_info_from_party":
+ case "NODE_INFO_FROM_PARTY": target.nodeInfoFromParty(exchange.getMessage()); return null;
+ case "notary_identities":
+ case "NOTARY_IDENTITIES": target.notaryIdentities(exchange.getMessage()); return null;
+ case "notary_party_from_x500_name":
+ case "NOTARY_PARTY_FROM_X500_NAME": target.notaryPartyFromX500Name(exchange.getMessage()); return null;
+ case "open_attachment":
+ case "OPEN_ATTACHMENT": target.openAttachment(exchange.getMessage()); return null;
+ case "parties_from_key":
+ case "PARTIES_FROM_KEY": target.partyFromKey(exchange.getMessage()); return null;
+ case "parties_from_name":
+ case "PARTIES_FROM_NAME": target.partiesFromName(exchange.getMessage()); return null;
+ case "query_attachments":
+ case "QUERY_ATTACHMENTS": target.queryAttachments(exchange.getMessage()); return null;
+ case "refresh_network_map_cache":
+ case "REFRESH_NETWORK_MAP_CACHE": target.refreshNetworkMapCache(exchange.getMessage()); return null;
+ case "registered_flows":
+ case "REGISTERED_FLOWS": target.registeredFlows(exchange.getMessage()); return null;
+ case "set_flows_draining_mode_enabled":
+ case "SET_FLOWS_DRAINING_MODE_ENABLED": target.setFlowsDrainingModeEnabled(exchange.getMessage()); return null;
+ case "shutdown":
+ case "SHUTDOWN": target.shutdown(exchange.getMessage()); return null;
+ case "start_flow_dynamic":
+ case "START_FLOW_DYNAMIC": target.startFlowDynamic(exchange.getMessage()); return null;
+ case "state_machine_recorded_transaction_mapping_snapshot":
+ case "STATE_MACHINE_RECORDED_TRANSACTION_MAPPING_SNAPSHOT": target.stateMachineRecordedTransactionMappingSnapshot(exchange.getMessage()); return null;
+ case "state_machine_snapshot":
+ case "STATE_MACHINE_SNAPSHOT": target.stateMachinesSnapshot(exchange.getMessage()); return null;
+ case "terminate":
+ case "TERMINATE": target.terminate(exchange.getMessage()); return null;
+ case "upload_attachment":
+ case "UPLOAD_ATTACHMENT": target.uploadAttachment(exchange.getMessage()); return null;
+ case "upload_attachment_with_meta_data":
+ case "UPLOAD_ATTACHMENT_WITH_META_DATA": target.uploadAttachmentWithMetadata(exchange.getMessage()); return null;
+ case "vault_query":
+ case "VAULT_QUERY": target.vaultQuery(exchange.getMessage()); return null;
+ case "vault_query_by":
+ case "VAULT_QUERY_BY": target.vaultQueryBy(exchange.getMessage()); return null;
+ case "vault_query_by_criteria":
+ case "VAULT_QUERY_BY_CRITERIA": target.vaultQueryByCriteria(exchange.getMessage()); return null;
+ case "vault_query_by_with_paging_spec":
+ case "VAULT_QUERY_BY_WITH_PAGING_SPEC": target.vaultQueryByWithPagingSpec(exchange.getMessage()); return null;
+ case "vault_query_by_with_sorting":
+ case "VAULT_QUERY_BY_WITH_SORTING": target.vaultQueryByWithSorting(exchange.getMessage()); return null;
+ case "wait_until_network_ready":
+ case "WAIT_UNTIL_NETWORK_READY": target.waitUntilNetworkReady(exchange.getMessage()); return null;
+ case "well_known_party_from_anonymous":
+ case "WELL_KNOWN_PARTY_FROM_ANONYMOUS": target.wellKnownPartyFromAnonymous(exchange.getMessage()); return null;
+ case "well_known_party_from_x500_name":
+ case "WELL_KNOWN_PARTY_FROM_X500_NAME": target.wellKnownPartyFromX500Name(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-corda/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.corda.CordaProducer b/components/camel-corda/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.corda.CordaProducer
new file mode 100644
index 0000000..0284213
--- /dev/null
+++ b/components/camel-corda/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.corda.CordaProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.corda.CordaProducerInvokeOnHeaderFactory
diff --git a/components/camel-ehcache/src/generated/java/org/apache/camel/component/ehcache/EhcacheProducerInvokeOnHeaderFactory.java b/components/camel-ehcache/src/generated/java/org/apache/camel/component/ehcache/EhcacheProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..8f074f0
--- /dev/null
+++ b/components/camel-ehcache/src/generated/java/org/apache/camel/component/ehcache/EhcacheProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,42 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.ehcache;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.ehcache.EhcacheProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class EhcacheProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.ehcache.EhcacheProducer target = (org.apache.camel.component.ehcache.EhcacheProducer) obj;
+ switch (key) {
+ case "clear":
+ case "CLEAR": target.onClear(exchange.getMessage()); return null;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage()); return null;
+ case "get_all":
+ case "GET_ALL": target.onGetAll(exchange.getMessage()); return null;
+ case "put":
+ case "PUT": target.onPut(exchange.getMessage()); return null;
+ case "put_all":
+ case "PUT_ALL": target.onPutAll(exchange.getMessage()); return null;
+ case "put_if_absent":
+ case "PUT_IF_ABSENT": target.onPutIfAbsent(exchange.getMessage()); return null;
+ case "remove":
+ case "REMOVE": target.onRemove(exchange.getMessage()); return null;
+ case "remove_all":
+ case "REMOVE_ALL": target.onRemoveAll(exchange.getMessage()); return null;
+ case "replace":
+ case "REPLACE": target.onReplace(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-ehcache/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.ehcache.EhcacheProducer b/components/camel-ehcache/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.ehcache.EhcacheProducer
new file mode 100644
index 0000000..ba4f286
--- /dev/null
+++ b/components/camel-ehcache/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.ehcache.EhcacheProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.ehcache.EhcacheProducerInvokeOnHeaderFactory
diff --git a/components/camel-infinispan/camel-infinispan-common/pom.xml b/components/camel-infinispan/camel-infinispan-common/pom.xml
index 1c857bf..4838dc92 100644
--- a/components/camel-infinispan/camel-infinispan-common/pom.xml
+++ b/components/camel-infinispan/camel-infinispan-common/pom.xml
@@ -69,43 +69,4 @@
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-package-maven-plugin</artifactId>
- <configuration>
- <!-- set to true to make build fail fast if missing documentation in docs files -->
- <failFast>false</failFast>
- </configuration>
- <executions>
- <execution>
- <id>generate</id>
- <goals>
- <goal>generate</goal>
- </goals>
- <phase/>
- </execution>
- <execution>
- <id>generate-postcompile</id>
- <goals>
- <goal>generate-postcompile</goal>
- </goals>
- <phase/>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
</project>
diff --git a/components/camel-infinispan/camel-infinispan-common/src/generated/java/org/apache/camel/component/infinispan/InfinispanProducerInvokeOnHeaderFactory.java b/components/camel-infinispan/camel-infinispan-common/src/generated/java/org/apache/camel/component/infinispan/InfinispanProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..32ea622
--- /dev/null
+++ b/components/camel-infinispan/camel-infinispan-common/src/generated/java/org/apache/camel/component/infinispan/InfinispanProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,62 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.infinispan;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.infinispan.InfinispanProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class InfinispanProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.infinispan.InfinispanProducer target = (org.apache.camel.component.infinispan.InfinispanProducer) obj;
+ switch (key) {
+ case "clear":
+ case "CLEAR": target.onClear(exchange.getMessage()); return null;
+ case "clearasync":
+ case "CLEARASYNC": target.onCLearAsync(exchange.getMessage()); return null;
+ case "compute":
+ case "COMPUTE": target.onCompute(exchange.getMessage()); return null;
+ case "computeasync":
+ case "COMPUTEASYNC": target.onComputeAsync(exchange.getMessage()); return null;
+ case "containskey":
+ case "CONTAINSKEY": target.onContainsKey(exchange.getMessage()); return null;
+ case "containsvalue":
+ case "CONTAINSVALUE": target.onContainsValue(exchange.getMessage()); return null;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage()); return null;
+ case "getordefault":
+ case "GETORDEFAULT": target.onGetOrDefault(exchange.getMessage()); return null;
+ case "put":
+ case "PUT": target.onPut(exchange.getMessage()); return null;
+ case "putall":
+ case "PUTALL": target.onPutAll(exchange.getMessage()); return null;
+ case "putallasync":
+ case "PUTALLASYNC": target.onPutAllAsync(exchange.getMessage()); return null;
+ case "putasync":
+ case "PUTASYNC": target.onPutAsync(exchange.getMessage()); return null;
+ case "putifabsent":
+ case "PUTIFABSENT": target.onPutIfAbsent(exchange.getMessage()); return null;
+ case "putifabsentasync":
+ case "PUTIFABSENTASYNC": target.onPutIfAbsentAsync(exchange.getMessage()); return null;
+ case "remove":
+ case "REMOVE": target.onRemove(exchange.getMessage()); return null;
+ case "removeasync":
+ case "REMOVEASYNC": target.onRemoveAsync(exchange.getMessage()); return null;
+ case "replace":
+ case "REPLACE": target.onReplace(exchange.getMessage()); return null;
+ case "replaceasync":
+ case "REPLACEASYNC": target.onReplaceAsync(exchange.getMessage()); return null;
+ case "size":
+ case "SIZE": target.onSize(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-infinispan/camel-infinispan-common/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.InfinispanProducer b/components/camel-infinispan/camel-infinispan-common/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.InfinispanProducer
new file mode 100644
index 0000000..9b6bc17
--- /dev/null
+++ b/components/camel-infinispan/camel-infinispan-common/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.InfinispanProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.infinispan.InfinispanProducerInvokeOnHeaderFactory
diff --git a/components/camel-infinispan/camel-infinispan-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/components/camel-infinispan/camel-infinispan-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties
new file mode 100644
index 0000000..f807e1e
--- /dev/null
+++ b/components/camel-infinispan/camel-infinispan-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+name=infinispan-common
+groupId=org.apache.camel
+artifactId=camel-infinispan-common
+version=3.8.0-SNAPSHOT
+projectName=Camel :: Infinispan :: Common
+projectDescription=Camel Infinispan Common
diff --git a/components/camel-infinispan/camel-infinispan-common/src/generated/resources/infinispan-common.json b/components/camel-infinispan/camel-infinispan-common/src/generated/resources/infinispan-common.json
new file mode 100644
index 0000000..2d03326
--- /dev/null
+++ b/components/camel-infinispan/camel-infinispan-common/src/generated/resources/infinispan-common.json
@@ -0,0 +1,14 @@
+{
+ "other": {
+ "kind": "other",
+ "name": "infinispan-common",
+ "title": "Infinispan Common",
+ "description": "Camel Infinispan Common",
+ "deprecated": false,
+ "firstVersion": "2.13.0",
+ "supportLevel": "Stable",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-infinispan-common",
+ "version": "3.8.0-SNAPSHOT"
+ }
+}
diff --git a/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java b/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
index 1ad9dca..27131db 100644
--- a/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
+++ b/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java
@@ -16,14 +16,12 @@
*/
package org.apache.camel.component.infinispan;
-import java.lang.reflect.Method;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import org.apache.camel.Message;
import org.apache.camel.spi.InvokeOnHeader;
-import org.apache.camel.spi.InvokeOnHeaders;
import org.apache.camel.support.HeaderSelectorProducer;
import org.apache.camel.util.ObjectHelper;
import org.infinispan.commons.api.BasicCache;
@@ -55,20 +53,6 @@ public abstract class InfinispanProducer<M extends InfinispanManager, C extends
return manager;
}
- @Override
- protected void bind() {
- for (final Method method : getClass().getMethods()) {
- InvokeOnHeaders annotation = method.getAnnotation(InvokeOnHeaders.class);
- if (annotation != null) {
- for (InvokeOnHeader processor : annotation.value()) {
- bind(processor, method);
- }
- } else {
- bind(method.getAnnotation(InvokeOnHeader.class), method);
- }
- }
- }
-
// ************************************
// Operations
// ************************************
diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/generated/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducerInvokeOnHeaderFactory.java b/components/camel-infinispan/camel-infinispan-embedded/src/generated/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..87f0538
--- /dev/null
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/generated/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,28 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.infinispan.embedded;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class InfinispanEmbeddedProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedProducer target = (org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedProducer) obj;
+ switch (key) {
+ case "query":
+ case "QUERY": target.onQuery(exchange.getMessage()); return null;
+ case "stats":
+ case "STATS": target.onStats(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedProducer b/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedProducer
new file mode 100644
index 0000000..754e3db
--- /dev/null
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedProducerInvokeOnHeaderFactory
diff --git a/components/camel-infinispan/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerInvokeOnHeaderFactory.java b/components/camel-infinispan/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..0ddf4fb
--- /dev/null
+++ b/components/camel-infinispan/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,28 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.infinispan.remote;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class InfinispanRemoteProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer target = (org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer) obj;
+ switch (key) {
+ case "query":
+ case "QUERY": target.onQuery(exchange.getMessage()); return null;
+ case "stats":
+ case "STATS": target.onStats(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-infinispan/camel-infinispan/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer b/components/camel-infinispan/camel-infinispan/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer
new file mode 100644
index 0000000..b1e577b
--- /dev/null
+++ b/components/camel-infinispan/camel-infinispan/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.infinispan.remote.InfinispanRemoteProducerInvokeOnHeaderFactory
diff --git a/components/camel-servicenow/camel-servicenow-component/src/generated/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProducerInvokeOnHeaderFactory.java b/components/camel-servicenow/camel-servicenow-component/src/generated/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..32e984a5
--- /dev/null
+++ b/components/camel-servicenow/camel-servicenow-component/src/generated/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,27 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.servicenow.releases.fuji;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.servicenow.releases.fuji.FujiServiceNowProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class FujiServiceNowProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.servicenow.releases.fuji.FujiServiceNowProducer target = (org.apache.camel.component.servicenow.releases.fuji.FujiServiceNowProducer) obj;
+ switch (key) {
+ case "aggregate": target.invokeProcessor2(exchange); return null;
+ case "import": target.invokeProcessor3(exchange); return null;
+ case "table": target.invokeProcessor1(exchange); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-servicenow/camel-servicenow-component/src/generated/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowProducerInvokeOnHeaderFactory.java b/components/camel-servicenow/camel-servicenow-component/src/generated/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..f1e9bfd
--- /dev/null
+++ b/components/camel-servicenow/camel-servicenow-component/src/generated/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,34 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.servicenow.releases.helsinki;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.servicenow.releases.helsinki.HelsinkiServiceNowProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class HelsinkiServiceNowProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.servicenow.releases.helsinki.HelsinkiServiceNowProducer target = (org.apache.camel.component.servicenow.releases.helsinki.HelsinkiServiceNowProducer) obj;
+ switch (key) {
+ case "aggregate": target.invokeProcessor2(exchange); return null;
+ case "attachment": target.invokeProcessor4(exchange); return null;
+ case "import": target.invokeProcessor3(exchange); return null;
+ case "misc": target.invokeProcessor6(exchange); return null;
+ case "scorecards": target.invokeProcessor5(exchange); return null;
+ case "service_catalog": target.invokeProcessor7(exchange); return null;
+ case "service_catalog_cart": target.invokeProcessor9(exchange); return null;
+ case "service_catalog_categories": target.invokeProcessor10(exchange); return null;
+ case "service_catalog_items": target.invokeProcessor8(exchange); return null;
+ case "table": target.invokeProcessor1(exchange); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-servicenow/camel-servicenow-component/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.servicenow.releases.fuji.FujiServiceNowProducer b/components/camel-servicenow/camel-servicenow-component/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.servicenow.releases.fuji.FujiServiceNowProducer
new file mode 100644
index 0000000..190fe52
--- /dev/null
+++ b/components/camel-servicenow/camel-servicenow-component/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.servicenow.releases.fuji.FujiServiceNowProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.servicenow.releases.fuji.FujiServiceNowProducerInvokeOnHeaderFactory
diff --git a/components/camel-servicenow/camel-servicenow-component/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.servicenow.releases.helsinki.HelsinkiServiceNowProducer b/components/camel-servicenow/camel-servicenow-component/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.servicenow.releases.helsinki.HelsinkiServiceNowProducer
new file mode 100644
index 0000000..1d36ac7
--- /dev/null
+++ b/components/camel-servicenow/camel-servicenow-component/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.servicenow.releases.helsinki.HelsinkiServiceNowProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.servicenow.releases.helsinki.HelsinkiServiceNowProducerInvokeOnHeaderFactory
diff --git a/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProducer.java b/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProducer.java
index 963a45a..5e12a38 100644
--- a/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProducer.java
+++ b/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProducer.java
@@ -16,20 +16,41 @@
*/
package org.apache.camel.component.servicenow.releases.fuji;
+import org.apache.camel.Exchange;
import org.apache.camel.component.servicenow.AbstractServiceNowProducer;
import org.apache.camel.component.servicenow.ServiceNowConstants;
import org.apache.camel.component.servicenow.ServiceNowEndpoint;
import org.apache.camel.component.servicenow.ServiceNowRelease;
+import org.apache.camel.spi.InvokeOnHeader;
/**
* The Fuji ServiceNow producer.
*/
public class FujiServiceNowProducer extends AbstractServiceNowProducer {
+
+ private final FujiServiceNowTableProcessor processor1;
+ private final FujiServiceNowAggregateProcessor processor2;
+ private final FujiServiceNowImportSetProcessor processor3;
+
public FujiServiceNowProducer(ServiceNowEndpoint endpoint) throws Exception {
super(endpoint, ServiceNowRelease.FUJI);
+ processor1 = new FujiServiceNowTableProcessor(endpoint);
+ processor2 = new FujiServiceNowAggregateProcessor(endpoint);
+ processor3 = new FujiServiceNowImportSetProcessor(endpoint);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_TABLE)
+ public void invokeProcessor1(Exchange exchange) throws Exception {
+ processor1.process(exchange);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_AGGREGATE)
+ public void invokeProcessor2(Exchange exchange) throws Exception {
+ processor2.process(exchange);
+ }
- bind(ServiceNowConstants.RESOURCE_TABLE, new FujiServiceNowTableProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_AGGREGATE, new FujiServiceNowAggregateProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_IMPORT, new FujiServiceNowImportSetProcessor(endpoint));
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_IMPORT)
+ public void invokeProcessor3(Exchange exchange) throws Exception {
+ processor3.process(exchange);
}
}
diff --git a/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowProducer.java b/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowProducer.java
index 73c6390..75c5f07 100644
--- a/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowProducer.java
+++ b/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowProducer.java
@@ -16,28 +16,91 @@
*/
package org.apache.camel.component.servicenow.releases.helsinki;
+import org.apache.camel.Exchange;
import org.apache.camel.component.servicenow.AbstractServiceNowProducer;
import org.apache.camel.component.servicenow.ServiceNowConstants;
import org.apache.camel.component.servicenow.ServiceNowEndpoint;
import org.apache.camel.component.servicenow.ServiceNowRelease;
+import org.apache.camel.spi.InvokeOnHeader;
/**
* The Helsinki ServiceNow producer.
*/
public class HelsinkiServiceNowProducer extends AbstractServiceNowProducer {
+
+ private final HelsinkiServiceNowTableProcessor processor1;
+ private final HelsinkiServiceNowAggregateProcessor processor2;
+ private final HelsinkiServiceNowImportSetProcessor processor3;
+ private final HelsinkiServiceNowAttachmentProcessor processor4;
+ private final HelsinkiServiceNowScorecardProcessor processor5;
+ private final HelsinkiServiceNowMiscProcessor processor6;
+ private final HelsinkiServiceNowServiceCatalogProcessor processor7;
+ private final HelsinkiServiceNowServiceCatalogItemsProcessor processor8;
+ private final HelsinkiServiceNowServiceCatalogCartsProcessor processor9;
+ private final HelsinkiServiceNowServiceCatalogCategoriesProcessor processor10;
+
public HelsinkiServiceNowProducer(ServiceNowEndpoint endpoint) throws Exception {
super(endpoint, ServiceNowRelease.HELSINKI);
+ processor1 = new HelsinkiServiceNowTableProcessor(endpoint);
+ processor2 = new HelsinkiServiceNowAggregateProcessor(endpoint);
+ processor3 = new HelsinkiServiceNowImportSetProcessor(endpoint);
+ processor4 = new HelsinkiServiceNowAttachmentProcessor(endpoint);
+ processor5 = new HelsinkiServiceNowScorecardProcessor(endpoint);
+ processor6 = new HelsinkiServiceNowMiscProcessor(endpoint);
+ processor7 = new HelsinkiServiceNowServiceCatalogProcessor(endpoint);
+ processor8 = new HelsinkiServiceNowServiceCatalogItemsProcessor(endpoint);
+ processor9 = new HelsinkiServiceNowServiceCatalogCartsProcessor(endpoint);
+ processor10 = new HelsinkiServiceNowServiceCatalogCategoriesProcessor(endpoint);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_TABLE)
+ public void invokeProcessor1(Exchange exchange) throws Exception {
+ processor1.process(exchange);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_AGGREGATE)
+ public void invokeProcessor2(Exchange exchange) throws Exception {
+ processor2.process(exchange);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_IMPORT)
+ public void invokeProcessor3(Exchange exchange) throws Exception {
+ processor3.process(exchange);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_ATTACHMENT)
+ public void invokeProcessor4(Exchange exchange) throws Exception {
+ processor4.process(exchange);
+ }
- bind(ServiceNowConstants.RESOURCE_TABLE, new HelsinkiServiceNowTableProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_AGGREGATE, new HelsinkiServiceNowAggregateProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_IMPORT, new HelsinkiServiceNowImportSetProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_ATTACHMENT, new HelsinkiServiceNowAttachmentProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_SCORECARDS, new HelsinkiServiceNowScorecardProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_MISC, new HelsinkiServiceNowMiscProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_SERVICE_CATALOG, new HelsinkiServiceNowServiceCatalogProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_SERVICE_CATALOG_ITEMS, new HelsinkiServiceNowServiceCatalogItemsProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_SERVICE_CATALOG_CARTS, new HelsinkiServiceNowServiceCatalogCartsProcessor(endpoint));
- bind(ServiceNowConstants.RESOURCE_SERVICE_CATALOG_CATEGORIES,
- new HelsinkiServiceNowServiceCatalogCategoriesProcessor(endpoint));
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_SCORECARDS)
+ public void invokeProcessor5(Exchange exchange) throws Exception {
+ processor5.process(exchange);
}
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_MISC)
+ public void invokeProcessor6(Exchange exchange) throws Exception {
+ processor6.process(exchange);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_SERVICE_CATALOG)
+ public void invokeProcessor7(Exchange exchange) throws Exception {
+ processor7.process(exchange);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_SERVICE_CATALOG_ITEMS)
+ public void invokeProcessor8(Exchange exchange) throws Exception {
+ processor8.process(exchange);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_SERVICE_CATALOG_CARTS)
+ public void invokeProcessor9(Exchange exchange) throws Exception {
+ processor9.process(exchange);
+ }
+
+ @InvokeOnHeader(ServiceNowConstants.RESOURCE_SERVICE_CATALOG_CATEGORIES)
+ public void invokeProcessor10(Exchange exchange) throws Exception {
+ processor10.process(exchange);
+ }
+
}
diff --git a/components/camel-spring-redis/src/generated/java/org/apache/camel/component/redis/RedisComponentConfigurer.java b/components/camel-spring-redis/src/generated/java/org/apache/camel/component/redis/RedisComponentConfigurer.java
index 20241fa..8e98244 100644
--- a/components/camel-spring-redis/src/generated/java/org/apache/camel/component/redis/RedisComponentConfigurer.java
+++ b/components/camel-spring-redis/src/generated/java/org/apache/camel/component/redis/RedisComponentConfigurer.java
@@ -27,11 +27,18 @@ public class RedisComponentConfigurer extends PropertyConfigurerSupport implemen
case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
case "lazystartproducer":
case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+ case "redistemplate":
+ case "redisTemplate": target.setRedisTemplate(property(camelContext, org.springframework.data.redis.core.RedisTemplate.class, value)); return true;
default: return false;
}
}
@Override
+ public String[] getAutowiredNames() {
+ return new String[]{"redisTemplate"};
+ }
+
+ @Override
public Class<?> getOptionType(String name, boolean ignoreCase) {
switch (ignoreCase ? name.toLowerCase() : name) {
case "autowiredenabled":
@@ -40,6 +47,8 @@ public class RedisComponentConfigurer extends PropertyConfigurerSupport implemen
case "bridgeErrorHandler": return boolean.class;
case "lazystartproducer":
case "lazyStartProducer": return boolean.class;
+ case "redistemplate":
+ case "redisTemplate": return org.springframework.data.redis.core.RedisTemplate.class;
default: return null;
}
}
@@ -54,6 +63,8 @@ public class RedisComponentConfigurer extends PropertyConfigurerSupport implemen
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
case "lazystartproducer":
case "lazyStartProducer": return target.isLazyStartProducer();
+ case "redistemplate":
+ case "redisTemplate": return target.getRedisTemplate();
default: return null;
}
}
diff --git a/components/camel-spring-redis/src/generated/java/org/apache/camel/component/redis/RedisProducerInvokeOnHeaderFactory.java b/components/camel-spring-redis/src/generated/java/org/apache/camel/component/redis/RedisProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..5f030c2
--- /dev/null
+++ b/components/camel-spring-redis/src/generated/java/org/apache/camel/component/redis/RedisProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,236 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.redis;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.redis.RedisProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class RedisProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.redis.RedisProducer target = (org.apache.camel.component.redis.RedisProducer) obj;
+ switch (key) {
+ case "append":
+ case "APPEND": return target.invokeAppend(exchange);
+ case "blpop":
+ case "BLPOP": return target.invokeBlpop(exchange);
+ case "brpop":
+ case "BRPOP": return target.invokeBrpop(exchange);
+ case "brpoplpush":
+ case "BRPOPLPUSH": return target.invokeBrpoplpush(exchange);
+ case "decr":
+ case "DECR": return target.invokeDecr(exchange);
+ case "decrby":
+ case "DECRBY": return target.invokeDecrby(exchange);
+ case "del":
+ case "DEL": target.invokeDel(exchange); return null;
+ case "discard":
+ case "DISCARD": target.invokeDiscard(exchange); return null;
+ case "echo":
+ case "ECHO": return target.invokeEcho(exchange);
+ case "exec":
+ case "EXEC": target.invokeExec(exchange); return null;
+ case "exists":
+ case "EXISTS": return target.invokeExists(exchange);
+ case "expire":
+ case "EXPIRE": return target.invokeExpire(exchange);
+ case "expireat":
+ case "EXPIREAT": return target.invokeExpireat(exchange);
+ case "geoadd":
+ case "GEOADD": return target.invokeGeoadd(exchange);
+ case "geodist":
+ case "GEODIST": return target.invokeGeodist(exchange);
+ case "geohash":
+ case "GEOHASH": return target.invokeGeohash(exchange);
+ case "geopos":
+ case "GEOPOS": return target.invokeGeopos(exchange);
+ case "georadius":
+ case "GEORADIUS": return target.invokeGeoradius(exchange);
+ case "georadiusbymember":
+ case "GEORADIUSBYMEMBER": return target.invokeGeoradiusbymember(exchange);
+ case "get":
+ case "GET": return target.invokeGet(exchange);
+ case "getbit":
+ case "GETBIT": return target.invokeGetbit(exchange);
+ case "getrange":
+ case "GETRANGE": return target.invokeGetrange(exchange);
+ case "getset":
+ case "GETSET": return target.invokeGetset(exchange);
+ case "hdel":
+ case "HDEL": target.invokeHdel(exchange); return null;
+ case "hexists":
+ case "HEXISTS": return target.invokeHexists(exchange);
+ case "hget":
+ case "HGET": return target.invokeHget(exchange);
+ case "hgetall":
+ case "HGETALL": return target.invokeHgetAll(exchange);
+ case "hincrby":
+ case "HINCRBY": return target.invokeHincrBy(exchange);
+ case "hkeys":
+ case "HKEYS": return target.invokeHkeys(exchange);
+ case "hlen":
+ case "HLEN": return target.invokeHlen(exchange);
+ case "hmget":
+ case "HMGET": return target.invokeHmget(exchange);
+ case "hmset":
+ case "HMSET": target.invokeHmset(exchange); return null;
+ case "hset":
+ case "HSET": target.invokeHset(exchange); return null;
+ case "hsetnx":
+ case "HSETNX": return target.invokeHsetnx(exchange);
+ case "hvals":
+ case "HVALS": return target.invokeHvals(exchange);
+ case "incr":
+ case "INCR": return target.invokeIncr(exchange);
+ case "incrby":
+ case "INCRBY": return target.invokeIncrby(exchange);
+ case "keys":
+ case "KEYS": return target.invokeKeys(exchange);
+ case "lindex":
+ case "LINDEX": return target.invokeLindex(exchange);
+ case "linsert":
+ case "LINSERT": return target.invokeLinsert(exchange);
+ case "llen":
+ case "LLEN": return target.invokeLlen(exchange);
+ case "lpop":
+ case "LPOP": return target.invokeLpop(exchange);
+ case "lpush":
+ case "LPUSH": return target.invokeLpush(exchange);
+ case "lpushx":
+ case "LPUSHX": return target.invokeLpushx(exchange);
+ case "lrange":
+ case "LRANGE": return target.invokeLrange(exchange);
+ case "lrem":
+ case "LREM": return target.invokeLrem(exchange);
+ case "lset":
+ case "LSET": target.invokeLset(exchange); return null;
+ case "ltrim":
+ case "LTRIM": target.invokeLtrim(exchange); return null;
+ case "mget":
+ case "MGET": return target.invokeMget(exchange);
+ case "move":
+ case "MOVE": return target.invokeMove(exchange);
+ case "mset":
+ case "MSET": target.invokeMset(exchange); return null;
+ case "msetnx":
+ case "MSETNX": target.invokeMsetnx(exchange); return null;
+ case "multi":
+ case "MULTI": target.invokeMulti(exchange); return null;
+ case "persist":
+ case "PERSIST": return target.invokePersist(exchange);
+ case "pexpire":
+ case "PEXPIRE": return target.invokePexpire(exchange);
+ case "pexpireat":
+ case "PEXPIREAT": return target.invokePexpireat(exchange);
+ case "ping":
+ case "PING": return target.invokePing(exchange);
+ case "publish":
+ case "PUBLISH": target.invokePublish(exchange); return null;
+ case "quit":
+ case "QUIT": target.invokeQuit(exchange); return null;
+ case "randomkey":
+ case "RANDOMKEY": return target.invokeRandomkey(exchange);
+ case "rename":
+ case "RENAME": target.invokeRename(exchange); return null;
+ case "renamenx":
+ case "RENAMENX": return target.invokeRenamenx(exchange);
+ case "rpop":
+ case "RPOP": return target.invokeRpop(exchange);
+ case "rpoplpush":
+ case "RPOPLPUSH": return target.invokeRpoplpush(exchange);
+ case "rpush":
+ case "RPUSH": return target.invokeRpush(exchange);
+ case "rpushx":
+ case "RPUSHX": return target.invokeRpushx(exchange);
+ case "sadd":
+ case "SADD": return target.invokeSadd(exchange);
+ case "scard":
+ case "SCARD": return target.invokeScard(exchange);
+ case "sdiff":
+ case "SDIFF": return target.invokeSdiff(exchange);
+ case "sdiffstore":
+ case "SDIFFSTORE": target.invokeSdiffstore(exchange); return null;
+ case "set":
+ case "SET": target.invokeSet(exchange); return null;
+ case "setbit":
+ case "SETBIT": target.invokeSetbit(exchange); return null;
+ case "setex":
+ case "SETEX": target.invokeSetex(exchange); return null;
+ case "setnx":
+ case "SETNX": return target.invokeSetnx(exchange);
+ case "setrange":
+ case "SETRANGE": target.invokeSetrange(exchange); return null;
+ case "sinter":
+ case "SINTER": return target.invokeSinter(exchange);
+ case "sinterstore":
+ case "SINTERSTORE": target.invokeSinterstore(exchange); return null;
+ case "sismember":
+ case "SISMEMBER": return target.invokeSismember(exchange);
+ case "smembers":
+ case "SMEMBERS": return target.invokeSmembers(exchange);
+ case "smove":
+ case "SMOVE": return target.invokeSmove(exchange);
+ case "sort":
+ case "SORT": return target.invokeSort(exchange);
+ case "spop":
+ case "SPOP": return target.invokeSpop(exchange);
+ case "srandmember":
+ case "SRANDMEMBER": return target.invokeSrandmember(exchange);
+ case "srem":
+ case "SREM": return target.invokeSrem(exchange);
+ case "strlen":
+ case "STRLEN": return target.invokeStrlen(exchange);
+ case "sunion":
+ case "SUNION": return target.invokeSunion(exchange);
+ case "sunionstore":
+ case "SUNIONSTORE": target.invokeSunionstore(exchange); return null;
+ case "ttl":
+ case "TTL": return target.invokeTtl(exchange);
+ case "type":
+ case "TYPE": return target.invokeType(exchange);
+ case "unwatch":
+ case "UNWATCH": target.invokeUnwatch(exchange); return null;
+ case "watch":
+ case "WATCH": target.invokeWatch(exchange); return null;
+ case "zadd":
+ case "ZADD": return target.invokeZadd(exchange);
+ case "zcard":
+ case "ZCARD": return target.invokeZcard(exchange);
+ case "zcount":
+ case "ZCOUNT": return target.invokeZcount(exchange);
+ case "zincrby":
+ case "ZINCRBY": return target.invokeZincrby(exchange);
+ case "zinterstore":
+ case "ZINTERSTORE": target.invokeZinterstore(exchange); return null;
+ case "zrange":
+ case "ZRANGE": return target.invokeZrange(exchange);
+ case "zrangebyscore":
+ case "ZRANGEBYSCORE": return target.invokeZrangebyscore(exchange);
+ case "zrank":
+ case "ZRANK": return target.invokeZrank(exchange);
+ case "zrem":
+ case "ZREM": return target.invokeZrem(exchange);
+ case "zremrangebyrank":
+ case "ZREMRANGEBYRANK": target.invokeZremrangebyrank(exchange); return null;
+ case "zremrangebyscore":
+ case "ZREMRANGEBYSCORE": target.invokeZremrangebyscore(exchange); return null;
+ case "zrevrange":
+ case "ZREVRANGE": return target.invokeZrevrange(exchange);
+ case "zrevrangebyscore":
+ case "ZREVRANGEBYSCORE": return target.invokeZrevrangebyscore(exchange);
+ case "zrevrank":
+ case "ZREVRANK": return target.invokeZrevrank(exchange);
+ case "zunionstore":
+ case "ZUNIONSTORE": target.invokeZunionstore(exchange); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-spring-redis/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.redis.RedisProducer b/components/camel-spring-redis/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.redis.RedisProducer
new file mode 100644
index 0000000..416915e
--- /dev/null
+++ b/components/camel-spring-redis/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.redis.RedisProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.redis.RedisProducerInvokeOnHeaderFactory
diff --git a/components/camel-spring-redis/src/generated/resources/org/apache/camel/component/redis/spring-redis.json b/components/camel-spring-redis/src/generated/resources/org/apache/camel/component/redis/spring-redis.json
index baa7b66..f219a0b 100644
--- a/components/camel-spring-redis/src/generated/resources/org/apache/camel/component/redis/spring-redis.json
+++ b/components/camel-spring-redis/src/generated/resources/org/apache/camel/component/redis/spring-redis.json
@@ -22,6 +22,7 @@
"lenientProperties": false
},
"componentProperties": {
+ "redisTemplate": { "kind": "property", "displayName": "Redis Template", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.springframework.data.redis.core.RedisTemplate", "deprecated": false, "autowired": true, "secret": false, "description": "Reference to a pre-configured RedisTemplate instance to use." },
"bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...]
"lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
"autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
diff --git a/components/camel-spring-redis/src/main/docs/spring-redis-component.adoc b/components/camel-spring-redis/src/main/docs/spring-redis-component.adoc
index c24bb95..ce57b66 100644
--- a/components/camel-spring-redis/src/main/docs/spring-redis-component.adoc
+++ b/components/camel-spring-redis/src/main/docs/spring-redis-component.adoc
@@ -44,13 +44,14 @@ You can append query options to the URI in the following format,
// component options: START
-The Spring Redis component supports 3 options, which are listed below.
+The Spring Redis component supports 4 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
+| *redisTemplate* (common) | *Autowired* Reference to a pre-configured RedisTemplate instance to use. | | RedisTemplate
| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/AbstractRedisProcessorCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/AbstractRedisProcessorCreator.java
deleted file mode 100644
index 418607e..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/AbstractRedisProcessorCreator.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Function;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.Processor;
-
-public abstract class AbstractRedisProcessorCreator implements RedisProcessorsCreator {
- protected Map<Command, Processor> result = new HashMap<>();
-
- @Override
- public Map<Command, Processor> getRedisProcessors() {
- return result;
- }
-
- protected void bind(Command command, Processor processor) {
- result.put(command, processor);
- }
-
- private void setResult(Exchange exchange, Object result) {
- Message message;
- if (exchange.getPattern().isOutCapable()) {
- message = exchange.getOut();
- message.copyFrom(exchange.getIn());
- } else {
- message = exchange.getIn();
- }
- message.setBody(result);
- }
-
- protected Processor wrap(Function<Exchange, Object> supplier) {
- return exchange -> {
- Object result = supplier.apply(exchange);
- setResult(exchange, result);
- };
- }
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/AllRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/AllRedisProcessorsCreator.java
deleted file mode 100644
index b6aa83b..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/AllRedisProcessorsCreator.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public class AllRedisProcessorsCreator implements RedisProcessorsCreator {
-
- private final Map<Command, Processor> processors = new HashMap<>();
-
- public AllRedisProcessorsCreator(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- this.processors.putAll(new ConnectionRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new HashesRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new KeysRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new ListsRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new PubSubRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new SetsRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new SortedSetsRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new StringsRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new TransactionRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- this.processors.putAll(new GeoRedisProcessorsCreator().getProcessors(redisClient, exchangeConverter));
- }
-
- @Override
- public Map<Command, Processor> getRedisProcessors() {
- return processors;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/Command.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/Command.java
index 0b1628a..55e064b 100644
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/Command.java
+++ b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/Command.java
@@ -145,5 +145,5 @@ public enum Command {
GEOHASH,
GEOPOS,
GEORADIUS,
- GEORADIUSBYMEMBER
+ GEORADIUSBYMEMBER;
}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ConnectionRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ConnectionRedisProcessorsCreator.java
deleted file mode 100644
index 8426cc2..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ConnectionRedisProcessorsCreator.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public class ConnectionRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.ECHO, wrap(exchange -> redisClient.echo(exchangeConverter.getStringValue(exchange))));
- bind(Command.PING, wrap(exchange -> redisClient.ping()));
- bind(Command.QUIT, exchange -> redisClient.quit());
-
- return result;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ExchangeConverter.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ExchangeConverter.java
index b090faa..19cf314 100644
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ExchangeConverter.java
+++ b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ExchangeConverter.java
@@ -21,7 +21,7 @@ import java.util.Map;
import org.apache.camel.Exchange;
-class ExchangeConverter {
+public class ExchangeConverter {
String getKey(Exchange exchange) {
return getInHeaderValue(exchange, RedisConstants.KEY, String.class);
}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/GeoRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/GeoRedisProcessorsCreator.java
deleted file mode 100755
index 88da806..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/GeoRedisProcessorsCreator.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public final class GeoRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.GEOADD,
- wrap(exchange -> redisClient.geoadd(exchangeConverter.getKey(exchange),
- exchangeConverter.getLongitude(exchange),
- exchangeConverter.getLatitude(exchange), exchangeConverter.getValue(exchange))));
- bind(Command.GEODIST,
- wrap(exchange -> redisClient.geodist(exchangeConverter.getKey(exchange),
- exchangeConverter.getValuesAsCollection(exchange).toArray()[0],
- exchangeConverter.getValuesAsCollection(exchange).toArray()[1])));
- bind(Command.GEOHASH, wrap(
- exchange -> redisClient.geohash(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange))));
- bind(Command.GEOPOS,
- wrap(exchange -> redisClient.geopos(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange))));
- bind(Command.GEORADIUS,
- wrap(exchange -> redisClient.georadius(exchangeConverter.getKey(exchange),
- exchangeConverter.getLongitude(exchange), exchangeConverter.getLatitude(exchange),
- exchangeConverter.getRadius(exchange), exchangeConverter.getCount(exchange))));
- bind(Command.GEORADIUSBYMEMBER,
- wrap(exchange -> redisClient.georadius(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
- exchangeConverter.getRadius(exchange), exchangeConverter.getCount(exchange))));
- return result;
- }
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/HashesRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/HashesRedisProcessorsCreator.java
deleted file mode 100644
index e98b243..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/HashesRedisProcessorsCreator.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public final class HashesRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.HDEL, exchange -> redisClient.hdel(exchangeConverter.getKey(exchange),
- exchangeConverter.getField(exchange)));
- bind(Command.HEXISTS, wrap(exchange -> redisClient.hexists(exchangeConverter.getKey(exchange),
- exchangeConverter.getField(exchange))));
- bind(Command.HGET, wrap(exchange -> redisClient.hget(exchangeConverter.getKey(exchange),
- exchangeConverter.getField(exchange))));
- bind(Command.HGETALL, wrap(exchange -> redisClient.hgetAll(exchangeConverter.getKey(exchange))));
- bind(Command.HINCRBY, wrap(exchange -> redisClient.hincrBy(exchangeConverter.getKey(exchange),
- exchangeConverter.getField(exchange),
- exchangeConverter.getValueAsLong(exchange))));
- bind(Command.HKEYS, wrap(exchange -> redisClient.hkeys(exchangeConverter.getKey(exchange))));
- bind(Command.HLEN, wrap(exchange -> redisClient.hlen(exchangeConverter.getKey(exchange))));
- bind(Command.HMGET, wrap(exchange -> redisClient.hmget(exchangeConverter.getKey(exchange),
- exchangeConverter.getFields(exchange))));
- bind(Command.HMSET, exchange -> redisClient.hmset(exchangeConverter.getKey(exchange),
- exchangeConverter.getValuesAsMap(exchange)));
- bind(Command.HSET, exchange -> redisClient.hset(exchangeConverter.getKey(exchange),
- exchangeConverter.getField(exchange),
- exchangeConverter.getValue(exchange)));
- bind(Command.HSETNX, wrap(exchange -> redisClient.hsetnx(exchangeConverter.getKey(exchange),
- exchangeConverter.getField(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.HVALS, wrap(exchange -> redisClient.hvals(exchangeConverter.getKey(exchange))));
- //missing: hincrbyfloat, hstrlen, hscan
-
- return result;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/KeysRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/KeysRedisProcessorsCreator.java
deleted file mode 100644
index 2714daa..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/KeysRedisProcessorsCreator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public final class KeysRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.DEL, exchange -> redisClient.del(exchangeConverter.getKeys(exchange)));
- bind(Command.EXISTS, wrap(exchange -> redisClient.exists(exchangeConverter.getKey(exchange))));
- bind(Command.EXPIRE, wrap(exchange -> redisClient.expire(exchangeConverter.getKey(exchange),
- exchangeConverter.getTimeout(exchange))));
- bind(Command.EXPIREAT, wrap(exchange -> redisClient.expireat(exchangeConverter.getKey(exchange),
- exchangeConverter.getTimestamp(exchange))));
- bind(Command.KEYS, wrap(exchange -> redisClient.keys(exchangeConverter.getPattern(exchange))));
- bind(Command.MOVE, wrap(exchange -> redisClient.move(exchangeConverter.getKey(exchange),
- exchangeConverter.getDb(exchange))));
- bind(Command.PERSIST, wrap(exchange -> redisClient.persist(exchangeConverter.getKey(exchange))));
- bind(Command.PEXPIRE, wrap(exchange -> redisClient.pexpire(exchangeConverter.getKey(exchange),
- exchangeConverter.getTimeout(exchange))));
- bind(Command.PEXPIREAT, wrap(exchange -> redisClient.pexpireat(exchangeConverter.getKey(exchange),
- exchangeConverter.getTimestamp(exchange))));
- bind(Command.RANDOMKEY, wrap(exchange -> redisClient.randomkey()));
- bind(Command.RENAME, exchange -> redisClient.rename(exchangeConverter.getKey(exchange),
- exchangeConverter.getStringValue(exchange)));
- bind(Command.RENAMENX, wrap(exchange -> redisClient.renamenx(exchangeConverter.getKey(exchange),
- exchangeConverter.getStringValue(exchange))));
- bind(Command.SORT, wrap(exchange -> redisClient.sort(exchangeConverter.getKey(exchange))));
- bind(Command.TTL, wrap(exchange -> redisClient.ttl(exchangeConverter.getKey(exchange))));
- bind(Command.TYPE, wrap(exchange -> redisClient.type(exchangeConverter.getKey(exchange))));
- //missing: dump, migrate, object, pttl, restore, wait, scan
-
- return result;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ListsRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ListsRedisProcessorsCreator.java
deleted file mode 100644
index be8d625..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/ListsRedisProcessorsCreator.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public final class ListsRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.BLPOP, wrap(exchange -> redisClient.blpop(exchangeConverter.getKey(exchange),
- exchangeConverter.getTimeout(exchange))));
- bind(Command.BRPOP, wrap(exchange -> redisClient.brpop(exchangeConverter.getKey(exchange),
- exchangeConverter.getTimeout(exchange))));
- bind(Command.BRPOPLPUSH, wrap(exchange -> redisClient.brpoplpush(exchangeConverter.getKey(exchange),
- exchangeConverter.getDestination(exchange),
- exchangeConverter.getTimeout(exchange))));
- bind(Command.LINDEX, wrap(exchange -> redisClient.lindex(exchangeConverter.getKey(exchange),
- exchangeConverter.getIndex(exchange))));
- bind(Command.LINSERT, wrap(exchange -> redisClient.linsert(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange),
- exchangeConverter.getPivot(exchange),
- exchangeConverter.getPosition(exchange))));
- bind(Command.LLEN, wrap(exchange -> redisClient.llen(exchangeConverter.getKey(exchange))));
- bind(Command.LPOP, wrap(exchange -> redisClient.lpop(exchangeConverter.getKey(exchange))));
- bind(Command.LPUSH, wrap(exchange -> redisClient.lpush(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- //nieuwe actie
- bind(Command.LPUSHX, wrap(exchange -> redisClient.lpushx(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.LRANGE, wrap(exchange -> redisClient.lrange(exchangeConverter.getKey(exchange),
- exchangeConverter.getStart(exchange),
- exchangeConverter.getEnd(exchange))));
- bind(Command.LREM, wrap(exchange -> redisClient.lrem(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange),
- exchangeConverter.getCount(exchange))));
- bind(Command.LSET, exchange -> redisClient.lset(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange),
- exchangeConverter.getIndex(exchange)));
- bind(Command.LTRIM, exchange -> redisClient.ltrim(exchangeConverter.getKey(exchange),
- exchangeConverter.getStart(exchange),
- exchangeConverter.getEnd(exchange)));
- bind(Command.RPOP, wrap(exchange -> redisClient.rpop(exchangeConverter.getKey(exchange))));
- bind(Command.RPOPLPUSH, wrap(exchange -> redisClient.rpoplpush(exchangeConverter.getKey(exchange),
- exchangeConverter.getDestination(exchange))));
- bind(Command.RPUSH, wrap(exchange -> redisClient.rpush(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.RPUSHX, wrap(exchange -> redisClient.rpushx(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
-
- return result;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/PubSubRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/PubSubRedisProcessorsCreator.java
deleted file mode 100644
index 33908ba..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/PubSubRedisProcessorsCreator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public final class PubSubRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.PUBLISH, exchange -> redisClient.publish(exchangeConverter.getChannel(exchange),
- exchangeConverter.getMessage(exchange)));
- //missing psubscribe, pubsub, punsubscribe, subscribe, unsubscribe
- //psubscribe, subscribe are used in consumer
-
- return result;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisComponent.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisComponent.java
index 5379e34..edb8ce7 100644
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisComponent.java
+++ b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisComponent.java
@@ -19,8 +19,10 @@ package org.apache.camel.component.redis;
import java.util.Map;
import org.apache.camel.Endpoint;
+import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.DefaultComponent;
+import org.springframework.data.redis.core.RedisTemplate;
/**
* Represents the component that manages {@link RedisEndpoint}.
@@ -28,7 +30,8 @@ import org.apache.camel.support.DefaultComponent;
@Component("spring-redis")
public class RedisComponent extends DefaultComponent {
- private final ExchangeConverter exchangeConverter = new ExchangeConverter();
+ @Metadata(autowired = true)
+ private RedisTemplate redisTemplate;
public RedisComponent() {
}
@@ -36,7 +39,9 @@ public class RedisComponent extends DefaultComponent {
@Override
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
RedisConfiguration configuration = new RedisConfiguration();
+ configuration.setRedisTemplate(redisTemplate);
setHostAndPort(configuration, remaining);
+
RedisEndpoint endpoint = new RedisEndpoint(uri, this, configuration);
setProperties(endpoint, parameters);
return endpoint;
@@ -52,7 +57,14 @@ public class RedisComponent extends DefaultComponent {
}
}
- public ExchangeConverter getExchangeConverter() {
- return exchangeConverter;
+ public RedisTemplate getRedisTemplate() {
+ return redisTemplate;
+ }
+
+ /**
+ * Reference to a pre-configured RedisTemplate instance to use.
+ */
+ public void setRedisTemplate(RedisTemplate redisTemplate) {
+ this.redisTemplate = redisTemplate;
}
}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java
index 0672560..99820e8 100644
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java
+++ b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java
@@ -33,7 +33,6 @@ public class RedisEndpoint extends DefaultEndpoint {
@UriParam
private RedisConfiguration configuration;
- private RedisProcessorsCreator redisProcessorsCreator;
public RedisEndpoint(String uri, RedisComponent component, RedisConfiguration configuration) {
super(uri, component);
@@ -46,11 +45,9 @@ public class RedisEndpoint extends DefaultEndpoint {
if (defaultCommand == null) {
defaultCommand = Command.SET;
}
+
return new RedisProducer(
- this,
- RedisConstants.COMMAND,
- defaultCommand.name(),
- redisProcessorsCreator);
+ this, RedisConstants.COMMAND, defaultCommand.name(), new RedisClient(configuration.getRedisTemplate()));
}
@Override
@@ -61,14 +58,6 @@ public class RedisEndpoint extends DefaultEndpoint {
}
@Override
- protected void doInit() throws Exception {
- super.doInit();
- redisProcessorsCreator = new AllRedisProcessorsCreator(
- new RedisClient(configuration.getRedisTemplate()),
- ((RedisComponent) getComponent()).getExchangeConverter());
- }
-
- @Override
protected void doShutdown() throws Exception {
super.doShutdown();
configuration.stop();
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisProducer.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisProducer.java
index 3631e4d..285b171 100644
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisProducer.java
+++ b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisProducer.java
@@ -16,23 +16,603 @@
*/
package org.apache.camel.component.redis;
+import java.util.Collection;
+import java.util.List;
import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
import org.apache.camel.Endpoint;
-import org.apache.camel.Processor;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeader;
import org.apache.camel.support.HeaderSelectorProducer;
+import org.springframework.data.geo.Distance;
+import org.springframework.data.geo.GeoResults;
+import org.springframework.data.geo.Point;
+import org.springframework.data.redis.connection.RedisGeoCommands;
-final class RedisProducer extends HeaderSelectorProducer {
+public class RedisProducer extends HeaderSelectorProducer {
- RedisProducer(Endpoint endpoint,
- String header,
- String defaultHeaderValue,
- RedisProcessorsCreator redisProcessorsCreator) {
+ private final ExchangeConverter exchangeConverter = new ExchangeConverter();
+ private final RedisClient client;
+
+ public RedisProducer(Endpoint endpoint,
+ String header,
+ String defaultHeaderValue,
+ RedisClient redisClient) {
super(endpoint, header, defaultHeaderValue);
+ this.client = redisClient;
+ }
+
+ @InvokeOnHeader("ECHO")
+ public String invokeEcho(Exchange exchange) {
+ return client.echo(exchangeConverter.getStringValue(exchange));
+ }
+
+ @InvokeOnHeader("PING")
+ public String invokePing(Exchange exchange) {
+ return client.ping();
+ }
+
+ @InvokeOnHeader("QUIT")
+ public void invokeQuit(Exchange exchange) {
+ client.quit();
+ }
+
+ @InvokeOnHeader("HDEL")
+ public void invokeHdel(Exchange exchange) {
+ client.hdel(exchangeConverter.getKey(exchange), exchangeConverter.getField(exchange));
+ }
+
+ @InvokeOnHeader("HEXISTS")
+ public Boolean invokeHexists(Exchange exchange) {
+ return client.hexists(exchangeConverter.getKey(exchange), exchangeConverter.getField(exchange));
+ }
+
+ @InvokeOnHeader("HGET")
+ public Object invokeHget(Exchange exchange) {
+ return client.hget(exchangeConverter.getKey(exchange), exchangeConverter.getField(exchange));
+ }
+
+ @InvokeOnHeader("HGETALL")
+ public Map<String, Object> invokeHgetAll(Exchange exchange) {
+ return client.hgetAll(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("HINCRBY")
+ public Long invokeHincrBy(Exchange exchange) {
+ return client.hincrBy(exchangeConverter.getKey(exchange), exchangeConverter.getField(exchange),
+ exchangeConverter.getValueAsLong(exchange));
+ }
+
+ @InvokeOnHeader("HKEYS")
+ public Set<String> invokeHkeys(Exchange exchange) {
+ return client.hkeys(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("HLEN")
+ public Long invokeHlen(Exchange exchange) {
+ return client.hlen(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("HMGET")
+ public Collection<Object> invokeHmget(Exchange exchange) {
+ return client.hmget(exchangeConverter.getKey(exchange), exchangeConverter.getFields(exchange));
+ }
+
+ @InvokeOnHeader("HMSET")
+ public void invokeHmset(Exchange exchange) {
+ client.hmset(exchangeConverter.getKey(exchange), exchangeConverter.getValuesAsMap(exchange));
+ }
+
+ @InvokeOnHeader("HSET")
+ public void invokeHset(Exchange exchange) {
+ client.hset(exchangeConverter.getKey(exchange), exchangeConverter.getField(exchange),
+ exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("HSETNX")
+ public Boolean invokeHsetnx(Exchange exchange) {
+ return client.hsetnx(exchangeConverter.getKey(exchange), exchangeConverter.getField(exchange),
+ exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("HVALS")
+ public Collection<Object> invokeHvals(Exchange exchange) {
+ return client.hvals(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("DEL")
+ public void invokeDel(Exchange exchange) {
+ client.del(exchangeConverter.getKeys(exchange));
+ }
+
+ @InvokeOnHeader("EXISTS")
+ public Boolean invokeExists(Exchange exchange) {
+ return client.exists(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("EXPIRE")
+ public Boolean invokeExpire(Exchange exchange) {
+ return client.expire(exchangeConverter.getKey(exchange), exchangeConverter.getTimeout(exchange));
+ }
+
+ @InvokeOnHeader("EXPIREAT")
+ public Boolean invokeExpireat(Exchange exchange) {
+ return client.expireat(exchangeConverter.getKey(exchange), exchangeConverter.getTimestamp(exchange));
+ }
+
+ @InvokeOnHeader("KEYS")
+ public Collection<String> invokeKeys(Exchange exchange) {
+ return client.keys(exchangeConverter.getPattern(exchange));
+ }
+
+ @InvokeOnHeader("MOVE")
+ public Boolean invokeMove(Exchange exchange) {
+ return client.move(exchangeConverter.getKey(exchange), exchangeConverter.getDb(exchange));
+ }
+
+ @InvokeOnHeader("PERSIST")
+ public Boolean invokePersist(Exchange exchange) {
+ return client.persist(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("PEXPIRE")
+ public Boolean invokePexpire(Exchange exchange) {
+ return client.pexpire(exchangeConverter.getKey(exchange), exchangeConverter.getTimeout(exchange));
+ }
+
+ @InvokeOnHeader("PEXPIREAT")
+ public Boolean invokePexpireat(Exchange exchange) {
+ return client.pexpireat(exchangeConverter.getKey(exchange), exchangeConverter.getTimestamp(exchange));
+ }
+
+ @InvokeOnHeader("RANDOMKEY")
+ public String invokeRandomkey(Exchange exchange) {
+ return client.randomkey();
+ }
+
+ @InvokeOnHeader("RENAME")
+ public void invokeRename(Exchange exchange) {
+ client.rename(exchangeConverter.getKey(exchange), exchangeConverter.getStringValue(exchange));
+ }
+
+ @InvokeOnHeader("RENAMENX")
+ public Boolean invokeRenamenx(Exchange exchange) {
+ return client.renamenx(exchangeConverter.getKey(exchange), exchangeConverter.getStringValue(exchange));
+ }
+
+ @InvokeOnHeader("SORT")
+ public List<Object> invokeSort(Exchange exchange) {
+ return client.sort(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("TTL")
+ public Long invokeTtl(Exchange exchange) {
+ return client.ttl(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("TYPE")
+ public String invokeType(Exchange exchange) {
+ return client.type(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("BLPOP")
+ public Object invokeBlpop(Exchange exchange) {
+ return client.blpop(exchangeConverter.getKey(exchange), exchangeConverter.getTimeout(exchange));
+ }
+
+ @InvokeOnHeader("BRPOP")
+ public Object invokeBrpop(Exchange exchange) {
+ return client.brpop(exchangeConverter.getKey(exchange), exchangeConverter.getTimeout(exchange));
+ }
+
+ @InvokeOnHeader("BRPOPLPUSH")
+ public Object invokeBrpoplpush(Exchange exchange) {
+ return client.brpoplpush(exchangeConverter.getKey(exchange), exchangeConverter.getDestination(exchange),
+ exchangeConverter.getTimeout(exchange));
+ }
+
+ @InvokeOnHeader("LINDEX")
+ public Object invokeLindex(Exchange exchange) {
+ return client.lindex(exchangeConverter.getKey(exchange), exchangeConverter.getIndex(exchange));
+ }
+
+ @InvokeOnHeader("LINSERT")
+ public Object invokeLinsert(Exchange exchange) {
+ return client.linsert(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getPivot(exchange),
+ exchangeConverter.getPosition(exchange));
+ }
+
+ @InvokeOnHeader("LLEN")
+ public Long invokeLlen(Exchange exchange) {
+ return client.llen(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("LPOP")
+ public Object invokeLpop(Exchange exchange) {
+ return client.lpop(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("LPUSH")
+ public Long invokeLpush(Exchange exchange) {
+ return client.lpush(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("LPUSHX")
+ public Long invokeLpushx(Exchange exchange) {
+ return client.lpushx(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("LRANGE")
+ public List<Object> invokeLrange(Exchange exchange) {
+ return client.lrange(exchangeConverter.getKey(exchange), exchangeConverter.getStart(exchange),
+ exchangeConverter.getEnd(exchange));
+ }
+
+ @InvokeOnHeader("LREM")
+ public Long invokeLrem(Exchange exchange) {
+ return client.lrem(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getCount(exchange));
+ }
+
+ @InvokeOnHeader("LSET")
+ public void invokeLset(Exchange exchange) {
+ client.lset(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getIndex(exchange));
+ }
+
+ @InvokeOnHeader("LTRIM")
+ public void invokeLtrim(Exchange exchange) {
+ client.ltrim(exchangeConverter.getKey(exchange), exchangeConverter.getStart(exchange),
+ exchangeConverter.getEnd(exchange));
+ }
+
+ @InvokeOnHeader("RPOP")
+ public Object invokeRpop(Exchange exchange) {
+ return client.rpop(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("RPOPLPUSH")
+ public Object invokeRpoplpush(Exchange exchange) {
+ return client.rpoplpush(exchangeConverter.getKey(exchange), exchangeConverter.getDestination(exchange));
+ }
+
+ @InvokeOnHeader("RPUSH")
+ public Long invokeRpush(Exchange exchange) {
+ return client.rpush(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("RPUSHX")
+ public Long invokeRpushx(Exchange exchange) {
+ return client.rpushx(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("PUBLISH")
+ public void invokePublish(Exchange exchange) {
+ client.publish(exchangeConverter.getChannel(exchange), exchangeConverter.getMessage(exchange));
+ }
+
+ @InvokeOnHeader("SADD")
+ public Long invokeSadd(Exchange exchange) {
+ return client.sadd(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("SCARD")
+ public Long invokeScard(Exchange exchange) {
+ return client.scard(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("SDIFF")
+ public Set<Object> invokeSdiff(Exchange exchange) {
+ return client.sdiff(exchangeConverter.getKey(exchange), exchangeConverter.getKeys(exchange));
+ }
+
+ @InvokeOnHeader("SDIFFSTORE")
+ public void invokeSdiffstore(Exchange exchange) {
+ client.sdiffstore(exchangeConverter.getKey(exchange), exchangeConverter.getKeys(exchange),
+ exchangeConverter.getDestination(exchange));
+ }
+
+ @InvokeOnHeader("SINTER")
+ public Set<Object> invokeSinter(Exchange exchange) {
+ return client.sinter(exchangeConverter.getKey(exchange), exchangeConverter.getKeys(exchange));
+ }
+
+ @InvokeOnHeader("SINTERSTORE")
+ public void invokeSinterstore(Exchange exchange) {
+ client.sinterstore(exchangeConverter.getKey(exchange), exchangeConverter.getKeys(exchange),
+ exchangeConverter.getDestination(exchange));
+ }
+
+ @InvokeOnHeader("SISMEMBER")
+ public Boolean invokeSismember(Exchange exchange) {
+ return client.sismember(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("SMEMBERS")
+ public Set<Object> invokeSmembers(Exchange exchange) {
+ return client.smembers(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("SMOVE")
+ public Boolean invokeSmove(Exchange exchange) {
+ return client.smove(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getDestination(exchange));
+ }
+
+ @InvokeOnHeader("SPOP")
+ public Object invokeSpop(Exchange exchange) {
+ return client.spop(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("SRANDMEMBER")
+ public Object invokeSrandmember(Exchange exchange) {
+ return client.srandmember(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("SREM")
+ public Long invokeSrem(Exchange exchange) {
+ return client.srem(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("SUNION")
+ public Set<Object> invokeSunion(Exchange exchange) {
+ return client.sunion(exchangeConverter.getKey(exchange), exchangeConverter.getKeys(exchange));
+ }
+
+ @InvokeOnHeader("SUNIONSTORE")
+ public void invokeSunionstore(Exchange exchange) {
+ client.sunionstore(exchangeConverter.getKey(exchange), exchangeConverter.getKeys(exchange),
+ exchangeConverter.getDestination(exchange));
+ }
+
+ @InvokeOnHeader("ZADD")
+ public Boolean invokeZadd(Exchange exchange) {
+ return client.zadd(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getScore(exchange));
+ }
+
+ @InvokeOnHeader("ZCARD")
+ public Long invokeZcard(Exchange exchange) {
+ return client.zcard(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("ZCOUNT")
+ public Long invokeZcount(Exchange exchange) {
+ return client.zcount(exchangeConverter.getKey(exchange), exchangeConverter.getMin(exchange),
+ exchangeConverter.getMax(exchange));
+ }
+
+ @InvokeOnHeader("ZINCRBY")
+ public Double invokeZincrby(Exchange exchange) {
+ return client.zincrby(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getIncrement(exchange));
+ }
+
+ @InvokeOnHeader("ZINTERSTORE")
+ public void invokeZinterstore(Exchange exchange) {
+ client.zinterstore(exchangeConverter.getKey(exchange), exchangeConverter.getKeys(exchange),
+ exchangeConverter.getDestination(exchange));
+ }
+
+ @InvokeOnHeader("ZRANGE")
+ public Object invokeZrange(Exchange exchange) {
+ return client.zrange(exchangeConverter.getKey(exchange), exchangeConverter.getStart(exchange),
+ exchangeConverter.getEnd(exchange),
+ exchangeConverter.getWithScore(exchange));
+ }
+
+ @InvokeOnHeader("ZRANGEBYSCORE")
+ public Set<Object> invokeZrangebyscore(Exchange exchange) {
+ return client.zrangebyscore(exchangeConverter.getKey(exchange),
+ exchangeConverter.getMin(exchange),
+ exchangeConverter.getMax(exchange));
+ }
+
+ @InvokeOnHeader("ZRANK")
+ public Long invokeZrank(Exchange exchange) {
+ return client.zrank(exchangeConverter.getKey(exchange),
+ exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("ZREM")
+ public Long invokeZrem(Exchange exchange) {
+ return client.zrem(exchangeConverter.getKey(exchange),
+ exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("ZREMRANGEBYRANK")
+ public void invokeZremrangebyrank(Exchange exchange) {
+ client.zremrangebyrank(exchangeConverter.getKey(exchange),
+ exchangeConverter.getStart(exchange), exchangeConverter.getEnd(exchange));
+ }
+
+ @InvokeOnHeader("ZREMRANGEBYSCORE")
+ public void invokeZremrangebyscore(Exchange exchange) {
+ client.zremrangebyscore(exchangeConverter.getKey(exchange),
+ exchangeConverter.getStart(exchange), exchangeConverter.getEnd(exchange));
+ }
+
+ @InvokeOnHeader("ZREVRANGE")
+ public Object invokeZrevrange(Exchange exchange) {
+ return client.zrevrange(exchangeConverter.getKey(exchange),
+ exchangeConverter.getStart(exchange), exchangeConverter.getEnd(exchange),
+ exchangeConverter.getWithScore(exchange));
+ }
+
+ @InvokeOnHeader("ZREVRANGEBYSCORE")
+ public Set<Object> invokeZrevrangebyscore(Exchange exchange) {
+ return client.zrevrangebyscore(exchangeConverter.getKey(exchange),
+ exchangeConverter.getMin(exchange), exchangeConverter.getMax(exchange));
+ }
+
+ @InvokeOnHeader("ZREVRANK")
+ public Long invokeZrevrank(Exchange exchange) {
+ return client.zrevrank(exchangeConverter.getKey(exchange),
+ exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("ZUNIONSTORE")
+ public void invokeZunionstore(Exchange exchange) {
+ client.zunionstore(exchangeConverter.getKey(exchange),
+ exchangeConverter.getKeys(exchange), exchangeConverter.getDestination(exchange));
+ }
+
+ @InvokeOnHeader("APPEND")
+ public Integer invokeAppend(Exchange exchange) {
+ return client.append(exchangeConverter.getKey(exchange), exchangeConverter.getStringValue(exchange));
+ }
+
+ @InvokeOnHeader("DECR")
+ public Long invokeDecr(Exchange exchange) {
+ return client.decr(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("DECRBY")
+ public Long invokeDecrby(Exchange exchange) {
+ return client.decrby(exchangeConverter.getKey(exchange), exchangeConverter.getLongValue(exchange));
+ }
+
+ @InvokeOnHeader("GET")
+ public Object invokeGet(Exchange exchange) {
+ return client.get(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("GETBIT")
+ public Boolean invokeGetbit(Exchange exchange) {
+ return client.getbit(exchangeConverter.getKey(exchange), exchangeConverter.getOffset(exchange));
+ }
+
+ @InvokeOnHeader("GETRANGE")
+ public String invokeGetrange(Exchange exchange) {
+ return client.getrange(exchangeConverter.getKey(exchange), exchangeConverter.getStart(exchange),
+ exchangeConverter.getEnd(exchange));
+ }
+
+ @InvokeOnHeader("SETRANGE")
+ public void invokeSetrange(Exchange exchange) {
+ client.setex(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getOffset(exchange));
+ }
+
+ @InvokeOnHeader("GETSET")
+ public Object invokeGetset(Exchange exchange) {
+ return client.getset(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("INCR")
+ public Long invokeIncr(Exchange exchange) {
+ return client.incr(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("INCRBY")
+ public Long invokeIncrby(Exchange exchange) {
+ return client.incrby(exchangeConverter.getKey(exchange), exchangeConverter.getLongValue(exchange));
+ }
+
+ @InvokeOnHeader("MGET")
+ public List<Object> invokeMget(Exchange exchange) {
+ return client.mget(exchangeConverter.getFields(exchange));
+ }
+
+ @InvokeOnHeader("MSET")
+ public void invokeMset(Exchange exchange) {
+ client.mset(exchangeConverter.getValuesAsMap(exchange));
+ }
+
+ @InvokeOnHeader("MSETNX")
+ public void invokeMsetnx(Exchange exchange) {
+ client.msetnx(exchangeConverter.getValuesAsMap(exchange));
+ }
+
+ @InvokeOnHeader("SET")
+ public void invokeSet(Exchange exchange) {
+ client.set(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("SETBIT")
+ public void invokeSetbit(Exchange exchange) {
+ client.setbit(exchangeConverter.getKey(exchange), exchangeConverter.getOffset(exchange),
+ exchangeConverter.getBooleanValue(exchange));
+ }
+
+ @InvokeOnHeader("SETEX")
+ public void invokeSetex(Exchange exchange) {
+ client.setex(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getTimeout(exchange), TimeUnit.SECONDS);
+ }
+
+ @InvokeOnHeader("SETNX")
+ public Boolean invokeSetnx(Exchange exchange) {
+ return client.setnx(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("STRLEN")
+ public Long invokeStrlen(Exchange exchange) {
+ return client.strlen(exchangeConverter.getKey(exchange));
+ }
+
+ @InvokeOnHeader("DISCARD")
+ public void invokeDiscard(Exchange exchange) {
+ client.discard();
+ }
+
+ @InvokeOnHeader("EXEC")
+ public void invokeExec(Exchange exchange) {
+ client.exec();
+ }
+
+ @InvokeOnHeader("MULTI")
+ public void invokeMulti(Exchange exchange) {
+ client.multi();
+ }
+
+ @InvokeOnHeader("WATCH")
+ public void invokeWatch(Exchange exchange) {
+ client.watch(exchangeConverter.getKeys(exchange));
+ }
+
+ @InvokeOnHeader("UNWATCH")
+ public void invokeUnwatch(Exchange exchange) {
+ client.unwatch();
+ }
+
+ @InvokeOnHeader("GEOADD")
+ public Long invokeGeoadd(Exchange exchange) {
+ return client.geoadd(exchangeConverter.getKey(exchange), exchangeConverter.getLongitude(exchange),
+ exchangeConverter.getLatitude(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("GEODIST")
+ public Distance invokeGeodist(Exchange exchange) {
+ return client.geodist(exchangeConverter.getKey(exchange),
+ exchangeConverter.getValuesAsCollection(exchange).toArray()[0],
+ exchangeConverter.getValuesAsCollection(exchange).toArray()[1]);
+ }
+
+ @InvokeOnHeader("GEOHASH")
+ public List<String> invokeGeohash(Exchange exchange) {
+ return client.geohash(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("GEOPOS")
+ public List<Point> invokeGeopos(Exchange exchange) {
+ return client.geopos(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange));
+ }
+
+ @InvokeOnHeader("GEORADIUS")
+ public GeoResults<RedisGeoCommands.GeoLocation<Object>> invokeGeoradius(Exchange exchange) {
+ return client.georadius(exchangeConverter.getKey(exchange), exchangeConverter.getLongitude(exchange),
+ exchangeConverter.getLatitude(exchange),
+ exchangeConverter.getRadius(exchange), exchangeConverter.getCount(exchange));
+ }
- for (Map.Entry<Command, Processor> entry : redisProcessorsCreator.getRedisProcessors().entrySet()) {
- bind(entry.getKey().name(), entry.getValue());
- }
+ @InvokeOnHeader("GEORADIUSBYMEMBER")
+ public GeoResults<RedisGeoCommands.GeoLocation<Object>> invokeGeoradiusbymember(Exchange exchange) {
+ return client.georadius(exchangeConverter.getKey(exchange), exchangeConverter.getValue(exchange),
+ exchangeConverter.getRadius(exchange), exchangeConverter.getCount(exchange));
}
}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/SetsRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/SetsRedisProcessorsCreator.java
deleted file mode 100644
index af68c5a..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/SetsRedisProcessorsCreator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public final class SetsRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.SADD, wrap(exchange -> redisClient.sadd(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.SCARD, wrap(exchange -> redisClient.scard(exchangeConverter.getKey(exchange))));
- bind(Command.SDIFF, wrap(exchange -> redisClient.sdiff(exchangeConverter.getKey(exchange),
- exchangeConverter.getKeys(exchange))));
- bind(Command.SDIFFSTORE, exchange -> redisClient.sdiffstore(exchangeConverter.getKey(exchange),
- exchangeConverter.getKeys(exchange),
- exchangeConverter.getDestination(exchange)));
- bind(Command.SINTER, wrap(exchange -> redisClient.sinter(exchangeConverter.getKey(exchange),
- exchangeConverter.getKeys(exchange))));
- bind(Command.SINTERSTORE, exchange -> redisClient.sinterstore(exchangeConverter.getKey(exchange),
- exchangeConverter.getKeys(exchange),
- exchangeConverter.getDestination(exchange)));
- bind(Command.SISMEMBER, wrap(exchange -> redisClient.sismember(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.SMEMBERS, wrap(exchange -> redisClient.smembers(exchangeConverter.getKey(exchange))));
- bind(Command.SMOVE, wrap(exchange -> redisClient.smove(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange),
- exchangeConverter.getDestination(exchange))));
- bind(Command.SPOP, wrap(exchange -> redisClient.spop(exchangeConverter.getKey(exchange))));
- bind(Command.SRANDMEMBER, wrap(exchange -> redisClient.srandmember(exchangeConverter.getKey(exchange))));
- bind(Command.SREM, wrap(exchange -> redisClient.srem(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.SUNION, wrap(exchange -> redisClient.sunion(exchangeConverter.getKey(exchange),
- exchangeConverter.getKeys(exchange))));
- bind(Command.SUNIONSTORE, exchange -> redisClient.sunionstore(exchangeConverter.getKey(exchange),
- exchangeConverter.getKeys(exchange),
- exchangeConverter.getDestination(exchange)));
- //missing command sscan
-
- return result;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/SortedSetsRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/SortedSetsRedisProcessorsCreator.java
deleted file mode 100644
index c3cb45f..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/SortedSetsRedisProcessorsCreator.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public final class SortedSetsRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.ZADD, wrap(exchange -> redisClient.zadd(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange),
- exchangeConverter.getScore(exchange))));
- bind(Command.ZCARD, wrap(exchange -> redisClient.zcard(exchangeConverter.getKey(exchange))));
- bind(Command.ZCOUNT, wrap(exchange -> redisClient.zcount(exchangeConverter.getKey(exchange),
- exchangeConverter.getMin(exchange),
- exchangeConverter.getMax(exchange))));
- bind(Command.ZINCRBY, wrap(exchange -> redisClient.zincrby(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange),
- exchangeConverter.getIncrement(exchange))));
- bind(Command.ZINTERSTORE, exchange -> redisClient.zinterstore(exchangeConverter.getKey(exchange),
- exchangeConverter.getKeys(exchange),
- exchangeConverter.getDestination(exchange)));
- bind(Command.ZRANGE, wrap(exchange -> redisClient.zrange(exchangeConverter.getKey(exchange),
- exchangeConverter.getStart(exchange),
- exchangeConverter.getEnd(exchange),
- exchangeConverter.getWithScore(exchange))));
- bind(Command.ZRANGEBYSCORE, wrap(exchange -> redisClient.zrangebyscore(exchangeConverter.getKey(exchange),
- exchangeConverter.getMin(exchange),
- exchangeConverter.getMax(exchange))));
- bind(Command.ZRANK, wrap(exchange -> redisClient.zrank(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.ZREM, wrap(exchange -> redisClient.zrem(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.ZREMRANGEBYRANK, exchange -> redisClient.zremrangebyrank(exchangeConverter.getKey(exchange),
- exchangeConverter.getStart(exchange),
- exchangeConverter.getEnd(exchange)));
- bind(Command.ZREMRANGEBYSCORE, exchange -> redisClient.zremrangebyscore(exchangeConverter.getKey(exchange),
- exchangeConverter.getStart(exchange),
- exchangeConverter.getEnd(exchange)));
- bind(Command.ZREVRANGE, wrap(exchange -> redisClient.zrevrange(exchangeConverter.getKey(exchange),
- exchangeConverter.getStart(exchange),
- exchangeConverter.getEnd(exchange),
- exchangeConverter.getWithScore(exchange))));
- bind(Command.ZREVRANGEBYSCORE, wrap(exchange -> redisClient.zrevrangebyscore(exchangeConverter.getKey(exchange),
- exchangeConverter.getMin(exchange),
- exchangeConverter.getMax(exchange))));
- bind(Command.ZREVRANK, wrap(exchange -> redisClient.zrevrank(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.ZUNIONSTORE, exchange -> redisClient.zunionstore(exchangeConverter.getKey(exchange),
- exchangeConverter.getKeys(exchange),
- exchangeConverter.getDestination(exchange)));
- //missing zlexcount, zrangebylex, zrevrangebylex, zremrangebylex, zscore, zscan
-
- return result;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/StringsRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/StringsRedisProcessorsCreator.java
deleted file mode 100644
index 0a54aa6..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/StringsRedisProcessorsCreator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.Processor;
-
-public final class StringsRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.APPEND, wrap(exchange -> redisClient.append(exchangeConverter.getKey(exchange),
- exchangeConverter.getStringValue(exchange))));
- bind(Command.DECR, wrap(exchange -> redisClient.decr(exchangeConverter.getKey(exchange))));
- bind(Command.DECRBY, wrap(exchange -> redisClient.decrby(exchangeConverter.getKey(exchange),
- exchangeConverter.getLongValue(exchange))));
- bind(Command.GET, wrap(exchange -> redisClient.get(exchangeConverter.getKey(exchange))));
- bind(Command.GETBIT, wrap(exchange -> redisClient.getbit(exchangeConverter.getKey(exchange),
- exchangeConverter.getOffset(exchange))));
- bind(Command.GETRANGE, wrap(exchange -> redisClient.getrange(exchangeConverter.getKey(exchange),
- exchangeConverter.getStart(exchange),
- exchangeConverter.getEnd(exchange))));
- bind(Command.GETSET, wrap(exchange -> redisClient.getset(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.INCR, wrap(exchange -> redisClient.incr(exchangeConverter.getKey(exchange))));
- bind(Command.INCRBY, wrap(exchange -> redisClient.incrby(exchangeConverter.getKey(exchange),
- exchangeConverter.getLongValue(exchange))));
- bind(Command.MGET, wrap(exchange -> redisClient.mget(exchangeConverter.getFields(exchange))));
- bind(Command.MSET, exchange -> redisClient.mset(exchangeConverter.getValuesAsMap(exchange)));
- bind(Command.MSETNX, exchange -> redisClient.msetnx(exchangeConverter.getValuesAsMap(exchange)));
- bind(Command.SET, exchange -> redisClient.set(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange)));
- bind(Command.SETBIT, exchange -> redisClient.setbit(exchangeConverter.getKey(exchange),
- exchangeConverter.getOffset(exchange),
- exchangeConverter.getBooleanValue(exchange)));
- bind(Command.SETEX, exchange -> redisClient.setex(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange),
- exchangeConverter.getTimeout(exchange),
- TimeUnit.SECONDS));
- bind(Command.SETNX, wrap(exchange -> redisClient.setnx(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange))));
- bind(Command.SETRANGE, exchange -> redisClient.setex(exchangeConverter.getKey(exchange),
- exchangeConverter.getValue(exchange),
- exchangeConverter.getOffset(exchange)));
- bind(Command.STRLEN, wrap(exchange -> redisClient.strlen(exchangeConverter.getKey(exchange))));
- //missing bitcount, bitfield, bitop, bitpos, incrbyfloat, psetex
-
- return result;
- }
-
-}
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/TransactionRedisProcessorsCreator.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/TransactionRedisProcessorsCreator.java
deleted file mode 100644
index 4b94fd8..0000000
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/TransactionRedisProcessorsCreator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.redis;
-
-import java.util.Map;
-
-import org.apache.camel.Processor;
-
-public final class TransactionRedisProcessorsCreator extends AbstractRedisProcessorCreator {
-
- Map<Command, Processor> getProcessors(RedisClient redisClient, ExchangeConverter exchangeConverter) {
- bind(Command.DISCARD, exchange -> redisClient.discard());
- bind(Command.EXEC, exchange -> redisClient.exec());
- bind(Command.MULTI, exchange -> redisClient.multi());
- bind(Command.WATCH, exchange -> redisClient.watch(exchangeConverter.getKeys(exchange)));
- bind(Command.UNWATCH, exchange -> redisClient.unwatch());
-
- return result;
- }
-
-}
diff --git a/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jProducerInvokeOnHeaderFactory.java b/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jProducerInvokeOnHeaderFactory.java
new file mode 100644
index 0000000..cc754ea
--- /dev/null
+++ b/components/camel-web3j/src/generated/java/org/apache/camel/component/web3j/Web3jProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,168 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.web3j;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
+import org.apache.camel.component.web3j.Web3jProducer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class Web3jProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+
+ @Override
+ public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {
+ org.apache.camel.component.web3j.Web3jProducer target = (org.apache.camel.component.web3j.Web3jProducer) obj;
+ switch (key) {
+ case "db_get_hex":
+ case "DB_GET_HEX": target.dbGetHex(exchange.getMessage()); return null;
+ case "db_get_string":
+ case "DB_GET_STRING": target.dbGetString(exchange.getMessage()); return null;
+ case "db_put_hex":
+ case "DB_PUT_HEX": target.dbPutHex(exchange.getMessage()); return null;
+ case "db_put_string":
+ case "DB_PUT_STRING": target.dbPutString(exchange.getMessage()); return null;
+ case "eth_accounts":
+ case "ETH_ACCOUNTS": target.ethAccounts(exchange.getMessage()); return null;
+ case "eth_block_number":
+ case "ETH_BLOCK_NUMBER": target.ethBlockNumber(exchange.getMessage()); return null;
+ case "eth_call":
+ case "ETH_CALL": target.ethCall(exchange.getMessage()); return null;
+ case "eth_coinbase":
+ case "ETH_COINBASE": target.ethCoinbase(exchange.getMessage()); return null;
+ case "eth_compile_lll":
+ case "ETH_COMPILE_LLL": target.ethCompileLLL(exchange.getMessage()); return null;
+ case "eth_compile_serpent":
+ case "ETH_COMPILE_SERPENT": target.ethCompileSerpent(exchange.getMessage()); return null;
+ case "eth_compile_solidity":
+ case "ETH_COMPILE_SOLIDITY": target.ethCompileSolidity(exchange.getMessage()); return null;
+ case "eth_estimate_gas":
+ case "ETH_ESTIMATE_GAS": target.ethEstimateGas(exchange.getMessage()); return null;
+ case "eth_gas_price":
+ case "ETH_GAS_PRICE": target.ethGasPrice(exchange.getMessage()); return null;
+ case "eth_get_balance":
+ case "ETH_GET_BALANCE": target.ethGetBalance(exchange.getMessage()); return null;
+ case "eth_get_block_by_hash":
+ case "ETH_GET_BLOCK_BY_HASH": target.ethGetBlockByHash(exchange.getMessage()); return null;
+ case "eth_get_block_by_number":
+ case "ETH_GET_BLOCK_BY_NUMBER": target.ethGetBlockByNumber(exchange.getMessage()); return null;
+ case "eth_get_block_transaction_count_by_hash":
+ case "ETH_GET_BLOCK_TRANSACTION_COUNT_BY_HASH": target.ethGetBlockTransactionCountByHash(exchange.getMessage()); return null;
+ case "eth_get_block_transaction_count_by_number":
+ case "ETH_GET_BLOCK_TRANSACTION_COUNT_BY_NUMBER": target.ethGetBlockTransactionCountByNumber(exchange.getMessage()); return null;
+ case "eth_get_code":
+ case "ETH_GET_CODE": target.ethGetCode(exchange.getMessage()); return null;
+ case "eth_get_compilers":
+ case "ETH_GET_COMPILERS": target.ethGetCompilers(exchange.getMessage()); return null;
+ case "eth_get_filter_changes":
+ case "ETH_GET_FILTER_CHANGES": target.ethGetFilterChanges(exchange.getMessage()); return null;
+ case "eth_get_filter_logs":
+ case "ETH_GET_FILTER_LOGS": target.ethGetFilterLogs(exchange.getMessage()); return null;
+ case "eth_get_logs":
+ case "ETH_GET_LOGS": target.ethGetLogs(exchange.getMessage()); return null;
+ case "eth_get_storage_at":
+ case "ETH_GET_STORAGE_AT": target.ethGetStorageAt(exchange.getMessage()); return null;
+ case "eth_get_transaction_by_block_hash_and_index":
+ case "ETH_GET_TRANSACTION_BY_BLOCK_HASH_AND_INDEX": target.ethGetTransactionByBlockHashAndIndex(exchange.getMessage()); return null;
+ case "eth_get_transaction_by_block_number_and_index":
+ case "ETH_GET_TRANSACTION_BY_BLOCK_NUMBER_AND_INDEX": target.ethGetTransactionByBlockNumberAndIndex(exchange.getMessage()); return null;
+ case "eth_get_transaction_by_hash":
+ case "ETH_GET_TRANSACTION_BY_HASH": target.ethGetTransactionByHash(exchange.getMessage()); return null;
+ case "eth_get_transaction_count":
+ case "ETH_GET_TRANSACTION_COUNT": target.ethGetTransactionCount(exchange.getMessage()); return null;
+ case "eth_get_transaction_receipt":
+ case "ETH_GET_TRANSACTION_RECEIPT": target.ethGetTransactionReceipt(exchange.getMessage()); return null;
+ case "eth_get_uncle_by_block_hash_and_index":
+ case "ETH_GET_UNCLE_BY_BLOCK_HASH_AND_INDEX": target.ethGetUncleByBlockHashAndIndex(exchange.getMessage()); return null;
+ case "eth_get_uncle_by_block_number_and_index":
+ case "ETH_GET_UNCLE_BY_BLOCK_NUMBER_AND_INDEX": target.ethGetUncleByBlockNumberAndIndex(exchange.getMessage()); return null;
+ case "eth_get_uncle_count_by_block_hash":
+ case "ETH_GET_UNCLE_COUNT_BY_BLOCK_HASH": target.ethGetUncleCountByBlockHash(exchange.getMessage()); return null;
+ case "eth_get_uncle_count_by_block_number":
+ case "ETH_GET_UNCLE_COUNT_BY_BLOCK_NUMBER": target.ethGetUncleCountByBlockNumber(exchange.getMessage()); return null;
+ case "eth_get_work":
+ case "ETH_GET_WORK": target.ethGetWork(exchange.getMessage()); return null;
+ case "eth_hashrate":
+ case "ETH_HASHRATE": target.ethHashrate(exchange.getMessage()); return null;
+ case "eth_mining":
+ case "ETH_MINING": target.ethMining(exchange.getMessage()); return null;
+ case "eth_new_block_filter":
+ case "ETH_NEW_BLOCK_FILTER": target.ethNewBlockFilter(exchange.getMessage()); return null;
+ case "eth_new_filter":
+ case "ETH_NEW_FILTER": target.ethNewFilter(exchange.getMessage()); return null;
+ case "eth_new_pending_transaction_filter":
+ case "ETH_NEW_PENDING_TRANSACTION_FILTER": target.ethNewPendingTransactionFilter(exchange.getMessage()); return null;
+ case "eth_send_raw_transaction":
+ case "ETH_SEND_RAW_TRANSACTION": target.ethSendRawTransaction(exchange.getMessage()); return null;
+ case "eth_send_transaction":
+ case "ETH_SEND_TRANSACTION": target.ethSendTransaction(exchange.getMessage()); return null;
+ case "eth_sign":
+ case "ETH_SIGN": target.ethSign(exchange.getMessage()); return null;
+ case "eth_submit_hashrate":
+ case "ETH_SUBMIT_HASHRATE": target.ethSubmitHashrate(exchange.getMessage()); return null;
+ case "eth_submit_work":
+ case "ETH_SUBMIT_WORK": target.ethSubmitWork(exchange.getMessage()); return null;
+ case "eth_syncing":
+ case "ETH_SYNCING": target.ethSyncing(exchange.getMessage()); return null;
+ case "eth_uninstall_filter":
+ case "ETH_UNINSTALL_FILTER": target.ethUninstallFilter(exchange.getMessage()); return null;
+ case "net_listening":
+ case "NET_LISTENING": target.netListening(exchange.getMessage()); return null;
+ case "net_peer_count":
+ case "NET_PEER_COUNT": target.netPeerCount(exchange.getMessage()); return null;
+ case "net_version":
+ case "NET_VERSION": target.netVersion(exchange.getMessage()); return null;
+ case "quorum_canonical_hash":
+ case "QUORUM_CANONICAL_HASH": target.quorumCanonicalHash(exchange.getMessage()); return null;
+ case "quorum_eth_send_transaction":
+ case "QUORUM_ETH_SEND_TRANSACTION": target.quorumEthSendTransaction(exchange.getMessage()); return null;
+ case "quorum_get_private_payload":
+ case "QUORUM_GET_PRIVATE_PAYLOAD": target.quorumGetPrivatePayload(exchange.getMessage()); return null;
+ case "quorum_is_block_maker":
+ case "QUORUM_IS_BLOCK_MAKER": target.quorumIsBlockMaker(exchange.getMessage()); return null;
+ case "quorum_is_voter":
+ case "QUORUM_IS_VOTER": target.quorumIsVoter(exchange.getMessage()); return null;
+ case "quorum_make_block":
+ case "QUORUM_MAKE_BLOCK": target.quorumMakeBlock(exchange.getMessage()); return null;
+ case "quorum_node_info":
+ case "QUORUM_NODE_INFO": target.quorumNodeInfo(exchange.getMessage()); return null;
+ case "quorum_pause_block_maker":
+ case "QUORUM_PAUSE_BLOCK_MAKER": target.quorumPauseBlockMaker(exchange.getMessage()); return null;
+ case "quorum_resume_block_maker":
+ case "QUORUM_RESUME_BLOCK_MAKER": target.quorumResumeBlockMaker(exchange.getMessage()); return null;
+ case "quorum_vote":
+ case "QUORUM_VOTE": target.quorumVote(exchange.getMessage()); return null;
+ case "shh_add_to_group":
+ case "SHH_ADD_TO_GROUP": target.shhAddToGroup(exchange.getMessage()); return null;
+ case "shh_get_filter_changes":
+ case "SHH_GET_FILTER_CHANGES": target.shhGetFilterChanges(exchange.getMessage()); return null;
+ case "shh_get_messages":
+ case "SHH_GET_MESSAGES": target.shhGetMessages(exchange.getMessage()); return null;
+ case "shh_has_identity":
+ case "SHH_HAS_IDENTITY": target.shhHasIdentity(exchange.getMessage()); return null;
+ case "shh_new_filter":
+ case "SHH_NEW_FILTER": target.shhNewFilter(exchange.getMessage()); return null;
+ case "shh_new_group":
+ case "SHH_NEW_GROUP": target.shhNewGroup(exchange.getMessage()); return null;
+ case "shh_new_identity":
+ case "SHH_NEW_IDENTITY": target.shhNewIdentity(exchange.getMessage()); return null;
+ case "shh_post":
+ case "SHH_POST": target.shhPost(exchange.getMessage()); return null;
+ case "shh_uninstall_filter":
+ case "SHH_UNINSTALL_FILTER": target.shhUninstallFilter(exchange.getMessage()); return null;
+ case "shh_version":
+ case "SHH_VERSION": target.shhVersion(exchange.getMessage()); return null;
+ case "web3_client_version":
+ case "WEB3_CLIENT_VERSION": target.web3ClientVersion(exchange.getMessage()); return null;
+ case "web3_sha3":
+ case "WEB3_SHA3": target.web3Sha3(exchange.getMessage()); return null;
+ case "ethprotocolversion":
+ case "ethProtocolVersion": target.ethProtocolVersion(exchange.getMessage()); return null;
+ default: return null;
+ }
+ }
+
+}
+
diff --git a/components/camel-web3j/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.web3j.Web3jProducer b/components/camel-web3j/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.web3j.Web3jProducer
new file mode 100644
index 0000000..87ad67e
--- /dev/null
+++ b/components/camel-web3j/src/generated/resources/META-INF/services/org/apache/camel/invoke-on-header/org.apache.camel.component.web3j.Web3jProducer
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.web3j.Web3jProducerInvokeOnHeaderFactory
diff --git a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jProducer.java b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jProducer.java
index 2c3332f..2e8555f 100644
--- a/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jProducer.java
+++ b/components/camel-web3j/src/main/java/org/apache/camel/component/web3j/Web3jProducer.java
@@ -114,16 +114,6 @@ public class Web3jProducer extends HeaderSelectorProducer {
return (Web3jEndpoint) super.getEndpoint();
}
- @Override
- protected void doStart() throws Exception {
- super.doStart();
- }
-
- @Override
- protected void doStop() throws Exception {
- super.doStop();
- }
-
@InvokeOnHeader(Web3jConstants.WEB3_CLIENT_VERSION)
void web3ClientVersion(Message message) throws IOException {
Request<?, Web3ClientVersion> web3ClientVersionRequest = web3j.web3ClientVersion();
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeader.java b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeader.java
index bae2c71..6c97266 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeader.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeader.java
@@ -17,21 +17,43 @@
package org.apache.camel.spi;
import java.lang.annotation.ElementType;
-import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.apache.camel.AsyncCallback;
import org.apache.camel.Message;
/**
* Marks a method as being invoked for a specific header value.
* <p/>
- * This can be used by Component implementations that uses org.apache.camel.support.HeaderSelectorProducer.
+ * The method can either be executed synchronously or asynchronously (with {@link AsyncCallback}.
+ * <p/>
+ * A method is only asynchronously executed if the method has {@link AsyncCallback} as a parameter. In this situation
+ * then the method should not return a value (void). And its the responsible of the method to invoke
+ *
+ * <pre>
+ * callback.done(false)
+ * </pre>
+ *
+ * when to continue routing.
+ * <p/>
+ * Synchronous methods can either be void or return a value. If a value is returned then the value will be set as the
+ * response body.
+ * <p/>
+ * The method accepts the following parameters:
+ * <ul>
+ * <li>Exchange - the current exchange</li>
+ * <li>Message - the current message</li>
+ * <li>CamelContext - the camel context</li>
+ * <li>AsyncCallback - for asynchronous processing</li>
+ * <li>Object - Object or any other type is regarded as the current message body, converted to the given type</li>
+ * </ul>
+ * Component implementation producers should extend org.apache.camel.support.HeaderSelectorProducer. And use Camel maven
+ * tooling (camel-package-maven-plugin) to generate java source code that selects and invokes the method at runtime.
*
* @see Message#getHeader(String)
*/
-@Repeatable(InvokeOnHeaders.class)
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface InvokeOnHeader {
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaderStrategy.java b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaderStrategy.java
new file mode 100644
index 0000000..07060b5
--- /dev/null
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaderStrategy.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.Exchange;
+
+/**
+ * Pluggable strategy for invoking {@link InvokeOnHeader}.
+ * <p>
+ * Camel provides source code generated strategies via the camel maven tooling.
+ *
+ * @see InvokeOnHeader
+ */
+public interface InvokeOnHeaderStrategy {
+
+ /**
+ * Invoke the method based on the header key
+ *
+ * @param target the target such as a producer extending HeaderSelectorProducer
+ * @param key the header key
+ * @param exchange the exchange
+ * @param callback the async callback
+ * @return option response from invoking the method, or <tt>null</tt> if the method is void if a value is
+ * returned, then this value is stored as result on the message body.
+ * @throws Exception is thrown if error invoking the method.
+ */
+ Object invoke(Object target, String key, Exchange exchange, AsyncCallback callback) throws Exception;
+}
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaders.java b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaders.java
deleted file mode 100644
index f6edfc3..0000000
--- a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaders.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.spi;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.apache.camel.Message;
-
-/**
- * Marks a method as being invoked for a specific header value.
- * <p/>
- * This can be used by Component implementations that uses org.apache.camel.support.HeaderSelectorProducer.
- *
- * @see Message#getHeader(String)
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
-public @interface InvokeOnHeaders {
-
- /**
- * Name of headers.
- */
- InvokeOnHeader[] value();
-}
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultUriFactoryResolver.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultUriFactoryResolver.java
index acfb865..0558608 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultUriFactoryResolver.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultUriFactoryResolver.java
@@ -31,10 +31,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Default assembler resolver that looks for assembler factories in
+ * Default assembler resolver that looks for {@link UriFactoryResolver} factories in
* <b>META-INF/services/org/apache/camel/urifactory/</b>.
*/
-
public class DefaultUriFactoryResolver implements CamelContextAware, UriFactoryResolver {
public static final String RESOURCE_PATH = "META-INF/services/org/apache/camel/urifactory/";
@@ -70,7 +69,7 @@ public class DefaultUriFactoryResolver implements CamelContextAware, UriFactoryR
// not in registry then use assembler factory for endpoints
Class<?> type;
try {
- type = findAssembler(name + "-endpoint", context);
+ type = findFactory(name + "-endpoint", context);
} catch (NoFactoryAvailableException e) {
// its optional so its okay
type = null;
@@ -99,7 +98,7 @@ public class DefaultUriFactoryResolver implements CamelContextAware, UriFactoryR
return answer;
}
- private Class<?> findAssembler(String name, CamelContext context) throws IOException {
+ private Class<?> findFactory(String name, CamelContext context) throws IOException {
if (factoryFinder == null) {
factoryFinder = context.adapt(ExtendedCamelContext.class).getFactoryFinder(RESOURCE_PATH);
}
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SpringRedisComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SpringRedisComponentBuilderFactory.java
index 153cdf3..64755d9 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SpringRedisComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SpringRedisComponentBuilderFactory.java
@@ -51,6 +51,22 @@ public interface SpringRedisComponentBuilderFactory {
extends
ComponentBuilder<RedisComponent> {
/**
+ * Reference to a pre-configured RedisTemplate instance to use.
+ *
+ * The option is a:
+ * <code>org.springframework.data.redis.core.RedisTemplate</code> type.
+ *
+ * Group: common
+ *
+ * @param redisTemplate the value to set
+ * @return the dsl builder
+ */
+ default SpringRedisComponentBuilder redisTemplate(
+ org.springframework.data.redis.core.RedisTemplate redisTemplate) {
+ doSetProperty("redisTemplate", redisTemplate);
+ return this;
+ }
+ /**
* Allows for bridging the consumer to the Camel routing Error Handler,
* which mean any exceptions occurred while the consumer is trying to
* pickup incoming messages, or the likes, will now be processed as a
@@ -134,6 +150,7 @@ public interface SpringRedisComponentBuilderFactory {
String name,
Object value) {
switch (name) {
+ case "redisTemplate": ((RedisComponent) component).setRedisTemplate((org.springframework.data.redis.core.RedisTemplate) value); return true;
case "bridgeErrorHandler": ((RedisComponent) component).setBridgeErrorHandler((boolean) value); return true;
case "lazyStartProducer": ((RedisComponent) component).setLazyStartProducer((boolean) value); return true;
case "autowiredEnabled": ((RedisComponent) component).setAutowiredEnabled((boolean) value); return true;
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/BaseSelectorProducer.java b/core/camel-support/src/main/java/org/apache/camel/support/BaseSelectorProducer.java
deleted file mode 100644
index 8ab96b2..0000000
--- a/core/camel-support/src/main/java/org/apache/camel/support/BaseSelectorProducer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.support;
-
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-
-/**
- * A base class for selector-based producers.
- */
-public abstract class BaseSelectorProducer extends DefaultProducer {
-
- protected BaseSelectorProducer(Endpoint endpoint) {
- super(endpoint);
- }
-
- @Override
- public void process(Exchange exchange) throws Exception {
- final Processor processor = getProcessor(exchange);
- if (processor != null) {
- processor.process(exchange);
- } else {
- onMissingProcessor(exchange);
- }
- }
-
- /**
- * Determine the processor to use to handle the exchange.
- *
- * @param exchange the message exchange
- * @return the processor to processes the message exchange
- */
- protected abstract Processor getProcessor(Exchange exchange) throws Exception;
-
- /**
- * Invoked when no processor has been defined to process the message exchange.
- *
- * @param exchange the message exchange
- */
- protected abstract void onMissingProcessor(Exchange exchange) throws Exception;
-}
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java b/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java
index e651c52..f7bfea2 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java
@@ -16,36 +16,38 @@
*/
package org.apache.camel.support;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TreeMap;
import java.util.function.Supplier;
+import org.apache.camel.AsyncCallback;
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
-import org.apache.camel.Message;
+import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.NoSuchHeaderException;
-import org.apache.camel.Processor;
-import org.apache.camel.spi.InvokeOnHeader;
-import org.apache.camel.spi.InvokeOnHeaders;
+import org.apache.camel.spi.InvokeOnHeaderStrategy;
import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.camel.support.ObjectHelper.invokeMethodSafe;
-
/**
* A selector-based producer which uses a header value to determine which processor should be invoked.
+ *
+ * @see org.apache.camel.spi.InvokeOnHeader
+ * @see InvokeOnHeaderStrategy
*/
-public abstract class HeaderSelectorProducer extends BaseSelectorProducer {
+public abstract class HeaderSelectorProducer extends DefaultAsyncProducer implements CamelContextAware {
+
+ public static final String RESOURCE_PATH = "META-INF/services/org/apache/camel/invoke-on-header/";
+
private static final Logger LOGGER = LoggerFactory.getLogger(HeaderSelectorProducer.class);
private final Supplier<String> headerSupplier;
private final Supplier<String> defaultHeaderValueSupplier;
private final Object target;
- private Map<String, Processor> handlers;
+ private CamelContext camelContext;
+ private InvokeOnHeaderStrategy strategy;
+ private InvokeOnHeaderStrategy parentStrategy;
public HeaderSelectorProducer(Endpoint endpoint, Supplier<String> headerSupplier) {
this(endpoint, headerSupplier, () -> null, null);
@@ -127,76 +129,91 @@ public abstract class HeaderSelectorProducer extends BaseSelectorProducer {
this.headerSupplier = ObjectHelper.notNull(headerSupplier, "headerSupplier");
this.defaultHeaderValueSupplier = ObjectHelper.notNull(defaultHeaderValueSupplier, "defaultHeaderValueSupplier");
this.target = target != null ? target : this;
- this.handlers = caseSensitive ? new HashMap<>() : new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
}
@Override
- protected void doStart() throws Exception {
- bind();
-
- handlers = Collections.unmodifiableMap(handlers);
-
- super.doStart();
+ public CamelContext getCamelContext() {
+ return camelContext;
}
@Override
- protected Processor getProcessor(Exchange exchange) throws Exception {
- String header = headerSupplier.get();
- String action = exchange.getIn().getHeader(header, String.class);
+ public void setCamelContext(CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
- if (action == null) {
- action = defaultHeaderValueSupplier.get();
- }
- if (action == null) {
- throw new NoSuchHeaderException(exchange, header, String.class);
+ @Override
+ protected void doBuild() throws Exception {
+ super.doBuild();
+
+ String key = this.getClass().getName();
+ String fqn = RESOURCE_PATH + key;
+ strategy = camelContext.adapt(ExtendedCamelContext.class).getBootstrapFactoryFinder(RESOURCE_PATH)
+ .newInstance(key, InvokeOnHeaderStrategy.class)
+ .orElseThrow(() -> new IllegalArgumentException("Cannot find " + fqn + " in classpath."));
+
+ Class<?> sclazz = this.getClass().getSuperclass();
+ if (sclazz != null && !sclazz.getName().equals("java.lang.Object")
+ && !sclazz.getName().equals(HeaderSelectorProducer.class.getName())) {
+ // some components may have a common base class they extend from (such as camel-infinispan)
+ // so try to discover that (optional so return null if not present)
+ String key2 = this.getClass().getSuperclass().getName();
+ parentStrategy = camelContext.adapt(ExtendedCamelContext.class).getBootstrapFactoryFinder(RESOURCE_PATH)
+ .newInstance(key2, InvokeOnHeaderStrategy.class)
+ .orElse(null);
}
-
- return handlers.get(action);
}
@Override
- protected void onMissingProcessor(Exchange exchange) throws Exception {
- throw new IllegalStateException(
- "Unsupported operation " + exchange.getIn().getHeader(headerSupplier.get()));
- }
-
- protected void bind() {
- for (final Method method : getTarget().getClass().getDeclaredMethods()) {
- InvokeOnHeaders annotation = method.getAnnotation(InvokeOnHeaders.class);
- if (annotation != null) {
- for (InvokeOnHeader processor : annotation.value()) {
- bind(processor, method);
- }
+ public boolean process(Exchange exchange, AsyncCallback callback) {
+ boolean sync = true;
+ try {
+ String header = headerSupplier.get();
+ String action = exchange.getIn().getHeader(header, String.class);
+
+ if (action == null) {
+ action = defaultHeaderValueSupplier.get();
+ }
+ if (action == null) {
+ throw new NoSuchHeaderException(exchange, header, String.class);
+ }
+
+ LOGGER.debug("Invoking @InvokeOnHeader method: {}", action);
+ Object answer = strategy.invoke(target, action, exchange, callback);
+ if (answer == null && parentStrategy != null) {
+ answer = parentStrategy.invoke(target, action, exchange, callback);
+ }
+ if (answer == callback) {
+ // okay it was an async invoked so we should return false
+ sync = false;
+ answer = null;
+ }
+ if (sync) {
+ LOGGER.trace("Invoked @InvokeOnHeader method: {} -> {}", action, answer);
+ processResult(exchange, answer);
} else {
- bind(method.getAnnotation(InvokeOnHeader.class), method);
+ LOGGER.trace("Invoked @InvokeOnHeader method: {} is continuing asynchronously", action);
}
+ } catch (Exception e) {
+ exchange.setException(e);
}
- }
- protected final void bind(String key, Processor processor) {
- if (handlers.containsKey(key)) {
- LOGGER.warn("A processor is already set for action {}", key);
+ if (sync) {
+ // callback was not in use, so we must done it here
+ callback.done(true);
}
-
- this.handlers.put(key, processor);
- }
-
- protected void bind(InvokeOnHeader handler, final Method method) {
- if (handler != null && method.getParameterCount() == 1) {
- final Class<?> type = method.getParameterTypes()[0];
-
- LOGGER.debug("bind key={}, class={}, method={}, type={}",
- handler.value(), this.getClass(), method.getName(), type);
-
- if (Message.class.isAssignableFrom(type)) {
- bind(handler.value(), e -> invokeMethodSafe(method, target, e.getIn()));
- } else {
- bind(handler.value(), e -> invokeMethodSafe(method, target, e));
- }
+ return sync;
+ }
+
+ /**
+ * Process the result. Will by default set the result as the message body.
+ *
+ * @param exchange the exchange
+ * @param result the result (may be null)
+ */
+ protected void processResult(Exchange exchange, Object result) {
+ if (result != null) {
+ exchange.getMessage().setBody(result);
}
}
- protected final Object getTarget() {
- return this;
- }
}
diff --git a/docs/components/modules/ROOT/pages/spring-redis-component.adoc b/docs/components/modules/ROOT/pages/spring-redis-component.adoc
index f6d4cd5..b7f50fc 100644
--- a/docs/components/modules/ROOT/pages/spring-redis-component.adoc
+++ b/docs/components/modules/ROOT/pages/spring-redis-component.adoc
@@ -46,13 +46,14 @@ You can append query options to the URI in the following format,
// component options: START
-The Spring Redis component supports 3 options, which are listed below.
+The Spring Redis component supports 4 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
+| *redisTemplate* (common) | *Autowired* Reference to a pre-configured RedisTemplate instance to use. | | RedisTemplate
| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java
index b5b1911..765b078 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateComponentMojo.java
@@ -46,6 +46,8 @@ public class GenerateComponentMojo extends AbstractGenerateMojo {
invoke(EndpointSchemaGeneratorMojo.class);
// generate endpoint-uri-factory
invoke(GenerateEndpointUriFactoryMojo.class);
+ // generate invoke-on-header
+ invoke(GenerateInvokeOnHeaderMojo.class);
// prepare-components
invoke(PrepareComponentMojo.class);
// validate-components
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateInvokeOnHeaderMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateInvokeOnHeaderMojo.java
new file mode 100644
index 0000000..35e3eda
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateInvokeOnHeaderMojo.java
@@ -0,0 +1,276 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.maven.packaging;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringJoiner;
+import java.util.TreeSet;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.jboss.jandex.AnnotationInstance;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.Index;
+import org.jboss.jandex.IndexReader;
+import org.jboss.jandex.MethodInfo;
+import org.jboss.jandex.Type;
+
+/**
+ * Abstract class for @InvokeOnHeader factory generator.
+ */
+@Mojo(name = "generate-invoke-on-header", threadSafe = true, defaultPhase = LifecyclePhase.PROCESS_CLASSES,
+ requiresDependencyCollection = ResolutionScope.COMPILE,
+ requiresDependencyResolution = ResolutionScope.COMPILE)
+public class GenerateInvokeOnHeaderMojo extends AbstractGeneratorMojo {
+
+ public static final DotName HEADER_ANNOTATION = DotName.createSimple("org.apache.camel.spi.InvokeOnHeader");
+
+ /**
+ * The project build directory
+ */
+ @Parameter(defaultValue = "${project.build.directory}")
+ protected File buildDir;
+
+ @Parameter(defaultValue = "${project.basedir}/src/generated/java")
+ protected File sourcesOutputDir;
+ @Parameter(defaultValue = "${project.basedir}/src/generated/resources")
+ protected File resourcesOutputDir;
+
+ private static class InvokeOnHeaderModel {
+ private String key;
+ private String methodName;
+ private String returnType;
+ private final List<String> args = new ArrayList<>();
+
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public String getMethodName() {
+ return methodName;
+ }
+
+ public void setMethodName(String methodName) {
+ this.methodName = methodName;
+ }
+
+ public String getReturnType() {
+ return returnType;
+ }
+
+ public void setReturnType(String returnType) {
+ this.returnType = returnType;
+ }
+
+ public List<String> getArgs() {
+ return args;
+ }
+
+ public void addArgs(String arg) {
+ args.add(arg);
+ }
+ }
+
+ public GenerateInvokeOnHeaderMojo() {
+ }
+
+ @Override
+ public void execute() throws MojoExecutionException, MojoFailureException {
+ if ("pom".equals(project.getPackaging())) {
+ return;
+ }
+
+ buildDir = new File(project.getBuild().getDirectory());
+
+ if (sourcesOutputDir == null) {
+ sourcesOutputDir = new File(project.getBasedir(), "src/generated/java");
+ }
+ if (resourcesOutputDir == null) {
+ resourcesOutputDir = new File(project.getBasedir(), "src/generated/resources");
+ }
+
+ Path output = Paths.get(project.getBuild().getOutputDirectory());
+ Index index;
+ try (InputStream is = Files.newInputStream(output.resolve("META-INF/jandex.idx"))) {
+ index = new IndexReader(is).read();
+ } catch (IOException e) {
+ throw new MojoExecutionException("IOException: " + e.getMessage(), e);
+ }
+
+ Map<String, Set<InvokeOnHeaderModel>> classes = new HashMap<>();
+ List<AnnotationInstance> annotations = index.getAnnotations(HEADER_ANNOTATION);
+ annotations.forEach(a -> {
+ String currentClass = a.target().asMethod().declaringClass().name().toString();
+ String value = a.value().asString();
+ MethodInfo mi = a.target().asMethod();
+
+ InvokeOnHeaderModel model = new InvokeOnHeaderModel();
+ model.setKey(value);
+ model.setMethodName(mi.name());
+
+ boolean isVoid = Type.Kind.VOID == mi.returnType().kind();
+ if (isVoid) {
+ model.setReturnType("VOID");
+ } else {
+ model.setReturnType(mi.returnType().toString());
+ }
+ for (Type type : mi.parameters()) {
+ String arg = type.name().toString();
+ model.addArgs(arg);
+ }
+ Set<InvokeOnHeaderModel> set = classes.computeIfAbsent(currentClass,
+ k -> new TreeSet<>(Comparator.comparing(InvokeOnHeaderModel::getKey)));
+ set.add(model);
+ });
+
+ try {
+ for (Map.Entry<String, Set<InvokeOnHeaderModel>> entry : classes.entrySet()) {
+ createInvokeOnHeaderFactory(entry.getKey(), entry.getValue());
+ }
+ } catch (IOException e) {
+ throw new MojoExecutionException("IOException: " + e.getMessage(), e);
+ }
+ }
+
+ protected void createInvokeOnHeaderFactory(String fqn, Set<InvokeOnHeaderModel> models) throws IOException {
+ String tfqn = generateInvokeOnHeaderFactory(fqn, models, sourcesOutputDir);
+ updateResource(resourcesOutputDir.toPath(),
+ "META-INF/services/org/apache/camel/invoke-on-header/" + fqn,
+ "# " + GENERATED_MSG + NL + "class=" + tfqn + NL);
+ }
+
+ @Deprecated
+ private String generateInvokeOnHeaderFactory(
+ String fqn, Set<InvokeOnHeaderModel> models, File outputDir) {
+
+ int pos = fqn.lastIndexOf('.');
+ String pn = fqn.substring(0, pos);
+ String cn = fqn.substring(pos + 1) + "InvokeOnHeaderFactory";
+ String en = fqn;
+ String pfqn = fqn;
+
+ StringWriter sw = new StringWriter();
+ generateInvokeOnHeaderSource(pn, cn, en, pfqn, sw, models);
+
+ String source = sw.toString();
+
+ String fileName = pn.replace('.', '/') + "/" + cn + ".java";
+ outputDir.mkdirs();
+ boolean updated = updateResource(buildContext, outputDir.toPath().resolve(fileName), source);
+ if (updated) {
+ getLog().info("Updated " + fileName);
+ }
+ return pn + "." + cn;
+ }
+
+ private void generateInvokeOnHeaderSource(
+ String pn, String cn, String en, String pfqn, StringWriter w, Set<InvokeOnHeaderModel> models) {
+ w.write("/* " + AbstractGeneratorMojo.GENERATED_MSG + " */\n");
+ w.write("package " + pn + ";\n");
+ w.write("\n");
+ w.write("import org.apache.camel.AsyncCallback;\n");
+ w.write("import org.apache.camel.Exchange;\n");
+ w.write("import org.apache.camel.spi.InvokeOnHeaderStrategy;\n");
+ w.write("import " + pfqn + ";\n");
+ w.write("\n");
+ w.write("/**\n");
+ w.write(" * " + AbstractGeneratorMojo.GENERATED_MSG + "\n");
+ w.write(" */\n");
+ w.write("@SuppressWarnings(\"unchecked\")\n");
+ w.write("public class " + cn + " implements InvokeOnHeaderStrategy");
+ w.write(" {\n");
+ w.write("\n");
+
+ w.write(" @Override\n");
+ w.write(" public Object invoke(Object obj, String key, Exchange exchange, AsyncCallback callback) throws Exception {\n");
+ w.write(" " + en + " target = (" + en + ") obj;\n");
+ if (!models.isEmpty()) {
+ w.write(" switch (key) {\n");
+ for (InvokeOnHeaderModel option : models) {
+ boolean sync = true;
+ String invoke = "target." + option.getMethodName() + "(";
+ if (!option.getArgs().isEmpty()) {
+ StringJoiner sj = new StringJoiner(", ");
+ for (String arg : option.getArgs()) {
+ String ba = bindArg(arg);
+ // if callback is in use then we are no long synchronous
+ sync &= !ba.equals("callback");
+ sj.add(ba);
+ }
+ invoke += sj.toString();
+ }
+ String ret = "null";
+ if (!sync) {
+ // return the callback instance in async mode to signal that callback are in use
+ ret = "callback";
+ }
+ invoke += ")";
+
+ if (!option.getKey().toLowerCase().equals(option.getKey())) {
+ w.write(String.format(" case \"%s\":\n", option.getKey().toLowerCase()));
+ }
+ if (!sync || option.getReturnType().equals("VOID")) {
+ w.write(String.format(" case \"%s\": %s; return %s;\n", option.getKey(), invoke, ret));
+ } else {
+ w.write(String.format(" case \"%s\": return %s;\n", option.getKey(), invoke));
+ }
+ }
+ w.write(" default: return null;\n");
+ w.write(" }\n");
+ }
+ w.write(" }\n");
+ w.write("\n");
+
+ w.write("}\n");
+ w.write("\n");
+ }
+
+ protected String bindArg(String type) {
+ if ("org.apache.camel.Exchange".equals(type)) {
+ return "exchange";
+ } else if ("org.apache.camel.Message".equals(type)) {
+ return "exchange.getMessage()";
+ } else if ("org.apache.camel.AsyncCallback".equals(type)) {
+ return "callback";
+ } else if ("org.apache.camel.CamelContext".equals(type)) {
+ return "exchange.getContext()";
+ } else {
+ return "exchange.getMessage().getBody(" + type + ".class)";
+ }
+ }
+
+}
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java
index c143ab7..4c99cb2 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateMojo.java
@@ -46,6 +46,8 @@ public class GenerateMojo extends AbstractGenerateMojo {
invoke(EndpointSchemaGeneratorMojo.class);
// generate endpoint-uri-factory
invoke(GenerateEndpointUriFactoryMojo.class);
+ // generate invoke-on-header
+ invoke(GenerateInvokeOnHeaderMojo.class);
// prepare-components
invoke(PrepareComponentMojo.class);
// prepare-main