您的位置:首页 > 编程语言 > Java开发

【java规则引擎】drools6.5.0中kie的概论

2017-07-04 17:50 651 查看

什么是KIE?

KIE是jBoss里面一些相关项目的统称,下图就是KIE代表的一些项目,其中我们比较熟悉的就有jBPM和Drools。

这些项目都有一定的关联关系,并且存在一些通用的API,比如说涉及到构建(building)、部署(deploying)和加载 (loading)等方面的,这些API就都会以KIE作为前缀来表示这些是通用的API。前面看到的一些KieServices、 KieContainer、KieSession类就都是KIE的公共API。

总的来说,就是jBoss通过KIE将jBPM和Drools等相关项目进行了一个整合,统一了他们的使用方式。像KieServices这些KIE类就是整合后的结果,在Drools中这样使用,在jBPM里面也是这样使用。

1 public class KieFileSystemTest {
2
3     @Test
4     public void test() {
5         KieServices kieServices = KieServices.Factory.get();
6         KieResources resources = kieServices.getResources();
7         KieModuleModel kieModuleModel = kieServices.newKieModuleModel();//1
8
9         KieBaseModel baseModel = kieModuleModel.newKieBaseModel(
10                 "FileSystemKBase").addPackage("rules");//2
11         baseModel.newKieSessionModel("FileSystemKSession");//3
12         KieFileSystem fileSystem = kieServices.newKieFileSystem();
13
14         String xml = kieModuleModel.toXML();
15         System.out.println(xml);//4
16         fileSystem.writeKModuleXML(xml);//5
17
18         fileSystem.write("src/main/resources/rules/rule.drl", resources
19                 .newClassPathResource("kiefilesystem/KieFileSystemTest.drl"));//6
20
21         KieBuilder kb = kieServices.newKieBuilder(fileSystem);
22         kb.buildAll();//7
23         if (kb.getResults().hasMessages(Level.ERROR)) {
24             throw new RuntimeException("Build Errors:\n"
25                     + kb.getResults().toString());
26         }
27         KieContainer kContainer = kieServices.newKieContainer(kieServices
28                 .getRepository().getDefaultReleaseId());
29
30         assertNotNull(kContainer.getKieBase("FileSystemKBase"));
31         KieSession kSession = kContainer.newKieSession("FileSystemKSession");
32
33         kSession.fireAllRules();
34     }
35 }


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: