posts - 26,  comments - 7,  trackbacks - 0
            2007年11月22日
               摘要:   閱讀全文
          posted @ 2007-12-12 16:16 jbpm 閱讀(1840) | 評論 (0)編輯 收藏
               摘要:   閱讀全文
          posted @ 2007-12-12 16:13 jbpm 閱讀(1474) | 評論 (0)編輯 收藏

          作者:楊洪波
          jbpm解析流程定義有三種方式:
          1)par包
          static ProcessDefinition auctionProcess =
                ProcessArchive.parse("org/jbpm/tdd/auction.par");
          注意,必須在classes的org/jbpm/tdd/目錄下有一個auction.par文件

          2)xml文件方式
          static ProcessDefinition auctionProcess =
                JpdlXmlReader.parseFromResource("org/jbpm/tdd/auction.xml");
          注意,必須在classes的org/jbpm/tdd/目錄下有一個auction.xml文件

          3)文本方式
          static ProcessDefinition auctionProcess = JpdlXmlReader.parse(
              "<process-definition>" +
              "  <start-state name='start'>" +
              "    <transition to='auction'/>" +
              "  </start-state>" +
              "  <state name='auction'>" +
              "    <transition to='end'/>" +
              "  </state>" +
              "  <end-state name='end'/>" +
              "</process-definition>");
          這種方式的本質和xml文件解析方式是一樣的.

          posted @ 2007-11-22 18:02 jbpm 閱讀(757) | 評論 (0)編輯 收藏

          作者:楊洪波

          作者:楊洪波

          shark和jbpm配置文件處理方式比較

          1.都使用了單例模式
          我想這個是最基本的,一般的程序員寫解析程序都會這樣使用;要說明的是,AgileFlow
          除了使用單例模式,還實現了配置文件的動態裝載,如果用戶修改了配置文件,它能夠在
          運行中動態的獲取這些變化.
          使用jbpm時,第一句話就要使用該模式:JbpmServiceFactory.getInstance()....

          2.都實現了缺省配置和定制配置
          Shark中,缺省配置放在一個深層次的目錄中,定制配置放在config目錄,兩個配置
          文件的內容差不多;
          jbpm中,缺省配置放在代碼中實現,如下:
          propertyClassNames = new HashMap();
          propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );
          abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );
          定制配置放在config目錄中,為jbpm.properties
          比較而言,jbpm的實現方式要好,理由如下:
          1)缺省配置容易找到
          2)定制配置很簡單,默認是沒有配置的,比shark的要清爽很多

          3.都實現了用一個單例實現多個單例
          我在Shark學習系列的文章中討論過這個功能,jbpm是在JbpmConfiguration.java中實現的:
          private void instantiateConfiguredObjects() {
              // instantiate configured objects
              this.fileMgr = (FileMgr) instantiate( "jbpm.file.mgr", FileMgr.class );
              this.idGenerator = (IdGenerator) instantiate( "jbpm.id.generator", IdGenerator.class );
              this.serviceFactory = (ServiceFactory) instantiate( "jbpm.service.factory", ServiceFactory.class );
          }

          1.都使用了單例模式
          我想這個是最基本的,一般的程序員寫解析程序都會這樣使用;要說明的是,AgileFlow
          除了使用單例模式,還實現了配置文件的動態裝載,如果用戶修改了配置文件,它能夠在
          運行中動態的獲取這些變化.
          使用jbpm時,第一句話就要使用該模式:JbpmServiceFactory.getInstance()....

          2.都實現了缺省配置和定制配置
          Shark中,缺省配置放在一個深層次的目錄中,定制配置放在config目錄,兩個配置
          文件的內容差不多;
          jbpm中,缺省配置放在代碼中實現,如下:
          propertyClassNames = new HashMap();
          propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );
          abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );
          定制配置放在config目錄中,為jbpm.properties
          比較而言,jbpm的實現方式要好,理由如下:
          1)缺省配置容易找到
          2)定制配置很簡單,默認是沒有配置的,比shark的要清爽很多

          3.都實現了用一個單例實現多個單例
          我在Shark學習系列的文章中討論過這個功能,jbpm是在JbpmConfiguration.java中實現的:
          private void instantiateConfiguredObjects() {
              // instantiate configured objects
              this.fileMgr = (FileMgr) instantiate( "jbpm.file.mgr", FileMgr.class );
              this.idGenerator = (IdGenerator) instantiate( "jbpm.id.generator", IdGenerator.class );
              this.serviceFactory = (ServiceFactory) instantiate( "jbpm.service.factory", ServiceFactory.class );
          }

          posted @ 2007-11-22 17:59 jbpm 閱讀(483) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 托里县| 留坝县| 潞城市| 翁源县| 武乡县| 左贡县| 双鸭山市| 溧阳市| 通山县| 五寨县| 南昌市| 宜章县| 株洲市| 民乐县| 盐边县| 武冈市| 湖南省| 浙江省| 泰顺县| 萝北县| 大同市| 泰来县| 江达县| 南乐县| 兴城市| 渭南市| 金坛市| 施秉县| 四子王旗| 黔西县| 报价| 苍山县| 景泰县| 庆安县| 彭山县| 江安县| 宁陕县| 南投市| 丰镇市| 武安市| 集安市|