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