RetryProperties.java
package org.sanmibuh.framework.resilience;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero;
public record RetryProperties(
@PositiveOrZero int maxRetries,
@Positive long initialInterval,
@Positive double multiplier,
@Positive long maxInterval) {
@AssertTrue(message = "multiplier must be greater than or equal to 1")
boolean isMultiplierAtLeastOne() {
return multiplier >= 1;
}
@AssertTrue(message = "initialInterval must not exceed maxInterval")
boolean isInitialIntervalWithinMaxInterval() {
return initialInterval <= maxInterval;
}
}