DATAREDIS-1093 - Polishing.

Associate test ClientResources with LettuceConnectionFactory where it was missing to reuse ClientResources as much as possible.
This commit is contained in:
Mark Paluch
2020-02-13 11:56:18 +01:00
parent 0f609ad7f4
commit 34ceee0675
4 changed files with 24 additions and 20 deletions

View File

@@ -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());
}

View File

@@ -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);

View File

@@ -852,6 +852,7 @@ public class LettuceConnectionFactoryUnitTests {
return connectionProviderMock;
}
};
connectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources());
connectionFactory.setEagerInitialization(true);
connectionFactory.afterPropertiesSet();

View File

@@ -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<String, String> stringTemplate = new StringRedisTemplate();
stringTemplate.setConnectionFactory(jedisConnectionFactory);
stringTemplate.setConnectionFactory(lettuceConnectionFactory);
stringTemplate.afterPropertiesSet();
RedisTemplate<String, Long> longTemplate = new RedisTemplate<>();
longTemplate.setKeySerializer(StringRedisSerializer.UTF_8);
longTemplate.setValueSerializer(new GenericToStringSerializer<>(Long.class));
longTemplate.setConnectionFactory(jedisConnectionFactory);
longTemplate.setConnectionFactory(lettuceConnectionFactory);
longTemplate.afterPropertiesSet();
RedisTemplate<String, Double> doubleTemplate = new RedisTemplate<>();
doubleTemplate.setKeySerializer(StringRedisSerializer.UTF_8);
doubleTemplate.setValueSerializer(new GenericToStringSerializer<>(Double.class));
doubleTemplate.setConnectionFactory(jedisConnectionFactory);
doubleTemplate.setConnectionFactory(lettuceConnectionFactory);
doubleTemplate.afterPropertiesSet();
RedisTemplate<byte[], byte[]> rawTemplate = new RedisTemplate<>();
rawTemplate.setEnableDefaultSerializer(false);
rawTemplate.setConnectionFactory(jedisConnectionFactory);
rawTemplate.setConnectionFactory(lettuceConnectionFactory);
rawTemplate.afterPropertiesSet();
RedisTemplate<String, Person> personTemplate = new RedisTemplate<>();
personTemplate.setConnectionFactory(jedisConnectionFactory);
personTemplate.setConnectionFactory(lettuceConnectionFactory);
personTemplate.afterPropertiesSet();
OxmSerializer serializer = new OxmSerializer(xstream, xstream);
RedisTemplate<String, String> xstreamStringTemplate = new RedisTemplate<>();
xstreamStringTemplate.setConnectionFactory(jedisConnectionFactory);
xstreamStringTemplate.setConnectionFactory(lettuceConnectionFactory);
xstreamStringTemplate.setDefaultSerializer(serializer);
xstreamStringTemplate.afterPropertiesSet();
RedisTemplate<String, Person> xstreamPersonTemplate = new RedisTemplate<>();
xstreamPersonTemplate.setConnectionFactory(jedisConnectionFactory);
xstreamPersonTemplate.setConnectionFactory(lettuceConnectionFactory);
xstreamPersonTemplate.setValueSerializer(serializer);
xstreamPersonTemplate.afterPropertiesSet();
Jackson2JsonRedisSerializer<Person> jackson2JsonSerializer = new Jackson2JsonRedisSerializer<>(Person.class);
RedisTemplate<String, Person> jackson2JsonPersonTemplate = new RedisTemplate<>();
jackson2JsonPersonTemplate.setConnectionFactory(jedisConnectionFactory);
jackson2JsonPersonTemplate.setConnectionFactory(lettuceConnectionFactory);
jackson2JsonPersonTemplate.setValueSerializer(jackson2JsonSerializer);
jackson2JsonPersonTemplate.afterPropertiesSet();
GenericJackson2JsonRedisSerializer genericJackson2JsonSerializer = new GenericJackson2JsonRedisSerializer();
RedisTemplate<String, Person> genericJackson2JsonPersonTemplate = new RedisTemplate<>();
genericJackson2JsonPersonTemplate.setConnectionFactory(jedisConnectionFactory);
genericJackson2JsonPersonTemplate.setConnectionFactory(lettuceConnectionFactory);
genericJackson2JsonPersonTemplate.setValueSerializer(genericJackson2JsonSerializer);
genericJackson2JsonPersonTemplate.afterPropertiesSet();