package org.drools.examples;
import java.io.FileReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.drools.QueryResults;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.StatefulSession;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
import org.drools.spi.Activation;
/**
* This is a sample file to launch a rule package from a rule source file.
*/
public class HelloWorldExample {
public static void main(String[] args) throws Exception {
// 设置系统时间格式
System.setProperty("drools.dateformat", "yyyy-MM-dd HH:mm:ss");
//String filepath = "D:/workspace2/DroolsDemo/src/org/drools/examples/HelloWorld.drl";
String filepath2 = "D:/workspace2/DroolsDemo/src/org/drools/examples/Practise.drl";
final Reader source = new FileReader(filepath2);
//final Reader source2 = new FileReader(filepath);
// final PackageBuilderConfiguration configuration = new PackageBuilderConfiguration();
final PackageBuilder builder = new PackageBuilder();
// this will parse and compile in one step
builder.addPackageFromDrl(source);
//builder.addPackageFromDrl(source2);
// Check the builder for errors
if (builder.hasErrors()) {
System.out.println("规则脚本存在错误:"+builder.getErrors().toString());
}
// get the compiled package (which is serializable)
final Package pkg = builder.getPackage();
// add the package to a rulebase (deploy the rule package).
final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
Package[] packages = ruleBase.getPackages();
for(Package p :packages){
ruleBase.removePackage(p.getName());
}
ruleBase.addPackage(pkg);
final StatefulSession session = ruleBase.newStatefulSession();
// session.setGlobal("myGlobalList", new ArrayList<String>());
// session.addEventListener(new DebugAgendaEventListener());
// session.addEventListener(new DebugWorkingMemoryEventListener());
final List<Order> orders = new ArrayList<Order>();
final Order o = new Order();
o.setName("qu");
orders.add(o);
final Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
message.setOrders(orders);
message.names.add("网易");
message.setTime(new Date());
message.setStringUtils(new StringUtils());
session.insert(o);
session.insert(message);
// fire
session.fireAllRules(new org.drools.spi.AgendaFilter() {
public boolean accept(Activation activation) {
return !activation.getRule().getName().contains("_test");
}
});
session.dispose();
QueryResults qrs = session.getQueryResults("pcount");
System.out.println(qrs.size());
QueryResults qrs2 = session.getQueryResults("pc2", new Object[]{10});
System.out.println(qrs2.size());
System.out.println("引擎执行完成后:"+message.getStatus()+message.getNames());
}
public static class Message {
public static final int HELLO = 0;
public static final int GOODBYE = 1;
private String message;
private int status;
private Date time;
private List<Order> orders;
private StringUtils stringUtils;
public List<String> names = new ArrayList<String>();
public Message() {
}
public StringUtils getStringUtils() {
return stringUtils;
}
public void setStringUtils(StringUtils stringUtils) {
this.stringUtils = stringUtils;
}
public int getFromDB(){
return stringUtils.getc();
}
public String getMessage() {
return this.message;
}
public void setMessage(final String message) {
this.message = message;
}
public int getStatus() {
return this.status;
}
public void setStatus(final int status) {
this.status = status;
}
public List<Order> getOrders() {
return orders;
}
public void setOrders(List<Order> orders) {
this.orders = orders;
}
public List<String> getNames() {
return names;
}
public void setNames(List<String> names) {
this.names = names;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
public static class Order {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
DroolsDemo.rar (54个子文件)
DroolsDemo
.project 386B
bin
org
drools
examples
HelloWorldExample$Message.class 3KB
p.dsl 0B
HelloWorld.drl 1KB
HelloWorldExample.class 4KB
RuleAgendaFilter.class 805B
Practise.drl 4KB
StringUtils.class 520B
HelloWorldExample$Order.class 660B
HelloWorldExample$1.class 903B
com
drools
demo
point
Test.class 3KB
subpoint.drl 650B
PointDomain.class 2KB
PointRuleEngine.class 256B
addpoint.drl 2KB
PointRuleEngineImpl$1.class 1KB
RuleBaseFacatory.class 528B
PointRuleEngineImpl.class 4KB
.settings
org.eclipse.jdt.core.prefs 629B
src
org
drools
examples
p.dsl 0B
HelloWorld.drl 1KB
HelloWorldExample.java 4KB
StringUtils.java 207B
Practise.drl 4KB
com
drools
demo
point
RuleBaseFacatory.java 366B
PointRuleEngine.java 385B
subpoint.drl 650B
PointDomain.java 2KB
PointRuleEngineImpl.java 4KB
Test.java 2KB
addpoint.drl 2KB
.classpath 2KB
lib
mvel2-2.0.16.jar 652KB
drools-bam-5.1.1.jar 16KB
drools-core-5.1.1.jar 2.01MB
drools-spring-5.1.1.jar 46KB
drools-grid-core-5.1.1.jar 60KB
drools-doc-5.1.1.jar 9KB
drools-persistence-jpa-5.1.1.jar 59KB
drools-jsr94-5.1.1.jar 29KB
drools-decisiontables-5.1.1.jar 49KB
ant-1.6.5.jar 1010KB
drools-bpmn2-5.1.1.jar 262KB
drools-camel-5.1.1.jar 37KB
drools-ant-5.1.1.jar 13KB
antlr-runtime-3.1.3.jar 147KB
drools-clips-5.1.1.jar 83KB
drools-simulator-5.1.1.jar 14KB
drools-workitems-5.1.1.jar 34KB
drools-process-task-5.1.1.jar 195KB
drools-api-5.1.1.jar 152KB
drools-verifier-5.1.1.jar 188KB
drools-templates-5.1.1.jar 52KB
drools-compiler-5.1.1.jar 1.07MB
共 54 条
- 1
quzishen
- 粉丝: 274
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页