Class MqttSender
java.lang.Object
org.frankframework.extensions.mqtt.MqttFacade
org.frankframework.extensions.mqtt.MqttSender
- All Implemented Interfaces:
FrankElement,HasApplicationContext,HasName,HasPhysicalDestination,IConfigurable,IScopeProvider,ISender,ISenderWithParameters,IWithParameters,NameAware,org.springframework.beans.factory.Aware,org.springframework.context.ApplicationContextAware
MQTT listener which will connect to a broker and subscribe to a topic.
Links to https://www.eclipse.org/paho/files/javadoc are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame.
- Author:
- Niels Meijer
-
Field Summary
FieldsFields inherited from class org.frankframework.extensions.mqtt.MqttFacade
client, mqttClientFactoryFactory, resourceName -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidConfigure this component.booleanWhentrue, the result of sendMessage is the reply of the request.sendMessage(Message message, PipeLineSession session) Send a message to some destination (as configured in the Sender object).voidvoidstart()This method will be called to start the sender.voidstop()Stop/close the sender and deallocate resources.Methods inherited from class org.frankframework.extensions.mqtt.MqttFacade
getClientFactory, getLogPrefix, getPhysicalDestinationName, setCharset, setName, setQos, setResourceName, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContextMethods inherited from interface org.frankframework.core.FrankElement
addConfigWarningMethods inherited from interface org.frankframework.core.HasApplicationContext
getApplicationContext, getConfigurationClassLoaderMethods inherited from interface org.frankframework.core.ISender
sendMessageOrThrowMethods inherited from interface org.frankframework.core.ISenderWithParameters
consumesSessionVariable
-
Field Details
-
paramList
-
-
Constructor Details
-
MqttSender
public MqttSender()
-
-
Method Details
-
configure
Description copied from interface:IConfigurableConfigure this component.configure()is called once at startup of the framework in the configure method of the owner of thisIConfigurable. Purpose of this method is to check whether the static configuration of the object is correct. As much as possible class-instantiating should take place in theconfigure(), to improve performance.In the case of a container, this will propagate the configure signal to all components that apply.
- Specified by:
configurein interfaceIConfigurable- Overrides:
configurein classMqttFacade- Throws:
ConfigurationException- in case it was not able to configure the component.
-
start
public void start()Description copied from interface:ISenderThis method will be called to start the sender. After this method is called the sendMessage method may be called. Purpose of this method is to reduce creating connections to databases etc. in thesendMessage()method. -
stop
public void stop()Description copied from interface:ISenderStop/close the sender and deallocate resources. -
addParameter
- Specified by:
addParameterin interfaceIWithParameters
-
getParameterList
- Specified by:
getParameterListin interfaceIWithParameters
-
sendMessage
@Nonnull public SenderResult sendMessage(@Nonnull Message message, @Nonnull PipeLineSession session) throws SenderException, TimeoutException Description copied from interface:ISenderSend a message to some destination (as configured in the Sender object). This method may only be called after theconfigure()method is called.The following table shows the difference between synchronous and a-synchronous senders:
synchronous a-synchronous ISender.isSynchronous()returnstruefalsereturn value of sendMessage()isthe reply-message the messageId of the message sent the correlationID specified with sendMessage()may be ignored is sent with the message a {link TimeOutException} may be thrown if a timeout occurs waiting for a reply should not be expected Multiple objects may try to call this method at the same time, from different threads. Implementations of this method should therefore be thread-safe, or
synchronized.- Specified by:
sendMessagein interfaceISender- Throws:
SenderExceptionTimeoutException
-
setTopic
see MqttClient.subscribe(java.lang.String topicFilter) Can be dynamically set using the "topic" parameter.- Overrides:
setTopicin classMqttFacade
-
isSynchronous
public boolean isSynchronous()Description copied from interface:ISenderWhentrue, the result of sendMessage is the reply of the request.- Specified by:
isSynchronousin interfaceISender
-