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

io.dropwizard.redis.timeout.TimeoutOptionsFactory Maven / Gradle / Ivy

package io.dropwizard.redis.timeout;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.util.Duration;
import io.lettuce.core.TimeoutOptions;

public class TimeoutOptionsFactory {
    @JsonProperty
    private boolean timeoutCommands = TimeoutOptions.DEFAULT_TIMEOUT_COMMANDS;

    @JsonProperty
    private boolean applyConnectionTimeout = false;

    @JsonProperty
    private Duration fixedTimeout;

    public boolean isTimeoutCommands() {
        return timeoutCommands;
    }

    public void setTimeoutCommands(final boolean timeoutCommands) {
        this.timeoutCommands = timeoutCommands;
    }

    public boolean isApplyConnectionTimeout() {
        return applyConnectionTimeout;
    }

    public void setApplyConnectionTimeout(final boolean applyConnectionTimeout) {
        this.applyConnectionTimeout = applyConnectionTimeout;
    }

    public Duration getFixedTimeout() {
        return fixedTimeout;
    }

    public void setFixedTimeout(final Duration fixedTimeout) {
        this.fixedTimeout = fixedTimeout;
    }

    public TimeoutOptions build() {
        final TimeoutOptions.Builder builder = TimeoutOptions.builder()
                .timeoutCommands(timeoutCommands);

        if (applyConnectionTimeout) {
            builder.connectionTimeout();
        }

        if (fixedTimeout != null) {
            builder.fixedTimeout(java.time.Duration.ofMillis(fixedTimeout.toMilliseconds()));
        }

        return builder.build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy