Class RabbitMqAmqpTransportConnector

  • All Implemented Interfaces:
    de.iip_ecosphere.platform.transport.connectors.TransportConnector

    public class RabbitMqAmqpTransportConnector
    extends de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
    Implements an AMQP transport connector based on RabbitMQ.
    Author:
    Holger Eichelberger, SSE
    • Nested Class Summary

      • 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 com.rabbitmq.client.Channel channel  
      private boolean closing  
      private com.rabbitmq.client.Connection connection  
      static java.lang.String NAME  
      private java.util.Map<java.lang.String,​java.lang.String> queueStream  
      private java.util.Map<java.lang.String,​java.lang.String> tags  
      private boolean tlsEnabled  
      • Fields inherited from interface de.iip_ecosphere.platform.transport.connectors.TransportConnector

        EMPTY_PARENT
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void asyncSend​(java.lang.String stream, java.lang.Object data)  
      private void checkStream​(java.lang.String stream, boolean send)
      Checks the given stream.
      java.lang.String composeStreamName​(java.lang.String parent, java.lang.String name)  
      protected void configureFactory​(com.rabbitmq.client.ConnectionFactory factory)
      Allows further factory configuration.
      void connect​(de.iip_ecosphere.platform.transport.connectors.TransportParameter params)  
      void disconnect()  
      java.lang.String enabledEncryption()  
      java.lang.String getName()  
      private void send​(java.lang.String stream, java.lang.Object data, boolean block)
      Sends data to stream.
      void setReceptionCallback​(java.lang.String stream, de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<?> callback)  
      java.lang.String supportedEncryption()  
      void syncSend​(java.lang.String stream, java.lang.Object data)  
      void unsubscribe​(java.lang.String stream, boolean delete)  
      • Methods inherited from class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector

        applyAuthenticationKey, createTlsContext, detachReceptionCallback, getActionTimeout, getApplicationId, getApplicationId, getCallback, getCloseAction, getTransportParameter, isStreamKnown, notifyCallback, registerStream, serialize, useTls
      • Methods inherited from class java.lang.Object

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

      • connection

        private com.rabbitmq.client.Connection connection
      • channel

        private com.rabbitmq.client.Channel channel
      • tlsEnabled

        private boolean tlsEnabled
      • tags

        private java.util.Map<java.lang.String,​java.lang.String> tags
      • closing

        private boolean closing
      • queueStream

        private java.util.Map<java.lang.String,​java.lang.String> queueStream
    • Constructor Detail

      • RabbitMqAmqpTransportConnector

        public RabbitMqAmqpTransportConnector()
    • Method Detail

      • syncSend

        public void syncSend​(java.lang.String stream,
                             java.lang.Object data)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • asyncSend

        public void asyncSend​(java.lang.String stream,
                              java.lang.Object data)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • checkStream

        private void checkStream​(java.lang.String stream,
                                 boolean send)
                          throws java.io.IOException
        Checks the given stream.
        Parameters:
        stream - the stream
        send - sending or receiving
        Throws:
        java.io.IOException - if stream operations cannot be carried out
      • send

        private void send​(java.lang.String stream,
                          java.lang.Object data,
                          boolean block)
                   throws java.io.IOException
        Sends data to stream.
        Parameters:
        stream - the stream to send to
        data - the data to send to stream
        block - shall this be a blocking call (ignored)
        Throws:
        java.io.IOException - in cases that sending fails
      • setReceptionCallback

        public void setReceptionCallback​(java.lang.String stream,
                                         de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<?> callback)
                                  throws java.io.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:
        java.io.IOException
      • unsubscribe

        public void unsubscribe​(java.lang.String stream,
                                boolean delete)
                         throws java.io.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:
        java.io.IOException
      • composeStreamName

        public java.lang.String composeStreamName​(java.lang.String parent,
                                                  java.lang.String name)
      • connect

        public void connect​(de.iip_ecosphere.platform.transport.connectors.TransportParameter params)
                     throws java.io.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:
        java.io.IOException
      • configureFactory

        protected void configureFactory​(com.rabbitmq.client.ConnectionFactory factory)
        Allows further factory configuration.
        Parameters:
        factory - the factory to configured
      • disconnect

        public void disconnect()
                        throws java.io.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:
        java.io.IOException
      • getName

        public java.lang.String getName()
      • supportedEncryption

        public java.lang.String supportedEncryption()
      • enabledEncryption

        public java.lang.String enabledEncryption()