From 590d097d105c7793108fc4c3e1dac6745a32f0bd Mon Sep 17 00:00:00 2001 From: Nikita Date: Fri, 13 Nov 2015 12:44:56 +0300 Subject: [PATCH] MsgPack codec added. #279 --- pom.xml | 6 ++++ .../redisson/codec/MsgPackJacksonCodec.java | 35 +++++++++++++++++++ .../java/org/redisson/RedissonCodecTest.java | 11 ++++++ 3 files changed, 52 insertions(+) create mode 100644 src/main/java/org/redisson/codec/MsgPackJacksonCodec.java diff --git a/pom.xml b/pom.xml index c23ce0fcf..b17614976 100644 --- a/pom.xml +++ b/pom.xml @@ -140,6 +140,12 @@ test + + org.msgpack + jackson-dataformat-msgpack + 0.7.1 + provided + org.xerial.snappy snappy-java diff --git a/src/main/java/org/redisson/codec/MsgPackJacksonCodec.java b/src/main/java/org/redisson/codec/MsgPackJacksonCodec.java new file mode 100644 index 000000000..575e34acd --- /dev/null +++ b/src/main/java/org/redisson/codec/MsgPackJacksonCodec.java @@ -0,0 +1,35 @@ +/** + * Copyright 2014 Nikita Koksharov, Nickolay Borbit + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.redisson.codec; + +import org.msgpack.jackson.dataformat.MessagePackFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * MsgPack binary codec + * + * @author Nikita Koksharov + * + */ +public class MsgPackJacksonCodec extends JsonJacksonCodec { + + @Override + protected ObjectMapper initObjectMapper() { + return new ObjectMapper(new MessagePackFactory()); + } + +} diff --git a/src/test/java/org/redisson/RedissonCodecTest.java b/src/test/java/org/redisson/RedissonCodecTest.java index e0f97e27a..3b4903a4d 100644 --- a/src/test/java/org/redisson/RedissonCodecTest.java +++ b/src/test/java/org/redisson/RedissonCodecTest.java @@ -12,6 +12,7 @@ import org.redisson.codec.CborJacksonCodec; import org.redisson.codec.FstCodec; import org.redisson.codec.JsonJacksonCodec; import org.redisson.codec.KryoCodec; +import org.redisson.codec.MsgPackJacksonCodec; import org.redisson.codec.SerializationCodec; import org.redisson.codec.SnappyCodec; import org.redisson.core.RMap; @@ -23,6 +24,7 @@ public class RedissonCodecTest extends BaseTest { private Codec cborCodec = new CborJacksonCodec(); private Codec fstCodec = new FstCodec(); private Codec snappyCodec = new SnappyCodec(); + private Codec msgPackCodec = new MsgPackJacksonCodec(); @Test public void testJdk() { @@ -33,6 +35,15 @@ public class RedissonCodecTest extends BaseTest { test(); } + @Test + public void testMsgPack() { + Config config = createConfig(); + config.setCodec(msgPackCodec); + redisson = Redisson.create(config); + + test(); + } + @Test public void testFst() { Config config = createConfig();