Class MessagingConfig.BuilderBase<BUILDER extends MessagingConfig.BuilderBase<BUILDER, PROTOTYPE>, PROTOTYPE extends MessagingConfig>

java.lang.Object
io.helidon.messaging.MessagingConfig.BuilderBase<BUILDER, PROTOTYPE>
Type Parameters:
BUILDER - type of the builder extending this abstract builder
PROTOTYPE - type of the prototype interface that would be built by Prototype.Builder.buildPrototype()
All Implemented Interfaces:
Prototype.Builder<BUILDER, PROTOTYPE>, ConfigBuilderSupport.ConfiguredBuilder<BUILDER, PROTOTYPE>
Direct Known Subclasses:
MessagingConfig.Builder
Enclosing interface:
MessagingConfig

public abstract static class MessagingConfig.BuilderBase<BUILDER extends MessagingConfig.BuilderBase<BUILDER, PROTOTYPE>, PROTOTYPE extends MessagingConfig> extends Object implements ConfigBuilderSupport.ConfiguredBuilder<BUILDER, PROTOTYPE>
Fluent API builder base for MessagingConfig.
  • Constructor Details

    • BuilderBase

      protected BuilderBase()
      Protected to support extensibility.
  • Method Details

    • from

      public BUILDER from(MessagingConfig prototype)
      Update this builder from an existing prototype instance. This method disables automatic service discovery.
      Parameters:
      prototype - existing prototype to update this builder from
      Returns:
      updated builder instance
    • from

      public BUILDER from(MessagingConfig.BuilderBase<?,?> builder)
      Update this builder from an existing prototype builder instance.
      Parameters:
      builder - existing builder prototype to update this builder from
      Returns:
      updated builder instance
    • channel

      public BUILDER channel(MessagingChannel<?> channel)
      Register a typed channel handle.
      Parameters:
      channel - channel handle
      Returns:
      updated builder instance
      Throws:
      IllegalArgumentException - if a channel with this name is already registered
    • payloadSource

      public <T> BUILDER payloadSource(MessagingChannel<T> channel, Stream<? extends T> source)
      Add a payload stream source.

      The built graph owns the stream and closes it on shutdown. A failed build also closes registered streams. A channel can have at most one stream source; explicit multi-source fan-in is not part of this API version. Downstream paths of distinct stream sources must not converge on the same channel.

      Type Parameters:
      T - payload type
      Parameters:
      channel - target channel
      source - source stream
      Returns:
      updated builder instance
      Throws:
      IllegalArgumentException - if the channel already has a stream source
    • messageSource

      public <T> BUILDER messageSource(MessagingChannel<T> channel, Stream<? extends Message<? extends T>> source)
      Add a message stream source.

      The built graph owns the stream and closes it on shutdown. A failed build also closes registered streams. A channel can have at most one stream source; explicit multi-source fan-in is not part of this API version. Downstream paths of distinct stream sources must not converge on the same channel.

      Type Parameters:
      T - payload type
      Parameters:
      channel - target channel
      source - source stream
      Returns:
      updated builder instance
      Throws:
      IllegalArgumentException - if the channel already has a stream source
    • route

      public <T> BUILDER route(MessagingChannel<T> source, MessagingChannel<T> target)
      Route each delivery batch unchanged from one channel to another channel of the same type.
      Type Parameters:
      T - payload type
      Parameters:
      source - source channel
      target - target channel
      Returns:
      updated builder instance
    • payloadProcessor

      public <I,O> BUILDER payloadProcessor(MessagingChannel<I> source, MessagingChannel<O> target, Function<? super I, ? extends O> processor)
      Add a payload processor. The processor is invoked once per batch item in order and its results form one lineage-preserving derived batch. Message metadata is not propagated by a payload processor.
      Type Parameters:
      I - input payload type
      O - output payload type
      Parameters:
      source - source channel
      target - target channel
      processor - payload processor
      Returns:
      updated builder instance
    • messageProcessor

      public <I,O> BUILDER messageProcessor(MessagingChannel<I> source, MessagingChannel<O> target, Function<? super Message<I>, ? extends Message<? extends O>> processor)
      Add a message processor. The processor is invoked once per batch item in order and its results form one lineage-preserving derived batch.
      Type Parameters:
      I - input payload type
      O - output payload type
      Parameters:
      source - source channel
      target - target channel
      processor - message processor
      Returns:
      updated builder instance
    • payloadSink

      public <T> BUILDER payloadSink(MessagingChannel<T> source, Consumer<? super T> sink)
      Add a payload sink.
      Type Parameters:
      T - payload type
      Parameters:
      source - source channel
      sink - payload sink
      Returns:
      updated builder instance
    • messageSink

      public <T> BUILDER messageSink(MessagingChannel<T> source, Consumer<? super Message<T>> sink)
      Add a message sink.
      Type Parameters:
      T - payload type
      Parameters:
      source - source channel
      sink - message sink
      Returns:
      updated builder instance
    • batchSink

      public <T> BUILDER batchSink(MessagingChannel<T> source, Consumer<MessageBatch<T>> sink)
      Add a message batch sink.
      Type Parameters:
      T - payload type
      Parameters:
      source - source channel
      sink - message batch sink
      Returns:
      updated builder instance
    • incomingChannel

      public <T> BUILDER incomingChannel(MessagingChannel<T> target, IncomingChannel connection)
      Add an incoming channel connection as a source.

      The built graph owns the connection and manages its startup, delivery admission, draining, and shutdown. A failed build also closes registered connections.

      Type Parameters:
      T - payload type
      Parameters:
      target - target channel
      connection - incoming channel connection
      Returns:
      updated builder instance
    • outgoingChannel

      public <T> BUILDER outgoingChannel(MessagingChannel<T> source, OutgoingChannel connection)
      Add an outgoing channel connection as a required channel output.

      The built graph owns the connection and closes it on shutdown. A failed build also closes it.

      Type Parameters:
      T - payload type
      Parameters:
      source - source channel
      connection - outgoing channel connection
      Returns:
      updated builder instance
    • config

      public BUILDER config(Config config)
      Update builder from configuration (node of this type). If a value is present in configuration, it would override currently configured values.
      Specified by:
      config in interface ConfigBuilderSupport.ConfiguredBuilder<BUILDER extends MessagingConfig.BuilderBase<BUILDER, PROTOTYPE>, PROTOTYPE extends MessagingConfig>
      Parameters:
      config - configuration instance used to obtain values to update this builder
      Returns:
      updated builder instance
    • queueCapacity

      public BUILDER queueCapacity(int queueCapacity)
      Maximum number of admitted deliveries waiting for execution. Zero disables buffering.
      Parameters:
      queueCapacity - queue capacity
      Returns:
      updated builder instance
      See Also:
    • maxPendingAdmissions

      public BUILDER maxPendingAdmissions(int maxPendingAdmissions)
      Positive maximum number of waiting callers and open connector reservations.
      Parameters:
      maxPendingAdmissions - maximum pending admissions
      Returns:
      updated builder instance
      See Also:
    • maxPendingMessages

      public BUILDER maxPendingMessages(int maxPendingMessages)
      Positive maximum number of messages retained by waiting callers and open connector reservations.
      Parameters:
      maxPendingMessages - maximum pending messages
      Returns:
      updated builder instance
      See Also:
    • maxInFlightMessages

      public BUILDER maxInFlightMessages(int maxInFlightMessages)
      Positive maximum number of admitted messages, including queued and executing deliveries.
      Parameters:
      maxInFlightMessages - maximum in-flight messages
      Returns:
      updated builder instance
      See Also:
    • clearAdmissionTimeout

      public BUILDER clearAdmissionTimeout()
      Clear existing value of admissionTimeout.
      Returns:
      updated builder instance
      See Also:
    • admissionTimeout

      public BUILDER admissionTimeout(Duration admissionTimeout)
      Positive maximum capacity-wait time, representable in nanoseconds. Absence means no timeout.
      Parameters:
      admissionTimeout - admission timeout
      Returns:
      updated builder instance
      See Also:
    • shutdownTimeout

      public BUILDER shutdownTimeout(Duration shutdownTimeout)
      Positive global maximum shutdown and failed-startup rollback time, representable in nanoseconds. This does not bound startup or readiness and cannot be overridden by a channel.
      Parameters:
      shutdownTimeout - shutdown timeout
      Returns:
      updated builder instance
      See Also:
    • clearConsumerRegistrations

      public BUILDER clearConsumerRegistrations()
      Clear all consumerRegistrations.
      Returns:
      updated builder instance
      See Also:
    • consumerRegistrations

      public BUILDER consumerRegistrations(List<? extends ConsumerRegistration> consumerRegistrations)
      Consumer and processor registrations contributing channel outputs.
      Parameters:
      consumerRegistrations - registrations
      Returns:
      updated builder instance
      See Also:
    • addConsumerRegistrations

      public BUILDER addConsumerRegistrations(List<? extends ConsumerRegistration> consumerRegistrations)
      Consumer and processor registrations contributing channel outputs.
      Parameters:
      consumerRegistrations - registrations
      Returns:
      updated builder instance
      See Also:
    • addConsumerRegistration

      public BUILDER addConsumerRegistration(ConsumerRegistration consumerRegistration)
      Consumer and processor registrations contributing channel outputs.
      Parameters:
      consumerRegistration - add single registrations
      Returns:
      updated builder instance
      See Also:
    • clearEmitterRegistrations

      public BUILDER clearEmitterRegistrations()
      Clear all emitterRegistrations.
      Returns:
      updated builder instance
      See Also:
    • emitterRegistrations

      public BUILDER emitterRegistrations(List<? extends EmitterRegistration> emitterRegistrations)
      Emitter registrations contributing typed producer metadata.
      Parameters:
      emitterRegistrations - registrations
      Returns:
      updated builder instance
      See Also:
    • addEmitterRegistrations

      public BUILDER addEmitterRegistrations(List<? extends EmitterRegistration> emitterRegistrations)
      Emitter registrations contributing typed producer metadata.
      Parameters:
      emitterRegistrations - registrations
      Returns:
      updated builder instance
      See Also:
    • addEmitterRegistration

      public BUILDER addEmitterRegistration(EmitterRegistration emitterRegistration)
      Emitter registrations contributing typed producer metadata.
      Parameters:
      emitterRegistration - add single registrations
      Returns:
      updated builder instance
      See Also:
    • clearConnector

      public BUILDER clearConnector()
      Clear all connector.
      Returns:
      updated builder instance
      See Also:
    • connector

      public BUILDER connector(List<? extends MessagingConnector> connector)
      Configured messaging connectors.
      Parameters:
      connector - configured connectors
      Returns:
      updated builder instance
      See Also:
    • addConnector

      public BUILDER addConnector(List<? extends MessagingConnector> connector)
      Configured messaging connectors.
      Parameters:
      connector - configured connectors
      Returns:
      updated builder instance
      See Also:
    • addConnector

      public BUILDER addConnector(MessagingConnector connector)
      Configured messaging connectors.
      Parameters:
      connector - add single configured connectors
      Returns:
      updated builder instance
      See Also:
    • incoming

      public BUILDER incoming(Map<String, ? extends MessagingIncomingConfig> incoming)
      Incoming channel configurations, keyed by channel name, whose execution settings take precedence over outgoing configurations of the same logical channel. This method replaces all values with the new ones.
      Parameters:
      incoming - incoming channel configurations
      Returns:
      updated builder instance
      See Also:
    • addIncoming

      public BUILDER addIncoming(Map<String, ? extends MessagingIncomingConfig> incoming)
      Incoming channel configurations, keyed by channel name, whose execution settings take precedence over outgoing configurations of the same logical channel. This method keeps existing values, then puts all new values into the map.
      Parameters:
      incoming - incoming channel configurations
      Returns:
      updated builder instance
      See Also:
    • outgoing

      public BUILDER outgoing(Map<String, ? extends MessagingOutgoingConfig> outgoing)
      Outgoing channel configurations, keyed by channel name; their execution settings apply only when the logical channel has no incoming configuration. This method replaces all values with the new ones.
      Parameters:
      outgoing - outgoing channel configurations
      Returns:
      updated builder instance
      See Also:
    • addOutgoing

      public BUILDER addOutgoing(Map<String, ? extends MessagingOutgoingConfig> outgoing)
      Outgoing channel configurations, keyed by channel name; their execution settings apply only when the logical channel has no incoming configuration. This method keeps existing values, then puts all new values into the map.
      Parameters:
      outgoing - outgoing channel configurations
      Returns:
      updated builder instance
      See Also:
    • connectorDiscoverServices

      public BUILDER connectorDiscoverServices(boolean connectorDiscoverServices)
      Service discovery flag for connector(). If set to true, services will be discovered from Java service loader, or Helidon ServiceRegistry.
      Parameters:
      connectorDiscoverServices - whether to enable automatic service discovery
      Returns:
      updated builder instance
      See Also:
    • serviceRegistry

      public BUILDER serviceRegistry(ServiceRegistry serviceRegistry)
      Service registry used to discover providers and services. Provide an explicit registry instance to use.

      If not configured, the GlobalServiceRegistry would be used to discover services.

      Parameters:
      serviceRegistry - service registry to use
      Returns:
      updated builder instance
      See Also:
    • queueCapacity

      public int queueCapacity()
      Maximum number of admitted deliveries waiting for execution. Zero disables buffering.
      Returns:
      queue capacity
    • maxPendingAdmissions

      public int maxPendingAdmissions()
      Positive maximum number of waiting callers and open connector reservations.
      Returns:
      maximum pending admissions
    • maxPendingMessages

      public int maxPendingMessages()
      Positive maximum number of messages retained by waiting callers and open connector reservations.
      Returns:
      maximum pending messages
    • maxInFlightMessages

      public int maxInFlightMessages()
      Positive maximum number of admitted messages, including queued and executing deliveries.
      Returns:
      maximum in-flight messages
    • admissionTimeout

      public Optional<Duration> admissionTimeout()
      Positive maximum capacity-wait time, representable in nanoseconds. Absence means no timeout.
      Returns:
      admission timeout
    • shutdownTimeout

      public Duration shutdownTimeout()
      Positive global maximum shutdown and failed-startup rollback time, representable in nanoseconds. This does not bound startup or readiness and cannot be overridden by a channel.
      Returns:
      shutdown timeout
    • consumerRegistrations

      public List<ConsumerRegistration> consumerRegistrations()
      Consumer and processor registrations contributing channel outputs.
      Returns:
      registrations
    • emitterRegistrations

      public List<EmitterRegistration> emitterRegistrations()
      Emitter registrations contributing typed producer metadata.
      Returns:
      registrations
    • connector

      public List<MessagingConnector> connector()
      Configured messaging connectors.
      Returns:
      configured connectors
    • incoming

      public Map<String, MessagingIncomingConfig> incoming()
      Incoming channel configurations, keyed by channel name, whose execution settings take precedence over outgoing configurations of the same logical channel.
      Returns:
      incoming channel configurations
    • outgoing

      public Map<String, MessagingOutgoingConfig> outgoing()
      Outgoing channel configurations, keyed by channel name; their execution settings apply only when the logical channel has no incoming configuration.
      Returns:
      outgoing channel configurations
    • connectorDiscoverServices

      public boolean connectorDiscoverServices()
      Service discovery flag for connector(). If set to true, services will be discovered from Java service loader, or Helidon ServiceRegistry.
      Returns:
      whether to enable automatic service discovery
    • serviceRegistry

      public Optional<ServiceRegistry> serviceRegistry()
      Service registry used to discover providers and services. Provide an explicit registry instance to use.

      If not configured, the GlobalServiceRegistry would be used to discover services.

      Returns:
      service registry to use
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • preBuildPrototype

      protected void preBuildPrototype()
      Handles providers and decorators.
    • validatePrototype

      protected void validatePrototype()
      Validates required properties.
    • buildPrototype

      protected final MessagingConfig buildPrototype(MessagingConfig.BuilderBase<?,?> builder)
      Create a new prototype instance from a builder.
      Parameters:
      builder - builder used to create the prototype
      Returns:
      new prototype instance
    • config

      protected Optional<Config> config()
      Configuration used to configure this instance.
      Returns:
      config instance