<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 国产成人不卡亚洲精品91| 免费视频中文字幕| 色老板亚洲视频免在线观| 亚洲 综合 国产 欧洲 丝袜| v片免费在线观看| 91精品导航在线网址免费| 黄色一级视频免费| 91麻豆国产自产在线观看亚洲 | **毛片免费观看久久精品| 亚洲人成网站在线在线观看| 亚洲国产成人久久精品动漫| 一区二区三区免费电影| 亚洲中文字幕久久无码| 亚洲一级片免费看| 久久久久高潮毛片免费全部播放 | 亚洲免费视频网站| 亚洲av成人综合网| 亚洲人成人无码网www国产| 最近免费中文字幕mv在线电影| 在线综合亚洲欧洲综合网站| 久久精品国产96精品亚洲 | 亚洲精品老司机在线观看| 免费看小12萝裸体视频国产 | 无人影院手机版在线观看免费| 亚洲精品日韩中文字幕久久久| 国产成人涩涩涩视频在线观看免费| 免费av片在线观看网站| 亚洲av无码专区在线观看亚| 久久夜色精品国产嚕嚕亚洲av| 性一交一乱一视频免费看| 男女一边摸一边做爽的免费视频| 亚洲午夜久久久久久尤物| 亚洲日本人成中文字幕| 亚洲人成77777在线观看网| 亚洲人成色77777| 男女啪啪永久免费观看网站| 黄网址在线永久免费观看| 免费一区二区视频| 亚洲精品天堂成人片?V在线播放| 搡女人真爽免费视频大全| 亚洲精品国产摄像头|