diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConstants.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConstants.java index 453e6bcecf8bd..e7ecf902769c8 100644 --- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConstants.java +++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoConstants.java @@ -30,6 +30,10 @@ public final class PahoConstants { @Deprecated public static final String HEADER_ORIGINAL_MESSAGE = "PahoOriginalMessage"; + public static final String CAMEL_PAHO = "CamelPaho"; + public static final String CAMEL_PAHO_MSG_QOS = CAMEL_PAHO + "Qos"; + public static final String CAMEL_PAHO_MSG_RETAINED = CAMEL_PAHO + "Retained"; + private PahoConstants() { } diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoProducer.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoProducer.java index 23690156c29fe..cdd360a3dd787 100644 --- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoProducer.java +++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoProducer.java @@ -31,8 +31,10 @@ public PahoProducer(PahoEndpoint endpoint) { public void process(Exchange exchange) throws Exception { MqttClient client = getEndpoint().getClient(); String topic = getEndpoint().getTopic(); - int qos = getEndpoint().getQos(); - boolean retained = getEndpoint().isRetained(); + + int qos = exchange.getIn().getHeader(PahoConstants.CAMEL_PAHO_MSG_QOS, getEndpoint().getQos(), Integer.class); + boolean retained = exchange.getIn().getHeader(PahoConstants.CAMEL_PAHO_MSG_RETAINED, getEndpoint().isRetained(), Boolean.class); + byte[] payload = exchange.getIn().getBody(byte[].class); MqttMessage message = new MqttMessage(payload); @@ -41,9 +43,11 @@ public void process(Exchange exchange) throws Exception { client.publish(topic, message); } + + @Override public PahoEndpoint getEndpoint() { - return (PahoEndpoint) super.getEndpoint(); + return (PahoEndpoint)super.getEndpoint(); } -} \ No newline at end of file +}