Class AmqpTransporter

All Implemented Interfaces:
MetricConstants, MoleculerLifecycle

public class AmqpTransporter extends Transporter
AMQP Transporter based on RabbitMQ's AMQP client API. AMQP provides a platform-agnostic method for ensuring information is safely transported between applications, among organizations, within mobile infrastructures, and across the Cloud. Usage:
ServiceBroker broker = ServiceBroker.builder().nodeID("node1").transporter(new AmqpTransporter("localhost")).build();
Required dependency:

// https://mvnrepository.com/artifact/com.rabbitmq/amqp-client
compile group: 'com.rabbitmq', name: 'amqp-client', version: '5.8.0'
See Also:
  • Field Details

    • username

      protected String username
    • password

      protected String password
    • url

      protected String url
    • sslContextFactory

      protected com.rabbitmq.client.SslContextFactory sslContextFactory
    • factory

      protected com.rabbitmq.client.ConnectionFactory factory
    • mandatory

      protected boolean mandatory
    • immediate

      protected boolean immediate
    • exclusive

      protected boolean exclusive
    • internal

      protected boolean internal
    • exchangeType

      protected String exchangeType
    • messageProperties

      protected com.rabbitmq.client.AMQP.BasicProperties messageProperties
    • queueProperties

      protected Map<String,Object> queueProperties
    • exchangeProperties

      protected Map<String,Object> exchangeProperties
    • client

      protected com.rabbitmq.client.Connection client
    • channel

      protected com.rabbitmq.client.Channel channel
    • started

      protected final AtomicBoolean started
  • Constructor Details

    • AmqpTransporter

      public AmqpTransporter()
    • AmqpTransporter

      public AmqpTransporter(String url)
    • AmqpTransporter

      public AmqpTransporter(String username, String password, com.rabbitmq.client.SslContextFactory sslContextFactory, String url)
  • Method Details

    • connect

      public void connect()
      Specified by:
      connect in class Transporter
    • disconnect

      protected void disconnect()
    • reconnect

      protected void reconnect()
    • error

      protected void error(Throwable cause)
      Description copied from class: Transporter
      Any I/O error occurred. Implementation-specific error handling goes here (reconnection, etc.).
      Overrides:
      error in class Transporter
      Parameters:
      cause - I/O error
    • stopped

      public void stopped()
      Closes transporter.
      Specified by:
      stopped in interface MoleculerLifecycle
      Overrides:
      stopped in class Transporter
    • subscribe

      public io.datatree.Promise subscribe(String channel)
      Specified by:
      subscribe in class Transporter
    • publish

      public void publish(String channel, io.datatree.Tree message)
      Specified by:
      publish in class Transporter
    • getUrl

      public String getUrl()
    • setUrl

      public void setUrl(String url)
    • getUsername

      public String getUsername()
    • setUsername

      public void setUsername(String username)
    • getPassword

      public String getPassword()
    • setPassword

      public void setPassword(String password)
    • getFactory

      public com.rabbitmq.client.ConnectionFactory getFactory()
    • setFactory

      public void setFactory(com.rabbitmq.client.ConnectionFactory factory)
    • isMandatory

      public boolean isMandatory()
    • setMandatory

      public void setMandatory(boolean mandatory)
    • isImmediate

      public boolean isImmediate()
    • setImmediate

      public void setImmediate(boolean immediate)
    • getMessageProperties

      public com.rabbitmq.client.AMQP.BasicProperties getMessageProperties()
    • setMessageProperties

      public void setMessageProperties(com.rabbitmq.client.AMQP.BasicProperties messageProperties)
    • getSslContextFactory

      public com.rabbitmq.client.SslContextFactory getSslContextFactory()
    • setSslContextFactory

      public void setSslContextFactory(com.rabbitmq.client.SslContextFactory sslContextFactory)
    • getExchangeType

      public String getExchangeType()
    • setExchangeType

      public void setExchangeType(String exchangeType)
    • isExclusive

      public boolean isExclusive()
    • setExclusive

      public void setExclusive(boolean exclusive)
    • getQueueProperties

      public Map<String,Object> getQueueProperties()
    • setQueueProperties

      public void setQueueProperties(Map<String,Object> queueProperties)
    • getExchangeProperties

      public Map<String,Object> getExchangeProperties()
    • setExchangeProperties

      public void setExchangeProperties(Map<String,Object> exchangeProperties)
    • isInternal

      public boolean isInternal()
    • setInternal

      public void setInternal(boolean internal)