Class DefaultMessagingService

java.lang.Object
com.iantapply.relay.core.DefaultMessagingService
All Implemented Interfaces:
com.iantapply.relay.api.MessagingService, AutoCloseable

public final class DefaultMessagingService extends Object implements com.iantapply.relay.api.MessagingService, AutoCloseable
Default typed messaging implementation backed by a pluggable MessageTransport.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Starts a messaging service and its transport subscriptions.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    Returns cumulative operational counters and current transport state.
    <T> CompletionStage<com.iantapply.relay.api.MessageId>
    publish(com.iantapply.relay.api.Topic<T> topic, com.iantapply.relay.api.Destination destination, T payload)
     
    <T> CompletionStage<com.iantapply.relay.api.MessageId>
    publish(com.iantapply.relay.api.Topic<T> topic, com.iantapply.relay.api.Destination destination, T payload, com.iantapply.relay.api.PublishOptions options)
     
    com.iantapply.relay.api.MessagingStatus
     
    <T> com.iantapply.relay.api.Subscription
    subscribe(com.iantapply.relay.api.Topic<T> topic, com.iantapply.relay.api.MessageHandler<T> handler)
     

    Methods inherited from class Object

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

    • DefaultMessagingService

      public DefaultMessagingService(RelayConfig config, MessageTransport transport, Logger logger)
      Starts a messaging service and its transport subscriptions.
      Parameters:
      config - validated node configuration
      transport - transport used for publication and reception
      logger - destination for operational warnings
  • Method Details

    • publish

      public <T> CompletionStage<com.iantapply.relay.api.MessageId> publish(com.iantapply.relay.api.Topic<T> topic, com.iantapply.relay.api.Destination destination, T payload)
      Specified by:
      publish in interface com.iantapply.relay.api.MessagingService
    • publish

      public <T> CompletionStage<com.iantapply.relay.api.MessageId> publish(com.iantapply.relay.api.Topic<T> topic, com.iantapply.relay.api.Destination destination, T payload, com.iantapply.relay.api.PublishOptions options)
      Specified by:
      publish in interface com.iantapply.relay.api.MessagingService
    • subscribe

      public <T> com.iantapply.relay.api.Subscription subscribe(com.iantapply.relay.api.Topic<T> topic, com.iantapply.relay.api.MessageHandler<T> handler)
      Specified by:
      subscribe in interface com.iantapply.relay.api.MessagingService
    • status

      public com.iantapply.relay.api.MessagingStatus status()
      Specified by:
      status in interface com.iantapply.relay.api.MessagingService
    • metrics

      public RelayMetrics metrics()
      Returns cumulative operational counters and current transport state.
      Returns:
      current metrics snapshot
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable