diff --git a/src/main/resources/MqttUpdater.jadd b/src/main/resources/MqttUpdater.jadd
index 394735cc78595ad0ebe15b5ab1fa6e73ef435b13..df1dc10054722b249c10637781bc896eebdaf37f 100644
--- a/src/main/resources/MqttUpdater.jadd
+++ b/src/main/resources/MqttUpdater.jadd
@@ -231,8 +231,16 @@ public class MqttUpdater {
   }
 
   public void publish(String topic, byte[] bytes) {
+    publish(topic, bytes, false);
+  }
+
+  public void publish(String topic, byte[] bytes, boolean retain) {
+    publish(topic, bytes, this.qos, retain);
+  }
+
+  public void publish(String topic, byte[] bytes, org.fusesource.mqtt.client.QoS qos, boolean retain) {
     connection.getDispatchQueue().execute(() -> {
-      connection.publish(topic, bytes, qos, false, new org.fusesource.mqtt.client.Callback<Void>() {
+      connection.publish(topic, bytes, qos, retain, new org.fusesource.mqtt.client.Callback<Void>() {
         @Override
         public void onSuccess(Void value) {
           logger.debug("Published some bytes to {}", topic);