miércoles, 25 de mayo de 2011

Apache JEXL


JEXL es una librería que intenta facilitar la implementación dinámica y scripting en una aplicación o framework.

JEXL su nombre viene de Java EXpression Language, y fue inspirado por Apache velocity y the Expression Language definido en jsp versión 2. Aunque JEXL es similar a EL no es una implementación del mismo.

Veamos que puede hacer JEXL con un ejemplo:

// Create or retrieve a JexlEngine
JexlEngine jexl = new JexlEngine();
// Create an expression object
String jexlExp = "foo.innerFoo.bar()";
Expression e = jexl.createExpression( jexlExp );

// Create a context and add data
JexlContext jc = new MapContext();
jc.set("foo", new Foo() );

// Now evaluate the expression, getting the result
Object o = e.evaluate(jc);


Cuando usar JEXL? Cuando la lógica de mi sistema cambia muy seguido pero usar un motor de reglas de negocio como drool nos queda muy grande esta es una buena opción.