- KIE: Conhecimento é tudo
- Regras de negócios com Drools: Introdução
- Regras de negócios com Drools: Olá Mundo!
Chegou a hora de deixar as coisas um pouco mais empolgantes e mostrar como podemos modificar as regras de negócio, ver as mesmas ser aplicadas em tempo real sem reinicializar a aplicação Java!
KieScanner
Toda a ideia é possível por causa das implementações de KieScanner e da API kie-ci. O objetivo é utilizar as APIs do maven para atualizar a KieBase quando o artefato maven é atualizado. Para que tudo funcione bem, temos que usar uma das seguintes formas de gerenciar versões(veja esse artigo da Oracle para mais informações):
- SNAPSHOT: Quando uma versão termina em SNAPSHOT, o artifato é atualizado automaticamente baseado na última instalação no repositório;
- Faixa de versões: Podemos usar uma faixa de versão que queremos executar na nossa aplicação. Por exemplo, podemos querer somente somente versões entre 1.0 (inclusive) e 2.0. Assim, podemos usar o seguinte: [1.0,2.0), ou seja, versões que obedeçam a seguinte regra serão usadas: 1.0 <= x < 2.0;
- Há também o uso de LATEST, mas como está sendo um pouco colocado de lado pelos desenvolvedores do Maven, não é recomendado o uso. O LATEST escanearia a última versão.
O uso do KieScanner requer o seguinte:
- É obrigatório ter kie-ci no classpath;
- Temos que configurar o settings.xml do maven local (ou apontar uma configuração) que tenha os dados do repositório remoto caso queiramos ler de um repositório remoto;
- Adicionar o código Java para adicionar o KieScanner;
O código Java é bem simples. Ao criar o container, você precisa simplesmente "ligar" o scanner para ele. Em outras palavras, adicione as seguintes linhas de código:
KieScanner kScanner = kServices.newKieScanner(kContainer);
kScanner.start(5000);
Pra evitar que isso tudo fique abstrado, eu criei um exemplo que está no nosso github e também um vídeo explicando um pouco melhor, vejam o vídeo:
O código dos projetos utilizados acima podem ser encontrado no nosso github:
Regras de negócios
https://github.com/AprendendoJava/regras-de-negocio-com-drools/tree/master/drools-analise-fundos
Código com Kie Scanner
https://github.com/AprendendoJava/regras-de-negocio-com-drools/tree/master/kie-scanner-test
KieScanner
- SNAPSHOT: Quando uma versão termina em SNAPSHOT, o artifato é atualizado automaticamente baseado na última instalação no repositório;
- Faixa de versões: Podemos usar uma faixa de versão que queremos executar na nossa aplicação. Por exemplo, podemos querer somente somente versões entre 1.0 (inclusive) e 2.0. Assim, podemos usar o seguinte: [1.0,2.0), ou seja, versões que obedeçam a seguinte regra serão usadas: 1.0 <= x < 2.0;
- Há também o uso de LATEST, mas como está sendo um pouco colocado de lado pelos desenvolvedores do Maven, não é recomendado o uso. O LATEST escanearia a última versão.
- É obrigatório ter kie-ci no classpath;
- Temos que configurar o settings.xml do maven local (ou apontar uma configuração) que tenha os dados do repositório remoto caso queiramos ler de um repositório remoto;
- Adicionar o código Java para adicionar o KieScanner;
KieScanner kScanner = kServices.newKieScanner(kContainer);
kScanner.start(5000);
Pra evitar que isso tudo fique abstrado, eu criei um exemplo que está no nosso github e também um vídeo explicando um pouco melhor, vejam o vídeo:
O código dos projetos utilizados acima podem ser encontrado no nosso github:
Regras de negócios
https://github.com/AprendendoJava/regras-de-negocio-com-drools/tree/master/drools-analise-fundos
Código com Kie Scanner
https://github.com/AprendendoJava/regras-de-negocio-com-drools/tree/master/kie-scanner-test
Nenhum comentário:
Postar um comentário