Apache Betwixt

por davidgp el 31/10/2005

Atención: Esta noticia es sobre el lenguaje de programación Java, y un auténtico coñazo para aquellos que no programan, así que si ese es tu caso, se te recomienda que te muevas a otro post que aquí no hay nada que ver.

En mi trabajo habitualmente programa en Java, y como todo programador de Java sabe, nuestra vida sería muy difícil sin el trabajo de la gente del grupo Apache, utilidades como Ant, Tomcat, Jakarta Commons se han convertido en imprescindibles… y yo he descubierto estos días una pequeña joya que aun no tiene versión definitiva: Apache Jakarta Commons Betwixt.

El viernes necesita guardar una gran cantidad de información en una aplicación para pasarlas a otra aplicación desarrollada por mi. Había trabajado un poco con Digester para leer ficheros XML pero me dí cuenta que este proyecto solamente «digiere» XML, no lo crea, así que decidí ver si había otra solución fácil de usar dentro del gran abanico que ofrece Jakarta Commons, y allí estaba Betwixt.

Betwixt es capaz de generar automática con unas pocas líneas de código un fichero de Java a partir de POJOS y/o JavaBeans. Con solamente estas líneas de código, ya podía guardar cualquier tipo de objeto a disco:

             Writer outputWriter = new FileWriter(filename);             BeanWriter bWriter = new BeanWriter(outputWriter);             bWriter.setEndOfLine("\r\n");             bWriter.setIndent("\t");             bWriter.enablePrettyPrint();             bWriter.write(graphToStore);             outputWriter.close(); 

Y todo un Grafo, con sus Vértices y Ejes, representados por sus sendas clases, dentro de un bonito fichero XML.

Ahora estaba el problema de volver a leer eso en la otra aplicación, iba a mirar Digester cuando vi, que Betwixt además de almacenar lee, y con otras pocas líneas de código ya tenía mi fichero XML convertido a objetos Java.

             InputStream inputStream = new FileInputStream(filename);             BeanReader beanReader = new BeanReader();             beanReader.getXMLIntrospector().setWrapCollectionsInElement(false);             beanReader.registerBeanClass(Graph.class);             return (Graph) beanReader.parse(inputStream); 

Y de esta forma tan simple podía mover todo un mapa de objetos de una aplicación a otra, sin tener que usar librerías complejas de XML o serializar a fichero en un formato que solamente Java podría leerlo de nuevo.

—–

Leave a Comment

Entrada anterior:

Entrada siguiente