<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-16  評論-54  文章-0  trackbacks-0
    (本文檔的全篇可以到博客下面的文件列表下載,地址下面) 
    http://m.tkk7.com/jspark/admin/Files.aspx


    為了讓盡快對
    jbossRules有一個感官的認識,下面先開發一個HelloWorld的程序。

    建立一個java工程,目錄如下:

     

     

    如上所示,建立一個com包,然后在下面分別建立一個Sample.drl文件和DroolsTest.java文件。

    Sample.drl是一個規則文件,內容如下:

     

    package com

     

    import com.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.setMessage( message );

          

    end

     

    DroolsTest.java是測試以上規則的JAVA程序,內部代碼如下:

     

     

    package com;

     

    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;

     

    /**

     * This is a sample file to launch a rule package from a rule source file.

     */

    public class DroolsTest {

     

        public static final void main(String[] args) {

            try {

           

            //load up the rulebase

                RuleBase ruleBase = readRule();

                WorkingMemory workingMemory = ruleBase.newStatefulSession();

               

                //go !

                Message message = new Message();

                message.setMessage(  "Hello World" );

                message.setStatus( Message.HELLO );

                workingMemory.insert( message );

                workingMemory.fireAllRules();  

               

               

            } catch (Throwable t) {

                t.printStackTrace();

            }

        }

     

        /**

         * Please note that this is the "low level" rule assembly API.

         */

        private static RuleBase readRule() throws Exception {

           //read in the source

           Reader source = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/com/Sample.drl" ) );

          

           //optionally read in the DSL (if you are using it).

           //Reader dsl = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/mylang.dsl" ) );

     

           //Use package builder to build up a rule package.

           //An alternative lower level class called "DrlParser" can also be used...

          

           PackageBuilder builder = new PackageBuilder();

     

           //this wil parse and compile in one step

           //NOTE: There are 2 methods here, the one argument one is for normal DRL.

           builder.addPackageFromDrl( source );

     

           //Use the following instead of above if you are using a DSL:

           //builder.addPackageFromDrl( source, dsl );

          

           //get the compiled package (which is serializable)

           Package pkg = builder.getPackage();

          

           //add the package to a rulebase (deploy the rule package).

           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;

          

           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;

           }

        }

    }

     

    運行DroolsTest.java程序,可以看到如下輸出結果:

     

    Hello World

    Goodbye cruel world

     

    以上就是一個最簡單的jbossRules規則系統的例子。下面將具體講解jbossRules的詳細結構和語法。

    posted on 2008-10-28 15:54 jspark 閱讀(1634) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久精品毛片免费观看| 女人18毛片水真多免费播放| 婷婷精品国产亚洲AV麻豆不片| 午夜精品一区二区三区免费视频| 亚洲男人天堂影院| 国产免费观看视频| 两性色午夜视频免费播放| 亚洲精彩视频在线观看| 免费真实播放国产乱子伦| 久久99热精品免费观看牛牛| 亚洲精品宾馆在线精品酒店| 亚洲色精品aⅴ一区区三区| 91频在线观看免费大全| 青青青视频免费观看| 91情国产l精品国产亚洲区| 日日操夜夜操免费视频| 久久精品国产这里是免费| 亚洲精品久久无码av片俺去也| 国产偷窥女洗浴在线观看亚洲| 国产精品免费网站| 一级毛片在线完整免费观看| 亚洲日韩国产精品无码av| 免费A级毛片无码久久版| 95免费观看体验区视频| 久香草视频在线观看免费| 亚洲中文久久精品无码1| 久久久久亚洲?V成人无码| 成人无遮挡裸免费视频在线观看 | 最近最新MV在线观看免费高清| 三级片免费观看久久| 亚洲国产成a人v在线观看| 亚洲精品乱码久久久久久自慰| 色www永久免费视频| 99ee6热久久免费精品6| 国产va免费精品| 国产精品亚洲lv粉色| 91嫩草亚洲精品| 久久久无码精品亚洲日韩按摩| 亚洲真人日本在线| 午夜小视频免费观看| xxxxx免费视频|