camel git commit: CAMEL-8730 Camel-Hazelcast: Add replace operation to map producer
Repository: camel Updated Branches: refs/heads/master 9c628c284 - 8af7e6517 CAMEL-8730 Camel-Hazelcast: Add replace operation to map producer Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8af7e651 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8af7e651 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8af7e651 Branch: refs/heads/master Commit: 8af7e65170f6fe70969f0a75484269186b85cbc1 Parents: 9c628c2 Author: Andrea Cosentino anco...@gmail.com Authored: Sun May 3 10:12:25 2015 +0200 Committer: Andrea Cosentino anco...@gmail.com Committed: Sun May 3 10:12:25 2015 +0200 -- .../component/hazelcast/HazelcastConstants.java | 3 +- .../hazelcast/map/HazelcastMapProducer.java | 42 .../hazelcast/HazelcastMapProducerTest.java | 14 ++- 3 files changed, 21 insertions(+), 38 deletions(-) -- http://git-wip-us.apache.org/repos/asf/camel/blob/8af7e651/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java -- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java index 84521c3..dcdcf6f 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java @@ -57,8 +57,7 @@ public final class HazelcastConstants { public static final int UPDATE_OPERATION = 4; public static final int QUERY_OPERATION = 5; public static final int GET_ALL_OPERATION = 6; -public static final int REPLACE_OPERATION = 7; -public static final int CLEAR_OPERATION = 8; +public static final int CLEAR_OPERATION = 7; // multimap public static final int REMOVEVALUE_OPERATION = 10; http://git-wip-us.apache.org/repos/asf/camel/blob/8af7e651/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java -- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java index ab59a6a..dfc917c 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java @@ -80,21 +80,17 @@ public class HazelcastMapProducer extends HazelcastDefaultProducer { break; case HazelcastConstants.UPDATE_OPERATION: -this.update(oid, exchange); -break; - -case HazelcastConstants.QUERY_OPERATION: -this.query(query, exchange); -break; - -case HazelcastConstants.REPLACE_OPERATION: if (ObjectHelper.isEmpty(ovalue)) { -this.replace(oid, exchange); +this.update(oid, exchange); } else { -this.replace(oid, ovalue, exchange); +this.update(oid, ovalue, exchange); } break; +case HazelcastConstants.QUERY_OPERATION: +this.query(query, exchange); +break; + case HazelcastConstants.CLEAR_OPERATION: this.clear(exchange); break; @@ -130,6 +126,16 @@ public class HazelcastMapProducer extends HazelcastDefaultProducer { this.cache.replace(oid, body); this.cache.unlock(oid); } + +/** + * Replaces the entry for given id with a specific value in the body, only if currently mapped to a given value + */ +private void update(Object oid, Object ovalue, Exchange exchange) { +Object body = exchange.getIn().getBody(); +this.cache.lock(oid); +this.cache.replace(oid, ovalue, body); +this.cache.unlock(oid); +} /** * remove an object from the cache @@ -162,22 +168,6 @@ public class HazelcastMapProducer extends HazelcastDefaultProducer { } /** - * replace a value related to a specific key - */ -private void replace(Object oid, Exchange exchange) { -Object body = exchange.getIn().getBody(); -this.cache.replace(oid, body); -} - -/** - * Replaces the entry for given id with a specific value in the body, only if currently mapped to a given value - */ -private void replace(Object oid, Object ovalue,
camel git commit: CAMEL-8730 Camel-Hazelcast: Add replace operation to map producer
Repository: camel Updated Branches: refs/heads/master e63deab9a - 94ce9de81 CAMEL-8730 Camel-Hazelcast: Add replace operation to map producer Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/94ce9de8 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/94ce9de8 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/94ce9de8 Branch: refs/heads/master Commit: 94ce9de81ccea6ddf0e3e346537f547e32bffe3d Parents: e63deab Author: Andrea Cosentino anco...@gmail.com Authored: Sat May 2 11:43:37 2015 +0200 Committer: Andrea Cosentino anco...@gmail.com Committed: Sat May 2 11:43:37 2015 +0200 -- .../component/hazelcast/HazelcastConstants.java | 4 ++- .../hazelcast/map/HazelcastMapProducer.java | 29 .../hazelcast/HazelcastMapProducerTest.java | 17 3 files changed, 49 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/camel/blob/94ce9de8/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java -- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java index 3caa167..7757f74 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java @@ -35,6 +35,7 @@ public final class HazelcastConstants { */ public static final String OBJECT_ID = CamelHazelcastObjectId; public static final String OBJECT_POS = CamelHazelcastObjectIndex; +public static final String OBJECT_VALUE = CamelHazelcastObjectValue; public static final String QUERY = CamelHazelcastQuery; /* @@ -48,7 +49,7 @@ public final class HazelcastConstants { public static final String CACHE_NAME = CamelHazelcastCacheName; public static final String CACHE_TYPE = CamelHazelcastCacheType; -// actions (put, delete, get, update) +// actions (put, delete, get, getAll, replace, update) public static final String OPERATION = CamelHazelcastOperationType; public static final int PUT_OPERATION = 1; public static final int DELETE_OPERATION = 2; @@ -56,6 +57,7 @@ public final class HazelcastConstants { public static final int UPDATE_OPERATION = 4; public static final int QUERY_OPERATION = 5; public static final int GET_ALL_OPERATION = 6; +public static final int REPLACE_OPERATION = 7; // multimap public static final int REMOVEVALUE_OPERATION = 10; http://git-wip-us.apache.org/repos/asf/camel/blob/94ce9de8/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java -- diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java index ec453a7..8b6cd69 100644 --- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java +++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/map/HazelcastMapProducer.java @@ -45,11 +45,16 @@ public class HazelcastMapProducer extends HazelcastDefaultProducer { // get header parameters Object oid = null; +Object ovalue = null; String query = null; if (headers.containsKey(HazelcastConstants.OBJECT_ID)) { oid = headers.get(HazelcastConstants.OBJECT_ID); } + +if (headers.containsKey(HazelcastConstants.OBJECT_VALUE)) { +ovalue = headers.get(HazelcastConstants.OBJECT_VALUE); +} if (headers.containsKey(HazelcastConstants.QUERY)) { query = (String) headers.get(HazelcastConstants.QUERY); @@ -82,6 +87,14 @@ public class HazelcastMapProducer extends HazelcastDefaultProducer { this.query(query, exchange); break; +case HazelcastConstants.REPLACE_OPERATION: +if (ObjectHelper.isEmpty(ovalue)) { +this.replace(oid, exchange); +} else { +this.replace(oid, ovalue, exchange); +} +break; + default: throw new IllegalArgumentException(String.format(The value '%s' is not allowed for parameter '%s' on the MAP cache., operation, HazelcastConstants.OPERATION)); } @@ -143,4 +156,20 @@ public class HazelcastMapProducer