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

java.lang.Object
io.helidon.messaging.MessagingExecutionConfig.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:
MessagingExecutionConfig.Builder
Enclosing interface:
MessagingExecutionConfig

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

    • BuilderBase

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

    • from

      public BUILDER from(MessagingExecutionConfig 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(MessagingExecutionConfig.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
    • 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 MessagingExecutionConfig.BuilderBase<BUILDER, PROTOTYPE>, PROTOTYPE extends MessagingExecutionConfig>
      Parameters:
      config - configuration instance used to obtain values to update this builder
      Returns:
      updated builder instance
    • clearQueueCapacity

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

      public BUILDER queueCapacity(int queueCapacity)
      Maximum number of admitted tasks that may wait for an execution slot; must be zero or greater.

      Zero disables internal buffering; callers may still wait before admission, subject to maxPendingAdmissions().

      Parameters:
      queueCapacity - queue capacity
      Returns:
      updated builder instance
      See Also:
    • clearMaxPendingAdmissions

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

      public BUILDER maxPendingAdmissions(int maxPendingAdmissions)
      Positive maximum number of callers waiting for blocking admission and open connector reservations.

      Waiting callers retain their own delivery until capacity becomes available. A connector reservation retains one permit from reservation until it is started or closed, including while the connector acquires transport data. Immediately admitted callers do not consume this budget.

      Parameters:
      maxPendingAdmissions - maximum pending admissions
      Returns:
      updated builder instance
      See Also:
    • clearMaxPendingMessages

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

      public BUILDER maxPendingMessages(int maxPendingMessages)
      Positive maximum total messages retained by waiting callers and open connector reservations.

      An open connector reservation retains its declared maximum while the connector may acquire transport data. Immediately admissible caller deliveries do not consume this budget. A delivery that cannot fit is rejected instead of parking while retaining unaccounted messages.

      Parameters:
      maxPendingMessages - maximum pending messages
      Returns:
      updated builder instance
      See Also:
    • clearMaxInFlightMessages

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

      public BUILDER maxInFlightMessages(int maxInFlightMessages)
      Positive maximum number of admitted messages.

      This includes queued and executing work and completed connector deliveries whose admission lease remains held until transport settlement or abandonment.

      Parameters:
      maxInFlightMessages - maximum in-flight message count
      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)
      Optional positive maximum time to wait for capacity, representable in nanoseconds.

      For a two-phase connector delivery, capacity-wait time while reserving and starting shares this single budget; transport acquisition time between those phases is excluded.

      Parameters:
      admissionTimeout - admission timeout
      Returns:
      updated builder instance
      See Also:
    • queueCapacity

      public Optional<Integer> queueCapacity()
      Maximum number of admitted tasks that may wait for an execution slot; must be zero or greater.

      Zero disables internal buffering; callers may still wait before admission, subject to maxPendingAdmissions().

      Returns:
      queue capacity
    • maxPendingAdmissions

      public Optional<Integer> maxPendingAdmissions()
      Positive maximum number of callers waiting for blocking admission and open connector reservations.

      Waiting callers retain their own delivery until capacity becomes available. A connector reservation retains one permit from reservation until it is started or closed, including while the connector acquires transport data. Immediately admitted callers do not consume this budget.

      Returns:
      maximum pending admissions
    • maxPendingMessages

      public Optional<Integer> maxPendingMessages()
      Positive maximum total messages retained by waiting callers and open connector reservations.

      An open connector reservation retains its declared maximum while the connector may acquire transport data. Immediately admissible caller deliveries do not consume this budget. A delivery that cannot fit is rejected instead of parking while retaining unaccounted messages.

      Returns:
      maximum pending messages
    • maxInFlightMessages

      public Optional<Integer> maxInFlightMessages()
      Positive maximum number of admitted messages.

      This includes queued and executing work and completed connector deliveries whose admission lease remains held until transport settlement or abandonment.

      Returns:
      maximum in-flight message count
    • admissionTimeout

      public Optional<Duration> admissionTimeout()
      Optional positive maximum time to wait for capacity, representable in nanoseconds.

      For a two-phase connector delivery, capacity-wait time while reserving and starting shares this single budget; transport acquisition time between those phases is excluded.

      Returns:
      admission timeout
    • 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 MessagingExecutionConfig buildPrototype(MessagingExecutionConfig.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