Repository: camel Updated Branches: refs/heads/master cdf97cb52 -> 33adccfd5
CAMEL-10882: camel-hazelcast - Allow to configure default operation as string value Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/33adccfd Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/33adccfd Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/33adccfd Branch: refs/heads/master Commit: 33adccfd5954a95791e74c947a6fcbccd67cccbf Parents: cdf97cb Author: Claus Ibsen <davscl...@apache.org> Authored: Wed Feb 22 21:23:52 2017 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Wed Feb 22 21:23:52 2017 +0100 ---------------------------------------------------------------------- .../src/main/docs/hazelcast-component.adoc | 4 ++-- .../component/hazelcast/HazelcastComponent.java | 16 +++++----------- .../hazelcast/HazelcastDefaultEndpoint.java | 10 ++++++---- .../hazelcast/HazelcastDefaultProducer.java | 7 ++++++- 4 files changed, 19 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/33adccfd/components/camel-hazelcast/src/main/docs/hazelcast-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-component.adoc index eee848b..2893c62 100644 --- a/components/camel-hazelcast/src/main/docs/hazelcast-component.adoc +++ b/components/camel-hazelcast/src/main/docs/hazelcast-component.adoc @@ -73,7 +73,7 @@ The Hazelcast component supports 13 endpoint options which are listed below: | Name | Group | Default | Java Type | Description | command | common | | HazelcastCommand | *Required* What operation to perform. | cacheName | common | | String | *Required* The name of the cache -| defaultOperation | common | | int | To specify a default operation to use if no operation header has been provided. +| defaultOperation | common | | String | To specify a default operation to use if no operation header has been provided. | hazelcastInstance | common | | HazelcastInstance | The hazelcast instance reference which can be used for hazelcast endpoint. | hazelcastInstanceName | common | | String | The hazelcast instance reference name which can be used for hazelcast endpoint. If you don't specify the instance reference camel use the default hazelcast instance from the camel-hazelcast instance. | bridgeErrorHandler | consumer | false | boolean | 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. @@ -1387,4 +1387,4 @@ from("direct:get") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.READ_ONCE_HEAD_OPERATION)) .toF("hazelcast:%sbar", HazelcastConstants.RINGBUFFER_PREFIX) .to("seda:out"); ------------------------------------------------------------------------------------------------ \ No newline at end of file +----------------------------------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/33adccfd/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java index 5feaf7d..5d2ff04 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java @@ -75,15 +75,11 @@ public class HazelcastComponent extends UriEndpointComponent { // use the given hazelcast Instance or create one if not given HazelcastInstance hzInstance = getOrCreateHzInstance(getCamelContext(), parameters); - int defaultOperation = -1; - Object operation = getAndRemoveOrResolveReferenceParameter(parameters, HazelcastConstants.OPERATION_PARAM, Object.class); - if (operation == null) { - operation = getAndRemoveOrResolveReferenceParameter(parameters, "defaultOperation", Object.class); + String defaultOperation = getAndRemoveOrResolveReferenceParameter(parameters, HazelcastConstants.OPERATION_PARAM, String.class); + if (defaultOperation == null) { + defaultOperation = getAndRemoveOrResolveReferenceParameter(parameters, "defaultOperation", String.class); } - if (operation != null) { - defaultOperation = HazelcastComponentHelper.extractOperationNumber(operation, -1); - } - + HazelcastDefaultEndpoint endpoint = null; // check type of endpoint @@ -176,9 +172,7 @@ public class HazelcastComponent extends UriEndpointComponent { HazelcastConstants.SEDA_PREFIX, HazelcastConstants.LIST_PREFIX, HazelcastConstants.REPLICATEDMAP_PREFIX, HazelcastConstants.SET_PREFIX, HazelcastConstants.RINGBUFFER_PREFIX, uri)); } - if (defaultOperation != -1) { - endpoint.setDefaultOperation(defaultOperation); - } + endpoint.setDefaultOperation(defaultOperation); return endpoint; } http://git-wip-us.apache.org/repos/asf/camel/blob/33adccfd/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java index 67fcf8d..c32ac15 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java @@ -42,8 +42,9 @@ public abstract class HazelcastDefaultEndpoint extends DefaultEndpoint { protected HazelcastInstance hazelcastInstance; @UriParam protected String hazelcastInstanceName; - @UriParam - private int defaultOperation = -1; + @UriParam(enums = "put,delete,get,update,query,getAll,clear,evict,evictAll,putIfAbsent,addAll,removeAll,retainAll,valueCount,containsKey,containsValue,keySet,removevalue,increment" + + ",decrement,setvalue,destroy,compareAndSet,getAndAdd,add,offer,peek,poll,remainingCapacity,drainTo,publish,capacity,readonceHead,readonceTail") + private String defaultOperation; @UriParam private HazelcastSedaConfiguration hazelcastSedaConfiguration; // to include component schema docs @@ -113,11 +114,12 @@ public abstract class HazelcastDefaultEndpoint extends DefaultEndpoint { /** * To specify a default operation to use, if no operation header has been provided. */ - public void setDefaultOperation(int defaultOperation) { + public void setDefaultOperation(String defaultOperation) { this.defaultOperation = defaultOperation; } - public int getDefaultOperation() { + public String getDefaultOperation() { return defaultOperation; } + } http://git-wip-us.apache.org/repos/asf/camel/blob/33adccfd/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultProducer.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultProducer.java index 5cb55dd..0f96c29 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultProducer.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultProducer.java @@ -31,6 +31,11 @@ public abstract class HazelcastDefaultProducer extends DefaultProducer { } protected int lookupOperationNumber(Exchange exchange) { - return HazelcastComponentHelper.lookupOperationNumber(exchange, getEndpoint().getDefaultOperation()); + int defaultNumber = -1; + // if there is a default operation we need to convert that first to a number + if (getEndpoint().getDefaultOperation() != null) { + defaultNumber = HazelcastComponentHelper.extractOperationNumber(getEndpoint().getDefaultOperation(), -1); + } + return HazelcastComponentHelper.lookupOperationNumber(exchange, defaultNumber); } }