Skip to content

Commit b57ed4d

Browse files
committed
misc refactoring (#140)
* add self host params * add random port for main * and so the crazy refactoring process sees the sunlight after some months in the dark! * Too lazy to write descriptive message * better ignores * Fixed what was broken. * bad things happen when you forget about that one little change you made ages ago * I'm sorry. * Reset error count between rows. herpderp * squash me * I am sorry * add keys command
1 parent 5df3b03 commit b57ed4d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+190
-127
lines changed

.github/workflows/build.yml

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ on:
33
push:
44
branches:
55
- master
6+
- develop
67
pull_request:
78
types: [opened, synchronize, reopened]
89
jobs:

app/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ task fatJar(type: Jar) {
3131
dependsOn(':config:build')
3232
dependsOn(':util:build')
3333
dependsOn(':resp-protocol:build')
34-
dependsOn(':store:build')
34+
dependsOn(':storage:build')
3535
dependsOn(':core:build')
3636
manifest.from jar.manifest
3737
classifier = 'all'
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,36 @@
11
package dev.keva.app;
22

3+
import lombok.SneakyThrows;
34
import lombok.val;
45
import org.junit.jupiter.api.Test;
56
import redis.clients.jedis.Jedis;
67

8+
import java.net.ServerSocket;
79
import java.util.concurrent.TimeUnit;
810

911
import static org.junit.jupiter.api.Assertions.assertEquals;
1012

1113
class ApplicationTest {
1214

13-
public static final String[] ARGS = new String[0];
15+
public static int port = getAvailablePort();
16+
public static final String[] ARGS = {"--p", Integer.toString(port)};
1417

1518
@Test
1619
void testMain() throws Exception {
1720
new Thread(() -> Application.main(ARGS)).start();
1821
TimeUnit.SECONDS.sleep(5);
1922

20-
val jedis = new Jedis("localhost", 6379);
23+
val jedis = new Jedis("localhost", port);
2124
val pong = jedis.ping();
2225
assertEquals("PONG", pong);
2326
}
27+
28+
@SneakyThrows
29+
public static int getAvailablePort() {
30+
final int port;
31+
try (val serverSocket = new ServerSocket(0)) {
32+
port = serverSocket.getLocalPort();
33+
}
34+
return port;
35+
}
2436
}

core/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dependencies {
1111
implementation project(':util')
1212
implementation project(':config')
1313
implementation project(':resp-protocol')
14-
implementation project(':store')
14+
implementation project(':storage')
1515

1616
implementation 'dev.keva:keva-ioc:1.0.0'
1717

core/src/main/java/dev/keva/core/command/impl/generic/Del.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.IntegerReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
import static dev.keva.core.command.annotation.ParamLength.Type.AT_LEAST;
1313

core/src/main/java/dev/keva/core/command/impl/generic/Dump.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.BulkReply;
99
import dev.keva.protocol.resp.reply.Reply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
import java.util.Base64;
1313

core/src/main/java/dev/keva/core/command/impl/generic/Exists.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.IntegerReply;
99
import dev.keva.protocol.resp.reply.Reply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
import static dev.keva.core.command.annotation.ParamLength.Type.AT_LEAST;
1313

core/src/main/java/dev/keva/core/command/impl/generic/Expire.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.IntegerReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010

1111
import java.nio.charset.StandardCharsets;
1212

core/src/main/java/dev/keva/core/command/impl/generic/ExpireAt.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.IntegerReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010

1111
import java.nio.charset.StandardCharsets;
1212

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package dev.keva.core.command.impl.generic;
2+
3+
import dev.keva.core.command.annotation.CommandImpl;
4+
import dev.keva.core.command.annotation.Execute;
5+
import dev.keva.core.command.annotation.ParamLength;
6+
import dev.keva.core.exception.CommandException;
7+
import dev.keva.ioc.annotation.Autowired;
8+
import dev.keva.ioc.annotation.Component;
9+
import dev.keva.protocol.resp.reply.BulkReply;
10+
import dev.keva.protocol.resp.reply.MultiBulkReply;
11+
import dev.keva.storage.KevaDatabase;
12+
13+
import java.nio.charset.StandardCharsets;
14+
import java.util.Set;
15+
16+
@Component
17+
@CommandImpl("keys")
18+
@ParamLength(1)
19+
public class Key {
20+
private final KevaDatabase database;
21+
22+
@Autowired
23+
public Key(KevaDatabase database) {
24+
this.database = database;
25+
}
26+
27+
@Execute
28+
public MultiBulkReply execute(byte[] key) {
29+
String keyStr = new String(key, StandardCharsets.UTF_8);
30+
if (!keyStr.equals("*")) {
31+
throw new CommandException("Only support * pattern for now");
32+
}
33+
Set<byte[]> keys = database.keySet();
34+
BulkReply[] replies = new BulkReply[keys.size()];
35+
int i = 0;
36+
for (byte[] k : keys) {
37+
replies[i++] = new BulkReply(k);
38+
}
39+
return new MultiBulkReply(replies);
40+
}
41+
}

core/src/main/java/dev/keva/core/command/impl/generic/Rename.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.StatusReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
@Component
1313
@CommandImpl("rename")

core/src/main/java/dev/keva/core/command/impl/generic/Restore.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import dev.keva.protocol.resp.reply.ErrorReply;
99
import dev.keva.protocol.resp.reply.Reply;
1010
import dev.keva.protocol.resp.reply.StatusReply;
11-
import dev.keva.store.KevaDatabase;
11+
import dev.keva.storage.KevaDatabase;
1212

1313
import java.math.BigInteger;
1414
import java.util.Base64;

core/src/main/java/dev/keva/core/command/impl/generic/Type.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.StatusReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010
import org.apache.commons.lang3.SerializationException;
1111
import org.apache.commons.lang3.SerializationUtils;
1212

core/src/main/java/dev/keva/core/command/impl/hash/HDel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.IntegerReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
@Component
1313
@CommandImpl("hdel")

core/src/main/java/dev/keva/core/command/impl/hash/HExists.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.IntegerReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010

1111
@Component
1212
@CommandImpl("hexists")

core/src/main/java/dev/keva/core/command/impl/hash/HGet.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.BulkReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010

1111
@Component
1212
@CommandImpl("hget")

core/src/main/java/dev/keva/core/command/impl/hash/HGetAll.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.BulkReply;
99
import dev.keva.protocol.resp.reply.MultiBulkReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
@Component
1313
@CommandImpl("hgetall")

core/src/main/java/dev/keva/core/command/impl/hash/HKeys.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.BulkReply;
99
import dev.keva.protocol.resp.reply.MultiBulkReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111
import dev.keva.util.hashbytes.BytesKey;
1212
import dev.keva.util.hashbytes.BytesValue;
13-
import org.apache.commons.lang3.SerializationUtils;
1413

1514
import java.util.HashMap;
1615
import java.util.Map;

core/src/main/java/dev/keva/core/command/impl/hash/HLen.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.IntegerReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010

1111
@Component
1212
@CommandImpl("hlen")

core/src/main/java/dev/keva/core/command/impl/hash/HSet.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.IntegerReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
@Component
1313
@CommandImpl("hset")

core/src/main/java/dev/keva/core/command/impl/hash/HStrLen.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.IntegerReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010

1111
@Component
1212
@CommandImpl("hstrlen")

core/src/main/java/dev/keva/core/command/impl/hash/HVals.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.BulkReply;
99
import dev.keva.protocol.resp.reply.MultiBulkReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111
import dev.keva.util.hashbytes.BytesKey;
1212
import dev.keva.util.hashbytes.BytesValue;
13-
import org.apache.commons.lang3.SerializationUtils;
1413

1514
import java.util.HashMap;
1615
import java.util.Map;

core/src/main/java/dev/keva/core/command/impl/hash/HashBase.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package dev.keva.core.command.impl.hash;
22

3-
import dev.keva.store.KevaDatabase;
3+
import dev.keva.storage.KevaDatabase;
44
import dev.keva.util.hashbytes.BytesKey;
55
import dev.keva.util.hashbytes.BytesValue;
66
import org.apache.commons.lang3.SerializationUtils;

core/src/main/java/dev/keva/core/command/impl/list/LIndex.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.BulkReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010
import dev.keva.util.hashbytes.BytesValue;
1111

1212
import java.util.LinkedList;

core/src/main/java/dev/keva/core/command/impl/list/LLen.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.IntegerReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010
import dev.keva.util.hashbytes.BytesValue;
1111

1212
import java.util.LinkedList;

core/src/main/java/dev/keva/core/command/impl/list/LPop.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import dev.keva.protocol.resp.reply.BulkReply;
1010
import dev.keva.protocol.resp.reply.MultiBulkReply;
1111
import dev.keva.protocol.resp.reply.Reply;
12-
import dev.keva.store.KevaDatabase;
12+
import dev.keva.storage.KevaDatabase;
1313

1414
@Component
1515
@CommandImpl("lpop")

core/src/main/java/dev/keva/core/command/impl/list/LPush.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.IntegerReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
import java.util.Arrays;
1313

core/src/main/java/dev/keva/core/command/impl/list/LRange.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import dev.keva.protocol.resp.reply.BulkReply;
99
import dev.keva.protocol.resp.reply.MultiBulkReply;
1010
import dev.keva.protocol.resp.reply.Reply;
11-
import dev.keva.store.KevaDatabase;
11+
import dev.keva.storage.KevaDatabase;
1212

1313
@Component
1414
@CommandImpl("lrange")

core/src/main/java/dev/keva/core/command/impl/list/LRem.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.IntegerReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
@Component
1313
@CommandImpl("lrem")

core/src/main/java/dev/keva/core/command/impl/list/LSet.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.StatusReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
@Component
1313
@CommandImpl("lset")

core/src/main/java/dev/keva/core/command/impl/list/ListBase.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package dev.keva.core.command.impl.list;
22

3-
import dev.keva.store.KevaDatabase;
3+
import dev.keva.storage.KevaDatabase;
44
import dev.keva.util.hashbytes.BytesValue;
55
import org.apache.commons.lang3.SerializationUtils;
66

core/src/main/java/dev/keva/core/command/impl/list/RPop.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import dev.keva.protocol.resp.reply.BulkReply;
1010
import dev.keva.protocol.resp.reply.MultiBulkReply;
1111
import dev.keva.protocol.resp.reply.Reply;
12-
import dev.keva.store.KevaDatabase;
12+
import dev.keva.storage.KevaDatabase;
1313

1414
@Component
1515
@CommandImpl("rpop")

core/src/main/java/dev/keva/core/command/impl/list/RPush.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.IntegerReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
import java.util.Arrays;
1313

core/src/main/java/dev/keva/core/command/impl/server/FlushDB.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.StatusReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010

1111
@Component
1212
@CommandImpl("flushdb")

core/src/main/java/dev/keva/core/command/impl/set/SAdd.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Autowired;
88
import dev.keva.ioc.annotation.Component;
99
import dev.keva.protocol.resp.reply.IntegerReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
import java.util.Arrays;
1313

core/src/main/java/dev/keva/core/command/impl/set/SCard.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import dev.keva.ioc.annotation.Autowired;
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.IntegerReply;
9-
import dev.keva.store.KevaDatabase;
9+
import dev.keva.storage.KevaDatabase;
1010

1111
@Component
1212
@CommandImpl("scard")

core/src/main/java/dev/keva/core/command/impl/set/SDiff.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import dev.keva.ioc.annotation.Component;
88
import dev.keva.protocol.resp.reply.BulkReply;
99
import dev.keva.protocol.resp.reply.MultiBulkReply;
10-
import dev.keva.store.KevaDatabase;
10+
import dev.keva.storage.KevaDatabase;
1111

1212
@Component
1313
@CommandImpl("sdiff")

0 commit comments

Comments
 (0)