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
,Aware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,SmartInitializingSingleton
,ApplicationContextAware
,ApplicationEventPublisherAware
,Lifecycle
,Phased
,SmartLifecycle
,ExpressionCapable
,MessageProducer
,IntegrationPattern
,ClientManager.ConnectCallback
,MqttComponent<org.eclipse.paho.client.mqttv3.MqttConnectOptions>
,MqttPahoComponent
,NamedComponent
,IntegrationInboundManagement
,IntegrationManagement
,ManageableLifecycle
,ManageableSmartLifecycle
,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
MqttIntegrationEvent
s
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
- Author:
- Gary Russell, Artem Bilan, Artem Vozhdayenko
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Fields inherited from class org.springframework.integration.mqtt.inbound.AbstractMqttMessageDrivenChannelAdapter
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
ConstructorDescriptionMqttPahoMessageDrivenChannelAdapter
(String url, String clientId, String... topic) Use this constructor when you don't need additionalMqttConnectOptions
.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 theMqttConnectOptions.getServerURIs()
provided by theMqttPahoClientFactory
).MqttPahoMessageDrivenChannelAdapter
(String clientId, MqttPahoClientFactory clientFactory, String... topic) Use this constructor if the server URI(s) are provided by theMqttConnectOptions.getServerURIs()
provided by theMqttPahoClientFactory
.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 singleClientManager
(for instance, to reuse an MQTT connection). -
Method Summary
Modifier and TypeMethodDescriptionvoid
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
connectionLost
(Throwable cause) void
deliveryComplete
(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken token) void
destroy()
protected void
doStart()
Take no action by default.protected void
doStop()
Take no action by default.org.eclipse.paho.client.mqttv3.MqttConnectOptions
Return information about the connection.void
messageArrived
(String topic, org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage) protected void
onInit()
Subclasses may implement this for initialization logic.void
removeTopic
(String... topic) Remove a topic (or topics) from the subscribed list.Methods inherited from class org.springframework.integration.mqtt.inbound.AbstractMqttMessageDrivenChannelAdapter
addTopic, addTopics, getApplicationEventPublisher, getClientId, getClientManager, getCompletionTimeout, getComponentType, getConverter, getDisconnectCompletionTimeout, getQos, getTopic, getUrl, isManualAcks, setApplicationEventPublisher, setCompletionTimeout, setConverter, setDisconnectCompletionTimeout, setManualAcks, setQos
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, 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
-
Constructor Details
-
MqttPahoMessageDrivenChannelAdapter
Use this constructor when you don't need additionalMqttConnectOptions
.- 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 theMqttConnectOptions.getServerURIs()
provided by theMqttPahoClientFactory
).- 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 theMqttConnectOptions.getServerURIs()
provided by theMqttPahoClientFactory
.- 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 singleClientManager
(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.client.mqttv3.MqttConnectOptions getConnectionInfo()Description copied from interface:MqttComponent
Return information about the connection.- Specified by:
getConnectionInfo
in interfaceMqttComponent<org.eclipse.paho.client.mqttv3.MqttConnectOptions>
- Specified by:
getConnectionInfo
in interfaceMqttPahoComponent
- Returns:
- the information.
-
onInit
protected void onInit()Description copied from class:IntegrationObjectSupport
Subclasses may implement this for initialization logic.- Overrides:
onInit
in classAbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,
org.eclipse.paho.client.mqttv3.MqttConnectOptions>
-
doStart
protected void doStart()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 classMessageProducerSupport
-
doStop
protected void doStop()Description copied from class:MessageProducerSupport
Take no action by default. Subclasses may override this if they need lifecycle-managed behavior.- Overrides:
doStop
in classMessageProducerSupport
-
destroy
public void destroy()- Specified by:
destroy
in interfaceDisposableBean
- Specified by:
destroy
in interfaceIntegrationManagement
- Overrides:
destroy
in classAbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,
org.eclipse.paho.client.mqttv3.MqttConnectOptions>
-
addTopic
Description copied from class:AbstractMqttMessageDrivenChannelAdapter
Add a topic to the subscribed list.- Overrides:
addTopic
in classAbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,
org.eclipse.paho.client.mqttv3.MqttConnectOptions> - Parameters:
topic
- The topic.qos
- The qos.
-
removeTopic
Description copied from class:AbstractMqttMessageDrivenChannelAdapter
Remove a topic (or topics) from the subscribed list.- Overrides:
removeTopic
in classAbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,
org.eclipse.paho.client.mqttv3.MqttConnectOptions> - Parameters:
topic
- The topic.
-
connectionLost
- Specified by:
connectionLost
in interfaceorg.eclipse.paho.client.mqttv3.MqttCallback
-
messageArrived
- Specified by:
messageArrived
in interfaceorg.eclipse.paho.client.mqttv3.MqttCallback
-
deliveryComplete
public void deliveryComplete(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken token) - Specified by:
deliveryComplete
in interfaceorg.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 interfaceClientManager.ConnectCallback
- Parameters:
isReconnect
- if true, the connection was the result of automatic reconnect.
-
connectComplete
- Specified by:
connectComplete
in interfaceorg.eclipse.paho.client.mqttv3.MqttCallbackExtended
-