- package com.sample; import java.io.Serializable; public class Message implements Serializable{ public static final int HELLO = 0; public static final int GOODBYE = 1; private String message; private int status; public String getMessage() { return message; } public int getStatus() { return status; } public void setMessage(String message) { this.message = message; } public void setStatus(int status) { this.status = status; } }
- package com.sample; import java.io.Serializable; public class Message implements Serializable{ public static final int HELLO = 0; public static final int GOODBYE = 1; private String message; private int status; public String getMessage() { return message; } public int getStatus() { return status; } public void setMessage(String message) { this.message = message; } public void setStatus(int status) { this.status = status; } }
- public class DataProviderCompilerTest {
- public static void main(String[] args) {
- ArrayList<String[]> rows = new ArrayList<String[]>();
- rows.add(new String[] { "1", "status == 0" });
- MyDataProvider tdp = new MyDataProvider(rows);
- DataProviderCompiler converter = new DataProviderCompiler();
- String drl = converter.compile(tdp, "/rules/rule_template_1.drl");
- ArrayList<String[]> rowss = new ArrayList<String[]>();
- rowss.add(new String[] { "2", "status == 1" });
- tdp = new MyDataProvider(rowss);
- String drl2 = converter.compile(tdp, "/rules/rule_template_2.drl");
- System.out.println(drl);
- System.out.println(drl2);
- 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
- String path = DataProviderCompilerTest.class.getClass().getResource("/").getPath();
- fileSystem.write("src/main/resources/rules/rule1.drl", drl);
- fileSystem.write("src/main/resources/rules/rule2.drl", drl2);
- KieBuilder kb = kieServices.newKieBuilder(fileSystem);
- kb.buildAll();//7
- if (kb.getResults().hasMessages(Level.ERROR)) {
- throw new RuntimeException("Build Errors:\n" + kb.getResults().toString());
- }
- KieContainer kContainer = kieServices.newKieContainer (kieServices.getRepository (). GetDefaultReleaseId ());
- KieSession kSession = kContainer.newKieSession("FileSystemKSession");
- Message message = new Message();
- message.setMessage("Hello World");
- message.setStatus(Message.GOODBYE);
- kSession.insert(message);
- kSession.fireAllRules();
- kSession.dispose();
- // updateDrl(kieServices,kieModuleModel,kb, baseModel, kContainer,fileSystem);
- //test();
- //test();
- }
- }
Drools6.4 dynamic loading rules (simple application of templates)
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=326541832&siteId=291194637
Recommended
Ranking