Class Mqttv5PahoMessageDrivenChannelAdapter

java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
org.springframework.integration.endpoint.MessageProducerSupport
org.springframework.integration.mqtt.inbound.AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
org.springframework.integration.mqtt.inbound.Mqttv5PahoMessageDrivenChannelAdapter
All Implemented Interfaces:
org.eclipse.paho.mqttv5.client.MqttCallback, Aware, BeanFactoryAware, BeanNameAware, DisposableBean, InitializingBean, SmartInitializingSingleton, ApplicationContextAware, ApplicationEventPublisherAware, Lifecycle, Phased, SmartLifecycle, ComponentSourceAware, ExpressionCapable, MessageProducer, IntegrationPattern, ClientManager.ConnectCallback, MqttComponent<org.eclipse.paho.mqttv5.client.MqttConnectionOptions>, NamedComponent, IntegrationInboundManagement, IntegrationManagement, ManageableLifecycle, ManageableSmartLifecycle, TrackableComponent

@Deprecated(since="7.2", forRemoval=true) public class Mqttv5PahoMessageDrivenChannelAdapter extends AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions> implements org.eclipse.paho.mqttv5.client.MqttCallback, MqttComponent<org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
Deprecated, for removal: This API element is subject to removal in a future version.
since 7.2 in favor of the spring-integration-mqtt-client module.
The AbstractMqttMessageDrivenChannelAdapter implementation for MQTT v5.

The MqttProperties are mapped via the provided HeaderMapper; meanwhile the regular MqttMessage properties are always mapped into headers.

It is recommended to have the MqttConnectionOptions.setAutomaticReconnect(boolean) set to true to let an internal IMqttAsyncClient instance to handle reconnects. Otherwise, only the manual restart of this component can handle reconnects, e.g. via MqttConnectionFailedEvent handling on disconnection.

See setPayloadType(java.lang.Class<?>) for more information about type conversion.

