Skip to content

Commit 2f80150

Browse files
authored
Merge branch 'master' into feature/vector-set
2 parents 9a42d4e + 9427e02 commit 2f80150

30 files changed

+2312
-13
lines changed

.github/codecov.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,20 @@
1+
codecov: # see https://docs.codecov.com/docs/codecovyml-reference
2+
branch: master
3+
4+
coverage:
5+
status: # see https://docs.codecov.com/docs/commit-status
6+
project:
7+
default:
8+
target: auto # minimum coverage ratio that the commit must meet to be considered a success
9+
threshold: 5 # Allow the coverage to drop by <number>%, and posting a success status
10+
branches:
11+
- master
12+
- '[0-9].*'
13+
14+
comment: # see https://docs.codecov.com/docs/pull-request-comments
15+
layout: "condensed_header, condensed_files, condensed_footer"
16+
behavior: new
17+
require_changes: true
18+
119
ignore:
220
- "**/*.txt"

.github/workflows/format_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
run: |
3232
echo "::group::Changed Java Files"
3333
echo Base Branch: ${{ github.event.pull_request.base.ref }}
34-
CHANGED_FILES=$(git diff --name-only origin/${{ github.event.pull_request.base.ref }} | grep '\.java$' || true)
34+
CHANGED_FILES=$(git diff --name-only --diff-filter=A origin/${{ github.event.pull_request.base.ref }} | grep '\.java$' || true)
3535
echo "$CHANGED_FILES"
3636
echo "::endgroup::"
3737
# Write the multiline content to a file

.github/workflows/test-on-docker.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
fail-fast: false
3737
matrix:
3838
redis_version:
39+
- "8.2"
3940
- "8.0"
4041
- "7.4"
4142
- "7.2"

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
PATH := ./redis-git/src:${PATH}
22

33
# Supported test env versions
4-
SUPPORTED_TEST_ENV_VERSIONS := 8.0 7.4 7.2 6.2
5-
DEFAULT_TEST_ENV_VERSION := 8.0
4+
SUPPORTED_TEST_ENV_VERSIONS := 8.2 8.0 7.4 7.2 6.2
5+
DEFAULT_TEST_ENV_VERSION := 8.2
66
REDIS_ENV_WORK_DIR := $(or ${REDIS_ENV_WORK_DIR},/tmp/redis-env-work)
77

88
define REDIS1_CONF
@@ -473,7 +473,7 @@ start: cleanup compile-module
473473
echo "$$REDIS_UDS" | redis-server -
474474
echo "$$REDIS_UNAVAILABLE_CONF" | redis-server -
475475
redis-cli -a cluster --cluster create 127.0.0.1:7479 127.0.0.1:7480 127.0.0.1:7481 --cluster-yes
476-
docker run -p 6479:6379 --name jedis-stack -e PORT=6379 -d redislabs/client-libs-test:8.0.2
476+
docker run -p 6479:6379 --name jedis-stack -e PORT=6379 -d redislabs/client-libs-test:8.2-RC1-pre
477477

478478
cleanup:
479479
- rm -vf /tmp/redis_cluster_node*.conf 2>/dev/null

pom.xml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@
6060
<jackson.version>2.19.2</jackson.version>
6161
<maven.surefire.version>3.5.3</maven.surefire.version>
6262
<junit.version>5.13.3</junit.version>
63+
<!-- Default JVM options for tests -->
64+
<JVM_OPTS></JVM_OPTS>
6365
</properties>
6466

