DATAREDIS-1000 - Fix raw/byte array serialization via RedisSerializationContext.

We now use the correct generic parameters for raw serialization via RedisSerializationContext returning ByteBuffer.

Introduce RedisSerializer.raw() and cleanups.

Original Pull Request: #459
This commit is contained in:
Mark Paluch
2019-06-21 12:03:30 +02:00
committed by Christoph Strobl
parent 3839379470
commit 1491b93078
7 changed files with 69 additions and 13 deletions

View File

@@ -119,7 +119,7 @@ abstract public class ReactiveOperationsTestParams {
RedisSerializationContext.<String, Double> newSerializationContext(jdkSerializationRedisSerializer)
.key(stringRedisSerializer).value(doubleToStringSerializer).build());
ReactiveRedisTemplate<byte[], byte[]> rawTemplate = new ReactiveRedisTemplate<>(lettuceConnectionFactory,
ReactiveRedisTemplate<ByteBuffer, ByteBuffer> rawTemplate = new ReactiveRedisTemplate<>(lettuceConnectionFactory,
RedisSerializationContext.raw());
ReactiveRedisTemplate<String, Person> personTemplate = new ReactiveRedisTemplate(lettuceConnectionFactory,

View File

@@ -111,6 +111,32 @@ public class RedisSerializationContextUnitTests {
assertThat(deserialized).isEqualTo(42);
}
@Test // DATAREDIS-1000
public void shouldEncodeAndDecodeRawByteBufferValue() {
RedisSerializationContext<ByteBuffer, ByteBuffer> serializationContext = RedisSerializationContext
.raw();
ByteBuffer deserialized = serializationContext.getValueSerializationPair()
.read(serializationContext.getValueSerializationPair()
.write(ByteBuffer.wrap("hello".getBytes())));
assertThat(deserialized).isEqualTo(ByteBuffer.wrap("hello".getBytes()));
}
@Test // DATAREDIS-1000
public void shouldEncodeAndDecodeByteArrayValue() {
RedisSerializationContext<byte[], byte[]> serializationContext = RedisSerializationContext
.byteArray();
byte[] deserialized = serializationContext.getValueSerializationPair()
.read(serializationContext.getValueSerializationPair()
.write("hello".getBytes()));
assertThat(deserialized).isEqualTo("hello".getBytes());
}
private RedisSerializationContext<String, Long> createSerializationContext() {
return RedisSerializationContext.<String, Long> newSerializationContext() //