Skip to content

Commit 7410f5d

Browse files
committed
Polishing #1502
Consistently use lowercase for nomkstream to align with XGroupCreateArgs. Introduce nomkstream() factory method. Tweak Javadoc, simplify tests. Original pull request: #1504.
1 parent 1a1e0be commit 7410f5d

File tree

2 files changed

+41
-24
lines changed

2 files changed

+41
-24
lines changed

src/main/java/io/lettuce/core/XAddArgs.java

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class XAddArgs {
3737

3838
private boolean approximateTrimming;
3939

40-
private boolean noMkStream;
40+
private boolean nomkstream;
4141

4242
/**
4343
* Builder entry points for {@link XAddArgs}.
@@ -60,6 +60,17 @@ public static XAddArgs maxlen(long count) {
6060
return new XAddArgs().maxlen(count);
6161
}
6262

63+
/**
64+
* Creates new {@link XAddArgs} and setting {@literal NOMKSTREAM}.
65+
*
66+
* @return new {@link XAddArgs} with {@literal NOMKSTREAM} set.
67+
* @see XAddArgs#nomkstream()
68+
* @since 6.1
69+
*/
70+
public static XAddArgs nomkstream() {
71+
return new XAddArgs().nomkstream();
72+
}
73+
6374
}
6475

6576
/**
@@ -112,25 +123,25 @@ public XAddArgs approximateTrimming(boolean approximateTrimming) {
112123
}
113124

114125
/**
115-
* Not to create new stream by default.
126+
* Do add the message if the stream does not already exist.
116127
*
117128
* @return {@code this}
118129
* @since 6.1
119130
*/
120-
public XAddArgs noMkStream() {
121-
return noMkStream(true);
131+
public XAddArgs nomkstream() {
132+
return nomkstream(true);
122133
}
123134

124135
/**
125-
* Not to create new stream by default.
136+
* Do add the message if the stream does not already exist.
126137
*
127-
* @param noMkStream {@code true} to apply not to create new stream by default.
138+
* @param nomkstream {@code true} to not create a stream if it does not already exist.
128139
* @return {@code this}
129140
* @since 6.1
130141
*/
131-
public XAddArgs noMkStream(boolean noMkStream) {
142+
public XAddArgs nomkstream(boolean nomkstream) {
132143

133-
this.noMkStream = noMkStream;
144+
this.nomkstream = nomkstream;
134145
return this;
135146
}
136147

@@ -147,7 +158,7 @@ public <K, V> void build(CommandArgs<K, V> args) {
147158
args.add(maxlen);
148159
}
149160

150-
if (noMkStream) {
161+
if (nomkstream) {
151162
args.add(CommandKeyword.NOMKSTREAM);
152163
}
153164

src/test/java/io/lettuce/core/commands/StreamCommandIntegrationTests.java

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,16 @@
1515
*/
1616
package io.lettuce.core.commands;
1717

18-
import static io.lettuce.core.protocol.CommandType.XINFO;
19-
import static org.assertj.core.api.Assertions.assertThat;
18+
import static io.lettuce.core.protocol.CommandType.*;
19+
import static org.assertj.core.api.Assertions.*;
2020

2121
import java.time.Instant;
22-
import java.util.*;
22+
import java.util.ArrayList;
23+
import java.util.Collections;
24+
import java.util.HashMap;
25+
import java.util.LinkedHashMap;
26+
import java.util.List;
27+
import java.util.Map;
2328

2429
import javax.inject.Inject;
2530

@@ -28,7 +33,16 @@
2833
import org.junit.jupiter.api.TestInstance;
2934
import org.junit.jupiter.api.extension.ExtendWith;
3035

31-
import io.lettuce.core.*;
36+
import io.lettuce.core.Consumer;
37+
import io.lettuce.core.Limit;
38+
import io.lettuce.core.Range;
39+
import io.lettuce.core.StreamMessage;
40+
import io.lettuce.core.TestSupport;
41+
import io.lettuce.core.TransactionResult;
42+
import io.lettuce.core.XAddArgs;
43+
import io.lettuce.core.XClaimArgs;
44+
import io.lettuce.core.XGroupCreateArgs;
45+
import io.lettuce.core.XReadArgs;
3246
import io.lettuce.core.XReadArgs.StreamOffset;
3347
import io.lettuce.core.api.sync.RedisCommands;
3448
import io.lettuce.core.codec.StringCodec;
@@ -93,20 +107,12 @@ void xaddMaxLenEfficientTrimming() {
93107
}
94108

95109
@Test
96-
void xaddMaxLenEfficientTrimmingNoMkStream() {
110+
@EnabledOnCommand("LMOVE") // Redis 6.2
111+
void xaddWithNomkstream() {
97112

98-
Map<String, String> body = Collections.singletonMap("foo", "bar");
99-
String id = redis.xadd(key, XAddArgs.Builder.maxlen(5).approximateTrimming().noMkStream(), body);
113+
String id = redis.xadd(key, XAddArgs.Builder.nomkstream(), Collections.singletonMap("foo", "bar"));
100114
assertThat(id).isNull();
101115
assertThat(redis.exists(key)).isEqualTo(0L);
102-
103-
id = redis.xadd(key, XAddArgs.Builder.maxlen(5).approximateTrimming(), body);
104-
assertThat(id).isNotNull();
105-
assertThat(redis.exists(key)).isEqualTo(1L);
106-
107-
List<StreamMessage<String, String>> messages = redis.xrange(key, Range.unbounded());
108-
assertThat(messages.size()).isEqualTo(1);
109-
assertThat(messages.get(0).getBody()).isEqualTo(body);
110116
}
111117

112118
@Test

0 commit comments

Comments
 (0)