JBoss Drools 规则引擎示例程序
2010-05-06 17:11
429 查看
参考资料:http://leowzy.javaeye.com/blog/603941
如下图所示建立工程:
代码如下:
DroolsTest.java
Sample.drl
其他资料:
http://fu8000888.dns28.trtr.cn/article.asp?id=11
http://www.javaeye.com/topic/659752
如下图所示建立工程:
代码如下:
DroolsTest.java
package com.sample; import java.io.InputStreamReader; import java.io.Reader; import org.drools.RuleBase; import org.drools.RuleBaseFactory; import org.drools.WorkingMemory; import org.drools.compiler.PackageBuilder; import org.drools.rule.Package; public class DroolsTest { public static final void main(String[] args) { try { RuleBase ruleBase = readRule(); WorkingMemory workingMemory = ruleBase.newStatefulSession(); Message message = new Message(); message.setMessage("Hello World"); message.setStatus(Message.HELLO); workingMemory.insert(message); workingMemory.fireAllRules(); } catch (Throwable t) { t.printStackTrace(); } } private static RuleBase readRule() throws Exception { Reader source = new InputStreamReader(DroolsTest.class.getResourceAsStream("./Sample.drl")); PackageBuilder builder = new PackageBuilder(); builder.addPackageFromDrl(source); Package pkg = builder.getPackage(); RuleBase ruleBase = RuleBaseFactory.newRuleBase(); ruleBase.addPackage(pkg); return ruleBase; } public static class Message { public static final int HELLO = 0; public static final int GOODBYE = 1; public static final int GAME_OVER = 2; private String message; private int status; public String getMessage() { return this.message; } public void setMessage(String message) { this.message = message; } public int getStatus() { return this.status; } public void setStatus(int status) { this.status = status; } } }
Sample.drl
package com.sample import com.sample.DroolsTest.Message; rule "Hello World" when m : Message( status == Message.HELLO, message : message ) then System.out.println( message ); m.setMessage( "Goodbye cruel world" ); m.setStatus( Message.GOODBYE ); update( m ); end rule "GoodBye" no-loop true when m : Message( status == Message.GOODBYE, message : message ) then System.out.println( message ); m.setStatus(Message.GAME_OVER); m.setMessage("game over now!"); update( m ); end rule "game over" when m : Message( status == Message.GAME_OVER) then System.out.println( m.getMessage() ); end
其他资料:
http://fu8000888.dns28.trtr.cn/article.asp?id=11
http://www.javaeye.com/topic/659752
相关文章推荐
- jboss规则引擎KIE Drools 6.3.0 Final 教程(3)
- jboss规则引擎KIE Drools 6.3.0-高级讲授篇
- drools5.3 jboss 规则引擎入门eclipse IDE 环境
- jboss规则引擎KIE Drools 6.3.0-高级讲授篇
- jboss规则引擎KIE Drools 6.3.0 Final 教程(1)
- jboss规则引擎KIE Drools 6.3.0 Final 教程(2)
- jboss规则引擎KIE Drools 6.3.0-集群篇
- jboss规则引擎KIE Drools 6.3.0 Final 教程(2)
- jboss规则引擎KIE Drools 6.3.0 Final 教程(1)
- jboss规则引擎KIE Drools 6.3.0 Final 教程(3)
- 基于 Jboss Drools 规则引擎开发框架
- jboss规则引擎KIE Drools 6.3.0 Final 教程(3)
- jboss规则引擎KIE Drools 6.3.0 Final 教程(1)
- jboss规则引擎KIE Drools 6.3.0 Final 教程(3)
- jboss规则引擎KIE Drools 6.3.0 Final 教程(2)
- jboss规则引擎KIE Drools 2
- 业务规则引擎-jboss Drools Expert
- jboss规则引擎KIE Drools 6.3.0 3
- Java规则引擎学习-drools(五)
- Drools规则引擎语法样例分析(二)