From 34ceee0675399bb7ea05446e7b9648e815d98277 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 13 Feb 2020 11:56:18 +0100 Subject: [PATCH] DATAREDIS-1093 - Polishing. Associate test ClientResources with LettuceConnectionFactory where it was missing to reuse ClientResources as much as possible. --- .../data/redis/cache/CacheTestParams.java | 14 +++++------ .../LettuceConnectionFactoryTests.java | 5 ++-- .../LettuceConnectionFactoryUnitTests.java | 1 + .../core/AbstractOperationsTestParams.java | 24 ++++++++++--------- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/test/java/org/springframework/data/redis/cache/CacheTestParams.java b/src/test/java/org/springframework/data/redis/cache/CacheTestParams.java index 0e9bb92e5..863c6c426 100644 --- a/src/test/java/org/springframework/data/redis/cache/CacheTestParams.java +++ b/src/test/java/org/springframework/data/redis/cache/CacheTestParams.java @@ -34,6 +34,7 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceTestClientResources; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.OxmSerializer; @@ -62,6 +63,7 @@ class CacheTestParams { // Lettuce Standalone LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(config); + lettuceConnectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources()); lettuceConnectionFactory.afterPropertiesSet(); factoryList.add(new FixDamnedJunitParameterizedNameForConnectionFactory(lettuceConnectionFactory, "")); @@ -78,6 +80,7 @@ class CacheTestParams { // Lettuce Cluster LettuceConnectionFactory lettuceClusterConnectionFactory = new LettuceConnectionFactory(clusterConfiguration); + lettuceClusterConnectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources()); lettuceClusterConnectionFactory.afterPropertiesSet(); factoryList @@ -101,13 +104,10 @@ class CacheTestParams { GenericJackson2JsonRedisSerializer jackson2Serializer = new GenericJackson2JsonRedisSerializer(); JdkSerializationRedisSerializer jdkSerializer = new JdkSerializationRedisSerializer(); - return connectionFactories() - .stream().flatMap(factory -> Arrays - .asList( // - new Object[] { factory, new FixDamnedJunitParameterizedNameForRedisSerializer(jdkSerializer) }, // - new Object[] { factory, new FixDamnedJunitParameterizedNameForRedisSerializer(jackson2Serializer) }, // - new Object[] { factory, new FixDamnedJunitParameterizedNameForRedisSerializer(oxmSerializer) }) - .stream()) + return connectionFactories().stream().flatMap(factory -> Arrays.asList( // + new Object[] { factory, new FixDamnedJunitParameterizedNameForRedisSerializer(jdkSerializer) }, // + new Object[] { factory, new FixDamnedJunitParameterizedNameForRedisSerializer(jackson2Serializer) }, // + new Object[] { factory, new FixDamnedJunitParameterizedNameForRedisSerializer(oxmSerializer) }).stream()) .collect(Collectors.toList()); } diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryTests.java index 9de79f1f2..dd6719950 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryTests.java @@ -435,7 +435,8 @@ public class LettuceConnectionFactoryTests { assumeTrue(EpollProvider.isAvailable() || KqueueProvider.isAvailable()); assumeTrue(new File(SettingsUtils.getSocket()).exists()); - LettuceClientConfiguration configuration = LettuceTestClientConfiguration.create(); + LettuceClientConfiguration configuration = LettuceTestClientConfiguration.builder() + .clientResources(LettuceTestClientResources.getSharedClientResources()).build(); LettuceConnectionFactory factory = new LettuceConnectionFactory(SettingsUtils.socketConfiguration(), configuration); factory.setShareNativeConnection(false); @@ -455,7 +456,7 @@ public class LettuceConnectionFactoryTests { connection.info("replication").getProperty("connected_slaves", "0").compareTo("0") > 0); LettuceClientConfiguration configuration = LettuceTestClientConfiguration.builder().readFrom(ReadFrom.SLAVE) - .build(); + .clientResources(LettuceTestClientResources.getSharedClientResources()).build(); RedisStaticMasterReplicaConfiguration elastiCache = new RedisStaticMasterReplicaConfiguration( SettingsUtils.getHost()).node(SettingsUtils.getHost(), SettingsUtils.getPort() + 1); diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java index e4fb0c4ee..0763597a8 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java @@ -852,6 +852,7 @@ public class LettuceConnectionFactoryUnitTests { return connectionProviderMock; } }; + connectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources()); connectionFactory.setEagerInitialization(true); connectionFactory.afterPropertiesSet(); diff --git a/src/test/java/org/springframework/data/redis/core/AbstractOperationsTestParams.java b/src/test/java/org/springframework/data/redis/core/AbstractOperationsTestParams.java index bc5dea500..e1cb61dca 100644 --- a/src/test/java/org/springframework/data/redis/core/AbstractOperationsTestParams.java +++ b/src/test/java/org/springframework/data/redis/core/AbstractOperationsTestParams.java @@ -28,6 +28,7 @@ import org.springframework.data.redis.SettingsUtils; import org.springframework.data.redis.StringObjectFactory; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceTestClientResources; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.GenericToStringSerializer; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; @@ -65,54 +66,55 @@ abstract public class AbstractOperationsTestParams { throw new RuntimeException("Cannot init XStream", ex); } - LettuceConnectionFactory jedisConnectionFactory = new LettuceConnectionFactory(standaloneConfiguration); - jedisConnectionFactory.afterPropertiesSet(); + LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(standaloneConfiguration); + lettuceConnectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources()); + lettuceConnectionFactory.afterPropertiesSet(); RedisTemplate stringTemplate = new StringRedisTemplate(); - stringTemplate.setConnectionFactory(jedisConnectionFactory); + stringTemplate.setConnectionFactory(lettuceConnectionFactory); stringTemplate.afterPropertiesSet(); RedisTemplate longTemplate = new RedisTemplate<>(); longTemplate.setKeySerializer(StringRedisSerializer.UTF_8); longTemplate.setValueSerializer(new GenericToStringSerializer<>(Long.class)); - longTemplate.setConnectionFactory(jedisConnectionFactory); + longTemplate.setConnectionFactory(lettuceConnectionFactory); longTemplate.afterPropertiesSet(); RedisTemplate doubleTemplate = new RedisTemplate<>(); doubleTemplate.setKeySerializer(StringRedisSerializer.UTF_8); doubleTemplate.setValueSerializer(new GenericToStringSerializer<>(Double.class)); - doubleTemplate.setConnectionFactory(jedisConnectionFactory); + doubleTemplate.setConnectionFactory(lettuceConnectionFactory); doubleTemplate.afterPropertiesSet(); RedisTemplate rawTemplate = new RedisTemplate<>(); rawTemplate.setEnableDefaultSerializer(false); - rawTemplate.setConnectionFactory(jedisConnectionFactory); + rawTemplate.setConnectionFactory(lettuceConnectionFactory); rawTemplate.afterPropertiesSet(); RedisTemplate personTemplate = new RedisTemplate<>(); - personTemplate.setConnectionFactory(jedisConnectionFactory); + personTemplate.setConnectionFactory(lettuceConnectionFactory); personTemplate.afterPropertiesSet(); OxmSerializer serializer = new OxmSerializer(xstream, xstream); RedisTemplate xstreamStringTemplate = new RedisTemplate<>(); - xstreamStringTemplate.setConnectionFactory(jedisConnectionFactory); + xstreamStringTemplate.setConnectionFactory(lettuceConnectionFactory); xstreamStringTemplate.setDefaultSerializer(serializer); xstreamStringTemplate.afterPropertiesSet(); RedisTemplate xstreamPersonTemplate = new RedisTemplate<>(); - xstreamPersonTemplate.setConnectionFactory(jedisConnectionFactory); + xstreamPersonTemplate.setConnectionFactory(lettuceConnectionFactory); xstreamPersonTemplate.setValueSerializer(serializer); xstreamPersonTemplate.afterPropertiesSet(); Jackson2JsonRedisSerializer jackson2JsonSerializer = new Jackson2JsonRedisSerializer<>(Person.class); RedisTemplate jackson2JsonPersonTemplate = new RedisTemplate<>(); - jackson2JsonPersonTemplate.setConnectionFactory(jedisConnectionFactory); + jackson2JsonPersonTemplate.setConnectionFactory(lettuceConnectionFactory); jackson2JsonPersonTemplate.setValueSerializer(jackson2JsonSerializer); jackson2JsonPersonTemplate.afterPropertiesSet(); GenericJackson2JsonRedisSerializer genericJackson2JsonSerializer = new GenericJackson2JsonRedisSerializer(); RedisTemplate genericJackson2JsonPersonTemplate = new RedisTemplate<>(); - genericJackson2JsonPersonTemplate.setConnectionFactory(jedisConnectionFactory); + genericJackson2JsonPersonTemplate.setConnectionFactory(lettuceConnectionFactory); genericJackson2JsonPersonTemplate.setValueSerializer(genericJackson2JsonSerializer); genericJackson2JsonPersonTemplate.afterPropertiesSet();