sábado, 9 de febrero de 2013

Hola mundo con Groovy

Tanto oir hablar de Groovy, y yo aún no había podido trabajar con él. Así que me he puesto manos a la obra a ver si hacía un hola mundo en condiciones.

¿Y Groovy que puñetas es? pues es un lenguaje de scripting para java que está disponible en la especificación JSR 241: The Groovy Programming Language.

Para poder usar Groovy con eclipse, hay que bajarse el plugin que se encuentra aquí.

La instalación se realiza como en todos los plugins de eclipse.

Instalación del plugin de Groovy en eclipse.

Lo primero que me ha tocado las narices de esta instalación es que después de instalar el plugin, tras reiniciar eclipse, he obtenido un bonito error Could not create the Java virtual machine.

Could not create the Java virtual machine. Después de instalar el plugin de Groovy en eclipse.

El problema es que tras la instalación del plugin, el eclipse.ini fue modificado. Concretamente se afectaron las líneas de la versión de java y las que referencian al directorio de java. ¡WTF!.

-Dosgi.requiredJavaVersion=1.6

La solución la encontré en este post.

Y mi pregunta, ¿por qué hizo esto el plugin?. A ver si alguien me lo aclara.

Pasado el susto, es hora de seguir con cosas más interesantes. Una vez instalado el plugin y corregido el error, voy a realizar un HolaMundo en groovy que leerá un archivo XML y mostrará en consola varios valores.

El Xml a leer:



  
   1
   Carlos G. González
   Sin ley
   
  
  
   2
   M. Rajoy
   
   Mamoncete
  
  
   3
   ZP
   
   Engañabobos
  

El primer paso será crear un proyecto groovy con una única clase de ejemplo (ReadXmlPersons.groovy).

package es.test

class ReadXmlPersons {

 static main(args) {
 
   
  def personas = new XmlSlurper().parse(new File("C:/compartido/personas.xml"))
  
  personas.persona.nombre.each( 
         { println it }
         )
 }

}

Si ejecutamos esta clase vemos que se muestra en consola lo que queremos.

Esto ha molado bastante, ya que la lectura del XML se ha simplificado mucho, por lo menos si lo comparamos con JAXB. ¿Y si lo adaptamos a nuestras necesidades?

Si modificamos la clase groovy anterior, podemos encapsular los valores en una lista. Después podemos hacer una clase java que lea esa lista y los muestre por consola.

La clase groovy quedaría:

package es.test

class ReadXmlPersons {

 public static List < String > getNombres(){
  
  List < String > l = new LinkedList< String >();
  
  def personas = new XmlSlurper().parse(new File("C:/compartido/personas.xml"))
  
  personas.persona.nombre.each(
         { l.add(it) }
         )
  
  return l;
  
 }
 
 static main(args) {
 }

}

Y la clase java:

package es.test;

import java.util.List;

public class Main {

 /**
  * @param args
  */
 public static void main(String[] args) {

  List< String > l =  ReadXmlPersons.getNombres();
  
  System.out.println(l);
  
 }

}

Bueno, pues yo creo que como HolaMundo está bastante bien. A ver si tengo un poco más de tiempo para darle caña a Groovy y hacer cosas más interesantes.

Saludos.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...