org.springframework.data.redis.SettingsUtils.java Source code

Java tutorial

Introduction

Here is the source code for org.springframework.data.redis.SettingsUtils.java

Source

/*
 * Copyright 2011-2019 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.data.redis;

import java.util.Properties;

import org.springframework.data.redis.connection.RedisSocketConfiguration;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;

/**
 * Utility class exposing connection settings to connect Redis instances during test execution. Settings can be adjusted
 * by overriding these in {@literal org/springframework/data/redis/test.properties}.
 *
 * @author Costin Leau
 * @author Mark Paluch
 */
public abstract class SettingsUtils {

    private final static Properties DEFAULTS = new Properties();
    private static final Properties SETTINGS;

    static {
        DEFAULTS.put("host", "127.0.0.1");
        DEFAULTS.put("port", "6379");
        DEFAULTS.put("socket", "work/redis-6379.sock");

        SETTINGS = new Properties(DEFAULTS);

        try {
            SETTINGS.load(
                    SettingsUtils.class.getResourceAsStream("/org/springframework/data/redis/test.properties"));
        } catch (Exception e) {
            throw new IllegalArgumentException("Cannot read settings");
        }
    }

    private SettingsUtils() {
    }

    /**
     * @return the Redis hostname.
     */
    public static String getHost() {
        return SETTINGS.getProperty("host");
    }

    /**
     * @return the Redis port.
     */
    public static int getPort() {
        return Integer.valueOf(SETTINGS.getProperty("port"));
    }

    /**
     * @return path to the unix domain socket.
     */
    public static String getSocket() {
        return SETTINGS.getProperty("socket");
    }

    /**
     * Construct a new {@link RedisStandaloneConfiguration} initialized with test endpoint settings.
     *
     * @return a new {@link RedisStandaloneConfiguration} initialized with test endpoint settings.
     */
    public static RedisStandaloneConfiguration standaloneConfiguration() {
        return new RedisStandaloneConfiguration(getHost(), getPort());
    }

    /**
     * Construct a new {@link RedisSocketConfiguration} initialized with test endpoint settings.
     *
     * @return a new {@link RedisSocketConfiguration} initialized with test endpoint settings.
     */
    public static RedisSocketConfiguration socketConfiguration() {
        return new RedisSocketConfiguration(getSocket());
    }
}