Class BaseServiceProviderBuilder<T,B extends BaseServiceProviderBuilder<T,B,S>,S extends Serializer<T>>

java.lang.Object
io.appform.ranger.core.serviceprovider.BaseServiceProviderBuilder<T,B,S>

public abstract class BaseServiceProviderBuilder<T,B extends BaseServiceProviderBuilder<T,B,S>,S extends Serializer<T>> extends Object
  • Field Details

    • namespace

      protected String namespace
    • serviceName

      protected String serviceName
    • serializer

      protected S extends Serializer<T> serializer
    • hostname

      protected String hostname
    • port

      protected int port
    • portScheme

      protected String portScheme
    • nodeData

      protected T nodeData
    • healthUpdateIntervalMs

      protected int healthUpdateIntervalMs
    • staleUpdateThresholdMs

      protected int staleUpdateThresholdMs
    • nodeDataSource

      protected NodeDataSink<T,S extends Serializer<T>> nodeDataSource
    • healthchecks

      protected final List<Healthcheck> healthchecks
    • startSignalHandlers

      protected final List<Consumer<Void>> startSignalHandlers
    • stopSignalHandlers

      protected final List<Consumer<Void>> stopSignalHandlers
    • additionalRefreshSignals

      protected final List<Signal<HealthcheckResult>> additionalRefreshSignals
  • Constructor Details

    • BaseServiceProviderBuilder

      public BaseServiceProviderBuilder()
  • Method Details

    • withNamespace

      public BaseServiceProviderBuilder<T,B,S> withNamespace(String namespace)
    • withServiceName

      public B withServiceName(String serviceName)
    • withSerializer

      public B withSerializer(S serializer)
    • withHostname

      public B withHostname(String hostname)
    • withPort

      public B withPort(int port)
    • withPortScheme

      public B withPortScheme(String portScheme)
    • withNodeData

      public B withNodeData(T nodeData)
    • withHealthcheck

      public B withHealthcheck(Healthcheck healthcheck)
    • withHealthUpdateIntervalMs

      public B withHealthUpdateIntervalMs(int healthUpdateIntervalMs)
    • withStaleUpdateThresholdMs

      public B withStaleUpdateThresholdMs(int staleUpdateThresholdMs)
    • withIsolatedHealthMonitor

      public B withIsolatedHealthMonitor(IsolatedHealthMonitor<HealthcheckStatus> monitor)
      Register a monitor to the service, to set up a continuous monitoring on the monitor this method can be used to add a IsolatedHealthMonitor which will later be scheduled at regular intervals and monitored to generate and maintain an aggregated health of the service the scheduling will happen in an isolated thread
      Parameters:
      monitor - an implementation of the IsolatedHealthMonitor
      Returns:
      builder for next call
    • withNodeDataSource

      public B withNodeDataSource(NodeDataSink<T,S> nodeDataSource)
    • withStartSignalHandler

      public B withStartSignalHandler(Consumer<Void> startSignalHandler)
    • withStartSignalHandlers

      public B withStartSignalHandlers(List<Consumer<Void>> startSignalHandlers)
    • withStopSignalHandler

      public B withStopSignalHandler(Consumer<Void> stopSignalHandler)
    • withStopSignalHandlers

      public B withStopSignalHandlers(List<Consumer<Void>> stopSignalHandlers)
    • withAdditionalRefreshSignal

      public B withAdditionalRefreshSignal(Signal<HealthcheckResult> additionalRefreshSignal)
    • withAdditionalRefreshSignals

      public B withAdditionalRefreshSignals(List<Signal<HealthcheckResult>> additionalRefreshSignals)
    • buildProvider

      protected final ServiceProvider<T,S> buildProvider()
    • build

      public abstract ServiceProvider<T,S> build()
    • dataSink

      protected abstract NodeDataSink<T,S> dataSink(Service service)