CAMEL-11149: SPI - Allow to plugin different headers map implementation

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d50e4804
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d50e4804
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d50e4804

Branch: refs/heads/master
Commit: d50e480483563a0c9605917fbef62504a00af172
Parents: 4767924
Author: Claus Ibsen <davscl...@apache.org>
Authored: Thu May 25 10:46:11 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu May 25 11:09:53 2017 +0200

----------------------------------------------------------------------
 .../component/zookeeper/ZooKeeperConsumer.java  | 10 ++++-----
 .../component/zookeeper/ZooKeeperMessage.java   | 22 +++++++++++++-------
 .../component/zookeeper/ZooKeeperProducer.java  |  2 +-
 3 files changed, 21 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d50e4804/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java
 
b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java
index 44b8f49..96b2686 100644
--- 
a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java
+++ 
b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConsumer.java
@@ -108,15 +108,15 @@ public class ZooKeeperConsumer extends DefaultConsumer {
     }
 
     private Exchange createExchange(String path, OperationResult result, 
WatchedEvent watchedEvent) {
-        Exchange e = getEndpoint().createExchange();
-        ZooKeeperMessage in = new ZooKeeperMessage(path, 
result.getStatistics(), watchedEvent);
-        e.setIn(in);
+        Exchange exchange = getEndpoint().createExchange();
+        ZooKeeperMessage in = new 
ZooKeeperMessage(getEndpoint().getCamelContext(), path, result.getStatistics(), 
watchedEvent);
+        exchange.setIn(in);
         if (result.isOk()) {
             in.setBody(result.getResult());
         } else {
-            e.setException(result.getException());
+            exchange.setException(result.getException());
         }
-        return e;
+        return exchange;
     }
 
     private class OperationsExecutor implements Runnable {

http://git-wip-us.apache.org/repos/asf/camel/blob/d50e4804/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperMessage.java
 
b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperMessage.java
index 06dbc7f..9a79792 100644
--- 
a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperMessage.java
+++ 
b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperMessage.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.zookeeper;
 import java.util.Collections;
 import java.util.Map;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Message;
 import org.apache.camel.impl.DefaultMessage;
 import org.apache.zookeeper.WatchedEvent;
@@ -48,15 +49,20 @@ public class ZooKeeperMessage extends DefaultMessage {
 
     public static final String ZOOKEEPER_OPERATION = "CamelZookeeperOperation";
 
-    public ZooKeeperMessage(String node, Stat statistics, WatchedEvent 
watchedEvent) {
-        this(node, statistics, Collections.<String, Object>emptyMap(), 
watchedEvent);
+    public ZooKeeperMessage(CamelContext camelContext) {
+        super(camelContext);
     }
 
-    public ZooKeeperMessage(String node, Stat statistics, Map<String, Object> 
headers) {
-        this(node, statistics, headers, null);
+    public ZooKeeperMessage(CamelContext camelContext, String node, Stat 
statistics, WatchedEvent watchedEvent) {
+        this(camelContext, node, statistics, Collections.<String, 
Object>emptyMap(), watchedEvent);
     }
 
-    public ZooKeeperMessage(String node, Stat statistics, Map<String, Object> 
headers, WatchedEvent watchedEvent) {
+    public ZooKeeperMessage(CamelContext camelContext, String node, Stat 
statistics, Map<String, Object> headers) {
+        this(camelContext, node, statistics, headers, null);
+    }
+
+    public ZooKeeperMessage(CamelContext camelContext, String node, Stat 
statistics, Map<String, Object> headers, WatchedEvent watchedEvent) {
+        super(camelContext);
         setHeaders(headers);
         this.setHeader(ZOOKEEPER_NODE, node);
         this.setHeader(ZOOKEEPER_STATISTICS, statistics);
@@ -80,7 +86,9 @@ public class ZooKeeperMessage extends DefaultMessage {
         }
         return path;
     }
-    
-    
 
+    @Override
+    public DefaultMessage newInstance() {
+        return new ZooKeeperMessage(getCamelContext());
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/d50e4804/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperProducer.java
 
b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperProducer.java
index 37b236e..7f48980 100644
--- 
a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperProducer.java
+++ 
b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperProducer.java
@@ -137,7 +137,7 @@ public class ZooKeeperProducer extends DefaultProducer {
     }
 
     private void updateExchangeWithResult(ProductionContext context, 
OperationResult result) {
-        ZooKeeperMessage out = new ZooKeeperMessage(context.node, 
result.getStatistics(), context.in.getHeaders());
+        ZooKeeperMessage out = new 
ZooKeeperMessage(getEndpoint().getCamelContext(), context.node, 
result.getStatistics(), context.in.getHeaders());
         if (result.isOk()) {
             out.setBody(result.getResult());
         } else {

Reply via email to