From 22fdaba350cedfcb48d35fa6ebaa4c9896057aa3 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 8 Feb 2019 14:04:44 +0100 Subject: [PATCH] DATAREDIS-888 - Use Lettuce's read-only Partition view for node conversion. We now use the read-only view of Lettuce's Partition object to convert Lettuce RedisClusterNode objects into Spring Data RedisClusterNode. The read-only view is atomic and does not require external synchronization. Original Pull Request: #384 --- .../data/redis/connection/lettuce/LettuceConverters.java | 2 +- .../lettuce/LettuceClusterConnectionUnitTests.java | 6 +++--- .../connection/lettuce/LettuceConvertersUnitTests.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConverters.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConverters.java index 823529d7a..f1952abab 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConverters.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConverters.java @@ -223,7 +223,7 @@ abstract public class LettuceConverters extends Converters { return Collections.emptyList(); } List nodes = new ArrayList<>(); - for (io.lettuce.core.cluster.models.partitions.RedisClusterNode node : source.getPartitions()) { + for (io.lettuce.core.cluster.models.partitions.RedisClusterNode node : source) { nodes.add(CLUSTER_NODE_TO_CLUSTER_NODE_CONVERTER.convert(node)); } diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnectionUnitTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnectionUnitTests.java index 3aef6b7f2..933909892 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnectionUnitTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnectionUnitTests.java @@ -102,9 +102,9 @@ public class LettuceClusterConnectionUnitTests { partition3.setFlags(Collections.singleton(NodeFlag.MASTER)); partition3.setUri(RedisURI.create("redis://" + CLUSTER_HOST + ":" + MASTER_NODE_3_PORT)); - partitions.addPartition(partition1); - partitions.addPartition(partition2); - partitions.addPartition(partition3); + partitions.add(partition1); + partitions.add(partition2); + partitions.add(partition3); when(resourceProvider.getResourceForSpecificNode(CLUSTER_NODE_1)).thenReturn(clusterConnection1Mock); when(resourceProvider.getResourceForSpecificNode(CLUSTER_NODE_2)).thenReturn(clusterConnection2Mock); diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConvertersUnitTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConvertersUnitTests.java index 1c7ab543e..531e4a182 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConvertersUnitTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConvertersUnitTests.java @@ -88,7 +88,7 @@ public class LettuceConvertersUnitTests { partition.setUri(RedisURI.create("redis://" + CLUSTER_HOST + ":" + MASTER_NODE_1_PORT)); partition.setSlots(Arrays. asList(1, 2, 3, 4, 5)); - partitions.addPartition(partition); + partitions.add(partition); List nodes = LettuceConverters.partitionsToClusterNodes(partitions); assertThat(nodes.size(), is(1));