All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zalando.riptide.failsafe.CompositeDelayParser Maven / Gradle / Ivy

package org.zalando.riptide.failsafe;

import lombok.extern.slf4j.Slf4j;

import java.time.Duration;
import java.util.Collection;
import java.util.Objects;

@Slf4j
final class CompositeDelayParser implements DelayParser {

    private final Collection parsers;

    CompositeDelayParser(final Collection parsers) {
        this.parsers = parsers;
    }

    @Override
    public Duration parse(final String value) {
        final Duration delay = parsers.stream()
                .map(parser -> parser.parse(value))
                .filter(Objects::nonNull)
                .findFirst()
                .orElse(null);

        if (delay == null) {
            log.warn("Received unsupported 'Retry-After' header [{}]; will ignore it", value);
        }

        return delay;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy