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

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