001package gu.dtalk.redis;
002
003import java.net.URI;
004import java.net.URISyntaxException;
005
006import redis.clients.util.JedisURIHelper;
007
008import static com.google.common.base.Preconditions.*;
009/**
010 * 公有云配置
011 * @author guyadong
012 *
013 */
014public class DefaultCloudRedisConfigProvider implements RedisConfigProvider {
015        /** 默认的公有云redis连接 */
016        public static final URI DEFAULT_CLOUD_REDIS_URI;        
017        static{
018                try {
019                        DEFAULT_CLOUD_REDIS_URI = new URI("jedis://:86a1b907d54bf7010394bf316e183e67@dtalk.facelib.net:26416/0");
020                } catch (URISyntaxException e) {
021                        throw new ExceptionInInitializerError(e);
022                }
023        }
024        private static URI uri = DEFAULT_CLOUD_REDIS_URI;
025        @Override
026        public String getHost() {
027                return uri.getHost();
028        }
029
030        @Override
031        public void setHost(String host) {
032
033        }
034
035        @Override
036        public int getPort() {
037                return uri.getPort();
038        }
039
040        @Override
041        public void setPort(int port) {
042
043        }
044
045        @Override
046        public String getPassword() {
047                return JedisURIHelper.getPassword(uri);
048        }
049
050        @Override
051        public void setPassword(String password) {
052
053        }
054
055        @Override
056        public int getDatabase() {
057                return JedisURIHelper.getDBIndex(uri);
058        }
059
060        @Override
061        public void setDatabase(int database) {
062
063        }
064
065        @Override
066        public int getTimeout() {
067                return 0;
068        }
069
070        @Override
071        public void setTimeout(int timeout) {
072
073        }
074        
075        @Override
076        public URI getURI() {
077                return uri;
078        }
079
080        @Override
081        public void setURI(URI uri) {
082        }
083
084        @Override
085        public final RedisConfigType type(){
086                return RedisConfigType.CLOUD;
087        }
088        /**
089         * 初始化 uri 
090         * @param uri 不可为{@code null}
091         */
092        public static void initURI(URI uri) {
093                DefaultCloudRedisConfigProvider.uri = checkNotNull(uri,"uri is null");
094        }
095}