sábado, 30 de enero de 2010

Java 6: Conexión con los lenguajes de Script.

Si desea ver una imagen en tamaño completo haga click en ella.

   Con la versión más reciente de Java (J2SE 6) se hace posible combinar secciones de código Java con lenguajes de Script como JavaScript, PHP, Ruby y Phyton entre otros. Esto gracias al nuevo paquete javax.script.
   En nuestros ejemplos ejecutaremos ejemplos sólo combinando hasta ahora JavaScript y Java.

   Para comenzar lo más importante es saber que se debe crear una instancia de ScriptEngineManager que me permitirá retornar un objeto ScriptEngine especificando el lenguaje con el que haré la conexión veamos esto con código:



Como se puede ver, además de crear los objetos explicados anteriormente se utilizó el método eval de ScriptEngine para evaluar el código Script (lanza ScriptException), en este caso obtendríamos por consola, la frase: Hola Mundo, que se ha impreso desde código JavaScript combinado con Java.

Nota: También podríamos enlazar con JavaScript con el método getEngineByExtension de ScriptEngineManager de la siguiente manera: factory.getEngineByExtension(“js”);

Claro, este es el ejemplo más sencillo, veamos qué otras opciones tenemos.
Supongamos que tenemos un procedimiento que queremos invocar en varias ocasiones, no es necesario colocar todo el código de nuevo, podemos hacer una función JavaScript mediante el método eval y luego castear el objeto ScriptEngine en Invocable, para llamar a la función creada en el momento que lo deseemos.



Salide del Ejemplo:
Hola, como estas?
Saludando de nuevo...
Hola, como estas?
Se invocó la función dos veces.

También podemos acceder a objetos de java desde nuestro código Script, para ello se utilizan los objetos Binding que son un mapa (Map) de pares clave-valor con clave String y valores Object (Map), con esto puedo crear objetos y asignarlos a un String y mediante el código de Script realizar las operaciones que desee. Veamos el ejemplo:



Salida del ejemplo anterior:

Ambiente Script...
Java
C++
Phyton
Ambiente Java...
Java
C++
Phyton
Ruby

Aunque también puedo pasarle parámetros reales en la invocación del método en invokeFunction() de la interface Invocable, veamos:



Salida del ejemplo anterior:
Primera Impresion...
Java
C++
Segunda Impresion...
Java
C++
Ruby

Para terminar también es bueno saber que puedo utilizar objetos y métodos de java dentro de los scripts, para ello debo importar el paquete que desee y utilizarlo dentro del script, veamos ejemplo:



Salida del ejemplo anterior, por consola un número aleatorio del 0 al 1.

Para descargar un ejemplo completo de Scripting Java 6 haga click Aquí

Hablemos de las novedades de Java 6

   Saludos de nuevo, es un placer para mí encontrarnos de nuevo en este año para compartir nuevas experiencias y conocimientos en el caso de la tecnología Java.
   Para empezar este año hablaremos sobre la nueva versión de Java 6 (J2SE 6) y algo de lo nuevo que ha incluido esta versión.
   Para comenzar nombremos algunas de ellas:
   • Conexión con lenguajes de Script como JavaScript, PHP, Ruby, Phyton, entre los que pude encontrar.
   • Exportar una clase como un Servicio Web.
   • Uso de Derby , herramienta que ofrece conectarse y manipular bases de datos Derby.
   • Hablaremos sobre algunas novedades del paquete javax.swing.

   En fin, todo en lo que esté a mi alcance posible, para conocer las buenas nuevas que trae esta versión que está disponible ya, y que hasta esta fecha permanece como la versión más reciente.

   Espero que esta información sirva de provecho y aclare dudas con respecto a las novedades de java 6. Feliz viaje.