StringCodec was generic, it could be used with anything. JavaSerializeCodec was Message specific. I splitted JavaSerialize into Generic and Message only, so we could reuse GenericSerializeCodec