Resumen:
Ejecución de procesos en paralelo con GPars.
Descripción:
Uno de los ejemplos que hice, fue de concurrencia (). En él, hice uso de las clases que da Java (Executors, Future, etc). Pero parte del ecosistema de Groovy tenemos a GPars (Concurrency & Parallelism Framework).
En el siguiente ejemplo, centrémonos en el método sendItems. De un conjunto de 30 items, se procesará en grupo de 10 (hilos): imprimir el valor del item y esperar 5 segundos.
La ejecución produce el siguiente resultado: tres grupos donde la secuencia de items no es secuencial.
Código Fuente:
https://gist.github.com/edgargs/938f69d7d945cf09df8eafbd9cde1094
Bibliografía:
http://www.gpars.org/guide/guide/dataParallelism.html
https://www.ibm.com/developerworks/library/j-gpars/
Configuración:
Groovy 2.4.13
GPars 1.2.1
jueves, 26 de abril de 2018
miércoles, 28 de marzo de 2018
Ejemplo 2018-03: Parsear archivos XML.
Resumen:
Manipular XML de forma sencilla con Groovy.
Descripción:
En una charla que di, me preguntaron sobre la forma de parsear XML. Quedó como tarea pendiente demostrar lo fácil que es. Este ejemplo nos acerca en la manera como podríamos emplearlo en nuestros proyectos.
En mi caso, por razones ajenas a mi voluntad, existe un programa que graba las peticiones en formato XML. Y luego llama a otro programa que leerá el archivo y generará la respuesta, en otro archivo (con formato XML). Durante las pruebas, hacer seguimiento a un transacción específica fue muy difícil. Debía buscar en ambos archivos (request y response) y ubicar los campos que debía evaluar.
Cómo solución, cree un script para procesar todas las peticiones de un día, generar un tabla (archivo con columnas) y poder visualizar la información necesaria.
Tenemos primero, el uso del operador "<<" para asignar elementos a una lista.
Considerar que existen dos opciones para parsear:
Hay diferencias sutiles, pero yo recomiendo XmlSlurper. De esta forma, acceder a un atributo lo podemos hacer con @.
Otro componente apreciado, es el operador "with".
Luego de formar el texto, agregamos la línea al archivo con el operador "<<".
Código Fuente:
https://gist.github.com/edgargs/ea58ee730ef5a48ff39271d6391e8360
Bibliografía:
http://groovy-lang.org/processing-xml.html
Configuración:
Groovy 2.4
Manipular XML de forma sencilla con Groovy.
Descripción:
En una charla que di, me preguntaron sobre la forma de parsear XML. Quedó como tarea pendiente demostrar lo fácil que es. Este ejemplo nos acerca en la manera como podríamos emplearlo en nuestros proyectos.
En mi caso, por razones ajenas a mi voluntad, existe un programa que graba las peticiones en formato XML. Y luego llama a otro programa que leerá el archivo y generará la respuesta, en otro archivo (con formato XML). Durante las pruebas, hacer seguimiento a un transacción específica fue muy difícil. Debía buscar en ambos archivos (request y response) y ubicar los campos que debía evaluar.
Cómo solución, cree un script para procesar todas las peticiones de un día, generar un tabla (archivo con columnas) y poder visualizar la información necesaria.
Tenemos primero, el uso del operador "<<" para asignar elementos a una lista.
Considerar que existen dos opciones para parsear:
-
groovy.util.XmlParser
-
groovy.util.XmlSlurper
Otro componente apreciado, es el operador "with".
Luego de formar el texto, agregamos la línea al archivo con el operador "<<".
Código Fuente:
https://gist.github.com/edgargs/ea58ee730ef5a48ff39271d6391e8360
Bibliografía:
http://groovy-lang.org/processing-xml.html
Configuración:
Groovy 2.4
miércoles, 28 de febrero de 2018
Ejemplo 2018-02: Java vs Groovy.
Resumen:
Ejemplo de convertir una clase Java a código Groovy.
Descripción:
Muchas veces, poder medir los beneficios de trabajar con Groovy; resulta vacío sino no lo podemos cuantificar. Como parte de la charla "Introducción a Groovy", este post muestra los cambios del código para tener un webservice a partir de una clase Java.
1. El operador de acceso public es por defecto. El return es opcional.
2. Los tipos son inferidos al emplear def. Los paréntesis son opcionales. Listas y arreglos se tratan de la misma forma.

3. Uso del operador in. Empleo de cadenas interpoladas.
4. Constructores dinámicos.
5. Adiós a los getters y setters.
6. Triple comillas (dobles).
Código Fuente:
https://github.com/edgargs/power-groovy.git
Bibliografía:
http://groovy-lang.org/documentation.html
Configuración:
SpringBoot 1.5.9
Groovy 2.4
Ejemplo de convertir una clase Java a código Groovy.
Descripción:
Muchas veces, poder medir los beneficios de trabajar con Groovy; resulta vacío sino no lo podemos cuantificar. Como parte de la charla "Introducción a Groovy", este post muestra los cambios del código para tener un webservice a partir de una clase Java.
1. El operador de acceso public es por defecto. El return es opcional.
2. Los tipos son inferidos al emplear def. Los paréntesis son opcionales. Listas y arreglos se tratan de la misma forma.
3. Uso del operador in. Empleo de cadenas interpoladas.
4. Constructores dinámicos.
5. Adiós a los getters y setters.
6. Triple comillas (dobles).
Código Fuente:
https://github.com/edgargs/power-groovy.git
Bibliografía:
http://groovy-lang.org/documentation.html
Configuración:
SpringBoot 1.5.9
Groovy 2.4
Suscribirse a:
Entradas (Atom)