[rules-users] Loading rules from the filesystem?
Stephen Masters
stephen.masters at me.com
Wed Apr 16 07:52:50 EDT 2014
These test classes do that between them (with a bit of help from some others):
https://github.com/gratiartis/qzr/blob/master/sctrcd-drools/src/test/java/com/sctrcd/drools/spring/DroolsSpringTest.java
https://github.com/gratiartis/qzr/blob/master/sctrcd-drools/src/test/java/com/sctrcd/drools/spring/DroolsSpringTestConfig.java
You will probably need to follow the path through the code to understand how that application does it.
tl;dr - If you don’t want to do that, then below is a method for creating a KieServices instance; after which, you need something like:
KieContainer kieContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());
KieSession kieSession = kieContainer.newKieSession(SessionConfiguration.getDefaultInstance());
private void createAndBuildKieServices(DroolsResource[] resources) throws KieBuildException {
this.kieServices = KieServices.Factory.get();
this.kfs = newKieFileSystem();
for (DroolsResource resource : resources) {
log.info("Resource: " + resource.getType() + ", path type="
+ resource.getPathType() + ", path=" + resource.getPath());
switch (resource.getPathType()) {
case CLASSPATH:
this.kfs.write(ResourceFactory.newClassPathResource(resource.getPath()));
break;
case FILE:
this.kfs.write(ResourceFactory.newFileResource(resource.getPath()));
break;
case URL:
UrlResource urlResource = (UrlResource) ResourceFactory
.newUrlResource(resource.getPath());
if (resource.getUsername() != null) {
log.info("Setting authentication for: " + resource.getUsername());
urlResource.setBasicAuthentication("enabled");
urlResource.setUsername(resource.getUsername());
urlResource.setPassword(resource.getPassword());
}
this.kfs.write(urlResource);
break;
default:
throw new IllegalArgumentException(
"Unable to build this resource path type.");
}
}
KieBuilder kieBuilder = kieServices.newKieBuilder(kfs).buildAll();
if (kieBuilder.getResults().hasMessages(Level.ERROR)) {
List<Message> errors = kieBuilder.getResults().getMessages(Level.ERROR);
StringBuilder sb = new StringBuilder("Errors:");
for (Message msg : errors) {
sb.append("\n " + prettyBuildMessage(msg));
}
throw new KieBuildException(sb.toString());
}
log.info("KieServices built: " + toString());
}
... where DroolsResource is this:
https://github.com/gratiartis/qzr/blob/master/sctrcd-drools/src/main/java/com/sctrcd/drools/DroolsResource.java
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140416/0f505cbd/attachment-0001.html
More information about the rules-users
mailing list