package study.java.drools.apiTest;
import java.util.Collection;
import java.util.Iterator;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseConfiguration;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.definition.KnowledgePackage;
import org.drools.io.impl.ClassPathResource;
import org.drools.runtime.StatefulKnowledgeSession;
public class StatefulKnowledgeSessionTest {
public static void main(String[] args) {
KnowledgeBuilder builder = KnowledgeBuilderFactory
.newKnowledgeBuilder();
builder.add(new ClassPathResource("test.drl",
KnowledgeBuilderTest.class), ResourceType.DRL);
// 打印编译错误日志
if (builder.hasErrors()) {
System.out.println("规则中存在错误,错误消息如下");
KnowledgeBuilderErrors kbuidlerErrors = builder.getErrors();
for (Iterator iter = kbuidlerErrors.iterator(); iter.hasNext();) {
System.out.println(iter.next());
}
}
// 产生规则包的集合
Collection<KnowledgePackage> knowledgePackage = builder
.getKnowledgePackages();
//KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
KnowledgeBaseConfiguration kbConf = KnowledgeBaseFactory
.newKnowledgeBaseConfiguration();
kbConf.setProperty("org.drools.sequential", "true");
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kbConf);
//将KnowledgePackage集合添加到KnowledgeBase当中
kbase.addKnowledgePackages(knowledgePackage);
StatefulKnowledgeSession statefulKSession=kbase.newStatefulKnowledgeSession();
//设置�?��global对象
statefulKSession.setGlobal("globalTest", new Object());
//插入�?��fact对象
statefulKSession.insert(new Object());
statefulKSession.fireAllRules();
statefulKSession.dispose();
}
}