List<String> rules = MyRepository.getRulesFromDatabase();
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
Iterator<String> rulesIterator = rules.iterator();
while (rulesIterator.hasNext()){
kbuilder.add(ResourceFactory.newReaderResource(new StringReader(rulesIterator.next())), ResourceType.DRL);
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
if ( kbuilder.hasErrors() ) {
Iterator<KnowledgeBuilderError> errors = kbuilder.getErrors().iterator();
while (errors.hasNext()) {
KnowledgeBuilderError error = errors.next();
logger.error("Errore compilazione regole Drools : {}", error.getMessage());
}
} else {
this.knowledgeBase = kbase;
}
The closest and easiest way is to use the KieHelper class. I don't have the pointers to the examples right now, but others may help. The interface may be intuitive enough anyway.
Let us know if you have more questions
--
You received this message because you are subscribed to the Google Groups "Drools Usage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drools-usage...@googlegroups.com.
To post to this group, send email to drools...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/drools-usage/5e797cf9-5ca1-4b3d-8cee-677c499dcf85%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
<String> rules = DataHubRepository.getRulesFromDatabase(dataSourceDhsathub);
KieHelper helper = new KieHelper();
Iterator<String> rulesIterator = rules.iterator();
while (rulesIterator.hasNext()){
Resource resource = ResourceFactory.newReaderResource(new StringReader(rulesIterator.next()));
resource.setResourceType(ResourceType.DRL);
resource.setSourcePath("myrule");
resource.setTargetPath("myrule");
helper.addResource(resource);
}
KieBase kbase = helper.build();
this.kieBase = kbase;