Pergunta

Eu estou experimentando com OpenRules e Java e eu gostaria de armazenar todos os meus regras em apenas um banco de dados. Se eu entendi a documentação corretamente, eu preciso ter um "Main.xls", no qual a armazenar as configurações de ambiente. Agora a pergunta: Existe uma maneira de contornar completamente este arquivo .xls física? Melhor caso seria, se eu pudesse chamar algo como

defineOpenRulesDatabase();    
OpenRulesEngine engine = new OpenRulesEngine("db:myFile.xls");
engine.run();

onde o método defineOpenRulesDatabase () define todas as configurações que são definidas no arquivo db.properties mencionado na documentação.

Qualquer ideia sobre isso?

Foi útil?

Solução

Sim. acordo com a documentação , você pode passar em qualquer URL que suporte Java (ou seja, qualquer coisa para que URL.openStream() retornará algo útil).

Então você pode simplesmente incorporar o Jetty servidor web em seu aplicativo, criar um servlet que retorna o arquivo e OpenRulesEngine() então chamada com a URL do servlet.

Ou você pode fazer o download do arquivo a partir do banco de dados e uso File.createTempFile() para criar um arquivo temporário para configurar o mecanismo de regras.

Ou você poderia registrar um bug contra o projeto e pedir outro construtor que lhe permite passar em uma InputStream.

[EDIT] Eu acho que você já viu este documento que explica como colocar as regras em um banco de dados. Pelo que vejo, não é possível criar o mecanismo de regras sem um arquivo Main.xls existente, pelo menos no seu classpath.

Mas esse arquivo não tem que contêm muito:

regras / main / Main.xls o arquivo principal para um motor de regras para começar. Ele contém apenas a tabela de Meio Ambiente

Assim, você pode simplesmente colocar um arquivo estático no classpath e carregar todas as regras do DB.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top