Since:
5.5.5
Author:
Artem Bilan, Mikhail Polivakha, Lucas Bowler, Artem Vozhdayenko, Matthias Thoma, Glenn Renfro, Goutam Adwant, Jaehong Park
  • Constructor Details

    • Mqttv5PahoMessageDrivenChannelAdapter

      public Mqttv5PahoMessageDrivenChannelAdapter(String url, String clientId, org.eclipse.paho.mqttv5.common.MqttSubscription... mqttSubscriptions)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Create an instance based on the MQTT url, client id and subscriptions.
      Parameters:
      url - the MQTT url to connect.
      clientId - the unique client id.
      mqttSubscriptions - the MQTT subscriptions.
      Since:
      6.3
    • Mqttv5PahoMessageDrivenChannelAdapter

      public Mqttv5PahoMessageDrivenChannelAdapter(String url, String clientId, String... topic)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • Mqttv5PahoMessageDrivenChannelAdapter

      public Mqttv5PahoMessageDrivenChannelAdapter(org.eclipse.paho.mqttv5.client.MqttConnectionOptions connectionOptions, String clientId, org.eclipse.paho.mqttv5.common.MqttSubscription... mqttSubscriptions)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Create an instance based on the MQTT connection options, client id and subscriptions.
      Parameters:
      connectionOptions - the MQTT connection options.
      clientId - the unique client id.
      mqttSubscriptions - the MQTT subscriptions.
      Since:
      6.3
    • Mqttv5PahoMessageDrivenChannelAdapter

      public Mqttv5PahoMessageDrivenChannelAdapter(org.eclipse.paho.mqttv5.client.MqttConnectionOptions connectionOptions, String clientId, String... topic)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • Mqttv5PahoMessageDrivenChannelAdapter

      public Mqttv5PahoMessageDrivenChannelAdapter(ClientManager<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions> clientManager, org.eclipse.paho.mqttv5.common.MqttSubscription... mqttSubscriptions)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Create an instance based on the client manager and subscriptions.
      Parameters:
      clientManager - The client manager.
      mqttSubscriptions - the MQTT subscriptions.
      Since:
      6.3
    • Mqttv5PahoMessageDrivenChannelAdapter

      public Mqttv5PahoMessageDrivenChannelAdapter(ClientManager<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions> clientManager, String... topic)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use this constructor when you need to use a single ClientManager (for instance, to reuse an MQTT connection).
      Parameters:
      clientManager - The client manager.
      topic - The topic(s).
      Since:
      6.0
  • Method Details

    • getConnectionInfo

      public org.eclipse.paho.mqttv5.client.MqttConnectionOptions getConnectionInfo()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: MqttComponent
      Return information about the connection.
      Specified by:
      getConnectionInfo in interface MqttComponent<org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
      Returns:
      the information.
    • setPersistence

      public void setPersistence(@Nullable org.eclipse.paho.mqttv5.client.MqttClientPersistence persistence)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setConverter

      public void setConverter(MqttMessageConverter converter)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Overrides:
      setConverter in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
    • setMessageConverter

      public void setMessageConverter(SmartMessageConverter messageConverter)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setPayloadType

      public void setPayloadType(Class<?> payloadType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set the type of the target message payload to produce after conversion from MQTT message. Defaults to byte[].class - just extract MQTT message payload without conversion. Can be set to MqttMessage class to produce the whole MQTT message as a payload.
      Parameters:
      payloadType - the expected payload type to convert MQTT message to.
    • setHeaderMapper

      public void setHeaderMapper(HeaderMapper<org.eclipse.paho.mqttv5.common.packet.MqttProperties> headerMapper)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • onInit

      protected void onInit()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: IntegrationObjectSupport
      Subclasses may implement this for initialization logic.
      Overrides:
      onInit in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
    • doStart

      protected void doStart()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: MessageProducerSupport
      Take no action by default. Subclasses may override this if they need lifecycle-managed behavior. Protected by 'lifecycleLock'.
      Overrides:
      doStart in class MessageProducerSupport
    • doStop

      protected void doStop()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: MessageProducerSupport
      Take no action by default. Subclasses may override this if they need lifecycle-managed behavior.
      Overrides:
      doStop in class MessageProducerSupport
    • destroy

      public void destroy()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      destroy in interface DisposableBean
      Specified by:
      destroy in interface IntegrationManagement
      Overrides:
      destroy in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
    • setQos

      public void setQos(int... qos)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: AbstractMqttMessageDrivenChannelAdapter
      Set the QoS for each topic; a single value will apply to all topics otherwise the correct number of qos values must be provided.
      Overrides:
      setQos in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
      Parameters:
      qos - The qos value(s).
    • addTopic

      public void addTopic(String topic, int qos)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: AbstractMqttMessageDrivenChannelAdapter
      Add a topic to the subscribed list.
      Overrides:
      addTopic in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
      Parameters:
      topic - The topic.
      qos - The qos.
    • removeTopic

      public void removeTopic(String... topics)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: AbstractMqttMessageDrivenChannelAdapter
      Remove a topic (or topics) from the subscribed list.
      Overrides:
      removeTopic in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.mqttv5.client.IMqttAsyncClient,org.eclipse.paho.mqttv5.client.MqttConnectionOptions>
      Parameters:
      topics - The topic.
    • messageArrived

      public void messageArrived(String topic, org.eclipse.paho.mqttv5.common.MqttMessage mqttMessage)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      messageArrived in interface org.eclipse.paho.mqttv5.client.MqttCallback
    • disconnected

      public void disconnected(org.eclipse.paho.mqttv5.client.MqttDisconnectResponse disconnectResponse)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      disconnected in interface org.eclipse.paho.mqttv5.client.MqttCallback
    • mqttErrorOccurred

      public void mqttErrorOccurred(org.eclipse.paho.mqttv5.common.MqttException exception)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      mqttErrorOccurred in interface org.eclipse.paho.mqttv5.client.MqttCallback
    • deliveryComplete

      public void deliveryComplete(org.eclipse.paho.mqttv5.client.IMqttToken token)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      deliveryComplete in interface org.eclipse.paho.mqttv5.client.MqttCallback
    • connectComplete

      public void connectComplete(boolean isReconnect)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: ClientManager.ConnectCallback
      Called when the connection to the server is completed successfully.
      Specified by:
      connectComplete in interface ClientManager.ConnectCallback
      Parameters:
      isReconnect - if true, the connection was the result of automatic reconnecting.
    • connectComplete

      public void connectComplete(boolean reconnect, @Nullable String serverURI)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      connectComplete in interface org.eclipse.paho.mqttv5.client.MqttCallback
    • authPacketArrived

      public void authPacketArrived(int reasonCode, org.eclipse.paho.mqttv5.common.packet.MqttProperties properties)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      authPacketArrived in interface org.eclipse.paho.mqttv5.client.MqttCallback