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

org.stuartgunter.dropwizard.cassandra.reconnection.ExponentialReconnectionPolicyFactory Maven / Gradle / Ivy

package org.stuartgunter.dropwizard.cassandra.reconnection;

import com.datastax.driver.core.policies.ExponentialReconnectionPolicy;
import com.datastax.driver.core.policies.ReconnectionPolicy;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
import io.dropwizard.util.Duration;
import org.stuartgunter.dropwizard.cassandra.reconnection.ReconnectionPolicyFactory;

import javax.validation.constraints.NotNull;

@JsonTypeName("exponential")
public class ExponentialReconnectionPolicyFactory implements ReconnectionPolicyFactory {

    @NotNull
    private Duration baseDelay;

    @NotNull
    private Duration maxDelay;

    @JsonProperty
    public Duration getBaseDelay() {
        return baseDelay;
    }

    @JsonProperty
    public void setBaseDelay(Duration baseDelay) {
        this.baseDelay = baseDelay;
    }

    @JsonProperty
    public Duration getMaxDelay() {
        return maxDelay;
    }

    @JsonProperty
    public void setMaxDelay(Duration maxDelay) {
        this.maxDelay = maxDelay;
    }

    @Override
    public ReconnectionPolicy build() {
        return new ExponentialReconnectionPolicy(baseDelay.toMilliseconds(), maxDelay.toMilliseconds());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy