Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.util.ArrayList;
- import org.objenesis.strategy.StdInstantiatorStrategy;
- import org.springframework.amqp.core.Message;
- import org.springframework.amqp.core.MessageProperties;
- import org.springframework.amqp.support.converter.MessageConversionException;
- import org.springframework.amqp.support.converter.MessageConverter;
- import com.esotericsoftware.kryo.Kryo;
- import com.esotericsoftware.kryo.io.Input;
- import com.esotericsoftware.kryo.io.Output;
- public class KryoMessageConverter implements MessageConverter {
- private final static Kryo kryo = new Kryo();
- static {
- kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
- kryo.setRegistrationRequired(false);
- }
- @Override
- public Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Output out = new Output(baos);
- kryo.writeObject(out, object);
- out.close();
- return new Message(baos.toByteArray(), messageProperties);
- }
- @Override
- public Object fromMessage(Message message) throws MessageConversionException {
- byte[] bytes = message.getBody();
- Input input = new Input(new ByteArrayInputStream(bytes));
- return kryo.readObject(input, ArrayList.class);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement