Nous utilisons actuellement XStream pour coder nos entrées/sorties de service Web en XML. Cependant, nous envisageons de passer à un format binaire avec un générateur de code pour plusieurs langages (protobuf, Thrift, Hessian, etc.) pour faciliter le support de nouveaux clients et moins sur le codage manuel (pour mieux supporter nos formats de messages incluant des données binaires) .XStream <-> Formats binaires alternatifs (par exemple, tampons de protocole)
Cependant, la plupart de nos objets sur le serveur sont des POJO avec XStream gérant la sérialisation via la réflexion et les annotations, et la plupart de ces bibliothèques supposent qu'ils généreront les POJO eux-mêmes. Je peux penser à quelques façons d'interfacer une bibliothèque alternative:
Ecrivez un marshaler XStream pour le format cible.
Écrire du code personnalisé pour marshaler les POJO vers/depuis les classes générées par la bibliothèque alternative.
Sous-classe les classes générées pour implémenter la logique POJO. Peut nécessiter une réécriture. (Aussi ai-je mentionné que nous voulons utiliser Terracotta?)
Utilisez une autre bibliothèque qui prend en charge à la fois la réflexion (comme XStream) et la génération de code.
Cependant, je ne suis pas sûr serialization library serait mieux adapté aux techniques ci-dessus.