Class JmsTransporter

All Implemented Interfaces:
MetricConstants, MoleculerLifecycle

public class JmsTransporter extends Transporter
JMS Transporter. The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. It is an implementation to handle the Producer-consumer problem. JMS is a part of the Java Enterprise Edition. Sample of usage with Active MQ:
Transporter t = new JmsTransporter(new ActiveMQConnectionFactory());
ServiceBroker broker = ServiceBroker.builder().transporter(t).build();
Required dependency:

// https://mvnrepository.com/artifact/javax.jms/javax.jms-api
compile group: 'javax.jms', name: 'javax.jms-api', version: '2.0.1'

+ dependencies of the JMS driver.
See Also:
  • Field Details

    • username

      protected String username
    • password

      protected String password
    • transacted

      protected boolean transacted
    • acknowledgeMode

      protected int acknowledgeMode
    • deliveryMode

      protected int deliveryMode
    • priority

      protected int priority
    • ttl

      protected int ttl
    • connectionFactoryJndiName

      protected String connectionFactoryJndiName
    • factory

      protected jakarta.jms.TopicConnectionFactory factory
    • client

      protected jakarta.jms.TopicConnection client
    • session

      protected jakarta.jms.TopicSession session
    • publishers

      protected final HashMap<String, jakarta.jms.TopicPublisher> publishers
    • subscribers

      protected final HashMap<String, jakarta.jms.TopicSubscriber> subscribers
  • Constructor Details

    • JmsTransporter

      public JmsTransporter()
    • JmsTransporter

      public JmsTransporter(String connectionFactoryJndiName)
    • JmsTransporter

      public JmsTransporter(jakarta.jms.TopicConnectionFactory connectionFactory)
    • JmsTransporter

      public JmsTransporter(String username, String password, String connectionFactoryJndiName)
    • JmsTransporter

      public JmsTransporter(String username, String password, jakarta.jms.TopicConnectionFactory connectionFactory)
  • Method Details

    • connect

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

      protected void disconnect()
    • reconnect

      protected void reconnect(Throwable cause)
    • 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
    • createOrGetPublisher

      protected jakarta.jms.TopicPublisher createOrGetPublisher(String channel) throws Exception
      Throws:
      Exception
    • publish

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

      public String getUsername()
    • setUsername

      public void setUsername(String username)
    • getPassword

      public String getPassword()
    • setPassword

      public void setPassword(String password)
    • getAcknowledgeMode

      public int getAcknowledgeMode()
    • setAcknowledgeMode

      public void setAcknowledgeMode(int acknowledgeMode)
    • getDeliveryMode

      public int getDeliveryMode()
    • setDeliveryMode

      public void setDeliveryMode(int deliveryMode)
    • getTopicConnectionFactory

      public jakarta.jms.TopicConnectionFactory getTopicConnectionFactory()
    • setTopicConnectionFactory

      public void setTopicConnectionFactory(jakarta.jms.TopicConnectionFactory factory)
    • isTransacted

      public boolean isTransacted()
    • setTransacted

      public void setTransacted(boolean transacted)
    • getPriority

      public int getPriority()
    • setPriority

      public void setPriority(int priority)
    • getTtl

      public int getTtl()
    • setTtl

      public void setTtl(int ttl)
    • getConnectionFactoryJndiName

      public String getConnectionFactoryJndiName()
    • setConnectionFactoryJndiName

      public void setConnectionFactoryJndiName(String connectionFactoryJndiName)