public class ClientSideConfig extends Object
ProxyManager such as:
backwardCompatibleWith(Version) for more details.withClientClock(TimeMeter) for more details.| Modifier | Constructor and Description |
|---|---|
protected |
ClientSideConfig(Version backwardCompatibilityVersion,
Optional<TimeMeter> clientSideClock,
ExecutionStrategy executionStrategy,
Optional<Long> requestTimeoutNanos,
Optional<ExpirationAfterWriteStrategy> expirationStrategy) |
| Modifier and Type | Method and Description |
|---|---|
ClientSideConfig |
backwardCompatibleWith(Version backwardCompatibilityVersion)
Returns new instance of
ClientSideConfig with configured backwardCompatibilityVersion. |
Version |
getBackwardCompatibilityVersion()
Returns the Bucket4j protocol version is used to be backward compatible with other nodes in the cluster.
|
Optional<TimeMeter> |
getClientSideClock()
Returns clock that will be used for time measurement.
|
static ClientSideConfig |
getDefault()
Returns default client-side configuration for proxy-manager that configured with following parameters:
Client-clock: is null.
|
ExecutionStrategy |
getExecutionStrategy()
Returns the strategy for request execution
|
Optional<ExpirationAfterWriteStrategy> |
getExpirationAfterWriteStrategy()
Returns the strategy for choosing time to live for buckets.
|
Optional<Long> |
getRequestTimeoutNanos()
Returns timeout for remote operations
|
ClientSideConfig |
withClientClock(TimeMeter clientClock)
Returns new instance of
ClientSideConfig with configured clientClock. |
ClientSideConfig |
withExecutionStrategy(ExecutionStrategy executionStrategy)
Returns new instance of
ClientSideConfig with configured executionStrategy. |
ClientSideConfig |
withExpirationAfterWriteStrategy(ExpirationAfterWriteStrategy expirationStrategy)
Returns new instance of
ClientSideConfig with configured strategy for choosing time to live for buckets. |
ClientSideConfig |
withRequestTimeout(Duration requestTimeout)
Returns new instance of
ClientSideConfig with configured timeout for remote operations. |
protected ClientSideConfig(Version backwardCompatibilityVersion, Optional<TimeMeter> clientSideClock, ExecutionStrategy executionStrategy, Optional<Long> requestTimeoutNanos, Optional<ExpirationAfterWriteStrategy> expirationStrategy)
public static ClientSideConfig getDefault()
Versions.getLatest(). This means that compatibility with legacy versions is switched off.public ClientSideConfig backwardCompatibleWith(Version backwardCompatibilityVersion)
ClientSideConfig with configured backwardCompatibilityVersion.
Use this method in case of rolling upgrades, when you want from already new nodes to continue communication using
the legacy protocol version which is compatible with backwardCompatibilityVersion.
By default backward compatibility version is Versions.getLatest(). This means that compatibility with legacy versions is switched off.
backwardCompatibilityVersion - the Bucket4j protocol version to be backward compatible with other nodes in the cluster.ClientSideConfig with configured backwardCompatibilityVersion.public ClientSideConfig withClientClock(TimeMeter clientClock)
ClientSideConfig with configured clientClock.
Use this method when you want to measure current time by yourself. In normal scenarios you should not use this functionality, but sometimes it can be useful, especially for testing and modeling.
By default client-clock is null. This means that server-side clock is always used.
clientClock - the clock that will be used for time measuring instead of server-side clock.ClientSideConfig with configured clientClock.public ClientSideConfig withExecutionStrategy(ExecutionStrategy executionStrategy)
ClientSideConfig with configured executionStrategy.
The default executionStrategy is ExecutionStrategy.SAME_TREAD.
executionStrategy - the strategy for request execution.ClientSideConfig with configured clientClock.public ClientSideConfig withRequestTimeout(Duration requestTimeout)
ClientSideConfig with configured timeout for remote operations.
The way in which timeout is applied depends on concrete implementation of ProxyManager. It can be three possible cases:
requestTimeout is totally ignored by ProxyManagerrequestTimeout - timeout for remote operations.ClientSideConfig with configured requestTimeout.public ClientSideConfig withExpirationAfterWriteStrategy(ExpirationAfterWriteStrategy expirationStrategy)
ClientSideConfig with configured strategy for choosing time to live for buckets.
If particular ProxyManager does not support ExpirationAfterWriteStrategy
then exception will be thrown in attempt to construct such ProxyManager with this instance of ClientSideConfig.expirationStrategy - the strategy for choosing time to live for buckets.ClientSideConfig with configured expirationStrategy.public Optional<ExpirationAfterWriteStrategy> getExpirationAfterWriteStrategy()
public Optional<TimeMeter> getClientSideClock()
withClientClock(TimeMeter)public Optional<Long> getRequestTimeoutNanos()
public Version getBackwardCompatibilityVersion()
backwardCompatibleWith(Version)public ExecutionStrategy getExecutionStrategy()
Copyright © 2024. All rights reserved.