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/36c3512d
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/36c3512d
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/36c3512d

Branch: refs/heads/master
Commit: 36c3512d80244d6c92d1f842e9ab973934fcc348
Parents: 6c73ae8
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed May 24 21:09:08 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu May 25 11:09:53 2017 +0200

----------------------------------------------------------------------
 .../apache/camel/http/common/HttpMessage.java   |  3 ++
 .../apache/camel/component/irc/IrcEndpoint.java | 45 ++++++++++++++++----
 .../apache/camel/component/irc/IrcMessage.java  |  4 +-
 .../apache/camel/component/jms/JmsMessage.java  |  4 +-
 .../camel/component/mail/MailMessage.java       |  4 +-
 .../netty/http/DefaultNettyHttpBinding.java     |  4 +-
 .../component/netty/http/NettyHttpMessage.java  |  6 ++-
 .../netty4/http/DefaultNettyHttpBinding.java    |  4 +-
 .../component/netty4/http/NettyHttpMessage.java |  6 ++-
 .../camel/component/paho/PahoEndpoint.java      |  6 +--
 .../camel/component/paho/PahoMessage.java       | 10 ++---
 .../camel/component/quartz/QuartzMessage.java   |  6 +++
 .../camel/component/quartz2/QuartzMessage.java  |  6 +++
 .../camel/component/sjms/SjmsMessage.java       |  4 +-
 .../camel/component/smpp/SmppMessage.java       |  4 +-
 .../camel/component/snmp/SnmpMessage.java       |  4 +-
 .../sparkrest/DefaultSparkBinding.java          |  2 +-
 .../camel/component/sparkrest/SparkMessage.java |  6 ++-
 .../integration/SpringIntegrationMessage.java   | 10 ++++-
 .../SpringIntegrationMessageTest.java           |  5 +++
 .../spring/ws/SpringWebserviceConsumer.java     |  2 +-
 .../spring/ws/SpringWebserviceMessage.java      |  9 +++-
 .../camel/component/xmpp/XmppMessage.java       |  4 +-
 23 files changed, 119 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java
 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java
index 7dd296d..a96d580 100644
--- 
a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java
+++ 
b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpMessage.java
@@ -35,6 +35,8 @@ public class HttpMessage extends DefaultMessage {
 
     public HttpMessage(Exchange exchange, HttpServletRequest request, 
HttpServletResponse response) {
         setExchange(exchange);
+        setCamelContext(exchange.getContext());
+
         this.request = request;
         this.response = response;
         // Put the request and response into the message header
@@ -56,6 +58,7 @@ public class HttpMessage extends DefaultMessage {
         this.request = request;
         this.response = response;
         setExchange(getExchange());
+        setCamelContext(exchange.getContext());
     }
 
     public HttpServletRequest getRequest() {

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
 
b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
index 9572a63..79334cc 100644
--- 
a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
+++ 
b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
@@ -68,55 +68,82 @@ public class IrcEndpoint extends DefaultEndpoint {
 
     public Exchange createOnPrivmsgExchange(String target, IRCUser user, 
String msg) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("PRIVMSG", target, user, msg));
+        IrcMessage im = new IrcMessage("PRIVMSG", target, user, msg);
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 
     public Exchange createOnNickExchange(IRCUser user, String newNick) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("NICK", user, newNick));
+        IrcMessage im = new IrcMessage("NICK", user, newNick);
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 
     public Exchange createOnQuitExchange(IRCUser user, String msg) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("QUIT", user, msg));
+        IrcMessage im = new IrcMessage("QUIT", user, msg);
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 
     public Exchange createOnJoinExchange(String channel, IRCUser user) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("JOIN", channel, user));
+        IrcMessage im = new IrcMessage("JOIN", channel, user);
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 
     public Exchange createOnKickExchange(String channel, IRCUser user, String 
whoWasKickedNick, String msg) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("KICK", channel, user, whoWasKickedNick, 
msg));
+        IrcMessage im = new IrcMessage("KICK", channel, user, 
whoWasKickedNick, msg);
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 
     public Exchange createOnModeExchange(String channel, IRCUser user, 
IRCModeParser modeParser) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("MODE", channel, user, 
modeParser.getLine()));
+        IrcMessage im = new IrcMessage("MODE", channel, user, 
modeParser.getLine());
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 
     public Exchange createOnPartExchange(String channel, IRCUser user, String 
msg) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("PART", channel, user, msg));
+        IrcMessage im = new IrcMessage("PART", channel, user, msg);
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 
     public Exchange createOnReplyExchange(int num, String value, String msg) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("REPLY", num, value, msg));
