package de.taimos.pipeline.aws.cloudformation.utils; import java.time.Duration; import java.time.OffsetDateTime; import com.amazonaws.waiters.PollingStrategy; import com.amazonaws.waiters.PollingStrategyContext; public class TimeOutRetryStrategy implements PollingStrategy.RetryStrategy { private final OffsetDateTime start; private final Duration maxTime; public TimeOutRetryStrategy(Duration maxTime) { this.start = OffsetDateTime.now(); this.maxTime = maxTime; } @Override public boolean shouldRetry(PollingStrategyContext pollingStrategyContext) { Duration difference = Duration.between(this.start, OffsetDateTime.now()); return difference.compareTo(this.maxTime) < 0; } }