Class PahoMqttV5TransportConnector

java.lang.Object
de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
de.iip_ecosphere.platform.transport.connectors.basics.AbstractMqttTransportConnector
de.iip_ecosphere.platform.transport.mqttv5.PahoMqttV5TransportConnector
All Implemented Interfaces:
de.iip_ecosphere.platform.transport.connectors.TransportConnector

public class PahoMqttV5TransportConnector extends de.iip_ecosphere.platform.transport.connectors.basics.AbstractMqttTransportConnector
A MQTT v5 connector based on Eclipse Paho. Requires TransportParameter.getApplicationId(). This implementation is potentially not thread-safe, i.e., it may require a sending queue.
Author:
Holger Eichelberger, SSE
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private class 
    The internal reception callback.

    Nested classes/interfaces inherited from class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector

    de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector.AuthenticationConsumer
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private org.eclipse.paho.mqttv5.client.MqttAsyncClient
     
    static final String
     
    private int
     
    private boolean
     

    Fields inherited from interface de.iip_ecosphere.platform.transport.connectors.TransportConnector

    EMPTY_PARENT
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a connector instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    asyncSend(String stream, Object data)
     
    void
    connect(de.iip_ecosphere.platform.transport.connectors.TransportParameter params)
     
    void
     
     
     
    private void
    send(String stream, Object data, boolean block)
    Sends data to stream.
    void
    setReceptionCallback(String stream, de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<?> callback)
     
     
    void
    syncSend(String stream, Object data)
     
    void
    unsubscribe(String stream, boolean delete)
     
    private void
    waitForCompletion(org.eclipse.paho.mqttv5.client.IMqttToken token)
    Waits for completion until the token is processed.

    Methods inherited from class de.iip_ecosphere.platform.transport.connectors.basics.AbstractMqttTransportConnector

    composeNames, composeStreamName

    Methods inherited from class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector

    applyAuthenticationKey, applyAuthenticationKey, applyIdentityToken, applyIdentityToken, createTlsContext, detachReceptionCallback, getActionTimeout, getApplicationId, getApplicationId, getCallback, getCloseAction, getSerializerProvider, getTransportParameter, isStreamKnown, notifyCallback, registerStream, serialize, setSerializerProvider, useTls

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NAME

      public static final String NAME
      See Also:
    • client

      private org.eclipse.paho.mqttv5.client.MqttAsyncClient client
    • tlsEnabled

      private boolean tlsEnabled
    • qos

      private int qos
  • Constructor Details

    • PahoMqttV5TransportConnector

      public PahoMqttV5TransportConnector()
      Creates a connector instance.
  • Method Details

    • connect

      public void connect(de.iip_ecosphere.platform.transport.connectors.TransportParameter params) throws IOException
      Specified by:
      connect in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
      Overrides:
      connect in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
      Throws:
      IOException
    • setReceptionCallback

      public void setReceptionCallback(String stream, de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<?> callback) throws IOException
      Specified by:
      setReceptionCallback in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
      Overrides:
      setReceptionCallback in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
      Throws:
      IOException
    • unsubscribe

      public void unsubscribe(String stream, boolean delete) throws IOException
      Specified by:
      unsubscribe in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
      Overrides:
      unsubscribe in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
      Throws:
      IOException
    • disconnect

      public void disconnect() throws IOException
      Specified by:
      disconnect in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
      Overrides:
      disconnect in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
      Throws:
      IOException
    • asyncSend

      public void asyncSend(String stream, Object data) throws IOException
      Throws:
      IOException
    • syncSend

      public void syncSend(String stream, Object data) throws IOException
      Throws:
      IOException
    • send

      private void send(String stream, Object data, boolean block) throws IOException
      Sends data to stream.
      Parameters:
      stream - the stream to send to
      data - the data to send
      block - shall this be a blocking or a non-blocking send operation
      Throws:
      IOException - in case that sending fails for some reason
    • waitForCompletion

      private void waitForCompletion(org.eclipse.paho.mqttv5.client.IMqttToken token) throws org.eclipse.paho.mqttv5.common.MqttException
      Waits for completion until the token is processed.
      Parameters:
      token - the token
      Throws:
      org.eclipse.paho.mqttv5.common.MqttException - in case that processing of the token fails
    • getName

      public String getName()
    • supportedEncryption

      public String supportedEncryption()
    • enabledEncryption

      public String enabledEncryption()