
io.dropwizard.redis.uri.SentinelModeURIFactory Maven / Gradle / Ivy
package io.dropwizard.redis.uri;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.google.common.net.HostAndPort;
import io.lettuce.core.RedisURI;
import org.hibernate.validator.constraints.NotEmpty;
import java.util.Collections;
import java.util.Set;
import javax.validation.Valid;
@JsonTypeName("sentinel")
public class SentinelModeURIFactory extends RedisURIFactory {
@Valid
@NotEmpty
@JsonProperty
private Set sentinels = Collections.emptySet();
@JsonProperty
private String sentinelMasterId;
public Set getSentinels() {
return sentinels;
}
public void setSentinels(final Set sentinels) {
this.sentinels = sentinels;
}
public String getSentinelMasterId() {
return sentinelMasterId;
}
public void setSentinelMasterId(final String sentinelMasterId) {
this.sentinelMasterId = sentinelMasterId;
}
@Override
public RedisURI build() {
final RedisURI.Builder builder = RedisURI.builder()
.withTimeout(java.time.Duration.ofSeconds(timeout.toSeconds()));
sentinels.forEach(sentinel -> builder.withSentinel(sentinel.getHost(), sentinel.getPort()));
if (clientName != null) {
builder.withClientName(clientName);
}
if (password != null) {
builder.withPassword(password);
}
if (sentinelMasterId != null) {
builder.withSentinelMasterId(sentinelMasterId);
}
return builder.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy