package org.drools.examples;
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.io.ResourceFactory;
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";
final Reader source = ResourceFactory.newClassPathResource("Practise.drl").getReader();
//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;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于Drools的规则引擎实例(完整、可运行eclipse工程) (105个子文件)
PointRuleEngineImpl.class 4KB
HelloWorldExample.class 4KB
Test.class 3KB
HelloWorldExample$Message.class 3KB
PointDomain.class 2KB
PointRuleEngineImpl$1.class 1KB
HelloWorldExample$1.class 903B
HelloWorldExample$Order.class 660B
RuleBaseFacatory.class 528B
StringUtils.class 520B
PointRuleEngine.class 256B
.classpath 5KB
Practise.drl 4KB
Practise.drl 4KB
addpoint.drl 2KB
addpoint.drl 2KB
HelloWorld.drl 1KB
HelloWorld.drl 1KB
subpoint.drl 650B
subpoint.drl 650B
p.dsl 0B
p.dsl 0B
jaxb-xjc-2.2.1.1.jar 2.97MB
spring-2.5.6.jar 2.81MB
hibernate-core-3.3.0.SP1.jar 2.16MB
drools-core-5.1.1.jar 2.01MB
cxf-bundle-jaxrs-2.2.9.jar 1.95MB
ecj-3.5.1.jar 1.6MB
camel-core-2.4.0.jar 1.45MB
drools-compiler-5.1.1.jar 1.07MB
jboss-seam-2.1.0.GA.jar 1.02MB
itext-2.1.2.jar 1.01MB
ant-1.6.5.jar 1010KB
hornetq-core-2.0.0.GA.jar 984KB
jaxb-impl-2.2.1.1.jar 857KB
jxl-2.6.10.jar 726KB
netty-3.1.5.GA.jar 683KB
mvel2-2.0.16.jar 652KB
mina-core-2.0.0-RC1.jar 623KB
commons-collections-3.1.jar 546KB
spring-beans-2.5.6.jar 477KB
google-collections-0.8.jar 473KB
spring-context-2.5.6.jar 466KB
javassist-3.4.GA.jar 460KB
antlr-2.7.6.jar 433KB
xstream-1.3.1.jar 421KB
ant-nodeps-1.6.5.jar 411KB
mail-1.4.jar 380KB
spring-orm-2.5.6.jar 369KB
spring-jdbc-2.5.6.jar 328KB
dom4j-1.6.1.jar 307KB
cxf-rt-frontend-jaxws-2.2.9.jar 301KB
spring-core-2.5.6.jar 279KB
hibernate-annotations-3.4.0.GA.jar 273KB
drools-bpmn2-5.1.1.jar 262KB
smack-3.0.4.jar 262KB
junit-4.8.1.jar 231KB
snakeyaml-1.4.jar 212KB
rome-0.9.jar 203KB
drools-process-task-5.1.1.jar 195KB
commons-net-2.0.jar 192KB
drools-verifier-5.1.1.jar 188KB
camel-spring-2.4.0.jar 180KB
camel-cxf-2.4.0.jar 166KB
drools-api-5.1.1.jar 152KB
jdom-1.0.jar 150KB
antlr-runtime-3.1.3.jar 147KB
commons-compress-1.0.jar 140KB
hibernate-entitymanager-3.4.0.GA.jar 116KB
commons-io-1.4.jar 106KB
jaxb-api-2.2.1.jar 102KB
drools-clips-5.1.1.jar 83KB
hibernate-commons-annotations-3.1.0.GA.jar 65KB
activation-1.1.jar 62KB
drools-grid-core-5.1.1.jar 60KB
drools-persistence-jpa-5.1.1.jar 59KB
drools-templates-5.1.1.jar 52KB
persistence-api-1.0.jar 51KB
drools-decisiontables-5.1.1.jar 49KB
commons-exec-1.0.1.jar 48KB
drools-spring-5.1.1.jar 46KB
camel-test-2.4.0.jar 46KB
hornetq-transports-2.0.0.GA.jar 43KB
drools-camel-5.1.1.jar 37KB
camel-jaxb-2.4.0.jar 36KB
drools-workitems-5.1.1.jar 34KB
drools-jsr94-5.1.1.jar 29KB
slf4j-api-1.6.0.jar 25KB
camel-xstream-2.4.0.jar 21KB
commons-finder-1.0-20080905.033643-1.jar 20KB
drools-bam-5.1.1.jar 16KB
jta-1.1.jar 15KB
drools-simulator-5.1.1.jar 14KB
jsr94-1.1.jar 13KB
drools-ant-5.1.1.jar 13KB
drools-doc-5.1.1.jar 9KB
HelloWorldExample.java 4KB
PointRuleEngineImpl.java 4KB
PointDomain.java 2KB
Test.java 2KB
共 105 条
- 1
- 2
码道功臣
- 粉丝: 65
- 资源: 126
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页