+        IrcMessage im = new IrcMessage("REPLY", num, value, msg);
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 
     public Exchange createOnTopicExchange(String channel, IRCUser user, String 
topic) {
         Exchange exchange = createExchange();
-        exchange.setIn(new IrcMessage("TOPIC", channel, user, topic));
+        IrcMessage im = new IrcMessage("TOPIC", channel, user, topic);
+        im.setExchange(exchange);
+        im.setCamelContext(exchange.getContext());
+        exchange.setIn(im);
         return exchange;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcMessage.java
 
b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcMessage.java
index be4bc8a..1b3360a 100644
--- 
a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcMessage.java
+++ 
b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcMessage.java
@@ -122,7 +122,9 @@ public class IrcMessage extends DefaultMessage {
 
     @Override
     public IrcMessage newInstance() {
-        return new IrcMessage();
+        IrcMessage answer = new IrcMessage();
+        answer.setCamelContext(getCamelContext());
+        return answer;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java
index 0408ff7..88428ec 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java
@@ -191,7 +191,9 @@ public class JmsMessage extends DefaultMessage {
 
     @Override
     public JmsMessage newInstance() {
-        return new JmsMessage(null, null, binding);
+        JmsMessage answer = new JmsMessage(null, null, binding);
+        answer.setCamelContext(getCamelContext());
+        return answer;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
index b643b82..9119d98 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
@@ -94,7 +94,9 @@ public class MailMessage extends DefaultMessage {
 
     @Override
     public MailMessage newInstance() {
-        return new MailMessage(null, this.mapMailMessage);
+        MailMessage answer = new MailMessage(null, this.mapMailMessage);
+        answer.setCamelContext(getCamelContext());
+        return answer;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java
 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java
index 192d4c1..5112762 100644
--- 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java
+++ 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/DefaultNettyHttpBinding.java
@@ -81,7 +81,7 @@ public class DefaultNettyHttpBinding implements 
NettyHttpBinding, Cloneable {
     public Message toCamelMessage(HttpRequest request, Exchange exchange, 
NettyHttpConfiguration configuration) throws Exception {
         LOG.trace("toCamelMessage: {}", request);
 
-        NettyHttpMessage answer = new NettyHttpMessage(request, null);
+        NettyHttpMessage answer = new NettyHttpMessage(exchange.getContext(), 
request, null);
         answer.setExchange(exchange);
         if (configuration.isMapHeaders()) {
             populateCamelHeaders(request, answer.getHeaders(), exchange, 
configuration);
@@ -252,7 +252,7 @@ public class DefaultNettyHttpBinding implements 
NettyHttpBinding, Cloneable {
     public Message toCamelMessage(HttpResponse response, Exchange exchange, 
NettyHttpConfiguration configuration) throws Exception {
         LOG.trace("toCamelMessage: {}", response);
 
-        NettyHttpMessage answer = new NettyHttpMessage(null, response);
+        NettyHttpMessage answer = new 
NettyHttpMessage(exchange.getContext(),null, response);
         answer.setExchange(exchange);
         if (configuration.isMapHeaders()) {
             populateCamelHeaders(response, answer.getHeaders(), exchange, 
configuration);

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpMessage.java
 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpMessage.java
index ba4ca55..81f493f 100644
--- 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpMessage.java
+++ 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpMessage.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.netty.http;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.impl.DefaultMessage;
 import org.jboss.netty.handler.codec.http.HttpRequest;
 import org.jboss.netty.handler.codec.http.HttpResponse;
@@ -31,7 +32,8 @@ public class NettyHttpMessage extends DefaultMessage {
     private final transient HttpRequest httpRequest;
     private final transient HttpResponse httpResponse;
 
-    public NettyHttpMessage(HttpRequest httpRequest, HttpResponse 
httpResponse) {
+    public NettyHttpMessage(CamelContext camelContext, HttpRequest 
httpRequest, HttpResponse httpResponse) {
+        super(camelContext);
         this.httpRequest = httpRequest;
         this.httpResponse = httpResponse;
     }
@@ -46,6 +48,6 @@ public class NettyHttpMessage extends DefaultMessage {
 
     @Override
     public DefaultMessage newInstance() {
-        return new NettyHttpMessage(httpRequest, httpResponse);
+        return new NettyHttpMessage(getCamelContext(), httpRequest, 
httpResponse);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java
 
b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java
index 3d92f21..eb96cc8 100644
--- 
a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java
+++ 
b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/DefaultNettyHttpBinding.java
@@ -84,7 +84,7 @@ public class DefaultNettyHttpBinding implements 
NettyHttpBinding, Cloneable {
     public Message toCamelMessage(FullHttpRequest request, Exchange exchange, 
NettyHttpConfiguration configuration) throws Exception {
         LOG.trace("toCamelMessage: {}", request);
 
-        NettyHttpMessage answer = new NettyHttpMessage(request, null);
+        NettyHttpMessage answer = new NettyHttpMessage(exchange.getContext(), 
request, null);
         answer.setExchange(exchange);
         if (configuration.isMapHeaders()) {
             populateCamelHeaders(request, answer.getHeaders(), exchange, 
configuration);
@@ -263,7 +263,7 @@ public class DefaultNettyHttpBinding implements 
NettyHttpBinding, Cloneable {
     public Message toCamelMessage(FullHttpResponse response, Exchange 
exchange, NettyHttpConfiguration configuration) throws Exception {
         LOG.trace("toCamelMessage: {}", response);
 
-        NettyHttpMessage answer = new NettyHttpMessage(null, response);
+        NettyHttpMessage answer = new NettyHttpMessage(exchange.getContext(), 
null, response);
         answer.setExchange(exchange);
         if (configuration.isMapHeaders()) {
             populateCamelHeaders(response, answer.getHeaders(), exchange, 
configuration);

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpMessage.java
 
b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpMessage.java
index 2460bfa..54429f5 100644
--- 
a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpMessage.java
+++ 
b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpMessage.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.netty4.http;
 
 import io.netty.handler.codec.http.FullHttpRequest;
 import io.netty.handler.codec.http.FullHttpResponse;
+import org.apache.camel.CamelContext;
 import org.apache.camel.impl.DefaultMessage;
 
 /**
@@ -31,7 +32,8 @@ public class NettyHttpMessage extends DefaultMessage {
     private final transient FullHttpRequest httpRequest;
     private final transient FullHttpResponse httpResponse;
 
-    public NettyHttpMessage(FullHttpRequest httpRequest, FullHttpResponse 
httpResponse) {
+    public NettyHttpMessage(CamelContext camelContext, FullHttpRequest 
httpRequest, FullHttpResponse httpResponse) {
+        super(camelContext);
         this.httpRequest = httpRequest;
         this.httpResponse = httpResponse;
     }
@@ -46,6 +48,6 @@ public class NettyHttpMessage extends DefaultMessage {
 
     @Override
     public DefaultMessage newInstance() {
-        return new NettyHttpMessage(httpRequest, httpResponse);
+        return new NettyHttpMessage(getCamelContext(), httpRequest, 
httpResponse);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java
 
b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java
index a926982..ed06f59 100644
--- 
a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java
+++ 
b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoEndpoint.java
@@ -140,12 +140,12 @@ public class PahoEndpoint extends DefaultEndpoint {
     }
 
     public Exchange createExchange(MqttMessage mqttMessage, String topic) {
-        PahoMessage paho = new PahoMessage();
-        paho.setMqttMessage(mqttMessage);
+        Exchange exchange = createExchange();
+
+        PahoMessage paho = new PahoMessage(exchange.getContext(), mqttMessage);
         paho.setBody(mqttMessage.getPayload());
         paho.setHeader(PahoConstants.MQTT_TOPIC, topic);
 
-        Exchange exchange = createExchange();
         exchange.setIn(paho);
         return exchange;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java
 
b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java
index a89e470..e805c4b 100644
--- 
a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java
+++ 
b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoMessage.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.paho;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.impl.DefaultMessage;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
 
@@ -23,10 +24,8 @@ public class PahoMessage extends DefaultMessage {
 
     private transient MqttMessage mqttMessage;
 
-    public PahoMessage() {
-    }
-
-    public PahoMessage(MqttMessage mqttMessage) {
+    public PahoMessage(CamelContext camelContext, MqttMessage mqttMessage) {
+        super(camelContext);
         this.mqttMessage = mqttMessage;
     }
 
@@ -40,8 +39,7 @@ public class PahoMessage extends DefaultMessage {
 
     @Override
     public PahoMessage newInstance() {
-        return new PahoMessage(mqttMessage);
+        return new PahoMessage(getCamelContext(), mqttMessage);
     }
 
-
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java
 
b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java
index 58291e8..6fde192 100644
--- 
a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java
+++ 
b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java
@@ -31,6 +31,7 @@ public class QuartzMessage extends DefaultMessage {
     private final JobExecutionContext jobExecutionContext;
 
     public QuartzMessage(Exchange exchange, JobExecutionContext 
jobExecutionContext) {
+        super(exchange.getContext());
         this.jobExecutionContext = jobExecutionContext;
         setExchange(exchange);
         // do not set body as it should be null
@@ -62,4 +63,9 @@ public class QuartzMessage extends DefaultMessage {
             map.put("triggerGroup", trigger.getGroup());
         }
     }
+
+    @Override
+    public DefaultMessage newInstance() {
+        return new QuartzMessage(getExchange(), jobExecutionContext);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzMessage.java
 
b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzMessage.java
index 945a405..bb4af65 100644
--- 
a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzMessage.java
+++ 
b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzMessage.java
@@ -30,6 +30,7 @@ public class QuartzMessage extends DefaultMessage {
     private final JobExecutionContext jobExecutionContext;
 
     public QuartzMessage(Exchange exchange, JobExecutionContext 
jobExecutionContext) {
+        super(exchange.getContext());
         this.jobExecutionContext = jobExecutionContext;
         setExchange(exchange);
         // do not set body as it should be null
@@ -61,4 +62,9 @@ public class QuartzMessage extends DefaultMessage {
             map.put("triggerGroup", trigger.getKey().getGroup());
         }
     }
+
+    @Override
+    public DefaultMessage newInstance() {
+        return new QuartzMessage(getExchange(), jobExecutionContext);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java
 
b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java
index 907985e..fa5b60b 100644
--- 
a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java
+++ 
b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsMessage.java
@@ -204,7 +204,9 @@ public class SjmsMessage extends DefaultMessage {
 
     @Override
     public SjmsMessage newInstance() {
-        return new SjmsMessage(null, null, binding);
+        SjmsMessage answer = new SjmsMessage(null, null, binding);
+        answer.setCamelContext(getCamelContext());
+        return answer;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
 
b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
index 760c920..c108812 100644
--- 
a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
+++ 
b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppMessage.java
@@ -60,7 +60,9 @@ public class SmppMessage extends DefaultMessage {
 
     @Override
     public SmppMessage newInstance() {
-        return new SmppMessage(this.configuration);
+        SmppMessage answer = new SmppMessage(this.configuration);
+        answer.setCamelContext(getCamelContext());
+        return answer;
     }
     
     public boolean isAlertNotification() {

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpMessage.java
 
b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpMessage.java
index 0ba0156..7cc9d3b 100644
--- 
a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpMessage.java
+++ 
b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpMessage.java
@@ -56,7 +56,9 @@ public class SnmpMessage extends DefaultMessage {
 
     @Override
     public SnmpMessage newInstance() {
-        return new SnmpMessage(this.pdu);
+        SnmpMessage answer = new SnmpMessage(this.pdu);
+        answer.setCamelContext(getCamelContext());
+        return answer;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/DefaultSparkBinding.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/DefaultSparkBinding.java
 
b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/DefaultSparkBinding.java
index b04a4f1..b677ed4 100644
--- 
a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/DefaultSparkBinding.java
+++ 
b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/DefaultSparkBinding.java
@@ -48,7 +48,7 @@ public class DefaultSparkBinding implements SparkBinding {
     public Message toCamelMessage(Request request, Exchange exchange, 
SparkConfiguration configuration) throws Exception {
         LOG.trace("toCamelMessage: {}", request);
 
-        SparkMessage answer = new SparkMessage(request, null);
+        SparkMessage answer = new SparkMessage(exchange.getContext(), request, 
null);
         answer.setExchange(exchange);
         if (configuration.isMapHeaders()) {
             populateCamelHeaders(request, answer.getHeaders(), exchange, 
configuration);

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkMessage.java
 
b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkMessage.java
index d38cb5e..c613cdd 100644
--- 
a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkMessage.java
+++ 
b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkMessage.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.sparkrest;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.impl.DefaultMessage;
 import spark.Request;
 import spark.Response;
@@ -31,7 +32,8 @@ public class SparkMessage extends DefaultMessage {
     private final transient Request request;
     private final transient Response response;
 
-    public SparkMessage(Request request, Response response) {
+    public SparkMessage(CamelContext camelContext, Request request, Response 
response) {
+        super(camelContext);
         this.request = request;
         this.response = response;
     }
@@ -46,6 +48,6 @@ public class SparkMessage extends DefaultMessage {
 
     @Override
     public DefaultMessage newInstance() {
-        return new SparkMessage(request, response);
+        return new SparkMessage(getCamelContext(), request, response);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationMessage.java
 
b/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationMessage.java
index 16187a9..9c0be06 100644
--- 
a/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationMessage.java
+++ 
b/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationMessage.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.spring.integration;
 
 import java.util.Map;
 
+import org.apache.camel.CamelContextAware;
 import org.apache.camel.impl.DefaultMessage;
 
 /**
@@ -51,6 +52,10 @@ public class SpringIntegrationMessage extends DefaultMessage 
{
             return;
         }
 
+        if (that instanceof CamelContextAware) {
+            this.setCamelContext(((CamelContextAware) that).getCamelContext());
+        }
+
         setMessageId(that.getMessageId());
         setBody(that.getBody());
         super.getHeaders().putAll(that.getHeaders());
@@ -89,7 +94,10 @@ public class SpringIntegrationMessage extends DefaultMessage 
{
 
     @Override
     public SpringIntegrationMessage newInstance() {
-        return new SpringIntegrationMessage();
+        // create new empty message
+        SpringIntegrationMessage answer = new SpringIntegrationMessage();
+        answer.setCamelContext(getCamelContext());
+        return answer;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-spring-integration/src/test/java/org/apache/camel/component/spring/integration/SpringIntegrationMessageTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spring-integration/src/test/java/org/apache/camel/component/spring/integration/SpringIntegrationMessageTest.java
 
b/components/camel-spring-integration/src/test/java/org/apache/camel/component/spring/integration/SpringIntegrationMessageTest.java
index 2a28f24..45e2161 100644
--- 
a/components/camel-spring-integration/src/test/java/org/apache/camel/component/spring/integration/SpringIntegrationMessageTest.java
+++ 
b/components/camel-spring-integration/src/test/java/org/apache/camel/component/spring/integration/SpringIntegrationMessageTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.spring.integration;
 
+import org.apache.camel.CamelContext;
+import org.apache.camel.impl.DefaultCamelContext;
 import org.junit.Test;
 import org.springframework.messaging.support.MessageBuilder;
 
@@ -25,6 +27,8 @@ public class SpringIntegrationMessageTest {
 
     @Test
     public void testCopyFrom() {
+        CamelContext camelContext = new DefaultCamelContext();
+
         org.springframework.messaging.Message testSpringMessage =
             MessageBuilder.withPayload("Test")
                 .setHeader("header1", "value1")
@@ -32,6 +36,7 @@ public class SpringIntegrationMessageTest {
                 .build();
 
         SpringIntegrationMessage original = new 
SpringIntegrationMessage(testSpringMessage);
+        original.setCamelContext(camelContext);
 
         SpringIntegrationMessage copy = new 
SpringIntegrationMessage(testSpringMessage);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
 
b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
index 19f40fc..5c9b72f 100644
--- 
a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
+++ 
b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
@@ -107,7 +107,7 @@ public class SpringWebserviceConsumer extends 
DefaultConsumer implements Message
 
         // create inbound message
         WebServiceMessage request = messageContext.getRequest();
-        SpringWebserviceMessage inMessage = new 
SpringWebserviceMessage(request);
+        SpringWebserviceMessage inMessage = new 
SpringWebserviceMessage(exchange.getContext(), request);
         extractSourceFromSoapHeader(inMessage.getHeaders(), request);
         extractAttachmentsFromRequest(request, inMessage);
         exchange.setIn(inMessage);

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceMessage.java
 
b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceMessage.java
index 79f0086..2291fdf 100644
--- 
a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceMessage.java
+++ 
b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceMessage.java
@@ -16,13 +16,15 @@
  */
 package org.apache.camel.component.spring.ws;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.impl.DefaultMessage;
 import org.springframework.ws.WebServiceMessage;
 
 public class SpringWebserviceMessage extends DefaultMessage {
     private WebServiceMessage webServiceMessage;
 
-    public SpringWebserviceMessage(WebServiceMessage webServiceMessage) {
+    public SpringWebserviceMessage(CamelContext camelContext, 
WebServiceMessage webServiceMessage) {
+        super(camelContext);
         this.webServiceMessage = webServiceMessage;
     }
 
@@ -43,6 +45,11 @@ public class SpringWebserviceMessage extends DefaultMessage {
     }
 
     @Override
+    public DefaultMessage newInstance() {
+        return new SpringWebserviceMessage(getCamelContext(), 
webServiceMessage);
+    }
+
+    @Override
     public String toString() {
         return "SpringWebserviceMessage[" + webServiceMessage + "]";
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/36c3512d/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
----------------------------------------------------------------------
diff --git 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
index 90c5540..495c373 100644
--- 
a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
+++ 
b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
@@ -74,7 +74,9 @@ public class XmppMessage extends DefaultMessage {
 
     @Override
     public XmppMessage newInstance() {
-        return new XmppMessage();
+        XmppMessage answer = new XmppMessage();
+        answer.setCamelContext(getCamelContext());
+        return answer;
     }
 
     @Override

Reply via email to