Merge branch '2.6.x' into 2.7.x

Closes gh-32836
pull/32861/head
Andy Wilkinson 2 years ago
commit 032487117b

@ -28,7 +28,6 @@ import org.springframework.data.redis.connection.RedisNode;
import org.springframework.data.redis.connection.RedisPassword; import org.springframework.data.redis.connection.RedisPassword;
import org.springframework.data.redis.connection.RedisSentinelConfiguration; import org.springframework.data.redis.connection.RedisSentinelConfiguration;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -145,9 +144,7 @@ abstract class RedisConnectionConfiguration {
List<RedisNode> nodes = new ArrayList<>(); List<RedisNode> nodes = new ArrayList<>();
for (String node : sentinel.getNodes()) { for (String node : sentinel.getNodes()) {
try { try {
String[] parts = StringUtils.split(node, ":"); nodes.add(RedisNode.fromString(node));
Assert.state(parts.length == 2, "Must be defined as 'host:port'");
nodes.add(new RedisNode(parts[0], Integer.parseInt(parts[1])));
} }
catch (RuntimeException ex) { catch (RuntimeException ex) {
throw new IllegalStateException("Invalid redis sentinel property '" + node + "'", ex); throw new IllegalStateException("Invalid redis sentinel property '" + node + "'", ex);

@ -280,6 +280,16 @@ class RedisAutoConfigurationTests {
.isTrue()); .isTrue());
} }
@Test
void testRedisConfigurationWithIpv6Sentinel() {
List<String> sentinels = Arrays.asList("[0:0:0:0:0:0:0:1]:26379", "[0:0:0:0:0:0:0:1]:26380");
this.contextRunner
.withPropertyValues("spring.redis.sentinel.master:mymaster",
"spring.redis.sentinel.nodes:" + StringUtils.collectionToCommaDelimitedString(sentinels))
.run((context) -> assertThat(context.getBean(LettuceConnectionFactory.class).isRedisSentinelAware())
.isTrue());
}
@Test @Test
void testRedisConfigurationWithSentinelAndDatabase() { void testRedisConfigurationWithSentinelAndDatabase() {
this.contextRunner.withPropertyValues("spring.redis.database:1", "spring.redis.sentinel.master:mymaster", this.contextRunner.withPropertyValues("spring.redis.database:1", "spring.redis.sentinel.master:mymaster",

Loading…
Cancel
Save