Class BaseServiceFinderBuilder<T,R extends ServiceRegistry<T>,F extends ServiceFinder<T,R>,B extends BaseServiceFinderBuilder<T,R,F,B,D>,D extends Deserializer<T>>

java.lang.Object
io.appform.ranger.core.finder.BaseServiceFinderBuilder<T,R,F,B,D>
Direct Known Subclasses:
SimpleShardedServiceFinderBuilder, SimpleUnshardedServiceFinderBuilder

public abstract class BaseServiceFinderBuilder<T,R extends ServiceRegistry<T>,F extends ServiceFinder<T,R>,B extends BaseServiceFinderBuilder<T,R,F,B,D>,D extends Deserializer<T>> extends Object
  • Field Details

    • namespace

      protected String namespace
    • serviceName

      protected String serviceName
    • nodeRefreshIntervalMs

      protected int nodeRefreshIntervalMs
    • disablePushUpdaters

      protected boolean disablePushUpdaters
    • deserializer

      protected D extends Deserializer<T> deserializer
    • shardSelector

      protected ShardSelector<T,R extends ServiceRegistry<T>> shardSelector
    • nodeSelector

      protected ServiceNodeSelector<T> nodeSelector
    • additionalRefreshSignals

      protected final List<Signal<T>> additionalRefreshSignals
    • startSignalHandlers

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

      protected final List<Consumer<Void>> stopSignalHandlers
  • Constructor Details

    • BaseServiceFinderBuilder

      public BaseServiceFinderBuilder()
  • Method Details

    • withNamespace

      public B withNamespace(String namespace)
    • withServiceName

      public B withServiceName(String serviceName)
    • withDeserializer

      public B withDeserializer(D deserializer)
    • withShardSelector

      public B withShardSelector(ShardSelector<T,R> shardSelector)
    • withNodeSelector

      public B withNodeSelector(ServiceNodeSelector<T> nodeSelector)
    • withNodeRefreshIntervalMs

      public B withNodeRefreshIntervalMs(int nodeRefreshIntervalMs)
    • withDisableWatchers

      public B withDisableWatchers()
    • withDisableWatchers

      public B withDisableWatchers(boolean disablePushUpdaters)
    • withAdditionalSignalGenerator

      public B withAdditionalSignalGenerator(Signal<T> signalGenerator)
    • withAdditionalSignalGenerators

      public B withAdditionalSignalGenerators(Signal<T>... signalGenerators)
    • withAdditionalSignalGenerators

      public B withAdditionalSignalGenerators(List<Signal<T>> signalGenerators)
    • 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)
    • build

      public abstract F build()
    • buildFinder

      protected F buildFinder()
    • implementationSpecificRefreshSignals

      protected List<Signal<T>> implementationSpecificRefreshSignals(Service service, NodeDataSource<T,D> nodeDataSource)
    • dataSource

      protected abstract NodeDataSource<T,D> dataSource(Service service)
    • buildFinder

      protected abstract F buildFinder(Service service, ShardSelector<T,R> shardSelector, ServiceNodeSelector<T> nodeSelector)