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/2672f50b Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2672f50b Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2672f50b Branch: refs/heads/master Commit: 2672f50bdf4b80d2def7754c8e35028feade5fa8 Parents: 23b3cc7 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu May 25 10:22:15 2017 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu May 25 11:09:53 2017 +0200 ---------------------------------------------------------------------- .../apache/camel/component/snmp/SnmpEndpoint.java | 4 ++-- .../org/apache/camel/component/snmp/SnmpMessage.java | 15 ++++++--------- .../camel/component/snmp/SnmpTrapConsumer.java | 5 ++++- .../org/apache/camel/component/snmp/TrapTest.java | 1 + 4 files changed, 13 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/2672f50b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java index da86ee0..af406c8 100644 --- a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java +++ b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java @@ -130,7 +130,7 @@ public class SnmpEndpoint extends DefaultPollingEndpoint { */ public Exchange createExchange(PDU pdu) { Exchange exchange = super.createExchange(); - exchange.setIn(new SnmpMessage(pdu)); + exchange.setIn(new SnmpMessage(getCamelContext(), pdu)); return exchange; } @@ -143,7 +143,7 @@ public class SnmpEndpoint extends DefaultPollingEndpoint { */ public Exchange createExchange(PDU pdu, CommandResponderEvent event) { Exchange exchange = super.createExchange(); - exchange.setIn(new SnmpMessage(pdu, event)); + exchange.setIn(new SnmpMessage(getCamelContext(), pdu, event)); return exchange; } http://git-wip-us.apache.org/repos/asf/camel/blob/2672f50b/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 7cc9d3b..8661fee 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 @@ -16,6 +16,7 @@ */ package org.apache.camel.component.snmp; +import org.apache.camel.CamelContext; import org.apache.camel.impl.DefaultMessage; import org.snmp4j.CommandResponderEvent; import org.snmp4j.PDU; @@ -24,15 +25,13 @@ import org.snmp4j.smi.OctetString; public class SnmpMessage extends DefaultMessage { private PDU pdu; - public SnmpMessage() { - this(new PDU()); - } - - public SnmpMessage(PDU pdu) { + public SnmpMessage(CamelContext camelContext, PDU pdu) { + super(camelContext); this.pdu = pdu; } - public SnmpMessage(PDU pdu, CommandResponderEvent event) { + public SnmpMessage(CamelContext camelContext, PDU pdu, CommandResponderEvent event) { + super(camelContext); this.pdu = pdu; this.setHeader("securityName", new OctetString(event.getSecurityName())); this.setHeader("peerAddress", event.getPeerAddress()); @@ -56,9 +55,7 @@ public class SnmpMessage extends DefaultMessage { @Override public SnmpMessage newInstance() { - SnmpMessage answer = new SnmpMessage(this.pdu); - answer.setCamelContext(getCamelContext()); - return answer; + return new SnmpMessage(getCamelContext(), this.pdu); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/2672f50b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java index 4526b63..a9510f1 100644 --- a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java +++ b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java @@ -140,7 +140,10 @@ public class SnmpTrapConsumer extends DefaultConsumer implements CommandResponde try { getProcessor().process(exchange); } catch (Exception e) { - getExceptionHandler().handleException(e); + exchange.setException(e); + } + if (exchange.getException() != null) { + getExceptionHandler().handleException(exchange.getException()); } } } http://git-wip-us.apache.org/repos/asf/camel/blob/2672f50b/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java ---------------------------------------------------------------------- diff --git a/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java b/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java index b688c35..8d29b02 100644 --- a/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java +++ b/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java @@ -81,6 +81,7 @@ public class TrapTest extends CamelTestSupport { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMessageCount(1); mock.assertIsSatisfied(); + List<Exchange> exchanges = mock.getExchanges(); SnmpMessage msg = (SnmpMessage) exchanges.get(0).getIn(); PDU receivedTrap = msg.getSnmpMessage();