6567
<dependencyManagement>
@@ -270,7 +272,7 @@
270272
<artifactId>maven-surefire-plugin</artifactId>
271273
<version>${maven.surefire.version}</version>
272274
<configuration>
273-
<argLine>${JVM_OPTS}</argLine>
275+
<argLine>@{argLine} ${JVM_OPTS}</argLine>
274276
<systemPropertyVariables>
275277
<redis-hosts>${redis-hosts}</redis-hosts>
276278
</systemPropertyVariables>
@@ -335,8 +337,18 @@
335337
<configuration>
336338
<configFile>${project.basedir}/hbase-formatter.xml</configFile>
337339
<directories>
338-
<directory>${project.basedir}/src/main/java/redis/clients/jedis/annots</directory>
340+
<directory>${project.basedir}</directory>
339341
</directories>
342+
<includes>
343+
<!-- Specific files -->
344+
<include>src/main/java/redis/clients/jedis/annots/*.java</include>
345+
<include>src/main/java/redis/clients/jedis/resps/StreamEntryDeletionResult.java</include>
346+
<include>src/main/java/redis/clients/jedisargs/StreamDeletionPolicy.java</include>
347+
<include>src/test/java/redis/clients/jedis/commands/StreamsCommandsTestBase.java</include>
348+
<include>src/test/java/redis/clients/jedis/commands/jedis/ClusterStreamsCommandsTest.java</include>
349+
<include>src/test/java/redis/clients/jedis/commands/jedis/PooledStreamsCommandsTest.java</include>
350+
<include>src/test/java/redis/clients/jedis/resps/StreamEntryDeletionResultTest.java</include>
351+
</includes>
340352
</configuration>
341353
<executions>
342354
<execution>

src/main/java/redis/clients/jedis/BuilderFactory.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1320,6 +1320,42 @@ public List<StreamEntryID> build(Object data) {
13201320
}
13211321
};
13221322

1323+
public static final Builder<StreamEntryDeletionResult> STREAM_ENTRY_DELETION_RESULT = new Builder<StreamEntryDeletionResult>() {
1324+
@Override
1325+
public StreamEntryDeletionResult build(Object data) {
1326+
if (data == null) {
1327+
return null;
1328+
}
1329+
return StreamEntryDeletionResult.fromLong((Long) data);
1330+
}
1331+
1332+
@Override
1333+
public String toString() {
1334+
return "StreamEntryDeletionResult";
1335+
}
1336+
};
1337+
1338+
public static final Builder<List<StreamEntryDeletionResult>> STREAM_ENTRY_DELETION_RESULT_LIST = new Builder<List<StreamEntryDeletionResult>>() {
1339+
@Override
1340+
@SuppressWarnings("unchecked")
1341+
public List<StreamEntryDeletionResult> build(Object data) {
1342+
if (data == null) {
1343+
return null;
1344+
}
1345+
List<Object> objectList = (List<Object>) data;
1346+
List<StreamEntryDeletionResult> responses = new ArrayList<>(objectList.size());
1347+
for (Object object : objectList) {
1348+
responses.add(STREAM_ENTRY_DELETION_RESULT.build(object));
1349+
}
1350+
return responses;
1351+
}
1352+
1353+
@Override
1354+
public String toString() {
1355+
return "List<StreamEntryDeletionResult>";
1356+
}
1357+
};
1358+
13231359
public static final Builder<StreamEntry> STREAM_ENTRY = new Builder<StreamEntry>() {
13241360
@Override
13251361
@SuppressWarnings("unchecked")

src/main/java/redis/clients/jedis/CommandObjects.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2626,10 +2626,26 @@ public final CommandObject<Long> xack(String key, String group, StreamEntryID...
26262626
return new CommandObject<>(commandArguments(XACK).key(key).add(group).addObjects((Object[]) ids), BuilderFactory.LONG);
26272627
}
26282628

2629+
public final CommandObject<List<StreamEntryDeletionResult>> xackdel(String key, String group, StreamEntryID... ids) {
2630+
return new CommandObject<>(commandArguments(XACKDEL).key(key).add(group).add("IDS").add(ids.length).addObjects((Object[]) ids), BuilderFactory.STREAM_ENTRY_DELETION_RESULT_LIST);
2631+
}
2632+
2633+
public final CommandObject<List<StreamEntryDeletionResult>> xackdel(String key, String group, StreamDeletionPolicy trimMode, StreamEntryID... ids) {
2634+
return new CommandObject<>(commandArguments(XACKDEL).key(key).add(group).add(trimMode).add("IDS").add(ids.length).addObjects((Object[]) ids), BuilderFactory.STREAM_ENTRY_DELETION_RESULT_LIST);
2635+
}
2636+
26292637
public final CommandObject<Long> xack(byte[] key, byte[] group, byte[]... ids) {
26302638
return new CommandObject<>(commandArguments(XACK).key(key).add(group).addObjects((Object[]) ids), BuilderFactory.LONG);
26312639
}
26322640

2641+
public final CommandObject<List<StreamEntryDeletionResult>> xackdel(byte[] key, byte[] group, byte[]... ids) {
2642+
return new CommandObject<>(commandArguments(XACKDEL).key(key).add(group).add("IDS").add(ids.length).addObjects((Object[]) ids), BuilderFactory.STREAM_ENTRY_DELETION_RESULT_LIST);
2643+
}
2644+
2645+
public final CommandObject<List<StreamEntryDeletionResult>> xackdel(byte[] key, byte[] group, StreamDeletionPolicy trimMode, byte[]... ids) {
2646+
return new CommandObject<>(commandArguments(XACKDEL).key(key).add(group).add(trimMode).add("IDS").add(ids.length).addObjects((Object[]) ids), BuilderFactory.STREAM_ENTRY_DELETION_RESULT_LIST);
2647+
}
2648+
26332649
public final CommandObject<String> xgroupCreate(String key, String groupName, StreamEntryID id, boolean makeStream) {
26342650
CommandArguments args = commandArguments(XGROUP).add(CREATE).key(key)
26352651
.add(groupName).add(id == null ? "0-0" : id);
@@ -2687,6 +2703,14 @@ public final CommandObject<Long> xdel(String key, StreamEntryID... ids) {
26872703
return new CommandObject<>(commandArguments(XDEL).key(key).addObjects((Object[]) ids), BuilderFactory.LONG);
26882704
}
26892705

2706+
public final CommandObject<List<StreamEntryDeletionResult>> xdelex(String key, StreamEntryID... ids) {
2707+
return new CommandObject<>(commandArguments(XDELEX).key(key).add("IDS").add(ids.length).addObjects((Object[]) ids), BuilderFactory.STREAM_ENTRY_DELETION_RESULT_LIST);
2708+
}
2709+
2710+
public final CommandObject<List<StreamEntryDeletionResult>> xdelex(String key, StreamDeletionPolicy trimMode, StreamEntryID... ids) {
2711+
return new CommandObject<>(commandArguments(XDELEX).key(key).add(trimMode).add("IDS").add(ids.length).addObjects((Object[]) ids), BuilderFactory.STREAM_ENTRY_DELETION_RESULT_LIST);
2712+
}
2713+
26902714
public final CommandObject<Long> xtrim(String key, long maxLen, boolean approximate) {
26912715
CommandArguments args = commandArguments(XTRIM).key(key).add(MAXLEN);
26922716
if (approximate) args.add(Protocol.BYTES_TILDE);
@@ -2702,6 +2726,14 @@ public final CommandObject<Long> xdel(byte[] key, byte[]... ids) {
27022726
return new CommandObject<>(commandArguments(XDEL).key(key).addObjects((Object[]) ids), BuilderFactory.LONG);
27032727
}
27042728

2729+
public final CommandObject<List<StreamEntryDeletionResult>> xdelex(byte[] key, byte[]... ids) {
2730+
return new CommandObject<>(commandArguments(XDELEX).key(key).add("IDS").add(ids.length).addObjects((Object[]) ids), BuilderFactory.STREAM_ENTRY_DELETION_RESULT_LIST);
2731+
}
2732+
2733+
public final CommandObject<List<StreamEntryDeletionResult>> xdelex(byte[] key, StreamDeletionPolicy trimMode, byte[]... ids) {
2734+
return new CommandObject<>(commandArguments(XDELEX).key(key).add(trimMode).add("IDS").add(ids.length).addObjects((Object[]) ids), BuilderFactory.STREAM_ENTRY_DELETION_RESULT_LIST);
2735+
}
2736+
27052737
public final CommandObject<Long> xtrim(byte[] key, long maxLen, boolean approximateLength) {
27062738
CommandArguments args = commandArguments(XTRIM).key(key).add(MAXLEN);
27072739
if (approximateLength) args.add(Protocol.BYTES_TILDE);

src/main/java/redis/clients/jedis/Jedis.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4866,6 +4866,18 @@ public long xack(byte[] key, byte[] group, byte[]... ids) {
48664866
return connection.executeCommand(commandObjects.xack(key, group, ids));
48674867
}
48684868

4869+
@Override
4870+
public List<StreamEntryDeletionResult> xackdel(byte[] key, byte[] group, byte[]... ids) {
4871+
checkIsInMultiOrPipeline();
4872+
return connection.executeCommand(commandObjects.xackdel(key, group, ids));
4873+
}
4874+
4875+
@Override
4876+
public List<StreamEntryDeletionResult> xackdel(byte[] key, byte[] group, StreamDeletionPolicy trimMode, byte[]... ids) {
4877+
checkIsInMultiOrPipeline();
4878+
return connection.executeCommand(commandObjects.xackdel(key, group, trimMode, ids));
4879+
}
4880+
48694881
@Override
48704882
public String xgroupCreate(byte[] key, byte[] consumer, byte[] id, boolean makeStream) {
48714883
checkIsInMultiOrPipeline();
@@ -4902,6 +4914,18 @@ public long xdel(byte[] key, byte[]... ids) {
49024914
return connection.executeCommand(commandObjects.xdel(key, ids));
49034915
}
49044916

4917+
@Override
4918+
public List<StreamEntryDeletionResult> xdelex(byte[] key, byte[]... ids) {
4919+
checkIsInMultiOrPipeline();
4920+
return connection.executeCommand(commandObjects.xdelex(key, ids));
4921+
}
4922+
4923+
@Override
4924+
public List<StreamEntryDeletionResult> xdelex(byte[] key, StreamDeletionPolicy trimMode, byte[]... ids) {
4925+
checkIsInMultiOrPipeline();
4926+
return connection.executeCommand(commandObjects.xdelex(key, trimMode, ids));
4927+
}
4928+
49054929
@Override
49064930
public long xtrim(byte[] key, long maxLen, boolean approximateLength) {
49074931
checkIsInMultiOrPipeline();
@@ -9677,6 +9701,18 @@ public long xack(final String key, final String group, final StreamEntryID... id
96779701
return connection.executeCommand(commandObjects.xack(key, group, ids));
96789702
}
96799703

9704+
@Override
9705+
public List<StreamEntryDeletionResult> xackdel(final String key, final String group, final StreamEntryID... ids) {
9706+
checkIsInMultiOrPipeline();
9707+
return connection.executeCommand(commandObjects.xackdel(key, group, ids));
9708+
}
9709+
9710+
@Override
9711+
public List<StreamEntryDeletionResult> xackdel(final String key, final String group, final StreamDeletionPolicy trimMode, final StreamEntryID... ids) {
9712+
checkIsInMultiOrPipeline();
9713+
return connection.executeCommand(commandObjects.xackdel(key, group, trimMode, ids));
9714+
}
9715+
96809716
@Override
96819717
public String xgroupCreate(final String key, final String groupName, final StreamEntryID id,
96829718
final boolean makeStream) {
@@ -9714,6 +9750,18 @@ public long xdel(final String key, final StreamEntryID... ids) {
97149750
return connection.executeCommand(commandObjects.xdel(key, ids));
97159751
}
97169752

9753+
@Override
9754+
public List<StreamEntryDeletionResult> xdelex(final String key, final StreamEntryID... ids) {
9755+
checkIsInMultiOrPipeline();
9756+
return connection.executeCommand(commandObjects.xdelex(key, ids));
9757+
}
9758+
9759+
@Override
9760+
public List<StreamEntryDeletionResult> xdelex(final String key, final StreamDeletionPolicy trimMode, final StreamEntryID... ids) {
9761+
checkIsInMultiOrPipeline();
9762+
return connection.executeCommand(commandObjects.xdelex(key, trimMode, ids));
9763+
}
9764+
97179765
@Override
97189766
public long xtrim(final String key, final long maxLen, final boolean approximateLength) {
97199767
checkIsInMultiOrPipeline();

src/main/java/redis/clients/jedis/PipeliningBase.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1552,6 +1552,16 @@ public Response<Long> xack(String key, String group, StreamEntryID... ids) {
15521552
return appendCommand(commandObjects.xack(key, group, ids));
15531553
}
15541554

1555+
@Override
1556+
public Response<List<StreamEntryDeletionResult>> xackdel(String key, String group, StreamEntryID... ids) {
1557+
return appendCommand(commandObjects.xackdel(key, group, ids));
1558+
}
1559+
1560+
@Override
1561+
public Response<List<StreamEntryDeletionResult>> xackdel(String key, String group, StreamDeletionPolicy trimMode, StreamEntryID... ids) {
1562+
return appendCommand(commandObjects.xackdel(key, group, trimMode, ids));
1563+
}
1564+
15551565
@Override
15561566
public Response<String> xgroupCreate(String key, String groupName, StreamEntryID id, boolean makeStream) {
15571567
return appendCommand(commandObjects.xgroupCreate(key, groupName, id, makeStream));
@@ -1592,6 +1602,16 @@ public Response<Long> xdel(String key, StreamEntryID... ids) {
15921602
return appendCommand(commandObjects.xdel(key, ids));
15931603
}
15941604

1605+
@Override
1606+
public Response<List<StreamEntryDeletionResult>> xdelex(String key, StreamEntryID... ids) {
1607+
return appendCommand(commandObjects.xdelex(key, ids));
1608+
}
1609+
1610+
@Override
1611+
public Response<List<StreamEntryDeletionResult>> xdelex(String key, StreamDeletionPolicy trimMode, StreamEntryID... ids) {
1612+
return appendCommand(commandObjects.xdelex(key, trimMode, ids));
1613+
}
1614+
15951615
@Override
15961616
public Response<Long> xtrim(String key, long maxLen, boolean approximate) {
15971617
return appendCommand(commandObjects.xtrim(key, maxLen, approximate));
@@ -3264,6 +3284,16 @@ public Response<Long> xack(byte[] key, byte[] group, byte[]... ids) {
32643284
return appendCommand(commandObjects.xack(key, group, ids));
32653285
}
32663286

3287+
@Override
3288+
public Response<List<StreamEntryDeletionResult>> xackdel(byte[] key, byte[] group, byte[]... ids) {
3289+
return appendCommand(commandObjects.xackdel(key, group, ids));
3290+
}
3291+
3292+
@Override
3293+
public Response<List<StreamEntryDeletionResult>> xackdel(byte[] key, byte[] group, StreamDeletionPolicy trimMode, byte[]... ids) {
3294+
return appendCommand(commandObjects.xackdel(key, group, trimMode, ids));
3295+
}
3296+
32673297
@Override
32683298
public Response<String> xgroupCreate(byte[] key, byte[] groupName, byte[] id, boolean makeStream) {
32693299
return appendCommand(commandObjects.xgroupCreate(key, groupName, id, makeStream));
@@ -3294,6 +3324,16 @@ public Response<Long> xdel(byte[] key, byte[]... ids) {
32943324
return appendCommand(commandObjects.xdel(key, ids));
32953325
}
32963326

3327+
@Override
3328+
public Response<List<StreamEntryDeletionResult>> xdelex(byte[] key, byte[]... ids) {
3329+
return appendCommand(commandObjects.xdelex(key, ids));
3330+
}
3331+
3332+
@Override
3333+
public Response<List<StreamEntryDeletionResult>> xdelex(byte[] key, StreamDeletionPolicy trimMode, byte[]... ids) {
3334+
return appendCommand(commandObjects.xdelex(key, trimMode, ids));
3335+
}
3336+
32973337
@Override
32983338
public Response<Long> xtrim(byte[] key, long maxLen, boolean approximateLength) {
32993339
return appendCommand(commandObjects.xtrim(key, maxLen, approximateLength));

src/main/java/redis/clients/jedis/Protocol.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ public static enum Command implements ProtocolCommand {
305305
GEORADIUSBYMEMBER, GEORADIUSBYMEMBER_RO, // <-- geo
306306
PFADD, PFCOUNT, PFMERGE, // <-- hyper log log
307307
XADD, XLEN, XDEL, XTRIM, XRANGE, XREVRANGE, XREAD, XACK, XGROUP, XREADGROUP, XPENDING, XCLAIM,
308-
XAUTOCLAIM, XINFO, // <-- stream
308+
XAUTOCLAIM, XINFO, XDELEX, XACKDEL, // <-- stream
309309
EVAL, EVALSHA, SCRIPT, EVAL_RO, EVALSHA_RO, FUNCTION, FCALL, FCALL_RO, // <-- program
310310
SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB,
311311
SSUBSCRIBE, SUNSUBSCRIBE, SPUBLISH, // <-- pub sub

0 commit comments

Comments
 (0)