Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -919,6 +919,8 @@ public static final class Builder
@Nullable
private TimeLimiterConfiguration timeLimiterConfiguration = null;
@Nullable
private CircuitBreakerConfiguration circuitBreakerConfiguration = null;
@Nullable
private String providerTenantId;

/**
Expand All @@ -938,6 +940,23 @@ public Builder withTimeLimiterConfiguration( @Nonnull final TimeLimiterConfigura
return this;
}

/**
* Create instance applying the given circuit breaker when retrieving destinations.
*
* @param circuitBreakerConfiguration
* The circuit-breaker configuration to be applied for the request. Use
* {@code TimeLimiterConfiguration.disabled()} to diable the circuit-breaker.
* @return The builder itself.
* @since 5.25.0
*/
@Nonnull
public Builder withCircuitBreakerConfiguration(
@Nonnull final CircuitBreakerConfiguration circuitBreakerConfiguration )
{
this.circuitBreakerConfiguration = circuitBreakerConfiguration;
return this;
}

@Nonnull
Builder withProviderTenant( @Nonnull final Tenant providerTenant )
{
Expand All @@ -956,10 +975,12 @@ public DestinationService build()
{
final TimeLimiterConfiguration timeLimiter =
timeLimiterConfiguration != null ? timeLimiterConfiguration : DEFAULT_TIME_LIMITER;
final CircuitBreakerConfiguration circuitBreaker =
circuitBreakerConfiguration != null ? circuitBreakerConfiguration : DEFAULT_SINGLE_DEST_CIRCUIT_BREAKER;
return new DestinationService(
new DestinationServiceAdapter(null, null, providerTenantId),
createResilienceConfiguration("singleDestResilience", timeLimiter, DEFAULT_SINGLE_DEST_CIRCUIT_BREAKER),
createResilienceConfiguration("allDestResilience", timeLimiter, DEFAULT_ALL_DEST_CIRCUIT_BREAKER));
createResilienceConfiguration("singleDestResilience", timeLimiter, circuitBreaker),
createResilienceConfiguration("allDestResilience", timeLimiter, circuitBreaker));
}
}
}