14 changed files with 404 additions and 2 deletions
@ -0,0 +1,33 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.collections.api.Codec; |
||||||
|
import com.fr.collections.config.redis.RedisCollectionConfig; |
||||||
|
|
||||||
|
/** |
||||||
|
* Redis 集合相关配置 |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class BaseRedisCollectionConfig extends RedisCollectionConfig { |
||||||
|
|
||||||
|
public BaseRedisCollectionConfig(Codec codec, String host, int port) { |
||||||
|
|
||||||
|
super(codec, host, port); |
||||||
|
} |
||||||
|
|
||||||
|
public BaseRedisCollectionConfig(String host, int port, String password) { |
||||||
|
|
||||||
|
super(host, port, password); |
||||||
|
} |
||||||
|
|
||||||
|
public BaseRedisCollectionConfig() { |
||||||
|
|
||||||
|
super(); |
||||||
|
} |
||||||
|
|
||||||
|
public BaseRedisCollectionConfig(String host, int port) { |
||||||
|
|
||||||
|
super(host, port); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.collections.cluster.client.RedisCollectionsClient; |
||||||
|
import com.fr.collections.config.redis.RedisCollectionConfig; |
||||||
|
|
||||||
|
/** |
||||||
|
* 集群集合客户端 |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class BaseRedisCollectionsClient extends RedisCollectionsClient { |
||||||
|
|
||||||
|
public BaseRedisCollectionsClient() { |
||||||
|
|
||||||
|
super(); |
||||||
|
} |
||||||
|
|
||||||
|
public BaseRedisCollectionsClient(RedisCollectionConfig config) { |
||||||
|
|
||||||
|
super(config); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.store.impl.redis.RedisLock; |
||||||
|
|
||||||
|
/** |
||||||
|
* Redis 锁 |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class BaseRedisLock extends RedisLock { |
||||||
|
|
||||||
|
public BaseRedisLock() { |
||||||
|
super(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.store.RedisStore; |
||||||
|
|
||||||
|
/** |
||||||
|
* Redis Store |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class BaseRedisStore extends RedisStore { |
||||||
|
|
||||||
|
public BaseRedisStore(String tableNamePrefix, int expireStateRemoveInterval) { |
||||||
|
super(tableNamePrefix, expireStateRemoveInterval); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.store.detector.utils.DetectorUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class DetectorConstantsKit { |
||||||
|
|
||||||
|
/** |
||||||
|
* 状态服务器的前端密码显示 |
||||||
|
* 如果密码是 DEFAULT_PWD(******) 则从数据库取真实密码 |
||||||
|
*/ |
||||||
|
public static final String DEFAULT_PWD = DetectorUtils.DEFAULT_PWD; |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.store.impl.redis.accessor.FineJedisPool; |
||||||
|
import com.fr.store.impl.redis.accessor.FineJedisWrapper; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class FineJedisPoolKit { |
||||||
|
|
||||||
|
/** |
||||||
|
* 设置提供真实资源的 Jedis 包装对象 |
||||||
|
* @param jedisWrapper Jedis 包装对象 |
||||||
|
*/ |
||||||
|
public static void setRealClient(FineJedisWrapper jedisWrapper) { |
||||||
|
|
||||||
|
FineJedisPool.getInstance().setRealClient(jedisWrapper); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.store.impl.redis.RedisConfig; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class RedisConfigKit { |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取 Redis 里表名的统一的前缀 |
||||||
|
* @return Redis 里表名的统一的前缀 |
||||||
|
*/ |
||||||
|
public static String getTableNamePrefix() { |
||||||
|
|
||||||
|
return RedisConfig.getInstance().getTableNamePrefix(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取 Redis 里过期 key 删除间隔时间 |
||||||
|
* @return Redis 里过期 key 删除间隔时间 |
||||||
|
*/ |
||||||
|
public static int getExpireStateRemoveInterval() { |
||||||
|
|
||||||
|
return RedisConfig.getInstance().getExpireStateRemoveInterval(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.store.impl.redis.accessor.FineJedis; |
||||||
|
import com.fr.store.impl.redis.accessor.StandAloneJedis; |
||||||
|
import com.fr.third.redis.clients.jedis.Jedis; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class StandAloneJedisKit { |
||||||
|
|
||||||
|
/** |
||||||
|
* 创建单机版 Jedis Api集合 |
||||||
|
* @param jedis Jedis 资源 |
||||||
|
* @return 单机版 Jedis Api集合 |
||||||
|
*/ |
||||||
|
public static FineJedis createStandAloneJedis(Jedis jedis) { |
||||||
|
|
||||||
|
if (jedis == null) { |
||||||
|
throw new NullPointerException("jedis is null"); |
||||||
|
} |
||||||
|
return new StandAloneJedis(jedis); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,49 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.config.Configuration; |
||||||
|
import com.fr.store.StateServerConfig; |
||||||
|
|
||||||
|
/** |
||||||
|
* 状态服务器配置 |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class StateServerConfigKit { |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取当前状态服务器类型 |
||||||
|
* @return 当前状态服务器类型 |
||||||
|
*/ |
||||||
|
public static String getType() { |
||||||
|
|
||||||
|
return StateServerConfig.getInstance().getType(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取当前是否开启状态服务器 |
||||||
|
* @param isShareMode 当前是否开启状态服务器 |
||||||
|
*/ |
||||||
|
public static void setShareMode(boolean isShareMode) { |
||||||
|
|
||||||
|
StateServerConfig.getInstance().setShareMode(isShareMode); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 设置状态服务器类型 |
||||||
|
* @param type 状态服务器类型 |
||||||
|
*/ |
||||||
|
public static void setType(String type) { |
||||||
|
|
||||||
|
StateServerConfig.getInstance().setType(type); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取 StateServerConfig 类对象 |
||||||
|
* @return StateServerConfig 类对象 |
||||||
|
*/ |
||||||
|
public static Class<? extends Configuration> getConfigClass() { |
||||||
|
|
||||||
|
return StateServerConfig.class; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,57 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.store.impl.redis.accessor.FineJedis; |
||||||
|
import com.fr.store.impl.redis.accessor.FineJedisPool; |
||||||
|
import com.fr.store.impl.redis.accessor.FineJedisWrapper; |
||||||
|
import org.easymock.EasyMock; |
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import static org.easymock.EasyMock.anyObject; |
||||||
|
import static org.easymock.EasyMock.expect; |
||||||
|
import static org.easymock.EasyMock.mock; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class FineJedisPoolKitTest { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void TestSetRealClient() { |
||||||
|
|
||||||
|
FineJedisPoolKit.setRealClient(new FineJedisWrapper() { |
||||||
|
|
||||||
|
@Override |
||||||
|
public FineJedis getResource() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void destroy() { |
||||||
|
|
||||||
|
} |
||||||
|
}); |
||||||
|
Assert.assertNull(FineJedisPool.getInstance().getResource()); |
||||||
|
|
||||||
|
FineJedis mockFineJedis = mock(FineJedis.class); |
||||||
|
expect(mockFineJedis.type(anyObject())).andReturn("TestFineJedis"); |
||||||
|
EasyMock.replay(mockFineJedis); |
||||||
|
|
||||||
|
FineJedisPoolKit.setRealClient(new FineJedisWrapper() { |
||||||
|
|
||||||
|
@Override |
||||||
|
public FineJedis getResource() { |
||||||
|
return mockFineJedis; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void destroy() { |
||||||
|
|
||||||
|
} |
||||||
|
}); |
||||||
|
Assert.assertEquals("TestFineJedis", FineJedisPool.getInstance().getResource().type(new byte[]{})); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fanruan.api.Prepare; |
||||||
|
import com.fr.store.impl.redis.RedisConfig; |
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class RedisConfigKitTest extends Prepare { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void TestGetTableNamePrefix() { |
||||||
|
|
||||||
|
RedisConfig.getInstance().setTableNamePrefix("test_table name_prefix"); |
||||||
|
Assert.assertEquals("test_table name_prefix", RedisConfigKit.getTableNamePrefix()); |
||||||
|
|
||||||
|
RedisConfig.getInstance().setTableNamePrefix("test_table name_prefix2"); |
||||||
|
Assert.assertEquals("test_table name_prefix2", RedisConfigKit.getTableNamePrefix()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void TestGetExpireStateRemoveInterval() { |
||||||
|
|
||||||
|
RedisConfig.getInstance().setExpireStateRemoveInterval(111); |
||||||
|
Assert.assertEquals(111, RedisConfig.getInstance().getExpireStateRemoveInterval()); |
||||||
|
|
||||||
|
RedisConfig.getInstance().setExpireStateRemoveInterval(222); |
||||||
|
Assert.assertEquals(222, RedisConfig.getInstance().getExpireStateRemoveInterval()); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fr.store.impl.redis.accessor.FineJedis; |
||||||
|
import com.fr.third.redis.clients.jedis.Jedis; |
||||||
|
import org.easymock.EasyMock; |
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import static org.easymock.EasyMock.anyObject; |
||||||
|
import static org.easymock.EasyMock.expect; |
||||||
|
import static org.easymock.EasyMock.mock; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class StandAloneJedisKitTest { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void TestCreateStandAloneJedis() { |
||||||
|
|
||||||
|
Jedis mockJedis = mock(Jedis.class); |
||||||
|
expect(mockJedis.type(anyObject(byte[].class))).andReturn("test_echo"); |
||||||
|
EasyMock.replay(mockJedis); |
||||||
|
|
||||||
|
FineJedis standAloneJedis = StandAloneJedisKit.createStandAloneJedis(mockJedis); |
||||||
|
|
||||||
|
Assert.assertEquals("test_echo", standAloneJedis.type(new byte[]{})); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
package com.fanruan.api.cluster.state; |
||||||
|
|
||||||
|
import com.fanruan.api.Prepare; |
||||||
|
import com.fr.store.StateServerConfig; |
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Dylan.Liu |
||||||
|
* @version 10.0 |
||||||
|
* Created by Dylan.Liu on 2019/12/3 |
||||||
|
*/ |
||||||
|
public class StateServerConfigKitTest extends Prepare { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void TestGetType() { |
||||||
|
|
||||||
|
StateServerConfig.getInstance().setType("test_type"); |
||||||
|
Assert.assertEquals("test_type", StateServerConfigKit.getType()); |
||||||
|
|
||||||
|
StateServerConfig.getInstance().setType("test_type2"); |
||||||
|
Assert.assertEquals("test_type2", StateServerConfigKit.getType()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void TestSetShareMode() { |
||||||
|
|
||||||
|
StateServerConfigKit.setShareMode(true); |
||||||
|
Assert.assertTrue(StateServerConfig.getInstance().isShareMode()); |
||||||
|
|
||||||
|
StateServerConfigKit.setShareMode(false); |
||||||
|
Assert.assertFalse(StateServerConfig.getInstance().isShareMode()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void TestSetType() { |
||||||
|
|
||||||
|
StateServerConfigKit.setType("test_type3"); |
||||||
|
Assert.assertEquals("test_type3", StateServerConfig.getInstance().getType()); |
||||||
|
|
||||||
|
StateServerConfigKit.setType("test_type4"); |
||||||
|
Assert.assertEquals("test_type4", StateServerConfig.getInstance().getType()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void TestGetConfigClass() { |
||||||
|
|
||||||
|
Assert.assertEquals(StateServerConfigKit.getConfigClass(), StateServerConfig.class); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue