
io.dropwizard.redis.RedisClusterClientBundle Maven / Gradle / Ivy
package io.dropwizard.redis;
import brave.Tracing;
import io.dropwizard.Configuration;
import io.dropwizard.ConfiguredBundle;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;
import javax.annotation.Nullable;
import static java.util.Objects.requireNonNull;
public abstract class RedisClusterClientBundle implements ConfiguredBundle {
@Nullable
private StatefulRedisClusterConnection clusterConnection;
@Override
public void initialize(final Bootstrap> bootstrap) {
// do nothing
}
@Override
public void run(final T configuration, final Environment environment) throws Exception {
final RedisClusterClientFactory redisClusterClientFactory = requireNonNull(getRedisClusterClientFactory(configuration));
final Tracing tracing = Tracing.current();
this.clusterConnection = redisClusterClientFactory.build(environment.healthChecks(), environment.lifecycle(), environment.metrics(),
tracing);
}
public abstract RedisClusterClientFactory getRedisClusterClientFactory(T configuration);
public StatefulRedisClusterConnection getClusterConnection() {
return requireNonNull(clusterConnection);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy