Class MqttPahoMessageHandler
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.mqtt.outbound.AbstractMqttMessageHandler
org.springframework.integration.mqtt.outbound.MqttPahoMessageHandler
- All Implemented Interfaces:
org.eclipse.paho.client.mqttv3.MqttCallback,org.reactivestreams.Subscriber<Message<?>>,Aware,BeanFactoryAware,BeanNameAware,DisposableBean,InitializingBean,ApplicationContextAware,ApplicationEventPublisherAware,Lifecycle,Ordered,ExpressionCapable,Orderable,IntegrationPattern,MqttComponent<org.eclipse.paho.client.mqttv3.MqttConnectOptions>,MqttPahoComponent,NamedComponent,IntegrationManagement,ManageableLifecycle,TrackableComponent,MessageHandler,reactor.core.CoreSubscriber<Message<?>>
public class MqttPahoMessageHandler extends AbstractMqttMessageHandler implements org.eclipse.paho.client.mqttv3.MqttCallback, MqttPahoComponent
Eclipse Paho Implementation. When consuming
MqttIntegrationEvents
published by this component use MqttPahoComponent handler = 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
-
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.outbound.AbstractMqttMessageHandler
DEFAULT_COMPLETION_TIMEOUT, DISCONNECT_COMPLETION_TIMEOUTFields 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.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors Constructor Description MqttPahoMessageHandler(String url, String clientId)Use this constructor when you don't need additionalMqttConnectOptions.MqttPahoMessageHandler(String url, String clientId, MqttPahoClientFactory clientFactory)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).MqttPahoMessageHandler(String clientId, MqttPahoClientFactory clientFactory)Use this constructor if the server URI(s) are provided by theMqttConnectOptions.getServerURIs()provided by theMqttPahoClientFactory. -
Method Summary
Modifier and Type Method Description voidconnectionLost(Throwable cause)voiddeliveryComplete(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken token)protected voiddoStart()protected voiddoStop()org.eclipse.paho.client.mqttv3.MqttConnectOptionsgetConnectionInfo()Return information about the connection.voidmessageArrived(String topic, org.eclipse.paho.client.mqttv3.MqttMessage message)protected voidonInit()Subclasses may implement this for initialization logic.protected voidpublish(String topic, Object mqttMessage, Message<?> message)voidsetAsync(boolean async)Set to true if you don't want to block when sending messages.voidsetAsyncEvents(boolean asyncEvents)WhensetAsync(boolean)is true, setting this to true enables publication ofMqttMessageSentEventandMqttMessageDeliveredEventto be emitted.Methods inherited from class org.springframework.integration.mqtt.outbound.AbstractMqttMessageHandler
getApplicationEventPublisher, getClientId, getClientInstance, getCompletionTimeout, getComponentType, getConverter, getDefaultQos, getDefaultRetained, getDefaultTopic, getDisconnectCompletionTimeout, getQosProcessor, getRetainedProcessor, getTopicProcessor, getUrl, handleMessageInternal, incrementClientInstance, isRunning, setApplicationEventPublisher, setCompletionTimeout, setConverter, setDefaultQos, setDefaultRetained, setDefaultTopic, setDisconnectCompletionTimeout, setQosExpression, setQosExpressionString, setRetainedExpression, setRetainedExpressionString, setTopicExpression, setTopicExpressionString, start, stopMethods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribeMethods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getIntegrationPatternType, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrackMethods 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, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAsMethods inherited from interface org.springframework.integration.mqtt.core.MqttComponent
getBeanNameMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
MqttPahoMessageHandler
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.
-
MqttPahoMessageHandler
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.- Since:
- 4.1
-
MqttPahoMessageHandler
Use this constructor when you don't need additionalMqttConnectOptions.- Parameters:
url- The URL.clientId- The client id.
-
-
Method Details
-
setAsync
public void setAsync(boolean async)Set to true if you don't want to block when sending messages. Default false. When true, message sent/delivered events will be published for reception by a suitably configured 'ApplicationListener' or an event inbound-channel-adapter.- Parameters:
async- true for async.- Since:
- 4.1
-
setAsyncEvents
public void setAsyncEvents(boolean asyncEvents)WhensetAsync(boolean)is true, setting this to true enables publication ofMqttMessageSentEventandMqttMessageDeliveredEventto be emitted. Default false.- Parameters:
asyncEvents- the asyncEvents.- Since:
- 4.1
-
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 classAbstractMqttMessageHandler
-
doStart
protected void doStart()- Specified by:
doStartin classAbstractMqttMessageHandler
-
doStop
protected void doStop()- Specified by:
doStopin classAbstractMqttMessageHandler
-
publish
- Specified by:
publishin classAbstractMqttMessageHandler
-
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
-