LY: Verdana; mso-bidi-font-family: Myriad-Bold">Aplicando Scripts no Java SE
Personalização de aplicações Java e DSLs
Com o lançamento do Java SE 6, que inclui a implementação da JSR
Um sistema de vendas pode, por exemplo, usar scripts para permitir a personalização das regras de definição de preços. Outros exemplos são a definição de filtros de correio eletrônico, condições em fluxos de trabalho e o cálculo de folhas de pagamento. Nessas tarefas, que necessitam de grande flexibilidade e da intervenção do usuário, os scripts podem ser de muita ajuda.
Note que scripts desse tipo normalmente têm uma finalidade bastante específica e podem aproveitar recursos oferecidos por uma linguagem igualmente específica, que se adapte melhor ao problema. Em muitos casos, a própria linguagem pode ser modificada, criando uma nova linguagem direcionada para resolver até mesmo um único problema: o seu. Estas linguagens que não servem a muitos propósitos, como Java, mas a um propósitoespecífico, são comumente classificadas como Linguagens de Domínio Específico,ou DSLs na sigla em inglês.
Este artigo mostra como criar uma DSL simples para cálculo de preços em um sistema de vendas hipotético, usando Java 6 e Groovy.
Executando um script
No JDK 6, scripts são executados usando a classe ScriptEngine. Este engine é o responsável por controlar a execução de scripts e pode ser implementado totalmente em Java, como é feito para JRuby ou Groovy, ou usando um interpretador externo, como é o caso para PHP e AppleScript. O JDK 6 já inclui o engine de scripts Mozilla Rhino para JavaScript, que pode ser instanciado com o seguinte código:
import javax.script.*;
...
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName(“javascript”);
Feito isso, já se pode executar código JavaScript usando uma das variações do método eval(); por exemplo:
engine.eval(“cliente={nome:’Julio’,idade:15}; print(cliente.nome);”); ...