package com.github.wangxuehui.rpc.serializer.fasterxml;
import java.io.IOException;
import com.github.wangxuehui.rpc.serializer.Deserializer;
import com.github.wangxuehui.rpc.serializer.Serializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.joda.JodaModule;
public class FasterxmlSerializer implements Serializer, Deserializer {
private static final ObjectMapper mapper = new ObjectMapper();
static {
mapper.registerModule( new JodaModule() );
}
@Override
public <T> T deserialize( final byte[] bytes , final Class<T> clazz ) {
try {
return mapper.readValue( bytes, clazz );
}
catch ( final IOException e ) {
throw new IllegalStateException( e.getMessage() , e );
}
}
@Override
public <T> byte[] serialize( final T source ) {
try {
return mapper.writeValueAsBytes( source );
}
catch ( final IOException e ) {
throw new IllegalStateException( e.getMessage() , e );
}
}
}