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 12:04:59 UTC
[camel] 06/18: 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 on-header
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 9a72e1de2a27204cfe77a10596056bebc20ab366
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Feb 4 15:34:54 2021 +0100
CAMEL-16102: Source code generate @InvokeOnHeader for reflection free
---
.../AtomixMapProducerInvokeOnHeaderFactory.java | 48 ++++++
...omixMessagingProducerInvokeOnHeaderFactory.java | 28 ++++
...tomixMultiMapProducerInvokeOnHeaderFactory.java | 40 +++++
.../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 | 51 +------
...CaffeineCacheProducerInvokeOnHeaderFactory.java | 38 +++++
...eineLoadCacheProducerInvokeOnHeaderFactory.java | 38 +++++
....component.caffeine.cache.CaffeineCacheProducer | 2 +
...mponent.caffeine.load.CaffeineLoadCacheProducer | 2 +
...ConsulCatalogProducerInvokeOnHeaderFactory.java | 38 +++++
...ulCoordinatesProducerInvokeOnHeaderFactory.java | 28 ++++
.../ConsulEventProducerInvokeOnHeaderFactory.java | 28 ++++
.../ConsulHealthProducerInvokeOnHeaderFactory.java | 32 ++++
...onsulKeyValueProducerInvokeOnHeaderFactory.java | 42 ++++++
...PreparedQueryProducerInvokeOnHeaderFactory.java | 30 ++++
...ConsulSessionProducerInvokeOnHeaderFactory.java | 34 +++++
...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 +
.../corda/CordaProducerInvokeOnHeaderFactory.java | 100 ++++++++++++
.../org.apache.camel.component.corda.CordaProducer | 2 +
.../EhcacheProducerInvokeOnHeaderFactory.java | 42 ++++++
....apache.camel.component.ehcache.EhcacheProducer | 2 +
...spanEmbeddedProducerInvokeOnHeaderFactory.java} | 11 +-
....infinispan.embedded.InfinispanEmbeddedProducer | 2 +
...inispanRemoteProducerInvokeOnHeaderFactory.java | 3 +-
.../web3j/Web3jProducerInvokeOnHeaderFactory.java | 168 +++++++++++++++++++++
.../org.apache.camel.component.web3j.Web3jProducer | 2 +
.../java/org/apache/camel/spi/InvokeOnHeader.java | 11 ++
.../apache/camel/spi/InvokeOnHeaderStrategy.java | 4 +-
.../camel/support/HeaderSelectorProducer.java | 2 +
.../packaging/GenerateInvokeOnHeaderMojo.java | 21 ++-
45 files changed, 932 insertions(+), 61 deletions(-)
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..2b4beca
--- /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 "size":
+ case "SIZE": return target.onSize(exchange.getMessage(), callback);
+ case "entry_set":
+ case "ENTRY_SET": return target.onEntrySet(exchange.getMessage(), callback);
+ case "replace":
+ case "REPLACE": return target.onReplace(exchange.getMessage(), callback);
+ case "remove":
+ case "REMOVE": return target.onRemove(exchange.getMessage(), callback);
+ case "get":
+ case "GET": return target.onGet(exchange.getMessage(), callback);
+ case "put":
+ case "PUT": return target.onPut(exchange.getMessage(), callback);
+ case "contains_value":
+ case "CONTAINS_VALUE": return target.onContainsValue(exchange.getMessage(), callback);
+ case "values":
+ case "VALUES": return target.onValues(exchange.getMessage(), callback);
+ case "contains_key":
+ case "CONTAINS_KEY": return target.onContainsKey(exchange.getMessage(), callback);
+ case "clear":
+ case "CLEAR": return target.onClear(exchange.getMessage(), callback);
+ case "is_empty":
+ case "IS_EMPTY": return target.onIsEmpty(exchange.getMessage(), callback);
+ case "put_if_absent":
+ case "PUT_IF_ABSENT": return target.onPutIfAbsent(exchange.getMessage(), 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..2065291
--- /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": return target.onBroadcast(exchange.getMessage(), callback);
+ case "direct":
+ case "DIRECT": return target.onDirect(exchange.getMessage(), 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..b4d5979
--- /dev/null
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapProducerInvokeOnHeaderFactory.java
@@ -0,0 +1,40 @@
+/* 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 "get":
+ case "GET": return target.onGet(exchange.getMessage(), callback);
+ case "remove":
+ case "REMOVE": return target.onRemove(exchange.getMessage(), callback);
+ case "is_empty":
+ case "IS_EMPTY": return target.onIsEmpty(exchange.getMessage(), callback);
+ case "contains_key":
+ case "CONTAINS_KEY": return target.onContainsKey(exchange.getMessage(), callback);
+ case "put":
+ case "PUT": return target.onPut(exchange.getMessage(), callback);
+ case "clear":
+ case "CLEAR": return target.onClear(exchange.getMessage(), callback);
+ case "size":
+ case "SIZE": return target.onSize(exchange.getMessage(), callback);
+ case "remove_value":
+ case "REMOVE_VALUE": return target.onRemoveValue(exchange.getMessage(), 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..be270c7
--- /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 "clear":
+ case "CLEAR": return target.onClear(exchange.getMessage(), callback);
+ case "add":
+ case "ADD": return target.onAdd(exchange.getMessage(), callback);
+ case "contains":
+ case "CONTAINS": return target.onContains(exchange.getMessage(), callback);
+ case "peek":
+ case "PEEK": return target.onPeek(exchange.getMessage(), callback);
+ case "is_empty":
+ case "IS_EMPTY": return target.onIsEmpty(exchange.getMessage(), callback);
+ case "offer":
+ case "OFFER": return target.onOffer(exchange.getMessage(), callback);
+ case "poll":
+ case "POLL": return target.onPoll(exchange.getMessage(), callback);
+ case "remove":
+ case "REMOVE": return target.onRemove(exchange.getMessage(), callback);
+ case "size":
+ case "SIZE": return target.onSize(exchange.getMessage(), 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..fd9669e
--- /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 "is_empty":
+ case "IS_EMPTY": return target.onIsEmpty(exchange.getMessage(), callback);
+ case "remove":
+ case "REMOVE": return target.onRemove(exchange.getMessage(), callback);
+ case "add":
+ case "ADD": return target.onAdd(exchange.getMessage(), callback);
+ case "clear":
+ case "CLEAR": return target.onClear(exchange.getMessage(), callback);
+ case "size":
+ case "SIZE": return target.onSize(exchange.getMessage(), callback);
+ case "contains":
+ case "CONTAINS": return target.onContains(exchange.getMessage(), 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..4ae1809
--- /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": return target.onCompareAndSet(exchange.getMessage(), callback);
+ case "set":
+ case "SET": return target.onSet(exchange.getMessage(), callback);
+ case "get":
+ case "GET": return target.onGet(exchange.getMessage(), callback);
+ case "get_and_set":
+ case "GET_AND_SET": return target.onGetAndSet(exchange.getMessage(), 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..457bff1
--- /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.AtomixMapProducer.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..ab52975
--- /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.AtomixMessagingProducer.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..0ffdfe3
--- /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.AtomixMultiMapProducer.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..4c242db
--- /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.AtomixQueueProducer.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..0c00cc8
--- /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.AtomixSetProducer.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..0bbabf2
--- /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.AtomixValueProducer.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..cfdfa42 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,7 +16,6 @@
*/
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;
@@ -26,9 +25,7 @@ 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.util.ObjectHelper;
import org.slf4j.Logger;
@@ -36,7 +33,6 @@ 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;
public abstract class AbstractAtomixClientProducer<E extends AbstractAtomixClientEndpoint, R extends Resource>
extends DefaultAsyncProducer {
@@ -54,20 +50,6 @@ public abstract class AbstractAtomixClientProducer<E extends AbstractAtomixClien
}
@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);
@@ -77,11 +59,14 @@ public abstract class AbstractAtomixClientProducer<E extends AbstractAtomixClien
try {
return processor.process(message, callback);
} catch (Exception e) {
- throw new RuntimeCamelException(e);
+ exchange.setException(e);
}
} else {
- throw new RuntimeCamelException("No handler for action " + key);
+ exchange.setException(new IllegalArgumentException("No handler for action " + key));
}
+
+ callback.done(true);
+ return true;
}
// **********************************
@@ -124,30 +109,4 @@ public abstract class AbstractAtomixClientProducer<E extends AbstractAtomixClien
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-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..000bb11
--- /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 "invalidate_all":
+ case "INVALIDATE_ALL": target.onInvalidateAll(exchange.getMessage()); return null;
+ case "put":
+ case "PUT": target.onPut(exchange.getMessage()); return null;
+ case "cleanup":
+ case "CLEANUP": target.onCleanUp(exchange.getMessage()); return null;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage()); return null;
+ case "put_all":
+ case "PUT_ALL": target.onPutAll(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;
+ 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..88c8473
--- /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 "get_all":
+ case "GET_ALL": target.onGetAll(exchange.getMessage()); return null;
+ case "cleanup":
+ case "CLEANUP": target.onCleanUp(exchange.getMessage()); return null;
+ case "put":
+ case "PUT": target.onPut(exchange.getMessage()); return null;
+ case "invalidate_all":
+ case "INVALIDATE_ALL": target.onInvalidateAll(exchange.getMessage()); return null;
+ case "put_all":
+ case "PUT_ALL": target.onPutAll(exchange.getMessage()); return null;
+ case "get":
+ case "GET": target.onGet(exchange.getMessage()); return null;
+ case "invalidate":
+ case "INVALIDATE": target.onInvalidate(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..30a4448
--- /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.CaffeineCacheProducer.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..3cf2b9e
--- /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.CaffeineLoadCacheProducer.CaffeineLoadCacheProducerInvokeOnHeaderFactory
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..d5821d2
--- /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 "get_service":
+ case "GET_SERVICE": target.getService(exchange.getMessage()); return null;
+ case "get_node":
+ case "GET_NODE": target.getNode(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 "register":
+ case "REGISTER": target.register(exchange.getMessage()); return null;
+ case "deregister":
+ case "DEREGISTER": target.deregister(exchange.getMessage()); return null;
+ case "list_services":
+ case "LIST_SERVICES": target.listServices(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..4bac375
--- /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 "nodes":
+ case "NODES": target.nodes(exchange.getMessage()); return null;
+ case "datacenters":
+ case "DATACENTERS": target.datacenters(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..8b65e37
--- /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 "node_checks":
+ case "NODE_CHECKS": target.nodeChecks(exchange.getMessage()); return null;
+ case "checks":
+ case "CHECKS": target.checks(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..7f5a8dd
--- /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 "get_sessions":
+ case "GET_SESSIONS": target.getSessions(exchange.getMessage()); return null;
+ case "lock":
+ case "LOCK": target.lock(exchange.getMessage()); return null;
+ case "delete_key":
+ case "DELETE_KEY": target.deleteKey(exchange.getMessage()); return null;
+ case "get_value":
+ case "GET_VALUE": target.getValue(exchange.getMessage()); return null;
+ case "delete_keys":
+ case "DELETE_KEYS": target.deleteKeys(exchange.getMessage()); return null;
+ case "get_values":
+ case "GET_VALUES": target.getValues(exchange.getMessage()); return null;
+ case "put":
+ case "PUT": target.put(exchange.getMessage()); return null;
+ case "get_keys":
+ case "GET_KEYS": target.getKeys(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..cb374cb
--- /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 "get":
+ case "GET": target.get(exchange.getMessage()); return null;
+ case "execute":
+ case "EXECUTE": target.execute(exchange.getMessage()); return null;
+ case "create":
+ case "CREATE": target.create(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..05617e0
--- /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 "info":
+ case "INFO": target.info(exchange.getMessage()); return null;
+ case "create":
+ case "CREATE": target.create(exchange.getMessage()); return null;
+ case "renew":
+ case "RENEW": target.renew(exchange.getMessage()); return null;
+ case "list":
+ case "LIST": target.list(exchange.getMessage()); return null;
+ case "destroy":
+ case "DESTROY": target.destroy(exchange.getMessage()); return null;
+ 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.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..27ce6b7
--- /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.ConsulCatalogProducer.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..d1906cb
--- /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.ConsulCoordinatesProducer.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..a46e21e
--- /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.ConsulEventProducer.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..ddd4593
--- /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.ConsulHealthProducer.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..d1464a5
--- /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.ConsulKeyValueProducer.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..be8e52b
--- /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.ConsulPreparedQueryProducer.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..ab8e68b
--- /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.ConsulSessionProducer.ConsulSessionProducerInvokeOnHeaderFactory
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..57575e8
--- /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 "network_map_snapshot":
+ case "NETWORK_MAP_SNAPSHOT": target.networkMapSnapshot(exchange.getMessage()); return null;
+ case "parties_from_key":
+ case "PARTIES_FROM_KEY": target.partyFromKey(exchange.getMessage()); return null;
+ case "get_protocol_version":
+ case "GET_PROTOCOL_VERSION": target.getProtocolVersion(exchange.getMessage()); return null;
+ case "parties_from_name":
+ case "PARTIES_FROM_NAME": target.partiesFromName(exchange.getMessage()); return null;
+ case "node_info":
+ case "NODE_INFO": target.nodeInfo(exchange.getMessage()); return null;
+ case "notary_party_from_x500_name":
+ case "NOTARY_PARTY_FROM_X500_NAME": target.notaryPartyFromX500Name(exchange.getMessage()); return null;
+ case "start_flow_dynamic":
+ case "START_FLOW_DYNAMIC": target.startFlowDynamic(exchange.getMessage()); return null;
+ case "terminate":
+ case "TERMINATE": target.terminate(exchange.getMessage()); return null;
+ case "attachment_exists":
+ case "ATTACHMENT_EXISTS": target.attachmentExists(exchange.getMessage()); return null;
+ case "node_info_from_party":
+ case "NODE_INFO_FROM_PARTY": target.nodeInfoFromParty(exchange.getMessage()); return null;
+ case "registered_flows":
+ case "REGISTERED_FLOWS": target.registeredFlows(exchange.getMessage()); return null;
+ case "well_known_party_from_anonymous":
+ case "WELL_KNOWN_PARTY_FROM_ANONYMOUS": target.wellKnownPartyFromAnonymous(exchange.getMessage()); return null;
+ case "vault_query":
+ case "VAULT_QUERY": target.vaultQuery(exchange.getMessage()); return null;
+ case "upload_attachment":
+ case "UPLOAD_ATTACHMENT": target.uploadAttachment(exchange.getMessage()); return null;
+ case "set_flows_draining_mode_enabled":
+ case "SET_FLOWS_DRAINING_MODE_ENABLED": target.setFlowsDrainingModeEnabled(exchange.getMessage()); return null;
+ case "vault_query_by_criteria":
+ case "VAULT_QUERY_BY_CRITERIA": target.vaultQueryByCriteria(exchange.getMessage()); return null;
+ case "open_attachment":
+ case "OPEN_ATTACHMENT": target.openAttachment(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 "get_vault_transaction_notes":
+ case "GET_VAULT_TRANSACTION_NOTES": target.getVaultTransactionNotes(exchange.getMessage()); return null;
+ case "kill_flow":
+ case "KILL_FLOW": target.killFlow(exchange.getMessage()); return null;
+ case "clear_network_map_cache":
+ case "CLEAR_NETWORK_MAP_CACHE": target.clearNetworkMapCache(exchange.getMessage()); return null;
+ case "is_flows_draining_mode_enabled":
+ case "IS_FLOWS_DRAINING_MODE_ENABLED": target.isFlowsDrainingModeEnabled(exchange.getMessage()); return null;
+ case "add_vault_transaction_note":
+ case "ADD_VAULT_TRANSACTION_NOTE": target.addVaultTransactionNote(exchange.getMessage()); return null;
+ case "is_waiting_for_shutdown":
+ case "IS_WAITING_FOR_SHUTDOWN": target.isWaitingForShutdown(exchange.getMessage()); return null;
+ case "network_parameters_feed":
+ case "NETWORK_PARAMETERS_FEED": target.networkParametersFeed(exchange.getMessage()); return null;
+ case "refresh_network_map_cache":
+ case "REFRESH_NETWORK_MAP_CACHE": target.refreshNetworkMapCache(exchange.getMessage()); return null;
+ case "state_machine_snapshot":
+ case "STATE_MACHINE_SNAPSHOT": target.stateMachinesSnapshot(exchange.getMessage()); return null;
+ case "query_attachments":
+ case "QUERY_ATTACHMENTS": target.queryAttachments(exchange.getMessage()); return null;
+ case "vault_query_by":
+ case "VAULT_QUERY_BY": target.vaultQueryBy(exchange.getMessage()); return null;
+ case "wait_until_network_ready":
+ case "WAIT_UNTIL_NETWORK_READY": target.waitUntilNetworkReady(exchange.getMessage()); return null;
+ case "shutdown":
+ case "SHUTDOWN": target.shutdown(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_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 "current_node_time":
+ case "CURRENT_NODE_TIME": target.currentNodeTime(exchange.getMessage()); return null;
+ case "well_known_party_from_x500_name":
+ case "WELL_KNOWN_PARTY_FROM_X500_NAME": target.wellKnownPartyFromX500Name(exchange.getMessage()); return null;
+ case "notary_identities":
+ case "NOTARY_IDENTITIES": target.notaryIdentities(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..2197873
--- /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.CordaProducer.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..3f42f53
--- /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 "get_all":
+ case "GET_ALL": target.onGetAll(exchange.getMessage()); return null;
+ case "clear":
+ case "CLEAR": target.onClear(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 "get":
+ case "GET": target.onGet(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 "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..54a6d20
--- /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.EhcacheProducer.EhcacheProducerInvokeOnHeaderFactory
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-embedded/src/generated/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducerInvokeOnHeaderFactory.java
similarity index 54%
copy from components/camel-infinispan/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerInvokeOnHeaderFactory.java
copy to components/camel-infinispan/camel-infinispan-embedded/src/generated/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducerInvokeOnHeaderFactory.java
index ff5b63b..87f0538 100644
--- a/components/camel-infinispan/camel-infinispan/src/generated/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerInvokeOnHeaderFactory.java
+++ b/components/camel-infinispan/camel-infinispan-embedded/src/generated/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducerInvokeOnHeaderFactory.java
@@ -1,19 +1,20 @@
/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.infinispan.remote;
+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.remote.InfinispanRemoteProducer;
+import org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedProducer;
/**
* Generated by camel build tools - do NOT edit this file!
*/
@SuppressWarnings("unchecked")
-public class InfinispanRemoteProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
+public class InfinispanEmbeddedProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
@Override
- public Object invoke(Object obj, String key, Exchange exchange) throws Exception {
- org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer target = (org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer) obj;
+ 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;
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..86e7776
--- /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.InfinispanEmbeddedProducer.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
index ff5b63b..0ddf4fb 100644
--- 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
@@ -1,6 +1,7 @@
/* 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;
@@ -12,7 +13,7 @@ import org.apache.camel.component.infinispan.remote.InfinispanRemoteProducer;
public class InfinispanRemoteProducerInvokeOnHeaderFactory implements InvokeOnHeaderStrategy {
@Override
- public Object invoke(Object obj, String key, Exchange exchange) throws Exception {
+ 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":
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..1ee084b
--- /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 "quorum_make_block":
+ case "QUORUM_MAKE_BLOCK": target.quorumMakeBlock(exchange.getMessage()); return null;
+ case "quorum_is_block_maker":
+ case "QUORUM_IS_BLOCK_MAKER": target.quorumIsBlockMaker(exchange.getMessage()); return null;
+ case "shh_has_identity":
+ case "SHH_HAS_IDENTITY": target.shhHasIdentity(exchange.getMessage()); return null;
+ case "shh_add_to_group":
+ case "SHH_ADD_TO_GROUP": target.shhAddToGroup(exchange.getMessage()); return null;
+ case "eth_get_storage_at":
+ case "ETH_GET_STORAGE_AT": target.ethGetStorageAt(exchange.getMessage()); return null;
+ case "eth_uninstall_filter":
+ case "ETH_UNINSTALL_FILTER": target.ethUninstallFilter(exchange.getMessage()); return null;
+ case "eth_get_filter_changes":
+ case "ETH_GET_FILTER_CHANGES": target.ethGetFilterChanges(exchange.getMessage()); return null;
+ case "eth_get_logs":
+ case "ETH_GET_LOGS": target.ethGetLogs(exchange.getMessage()); return null;
+ case "net_listening":
+ case "NET_LISTENING": target.netListening(exchange.getMessage()); return null;
+ case "eth_get_transaction_by_hash":
+ case "ETH_GET_TRANSACTION_BY_HASH": target.ethGetTransactionByHash(exchange.getMessage()); return null;
+ case "shh_get_filter_changes":
+ case "SHH_GET_FILTER_CHANGES": target.shhGetFilterChanges(exchange.getMessage()); return null;
+ case "eth_hashrate":
+ case "ETH_HASHRATE": target.ethHashrate(exchange.getMessage()); return null;
+ case "eth_syncing":
+ case "ETH_SYNCING": target.ethSyncing(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_transaction_receipt":
+ case "ETH_GET_TRANSACTION_RECEIPT": target.ethGetTransactionReceipt(exchange.getMessage()); return null;
+ case "eth_estimate_gas":
+ case "ETH_ESTIMATE_GAS": target.ethEstimateGas(exchange.getMessage()); return null;
+ case "eth_send_transaction":
+ case "ETH_SEND_TRANSACTION": target.ethSendTransaction(exchange.getMessage()); return null;
+ case "eth_compile_lll":
+ case "ETH_COMPILE_LLL": target.ethCompileLLL(exchange.getMessage()); return null;
+ case "eth_gas_price":
+ case "ETH_GAS_PRICE": target.ethGasPrice(exchange.getMessage()); return null;
+ case "eth_submit_hashrate":
+ case "ETH_SUBMIT_HASHRATE": target.ethSubmitHashrate(exchange.getMessage()); return null;
+ case "eth_get_balance":
+ case "ETH_GET_BALANCE": target.ethGetBalance(exchange.getMessage()); return null;
+ case "eth_get_block_by_number":
+ case "ETH_GET_BLOCK_BY_NUMBER": target.ethGetBlockByNumber(exchange.getMessage()); return null;
+ case "eth_new_pending_transaction_filter":
+ case "ETH_NEW_PENDING_TRANSACTION_FILTER": target.ethNewPendingTransactionFilter(exchange.getMessage()); return null;
+ case "eth_sign":
+ case "ETH_SIGN": target.ethSign(exchange.getMessage()); return null;
+ case "quorum_pause_block_maker":
+ case "QUORUM_PAUSE_BLOCK_MAKER": target.quorumPauseBlockMaker(exchange.getMessage()); return null;
+ case "eth_block_number":
+ case "ETH_BLOCK_NUMBER": target.ethBlockNumber(exchange.getMessage()); return null;
+ case "eth_new_filter":
+ case "ETH_NEW_FILTER": target.ethNewFilter(exchange.getMessage()); return null;
+ case "web3_client_version":
+ case "WEB3_CLIENT_VERSION": target.web3ClientVersion(exchange.getMessage()); return null;
+ case "eth_new_block_filter":
+ case "ETH_NEW_BLOCK_FILTER": target.ethNewBlockFilter(exchange.getMessage()); return null;
+ case "quorum_is_voter":
+ case "QUORUM_IS_VOTER": target.quorumIsVoter(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_compile_solidity":
+ case "ETH_COMPILE_SOLIDITY": target.ethCompileSolidity(exchange.getMessage()); return null;
+ case "db_put_hex":
+ case "DB_PUT_HEX": target.dbPutHex(exchange.getMessage()); return null;
+ case "eth_get_code":
+ case "ETH_GET_CODE": target.ethGetCode(exchange.getMessage()); return null;
+ case "shh_version":
+ case "SHH_VERSION": target.shhVersion(exchange.getMessage()); return null;
+ case "net_peer_count":
+ case "NET_PEER_COUNT": target.netPeerCount(exchange.getMessage()); return null;
+ case "quorum_node_info":
+ case "QUORUM_NODE_INFO": target.quorumNodeInfo(exchange.getMessage()); return null;
+ case "quorum_eth_send_transaction":
+ case "QUORUM_ETH_SEND_TRANSACTION": target.quorumEthSendTransaction(exchange.getMessage()); return null;
+ case "eth_call":
+ case "ETH_CALL": target.ethCall(exchange.getMessage()); return null;
+ case "quorum_get_private_payload":
+ case "QUORUM_GET_PRIVATE_PAYLOAD": target.quorumGetPrivatePayload(exchange.getMessage()); return null;
+ case "ethprotocolversion":
+ case "ethProtocolVersion": target.ethProtocolVersion(exchange.getMessage()); return null;
+ case "eth_get_work":
+ case "ETH_GET_WORK": target.ethGetWork(exchange.getMessage()); return null;
+ case "db_get_hex":
+ case "DB_GET_HEX": target.dbGetHex(exchange.getMessage()); return null;
+ case "shh_new_group":
+ case "SHH_NEW_GROUP": target.shhNewGroup(exchange.getMessage()); return null;
+ case "web3_sha3":
+ case "WEB3_SHA3": target.web3Sha3(exchange.getMessage()); return null;
+ case "eth_get_compilers":
+ case "ETH_GET_COMPILERS": target.ethGetCompilers(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_block_by_hash":
+ case "ETH_GET_BLOCK_BY_HASH": target.ethGetBlockByHash(exchange.getMessage()); return null;
+ case "quorum_resume_block_maker":
+ case "QUORUM_RESUME_BLOCK_MAKER": target.quorumResumeBlockMaker(exchange.getMessage()); return null;
+ case "eth_get_transaction_count":
+ case "ETH_GET_TRANSACTION_COUNT": target.ethGetTransactionCount(exchange.getMessage()); return null;
+ case "shh_new_identity":
+ case "SHH_NEW_IDENTITY": target.shhNewIdentity(exchange.getMessage()); return null;
+ case "quorum_canonical_hash":
+ case "QUORUM_CANONICAL_HASH": target.quorumCanonicalHash(exchange.getMessage()); return null;
+ case "shh_uninstall_filter":
+ case "SHH_UNINSTALL_FILTER": target.shhUninstallFilter(exchange.getMessage()); return null;
+ case "eth_mining":
+ case "ETH_MINING": target.ethMining(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 "db_put_string":
+ case "DB_PUT_STRING": target.dbPutString(exchange.getMessage()); return null;
+ case "eth_get_filter_logs":
+ case "ETH_GET_FILTER_LOGS": target.ethGetFilterLogs(exchange.getMessage()); return null;
+ case "shh_post":
+ case "SHH_POST": target.shhPost(exchange.getMessage()); return null;
+ case "net_version":
+ case "NET_VERSION": target.netVersion(exchange.getMessage()); return null;
+ case "eth_accounts":
+ case "ETH_ACCOUNTS": target.ethAccounts(exchange.getMessage()); return null;
+ case "eth_submit_work":
+ case "ETH_SUBMIT_WORK": target.ethSubmitWork(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_uncle_by_block_number_and_index":
+ case "ETH_GET_UNCLE_BY_BLOCK_NUMBER_AND_INDEX": target.ethGetUncleByBlockNumberAndIndex(exchange.getMessage()); return null;
+ case "eth_compile_serpent":
+ case "ETH_COMPILE_SERPENT": target.ethCompileSerpent(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 "db_get_string":
+ case "DB_GET_STRING": target.dbGetString(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_coinbase":
+ case "ETH_COINBASE": target.ethCoinbase(exchange.getMessage()); return null;
+ case "shh_new_filter":
+ case "SHH_NEW_FILTER": target.shhNewFilter(exchange.getMessage()); return null;
+ case "eth_send_raw_transaction":
+ case "ETH_SEND_RAW_TRANSACTION": target.ethSendRawTransaction(exchange.getMessage()); return null;
+ case "quorum_vote":
+ case "QUORUM_VOTE": target.quorumVote(exchange.getMessage()); return null;
+ case "shh_get_messages":
+ case "SHH_GET_MESSAGES": target.shhGetMessages(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..4b4e03b
--- /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.Web3jProducer.Web3jProducerInvokeOnHeaderFactory
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 3a3441c..fc0e977 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
@@ -21,11 +21,22 @@ 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/>
+ * The method must have either of the following method signatures:
+ * <pre>
+ * void theMethodName(Message message) throws Exception;
+ * Object theMethodName(Message message) throws Exception;
+ * boolean theMethodName(Message message, AsyncCallback callback) throws Exception;
+ * </pre>
+ * If the method includes the {@link AsyncCallback} type, then the return value must be boolean,
+ * as part of the async callback contract.
+ * Throwing exceptions is optional and can be omitted.
+ * <p/>
* This can be used by Component implementations that uses org.apache.camel.support.HeaderSelectorProducer.
*
* @see Message#getHeader(String)
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
index 57edc45..83f6b8d 100644
--- 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
@@ -16,6 +16,7 @@
*/
package org.apache.camel.spi;
+import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
/**
@@ -31,8 +32,9 @@ public interface InvokeOnHeaderStrategy {
* @param target the target such as 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
* @throws Exception is thrown if error invoking the method.
*/
- Object invoke(Object target, String key, Exchange exchange) throws Exception;
+ Object invoke(Object target, String key, Exchange exchange, AsyncCallback callback) 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 96a9ebf..fbcb0c8 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
@@ -159,6 +159,8 @@ public abstract class HeaderSelectorProducer extends BaseSelectorProducer {
"Unsupported operation " + exchange.getIn().getHeader(headerSupplier.get()));
}
+ // TODO: bind should use factory finder and use reflection free
+ // TODO: And setup this as part of doBuild as its loaded via classpath so we can build time optimize this
protected void bind() {
for (final Method method : getTarget().getClass().getDeclaredMethods()) {
bind(method.getAnnotation(InvokeOnHeader.class), method);
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
index 93431ba..e96871b 100644
--- 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
@@ -68,6 +68,7 @@ public class GenerateInvokeOnHeaderMojo extends AbstractGeneratorMojo {
private String key;
private String methodName;
private boolean isVoid;
+ private boolean callback;
public String getKey() {
return key;
@@ -92,6 +93,14 @@ public class GenerateInvokeOnHeaderMojo extends AbstractGeneratorMojo {
public void setVoid(boolean aVoid) {
isVoid = aVoid;
}
+
+ public boolean isCallback() {
+ return callback;
+ }
+
+ public void setCallback(boolean callback) {
+ this.callback = callback;
+ }
}
public GenerateInvokeOnHeaderMojo() {
@@ -127,11 +136,13 @@ public class GenerateInvokeOnHeaderMojo extends AbstractGeneratorMojo {
String value = a.value().asString();
String methodName = a.target().asMethod().name();
boolean isVoid = Type.Kind.VOID == a.target().asMethod().returnType().kind();
+ boolean callback = a.target().asMethod().parameters().size() == 2;
Set<InvokeOnHeaderModel> set = classes.computeIfAbsent(currentClass, k -> new HashSet<>());
InvokeOnHeaderModel model = new InvokeOnHeaderModel();
model.setKey(value);
model.setMethodName(methodName);
model.setVoid(isVoid);
+ model.setCallback(callback);
set.add(model);
});
@@ -181,6 +192,7 @@ public class GenerateInvokeOnHeaderMojo extends AbstractGeneratorMojo {
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");
@@ -199,12 +211,17 @@ public class GenerateInvokeOnHeaderMojo extends AbstractGeneratorMojo {
}
w.write(" @Override\n");
- w.write(" public Object invoke(Object obj, String key, Exchange exchange) throws Exception {\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) {
- String invoke = "target." + option.getMethodName() + "(exchange.getMessage())";
+ String invoke;
+ if (option.isCallback()) {
+ invoke = "target." + option.getMethodName() + "(exchange.getMessage(), callback)";
+ } else {
+ invoke = "target." + option.getMethodName() + "(exchange.getMessage())";
+ }
if (!option.getKey().toLowerCase().equals(option.getKey())) {
w.write(String.format(" case \"%s\":\n", option.getKey().toLowerCase()));
}