Skip to content

Commit b7e18eb

Browse files
author
李金松
committed
Merge branch 'master' into sentineledSlavePool
# Conflicts: # src/main/java/redis/clients/jedis/Protocol.java
2 parents f831e1a + 84ab6fd commit b7e18eb

38 files changed

+3459
-21
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-rc2-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>
@@ -284,7 +286,7 @@
284286
<artifactId>maven-surefire-plugin</artifactId>
285287
<version>${maven.surefire.version}</version>
286288
<configuration>
287-
<argLine>${JVM_OPTS}</argLine>
289+
<argLine>@{argLine} ${JVM_OPTS}</argLine>
288290
<systemPropertyVariables>
289291
<redis-hosts>${redis-hosts}</redis-hosts>
290292
</systemPropertyVariables>
@@ -349,8 +351,18 @@
349351
<configuration>
350352
<configFile>${project.basedir}/hbase-formatter.xml</configFile>
351353
<directories>
352-
<directory>${project.basedir}/src/main/java/redis/clients/jedis/annots</directory>
354+
<directory>${project.basedir}</directory>
353355
</directories>
356+
<includes>
357+
<!-- Specific files -->
358+
<include>src/main/java/redis/clients/jedis/annots/*.java</include>
359+
<include>src/main/java/redis/clients/jedis/resps/StreamEntryDeletionResult.java</include>
360+
<include>src/main/java/redis/clients/jedisargs/StreamDeletionPolicy.java</include>
361+
<include>src/test/java/redis/clients/jedis/commands/StreamsCommandsTestBase.java</include>
362+
<include>src/test/java/redis/clients/jedis/commands/jedis/ClusterStreamsCommandsTest.java</include>
363+
<include>src/test/java/redis/clients/jedis/commands/jedis/PooledStreamsCommandsTest.java</include>
364+
<include>src/test/java/redis/clients/jedis/resps/StreamEntryDeletionResultTest.java</include>
365+
</includes>
354366
</configuration>
355367
<executions>
356368
<execution>

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

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

1264+
public static final Builder<StreamEntryDeletionResult> STREAM_ENTRY_DELETION_RESULT = new Builder<StreamEntryDeletionResult>() {
1265+
@Override
1266+
public StreamEntryDeletionResult build(Object data) {
1267+
if (data == null) {
1268+
return null;
1269+
}
1270+
return StreamEntryDeletionResult.fromLong((Long) data);
1271+
}
1272+
1273+
@Override
1274+
public String toString() {
1275+
return "StreamEntryDeletionResult";
1276+
}
1277+
};
1278+
1279+
public static final Builder<List<StreamEntryDeletionResult>> STREAM_ENTRY_DELETION_RESULT_LIST = new Builder<List<StreamEntryDeletionResult>>() {
1280+
@Override
1281+
@SuppressWarnings("unchecked")
1282+
public List<StreamEntryDeletionResult> build(Object data) {
1283+
if (data == null) {
1284+
return null;
1285+
}
1286+
List<Object> objectList = (List<Object>) data;
1287+
List<StreamEntryDeletionResult> responses = new ArrayList<>(objectList.size());
1288+
for (Object object : objectList) {
1289+
responses.add(STREAM_ENTRY_DELETION_RESULT.build(object));
1290+
}
1291+
return responses;
1292+
}
1293+
1294+
@Override
1295+
public String toString() {
1296+
return "List<StreamEntryDeletionResult>";
1297+
}
1298+
};
1299+
12641300
public static final Builder<StreamEntry> STREAM_ENTRY = new Builder<StreamEntry>() {
12651301
@Override
12661302
@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));

0 commit comments

Comments
 (0)