Este ejemplo indica cómo puede crearse código externo (como por ejemplo clases Java) y objetos externos accesibles para las expresiones. Un objeto externo es un objeto creado por una aplicación para comunicarse con expresiones.
Para poder acceder a código externo desde una expresión, debe hacer que el código sea accesible para las expresiones.
Una importación es una forma específica del lenguaje de programación de hacer accesible código externo para las expresiones. El elemento <import> contiene un tipo especial de expresión que especifica los módulos externos (como las clases Java) a importar para utilizar en otras expresiones dentro de las reglas. Una importación se puede definir a nivel de conjunto de reglas o de bloque de reglas.
<import expressionLanguage="java"> import com.ibm.act.sample.StaticHelper; import com.ibm.act.test.Queue; </import>
Aunque en la sentencia de importación no es obligatorio utilizar el nombre completo de la clase, es mejor especificar el nombre completo para evitar un tiempo de compilación muy largo. Por ejemplo, la clase Java se debería especificar como com.ibm.act.sample.StaticHelper en lugar de como com.ibm.act.sample.* o como com.ibm.act.*.
<onDetection> <action expressionLanguage="java"> StaticHelper.pageAdministrator("Too many login attempts for " + act_event.getAttribute("userID")); </action> </onDetection>
<onDetection> <action expressionLanguage="java"> Queue myQueue = (Queue)act_lib.getExternalContext("OutputQueueOne"); myQueue.enqueue(act_event); </action> </onDetection>