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

io.dropwizard.redis.clientoptions.ClusterClientOptionsFactory Maven / Gradle / Ivy

package io.dropwizard.redis.clientoptions;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.redis.topology.ClusterTopologyRefreshOptionsFactory;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;

import javax.validation.Valid;
import javax.validation.constraints.Min;

public class ClusterClientOptionsFactory extends ClientOptionsFactory {
    @JsonProperty
    private boolean validateClusterNodeMembership = ClusterClientOptions.DEFAULT_VALIDATE_CLUSTER_MEMBERSHIP;

    @Min(0)
    @JsonProperty
    private int maxRedirects = ClusterClientOptions.DEFAULT_MAX_REDIRECTS;

    @Valid
    @JsonProperty
    private ClusterTopologyRefreshOptionsFactory topologyRefreshOptions;

    public boolean isValidateClusterNodeMembership() {
        return validateClusterNodeMembership;
    }

    public void setValidateClusterNodeMembership(final boolean validateClusterNodeMembership) {
        this.validateClusterNodeMembership = validateClusterNodeMembership;
    }

    public int getMaxRedirects() {
        return maxRedirects;
    }

    public void setMaxRedirects(final int maxRedirects) {
        this.maxRedirects = maxRedirects;
    }

    public ClusterTopologyRefreshOptionsFactory getTopologyRefreshOptions() {
        return topologyRefreshOptions;
    }

    public void setTopologyRefreshOptions(final ClusterTopologyRefreshOptionsFactory topologyRefreshOptions) {
        this.topologyRefreshOptions = topologyRefreshOptions;
    }

    @Override
    public ClusterClientOptions build() {
        final ClusterClientOptions.Builder builder = ((ClusterClientOptions.Builder) super.addBuildParams(ClusterClientOptions.builder()))
                .validateClusterNodeMembership(validateClusterNodeMembership)
                .maxRedirects(maxRedirects);

        if (topologyRefreshOptions != null) {
            final ClusterTopologyRefreshOptions clusterTopologyRefreshOptions = topologyRefreshOptions.build();
            builder.topologyRefreshOptions(clusterTopologyRefreshOptions);
        }

        return builder.build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy