/** * create empty knowledge base */ private KnowledgeBase getKbase() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("getOlder.drl", getClass()), ResourceType.DRL); return kbuilder.newKnowledgeBase(); }
@Test public void testDrools5Api(){ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("com/rules/goods.drl",this.getClass()), ResourceType.DRL); if(kbuilder.hasErrors()){ System.out.println(kbuilder.getErrors()); } KnowledgeBase knowledgeBase = kbuilder.newKnowledgeBase(); Collection<KnowledgePackage> pks = kbuilder.getKnowledgePackages(); knowledgeBase.addKnowledgePackages(pks); StatefulKnowledgeSession statefulKnowledgeSession = knowledgeBase.newStatefulKnowledgeSession(); Goods goods = new Goods(); statefulKnowledgeSession.insert(goods); int count = statefulKnowledgeSession.fireAllRules(); statefulKnowledgeSession.dispose(); System.out.println("Fire " + count + " rule(s)!"); System.out.println("The new discount is " + goods.getDiscount() + "%"); } }
@Before public void setUp() throws Exception { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); ksession = kbuilder.newKnowledgeBase().newStatefulKnowledgeSession(); initializeTemplate(ksession); }
public static KnowledgeBase getKBase(String filePath) { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newFileResource(filePath), ResourceType.DRL); KnowledgeBase kbase = kbuilder.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); } public static void main(String args[]) { Collection<DroolRecordBO> droolRecordBOs = // Collection of DroolRecordBO KnowledgeBase kbase = getKBase(".drl File Path"); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); for(DroolRecordBO droolRecordBO : droolRecordBOs) { ksession.insert(droolRecordBO); } ksession.fireAllRules(); ksession.dispose(); }