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,ComponentSourceAware,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
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
- 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
topicLockFields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleLockFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, loggerFields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
ConstructorsConstructorDescriptionMqttPahoMessageDrivenChannelAdapter(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 TypeMethodDescriptionvoidAdd a topic to the subscribed list.voidconnectComplete(boolean isReconnect) Called when the connection to the server is completed successfully.voidconnectComplete(boolean reconnect, String serverURI) voidconnectionLost(Throwable cause) voiddeliveryComplete(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken token) voiddestroy()protected voiddoStart()Take no action by default.protected voiddoStop()Take no action by default.org.eclipse.paho.client.mqttv3.MqttConnectOptionsReturn information about the connection.voidmessageArrived(String topic, org.eclipse.paho.client.mqttv3.MqttMessage mqttMessage) protected voidonInit()Subclasses may implement this for initialization logic.voidremoveTopic(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, setQosMethods inherited from class org.springframework.integration.endpoint.MessageProducerSupport
afterSingletonsInstantiated, buildErrorMessage, getErrorChannel, getErrorMessageAttributes, getErrorMessageStrategy, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, getRequiredOutputChannel, isObserved, registerObservationRegistry, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setObservationConvention, setOutputChannel, setOutputChannelName, setSendTimeout, setShouldTrack, subscribeToPublisherMethods inherited from class org.springframework.integration.endpoint.AbstractEndpoint
doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stopMethods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.beans.factory.BeanNameAware
setBeanNameMethods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getManagedName, getManagedType, getOverrides, getThisAs, isLoggingEnabled, registerMetricsCaptor, setLoggingEnabled, setManagedName, setManagedTypeMethods inherited from interface org.springframework.integration.mqtt.core.MqttComponent
getBeanNameMethods 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:MqttComponentReturn information about the connection.- Specified by:
getConnectionInfoin interfaceMqttComponent<org.eclipse.paho.client.mqttv3.MqttConnectOptions>- Specified by:
getConnectionInfoin interfaceMqttPahoComponent- Returns:
- the information.
-
onInit
protected void onInit()Description copied from class:IntegrationObjectSupportSubclasses may implement this for initialization logic.- Overrides:
onInitin classAbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions>
-
doStart
protected void doStart()Description copied from class:MessageProducerSupportTake no action by default. Subclasses may override this if they need lifecycle-managed behavior. Protected by 'lifecycleLock'.- Overrides:
doStartin classMessageProducerSupport
-
doStop
protected void doStop()Description copied from class:MessageProducerSupportTake no action by default. Subclasses may override this if they need lifecycle-managed behavior.- Overrides:
doStopin classMessageProducerSupport
-
destroy
public void destroy()- Specified by:
destroyin interfaceDisposableBean- Specified by:
destroyin interfaceIntegrationManagement- Overrides:
destroyin classAbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions>
-
addTopic
Description copied from class:AbstractMqttMessageDrivenChannelAdapterAdd a topic to the subscribed list.- Overrides:
addTopicin 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:AbstractMqttMessageDrivenChannelAdapterRemove a topic (or topics) from the subscribed list.- Overrides:
removeTopicin classAbstractMqttMessageDrivenChannelAdapter<org.eclipse.paho.client.mqttv3.IMqttAsyncClient,org.eclipse.paho.client.mqttv3.MqttConnectOptions> - Parameters:
topic- The topic.
-
connectionLost
- Specified by:
connectionLostin interfaceorg.eclipse.paho.client.mqttv3.MqttCallback
-
messageArrived
- Specified by:
messageArrivedin interfaceorg.eclipse.paho.client.mqttv3.MqttCallback
-
deliveryComplete
public void deliveryComplete(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken token) - Specified by:
deliveryCompletein interfaceorg.eclipse.paho.client.mqttv3.MqttCallback
-
connectComplete
public void connectComplete(boolean isReconnect) Description copied from interface:ClientManager.ConnectCallbackCalled when the connection to the server is completed successfully.- Specified by:
connectCompletein interfaceClientManager.ConnectCallback- Parameters:
isReconnect- if true, the connection was the result of automatic reconnect.
-
connectComplete
- Specified by:
connectCompletein interfaceorg.eclipse.paho.client.mqttv3.MqttCallbackExtended
-