Skip to content

Commit 68187a5

Browse files
committed
Added fix for redis manager splitnames
1 parent 653764a commit 68187a5

File tree

9 files changed

+65
-11
lines changed

9 files changed

+65
-11
lines changed

client/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
<parent>
66
<groupId>io.split.client</groupId>
77
<artifactId>java-client-parent</artifactId>
8-
<version>4.18.1</version>
8+
<version>4.18.2</version>
99
</parent>
10-
<version>4.18.1</version>
10+
<version>4.18.2</version>
1111
<artifactId>java-client</artifactId>
1212
<packaging>jar</packaging>
1313
<name>Java Client</name>

client/src/test/java/io/split/storages/pluggable/adapters/UserCustomSplitAdapterConsumerTest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,34 @@ public void testGetAll() {
120120
Mockito.verify(_userStorageWrapper, Mockito.times(1)).getMany(Mockito.anyObject());
121121
}
122122

123+
@Test
124+
public void testGetSplitNames() {
125+
Split split = getSplit(SPLIT_NAME);
126+
Split split2 = getSplit(SPLIT_NAME+"2");
127+
List<Split> listResultExpected = Stream.of(split, split2).collect(Collectors.toList());
128+
Set<String> keysResult = Stream.of(SPLIT_NAME, SPLIT_NAME+"2").collect(Collectors.toSet());
129+
Mockito.when(_userStorageWrapper.getKeysByPrefix(Mockito.anyObject())).
130+
thenReturn(keysResult);
131+
List<String> splitsResult = _userCustomSplitAdapterConsumer.splitNames();
132+
Assert.assertNotNull(splitsResult);
133+
Assert.assertEquals(listResultExpected.size(), splitsResult.size());
134+
Assert.assertEquals(SPLIT_NAME, splitsResult.get(1));
135+
Assert.assertEquals(SPLIT_NAME+"2", splitsResult.get(0));
136+
Mockito.verify(_userStorageWrapper, Mockito.times(1)).getKeysByPrefix(Mockito.anyString());
137+
138+
// default prefix
139+
listResultExpected = Stream.of(split, split2).collect(Collectors.toList());
140+
keysResult = Stream.of("SPLITIO.split." + SPLIT_NAME, "SPLITIO.split." + SPLIT_NAME+"2").collect(Collectors.toSet());
141+
Mockito.when(_userStorageWrapper.getKeysByPrefix(Mockito.anyObject())).
142+
thenReturn(keysResult);
143+
144+
splitsResult = _userCustomSplitAdapterConsumer.splitNames();
145+
Assert.assertNotNull(splitsResult);
146+
Assert.assertEquals(listResultExpected.size(), splitsResult.size());
147+
Assert.assertEquals(SPLIT_NAME, splitsResult.get(1));
148+
Assert.assertEquals(SPLIT_NAME+"2", splitsResult.get(0));
149+
}
150+
123151
@Test
124152
public void testGetAllWithWrapperFailing() {
125153
Mockito.when(_userStorageWrapper.get(PrefixAdapter.buildGetAllSplit())).

okhttp-modules/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
<parent>
66
<artifactId>java-client-parent</artifactId>
77
<groupId>io.split.client</groupId>
8-
<version>4.18.1</version>
8+
<version>4.18.2</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
11-
<version>4.18.1</version>
11+
<version>4.18.2</version>
1212
<artifactId>okhttp-modules</artifactId>
1313
<packaging>jar</packaging>
1414
<name>http-modules</name>

pluggable-storage/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>java-client-parent</artifactId>
88
<groupId>io.split.client</groupId>
9-
<version>4.18.1</version>
9+
<version>4.18.2</version>
1010
</parent>
1111

1212
<version>2.1.0</version>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>io.split.client</groupId>
66
<artifactId>java-client-parent</artifactId>
7-
<version>4.18.1</version>
7+
<version>4.18.2</version>
88
<dependencyManagement>
99
<dependencies>
1010
<dependency>

redis-wrapper/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
<parent>
77
<artifactId>java-client-parent</artifactId>
88
<groupId>io.split.client</groupId>
9-
<version>4.18.1</version>
9+
<version>4.18.2</version>
1010
</parent>
1111
<artifactId>redis-wrapper</artifactId>
12-
<version>3.1.1</version>
12+
<version>3.1.2</version>
1313
<packaging>jar</packaging>
1414
<name>Package for Redis Wrapper Implementation</name>
1515
<description>Implements Redis Pluggable Storage</description>

redis-wrapper/src/main/java/redis/RedisSingle.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ public String getAndSet(String key, String item) throws Exception {
9595
public Set<String> getKeysByPrefix(String prefix) throws Exception {
9696
try (Jedis jedis = this.jedisPool.getResource()) {
9797
Set<String> keysWithPrefix = jedis.keys(_commonRedis.buildKeyWithPrefix(prefix));
98-
keysWithPrefix = keysWithPrefix.stream().map(key -> key.replace(_commonRedis.getPrefix() + ".", "")).collect(Collectors.toSet());
98+
if (!_commonRedis.getPrefix().isEmpty()) {
99+
keysWithPrefix = keysWithPrefix.stream().map(key -> key.replace(_commonRedis.getPrefix() + ".", "")).collect(Collectors.toSet());
100+
}
99101
return keysWithPrefix;
100102
} catch (Exception ex) {
101103
throw new RedisException(ex.getMessage());

redis-wrapper/src/test/java/redis/RedisSingleTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,30 @@ public void testGetKeysByPrefix() throws Exception {
104104
}
105105
}
106106

107+
@Test
108+
public void testGetKeysByPrefixWithoutCustomPrefix() throws Exception {
109+
Map<String, String> map = new HashMap<>();
110+
map.put("SPLITIO.item-1", "1");
111+
map.put("SPLITIO.item-2", "2");
112+
map.put("SPLITIO.item-3", "3");
113+
map.put("SPLITIO.i-4", "4");
114+
RedisSingle storageWrapper = new RedisSingle(new JedisPool(), "");
115+
try {
116+
for (Map.Entry<String, String> entry : map.entrySet()) {
117+
storageWrapper.set(entry.getKey(), entry.getValue());
118+
}
119+
120+
Set<String> result = storageWrapper.getKeysByPrefix("SPLITIO.item*");
121+
122+
Assert.assertEquals(3, result.size());
123+
Assert.assertTrue(result.contains("SPLITIO.item-1"));
124+
Assert.assertTrue(result.contains("SPLITIO.item-2"));
125+
Assert.assertTrue(result.contains("SPLITIO.item-3"));
126+
} finally {
127+
storageWrapper.delete(new ArrayList<>(map.keySet()));
128+
}
129+
}
130+
107131
@Test
108132
public void testIncrementAndDecrement() throws Exception {
109133
Map<String, String> map = new HashMap<>();

testing/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
<parent>
66
<groupId>io.split.client</groupId>
77
<artifactId>java-client-parent</artifactId>
8-
<version>4.18.1</version>
8+
<version>4.18.2</version>
99
</parent>
1010
<artifactId>java-client-testing</artifactId>
1111
<packaging>jar</packaging>
12-
<version>4.18.1</version>
12+
<version>4.18.2</version>
1313
<name>Java Client For Testing</name>
1414
<description>Testing suite for Java SDK for Split</description>
1515
<dependencies>

0 commit comments

Comments
 (0)