zoukankan      html  css  js  c++  java
  • drools 手动创建kmoudle.xml文件

     

    @Test
        public void test() {
            KieServices kieServices = KieServices.Factory.get();
            KieResources resources = kieServices.getResources();
            KieModuleModel kieModuleModel = kieServices.newKieModuleModel();//1
    
            KieBaseModel baseModel = kieModuleModel.newKieBaseModel(
                    "FileSystemKBase").addPackage("rules");//2
            baseModel.newKieSessionModel("FileSystemKSession");//3
            KieFileSystem fileSystem = kieServices.newKieFileSystem();
    
            String xml = kieModuleModel.toXML();
            System.out.println(xml);//4
            fileSystem.writeKModuleXML(xml);//5
    
            fileSystem.write("src/main/resources/rules/rule.drl", resources
                    .newClassPathResource("kiefilesystem/KieFileSystemTest.drl"));//6
    
            KieBuilder kb = kieServices.newKieBuilder(fileSystem);
            kb.buildAll();//7
            if (kb.getResults().hasMessages(Level.ERROR)) {
                throw new RuntimeException("Build Errors:
    "
                        + kb.getResults().toString());
            }
            KieContainer kContainer = kieServices.newKieContainer(kieServices
                    .getRepository().getDefaultReleaseId());
    
            assertNotNull(kContainer.getKieBase("FileSystemKBase"));
            KieSession kSession = kContainer.newKieSession("FileSystemKSession");
    
            kSession.fireAllRules();
        }
    }

     

    1. 先创建KieModuleModel;
    2. 再创建KieBaseModel;
    3. 然后创建 KieSessionModel;
    4. 创建完成之后可以生产一个xml文件,就是kmodule.xml文件了;
    5. 将这个xml文件写入到KieFileSystem中;
    6. 然后将规则文件等写入到KieFileSystem中;
    7. 最后通过KieBuilder进行构建就将该kmodule加入到KieRepository中了。这样就将自定义的kmodule加入到引擎中了,就可以按照之前的方法进行使用了。
  • 相关阅读:
    文件的上传
    扩展HTTP管道
    发布开源框架iOS矢量图形框架 TouchVG
    批量修改文件名的py脚本
    《矢量绘图基础》PPT
    开题了《面向移动设备的交互式图形平台设计与实现》
    计算几何(转)
    批量替换文件名和内容的Python脚本
    iOS上的二维绘图软件现状
    基本图形手绘图形算法包
  • 原文地址:https://www.cnblogs.com/ydymz/p/8521291.html
Copyright © 2011-2022 走看看