Skip to content

Commit 2711181

Browse files
Polishing.
Add explicit cast update documentation and rename SubcriptionListener instance to NO_OP_... Fix Java 16 compile error. Original Pull Request: spring-projects#2052
1 parent 980034c commit 2711181

10 files changed

+19
-16
lines changed

src/main/java/org/springframework/data/redis/connection/ReactivePubSubCommands.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ public interface ReactivePubSubCommands {
3434

3535
/**
3636
* Creates a subscription for this connection. Connections can have multiple {@link ReactiveSubscription}s.
37+
* <p/>
38+
* Use {@link #createSubscription(SubscriptionListener)} to get notified when the subscription completes.
3739
*
3840
* @return the subscription.
3941
*/
4042
default Mono<ReactiveSubscription> createSubscription() {
41-
return createSubscription(SubscriptionListener.EMPTY);
43+
return createSubscription(SubscriptionListener.NO_OP_SUBSCRIPTION_LISTENER);
4244
}
4345

4446
/**

src/main/java/org/springframework/data/redis/connection/SubscriptionListener.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public interface SubscriptionListener {
2929
/**
3030
* Empty {@link SubscriptionListener}.
3131
*/
32-
SubscriptionListener EMPTY = new SubscriptionListener() {};
32+
SubscriptionListener NO_OP_SUBSCRIPTION_LISTENER = new SubscriptionListener() {};
3333

3434
/**
3535
* Notification when Redis has confirmed a channel subscription.

src/main/java/org/springframework/data/redis/connection/jedis/JedisMessageListener.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@ class JedisMessageListener extends BinaryJedisPubSub {
3434
private final SubscriptionListener subscriptionListener;
3535

3636
JedisMessageListener(MessageListener listener) {
37+
3738
Assert.notNull(listener, "MessageListener is required");
39+
3840
this.listener = listener;
3941
this.subscriptionListener = listener instanceof SubscriptionListener ? (SubscriptionListener) listener
40-
: SubscriptionListener.EMPTY;
42+
: SubscriptionListener.NO_OP_SUBSCRIPTION_LISTENER;
4143
}
4244

4345
public void onMessage(byte[] channel, byte[] message) {

src/main/java/org/springframework/data/redis/connection/jedis/JedisSubscription.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class JedisSubscription extends AbstractSubscription {
3030

3131
private final BinaryJedisPubSub jedisPubSub;
3232

33-
JedisSubscription(MessageListener listener, JedisMessageListener jedisPubSub, @Nullable byte[][] channels,
33+
JedisSubscription(MessageListener listener, BinaryJedisPubSub jedisPubSub, @Nullable byte[][] channels,
3434
@Nullable byte[][] patterns) {
3535
super(listener, channels, patterns);
3636
this.jedisPubSub = jedisPubSub;

src/main/java/org/springframework/data/redis/connection/lettuce/LettuceByteBufferPubSubListenerWrapper.java

+2-9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.nio.ByteBuffer;
2121

22+
import org.springframework.data.redis.util.ByteUtils;
2223
import org.springframework.lang.Nullable;
2324
import org.springframework.util.Assert;
2425

@@ -99,14 +100,6 @@ private static byte[] getBytes(@Nullable ByteBuffer byteBuffer) {
99100
return new byte[0];
100101
}
101102

102-
if (byteBuffer.hasArray()) {
103-
return byteBuffer.array();
104-
}
105-
106-
byteBuffer.mark();
107-
byte[] bytes = new byte[byteBuffer.remaining()];
108-
byteBuffer.get(bytes);
109-
byteBuffer.reset();
110-
return bytes;
103+
return ByteUtils.getBytes(byteBuffer);
111104
}
112105
}

src/main/java/org/springframework/data/redis/connection/lettuce/LettuceSubscription.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ protected LettuceSubscription(MessageListener listener,
6060

6161
this.connection = pubsubConnection;
6262
this.listener = new LettuceMessageListener(listener,
63-
listener instanceof SubscriptionListener ? (SubscriptionListener) listener : SubscriptionListener.EMPTY);
63+
listener instanceof SubscriptionListener ? (SubscriptionListener) listener : SubscriptionListener.NO_OP_SUBSCRIPTION_LISTENER);
6464
this.connectionProvider = connectionProvider;
6565
this.pubsub = connection.sync();
6666
this.pubSubAsync = connection.async();

src/main/java/org/springframework/data/redis/listener/ReactiveRedisMessageListenerContainer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ public Flux<Message<String, String>> receive(Iterable<? extends Topic> topics,
261261
*/
262262
public <C, B> Flux<Message<C, B>> receive(Iterable<? extends Topic> topics, SerializationPair<C> channelSerializer,
263263
SerializationPair<B> messageSerializer) {
264-
return receive(topics, channelSerializer, messageSerializer, SubscriptionListener.EMPTY);
264+
return receive(topics, channelSerializer, messageSerializer, SubscriptionListener.NO_OP_SUBSCRIPTION_LISTENER);
265265
}
266266

267267
/**

src/main/java/org/springframework/data/redis/util/ByteUtils.java

+4
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ public static byte[] getBytes(ByteBuffer byteBuffer) {
139139

140140
Assert.notNull(byteBuffer, "ByteBuffer must not be null!");
141141

142+
if (byteBuffer.hasArray()) {
143+
return byteBuffer.array();
144+
}
145+
142146
ByteBuffer duplicate = byteBuffer.duplicate();
143147
byte[] bytes = new byte[duplicate.remaining()];
144148
duplicate.get(bytes);

src/test/java/org/springframework/data/redis/connection/jedis/JedisSubscriptionUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
@ExtendWith(MockitoExtension.class)
4040
class JedisSubscriptionUnitTests {
4141

42-
@Mock JedisMessageListener jedisPubSub;
42+
@Mock BinaryJedisPubSub jedisPubSub;
4343

4444
@Mock MessageListener listener;
4545

src/test/java/org/springframework/data/redis/core/ReactiveRedisTemplateIntegrationTests.java

+2
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ void listenToLaterChannelShouldReceiveChannelMessagesCorrectly() {
465465

466466
redisTemplate.listenToChannelLater(channel) //
467467
.doOnNext(it -> redisTemplate.convertAndSend(channel, message).subscribe()).flatMapMany(Function.identity()) //
468+
.cast(Message.class) // why? java16 why?
468469
.as(StepVerifier::create) //
469470
.assertNext(received -> {
470471

@@ -515,6 +516,7 @@ void listenToPatternLaterShouldReceiveChannelMessagesCorrectly() {
515516

516517
stream.doOnNext(it -> redisTemplate.convertAndSend(channel, message).subscribe()) //
517518
.flatMapMany(Function.identity()) //
519+
.cast(Message.class) // why? java16 why?
518520
.as(StepVerifier::create) //
519521
.assertNext(received -> {
520522

0 commit comments

Comments
 (0)