LoadBalancerBuilder apply()

in src/main/java/com/spotify/ffwd/http/HttpDiscovery.java [41:70]


  LoadBalancerBuilder<Server> apply(
      LoadBalancerBuilder<Server> builder, String searchDomain
  );

  @JsonTypeName("static")
  @Data
  class Static implements HttpDiscovery {
    private final List<HostAndPort> servers;

    @Override
    public LoadBalancerBuilder<Server> apply(
        final LoadBalancerBuilder<Server> builder, final String searchDomain
    ) {
      final List<Server> out = new ArrayList<>();

      for (final HostAndPort hostAndPort : this.servers) {
        final HostAndPort modified = hostAndPort.withOptionalSearchDomain(searchDomain);
        out.add(new Server(modified.getHost(), modified.getPort()));
      }

      return builder.withDynamicServerList(new StaticServerList(out));
    }

    /**
     * Default implementation for http discovery when nothing else is configured.
     */
    static HttpDiscovery supplyDefault() {
      return new HttpDiscovery.Static(Collections.singletonList(DEFAULT_SERVER));
    }
  }