Class MqttPahoMessageDrivenChannelAdapter

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.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions>
org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter
All Implemented Interfaces:
org.eclipse.paho.client.mqttv3.MqttCallback, org.eclipse.paho.client.mqttv3.MqttCallbackExtended, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.SmartInitializingSingleton, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationEventPublisherAware, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle, org.springframework.integration.context.ExpressionCapable, org.springframework.integration.core.MessageProducer, org.springframework.integration.IntegrationPattern, ClientManager.ConnectCallback, MqttComponent<org.eclipse.paho.client.mqttv3.MqttConnectOptions>, MqttPahoComponent, org.springframework.integration.support.context.NamedComponent, org.springframework.integration.support.management.IntegrationInboundManagement, org.springframework.integration.support.management.IntegrationManagement, org.springframework.integration.support.management.ManageableLifecycle, org.springframework.integration.support.management.ManageableSmartLifecycle, org.springframework.integration.support.management.TrackableComponent

public class MqttPahoMessageDrivenChannelAdapter extends AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions> implements org.eclipse.paho.client.mqttv3.MqttCallbackExtended, MqttPahoComponent
Eclipse Paho Implementation. When consuming MqttIntegrationEvents published by this component use MqttPahoComponent adapter = event.getSourceAsType() to get a reference, allowing you to obtain the bean name and MqttConnectOptions. This technique allows consumption of events from both inbound and outbound endpoints in the same event listener.
Since:
4.0
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement

    org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final long
    The default disconnect completion timeout in milliseconds.

    Fields inherited from class org.springframework.integration.mqtt.inbound.AbstractMqttMessageDrivenChannelAdapter

    DEFAULT_COMPLETION_TIMEOUT, topicLock

    Fields inherited from class org.springframework.integration.endpoint.AbstractEndpoint

    lifecycleCondition, lifecycleLock

    Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport

    EXPRESSION_PARSER, logger

    Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement

    METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME

    Fields inherited from interface org.springframework.context.SmartLifecycle

    DEFAULT_PHASE
  • Constructor Summary

    Constructors
    Constructor
    Description
    Use this constructor when you don't need additional MqttConnectOptions.
    Use this constructor for a single url (although it may be overridden if the server URI(s) are provided by the MqttConnectOptions.getServerURIs() provided by the MqttPahoClientFactory).
    Use this constructor if the server URI(s) are provided by the MqttConnectOptions.getServerURIs() provided by the MqttPahoClientFactory.
    MqttPahoMessageDrivenChannelAdapter(ClientManager<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions> clientManager, String... topic)
    Use this constructor when you need to use a single ClientManager (for instance, to reuse an MQTT connection).
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addTopic(String topic, int qos)
    Add a topic to the subscribed list.
    void
    connectComplete(boolean isReconnect)
    Called when the connection to the server is completed successfully.
    void
    connectComplete(boolean reconnect, String serverURI)
     
    void
     
    void
    deliveryComplete(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken token)
     
    void
     
    protected void
     
    protected void
     
    org.eclipse.paho.client.mqttv3.MqttConnectOptions
    Return information about the connection.
    void
    messageArrived(String topic, org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage)
     
    protected void
     
    void
    removeTopic(String... topic)
    Remove a topic (or topics) from the subscribed list.
    void
    setDisconnectCompletionTimeout(long completionTimeout)
    Set the completion timeout when disconnecting.

    Methods inherited from class org.springframework.integration.endpoint.MessageProducerSupport

    afterSingletonsInstantiated, buildErrorMessage, getErrorChannel, getErrorMessageAttributes, getErrorMessageStrategy, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, isObserved, registerObservationRegistry, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setObservationConvention, setOutputChannel, setOutputChannelName, setSendTimeout, setShouldTrack, subscribeToPublisher

    Methods inherited from class org.springframework.integration.endpoint.AbstractEndpoint

    doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stop

    Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport

    afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.springframework.beans.factory.BeanNameAware

    setBeanName

    Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement

    getManagedName, getManagedType, getOverrides, getThisAs, isLoggingEnabled, registerMetricsCaptor, setLoggingEnabled, setManagedName, setManagedType

    Methods inherited from interface org.springframework.integration.mqtt.core.MqttComponent

    getBeanName

    Methods inherited from interface org.springframework.integration.support.context.NamedComponent

    getBeanName, getComponentName
  • Field Details

    • DISCONNECT_COMPLETION_TIMEOUT

      public static final long DISCONNECT_COMPLETION_TIMEOUT
      The default disconnect completion timeout in milliseconds.
      See Also:
  • Constructor Details

    • MqttPahoMessageDrivenChannelAdapter

      public MqttPahoMessageDrivenChannelAdapter(String url, String clientId, String... topic)
      Use this constructor when you don't need additional MqttConnectOptions.
      Parameters:
      url - The URL.
      clientId - The client id.
      topic - The topic(s).
    • MqttPahoMessageDrivenChannelAdapter

      public MqttPahoMessageDrivenChannelAdapter(String url, String clientId, MqttPahoClientFactory clientFactory, String... topic)
      Use this constructor for a single url (although it may be overridden if the server URI(s) are provided by the MqttConnectOptions.getServerURIs() provided by the MqttPahoClientFactory).
      Parameters:
      url - the URL.
      clientId - The client id.
      clientFactory - The client factory.
      topic - The topic(s).
    • MqttPahoMessageDrivenChannelAdapter

      public MqttPahoMessageDrivenChannelAdapter(String clientId, MqttPahoClientFactory clientFactory, String... topic)
      Use this constructor if the server URI(s) are provided by the MqttConnectOptions.getServerURIs() provided by the MqttPahoClientFactory.
      Parameters:
      clientId - The client id.
      clientFactory - The client factory.
      topic - The topic(s).
      Since:
      4.1
    • MqttPahoMessageDrivenChannelAdapter

      public MqttPahoMessageDrivenChannelAdapter(ClientManager<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions> clientManager, String... topic)
      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

    • setDisconnectCompletionTimeout

      public void setDisconnectCompletionTimeout(long completionTimeout)
      Set the completion timeout when disconnecting. Not settable using the namespace. Default 5000L milliseconds.
      Parameters:
      completionTimeout - The timeout.
      Since:
      5.1.10
    • getConnectionInfo

      public org.eclipse.paho.client.mqttv3.MqttConnectOptions getConnectionInfo()
      Description copied from interface: MqttComponent
      Return information about the connection.
      Specified by:
      getConnectionInfo in interface MqttComponent<org.eclipse.paho.client.mqttv3.MqttConnectOptions>
      Specified by:
      getConnectionInfo in interface MqttPahoComponent
      Returns:
      the information.
    • onInit

      protected void onInit()
      Overrides:
      onInit in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions>
    • doStart

      protected void doStart()
      Overrides:
      doStart in class org.springframework.integration.endpoint.MessageProducerSupport
    • doStop

      protected void doStop()
      Overrides:
      doStop in class org.springframework.integration.endpoint.MessageProducerSupport
    • destroy

      public void destroy()
      Specified by:
      destroy in interface org.springframework.beans.factory.DisposableBean
      Specified by:
      destroy in interface org.springframework.integration.support.management.IntegrationManagement
      Overrides:
      destroy in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions>
    • addTopic

      public void addTopic(String topic, int qos)
      Description copied from class: AbstractMqttMessageDrivenChannelAdapter
      Add a topic to the subscribed list.
      Overrides:
      addTopic in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions>
      Parameters:
      topic - The topic.
      qos - The qos.
    • removeTopic

      public void removeTopic(String... topic)
      Description copied from class: AbstractMqttMessageDrivenChannelAdapter
      Remove a topic (or topics) from the subscribed list.
      Overrides:
      removeTopic in class AbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions>
      Parameters:
      topic - The topic.
    • connectionLost

      public void connectionLost(Throwable cause)
      Specified by:
      connectionLost in interface org.eclipse.paho.client.mqttv3.MqttCallback
    • messageArrived

      public void messageArrived(String topic, org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage)
      Specified by:
      messageArrived in interface org.eclipse.paho.client.mqttv3.MqttCallback
    • deliveryComplete

      public void deliveryComplete(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken token)
      Specified by:
      deliveryComplete in interface org.eclipse.paho.client.mqttv3.MqttCallback
    • connectComplete

      public void connectComplete(boolean isReconnect)
      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 reconnect.
    • connectComplete

      public void connectComplete(boolean reconnect, String serverURI)
      Specified by:
      connectComplete in interface org.eclipse.paho.client.mqttv3.MqttCallbackExtended