Class AbstractProxyManagerBuilder<K,P extends ProxyManager<K>,B extends AbstractProxyManagerBuilder<K,P,B>>
- Type Parameters:
K- type of keyP- type of proxy manager that is being buildB- the type of builder extending AbstractProxyManagerBuilder
- Direct Known Subclasses:
AbstractJdbcProxyManagerBuilder
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbackwardCompatibleWith(Version backwardCompatibilityVersion) ConfiguresbackwardCompatibilityVersion.abstract Pbuild()Builds new instance ofAbstractProxyManagerBuilderclientClock(TimeMeter clientClock) ConfiguresclientClock.defaultListener(BucketListener defaultListener) Configures listener at proxy-manager level, this listener will be used for buckets in case of listener will not be specified during bucket build time.defaultRecoveryStrategy(RecoveryStrategy recoveryStrategy) Configures custom recovery strategy at proxy-manager level, this strategy will be used for buckets in case of it will not be specified during bucket build time.executionStrategy(ExecutionStrategy executionStrategy) ConfiguresexecutionStrategy.expirationAfterWrite(ExpirationAfterWriteStrategy expirationStrategy) Configures strategy for choosing time to live for buckets.Returns the Bucket4j protocol version is used to be backward compatible with other nodes in the cluster.Returns clock that will be used for time measurement.Returns the strategy for request executionReturns the strategy for choosing time to live for buckets.Returns timeout for remote operationsbooleanDescribes whetherAbstractProxyManagerBuildersupports expire-after-write feature.requestTimeout(Duration requestTimeout) Configures timeout for remote operations.
-
Constructor Details
-
AbstractProxyManagerBuilder
public AbstractProxyManagerBuilder()
-
-
Method Details
-
backwardCompatibleWith
ConfiguresbackwardCompatibilityVersion.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.- Parameters:
backwardCompatibilityVersion- the Bucket4j protocol version to be backward compatible with other nodes in the cluster.- Returns:
- this builder with configured
backwardCompatibilityVersion.
-
clientClock
ConfiguresclientClock.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.
- Parameters:
clientClock- the clock that will be used for time measuring instead of server-side clock.- Returns:
- this builder with configured
clientClock.
-
executionStrategy
ConfiguresexecutionStrategy.The default executionStrategy is
ExecutionStrategy.SAME_TREAD.- Parameters:
executionStrategy- the strategy for request execution.- Returns:
- this builder with configured
clientClock.
-
requestTimeout
Configures timeout for remote operations.The way in which timeout is applied depends on concrete implementation of
ProxyManager. It can be three possible cases:- If underlying technology supports per request timeouts(like timeouts on prepared JDBC statements) then this feature is used by ProxyManager to satisfy requested timeout
- If timeouts is not supported by underlying technology, but it is possible to deal with timeout on Bucket4j library level(like specifying timeouts on CompletableFuture), then this way is applied.
- If nothing from above can be applied, then specified
requestTimeoutis totally ignored byProxyManager
- Parameters:
requestTimeout- timeout for remote operations.- Returns:
- this builder with configured
requestTimeout.
-
expirationAfterWrite
Configures strategy for choosing time to live for buckets.If particular
AbstractProxyManagerBuilderdoes not supportExpirationAfterWriteStrategythen this method throws exception.- Parameters:
expirationStrategy- the strategy for choosing time to live for buckets.- Returns:
- this builder with configured
expirationStrategy.
-
defaultListener
Configures listener at proxy-manager level, this listener will be used for buckets in case of listener will not be specified during bucket build time.- Parameters:
defaultListener- listener of bucket events- Returns:
- this builder instance
-
defaultRecoveryStrategy
Configures custom recovery strategy at proxy-manager level, this strategy will be used for buckets in case of it will not be specified during bucket build time.- Parameters:
recoveryStrategy- specifies the reaction which should be applied in case of previously saved state of bucket has been lost, explicitly removed or expired.- Returns:
this
-
getExpirationAfterWrite
Returns the strategy for choosing time to live for buckets.- Returns:
- the strategy for choosing time to live for buckets
-
getClientSideClock
Returns clock that will be used for time measurement.- Returns:
- clock that will be used for time measurement.
-
getRequestTimeoutNanos
Returns timeout for remote operations- Returns:
- timeout for remote operations
-
getBackwardCompatibilityVersion
Returns the Bucket4j protocol version is used to be backward compatible with other nodes in the cluster.- Returns:
- the Bucket4j protocol version is used to be backward compatible with other nodes in the cluster.
- See Also:
-
getExecutionStrategy
Returns the strategy for request execution- Returns:
- the strategy for request execution
-
build
Builds new instance ofAbstractProxyManagerBuilder- Returns:
- new instance of
AbstractProxyManagerBuilder
-
isExpireAfterWriteSupported
public boolean isExpireAfterWriteSupported()Describes whetherAbstractProxyManagerBuildersupports expire-after-write feature.- Returns:
trueAbstractProxyManagerBuildersupports expire-after-write feature.
-
getClientSideConfig
-