2009-07-18 12 views
6

Actualmente estoy construyendo un sistema P2P que utiliza búferes de protocolo para todas las comunicaciones entre los pares. También hay algunas partes centralizadas del sistema donde los pares se comunican con un servidor. El servidor usa JPA para almacenar los datos que tiene sobre los pares.Protocolo de búferes con JPA

Así que, esencialmente, los clientes tienen sus datos en los mensajes de búferes de protocolo y el servidor en entidades JPA. Mi pregunta es, por tanto, si hay una forma de convertir automáticamente entre ellos?

Lo que estoy buscando es:

  • Un generador de la APP-entidades de .protos-archivos o
  • Un generador de .protos-archivos de la APP-entidades y
  • A cierta para convertir automáticamente entre ellos en tiempo de ejecución, así que no tengo que crear el código para hacerlo manualmente para cada clase nueva.

Idealmente, podría ir un paso más allá y hacer que ambas sean las mismas clases (es decir, las memorias intermedias de protocolos con anotaciones JPA), pero si eso no fuera posible, lo anterior también funcionaría.

¿Ha hecho esto y si no cree que es factible implementarlo en un tiempo razonable?

+0

Me gustaría este tipo de cosas también. En particular, la capacidad de generar archivos '.proto' de una clase JPA basada en sus anotaciones. Las otras características (generar entidades JPA a partir de archivos .proto, convirtiendo automáticamente de una a la otra) son menos críticas. Usar la solución XML/XSLT es una opción, pero todavía implica dos artefactos de desarrollo que deben mantenerse en paralelo. Quiero una solución que sea capaz de construir ambas cosas usando solo un artefacto de desarrollo. – aroth

Respuesta

1

La API de Buffers de Protocolo de Java desea generar las clases. Entonces parece que sería difícil anotarlos. En su lugar, se puede empezar con su propio XML "esquema" y, a continuación, tienen hojas de estilo XSLT que:

  1. crea un archivo .proto
  2. Crea un archivo XML de mapeo de entidad JPA.

A continuación, puede utilizar los archivos generados por google con JPA.

Cuestiones relacionadas