锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产AV无码专区亚洲AV手机麻豆 ,jizzjizz亚洲日本少妇,久久亚洲国产成人影院网站http://m.tkk7.com/jbpm/category/25749.htmlzh-cnWed, 12 Sep 2007 01:02:00 GMTWed, 12 Sep 2007 01:02:00 GMT60jbpm騫跺彂鐨勫瓙嫻佺▼鐨勮В鍐蟲柟妗堜笌鎺㈣http://m.tkk7.com/jbpm/archive/2007/09/11/144331.htmljbpmjbpmTue, 11 Sep 2007 09:48:00 GMThttp://m.tkk7.com/jbpm/archive/2007/09/11/144331.htmlhttp://m.tkk7.com/jbpm/comments/144331.htmlhttp://m.tkk7.com/jbpm/archive/2007/09/11/144331.html#Feedback0http://m.tkk7.com/jbpm/comments/commentRss/144331.htmlhttp://m.tkk7.com/jbpm/services/trackbacks/144331.html 浣滆咃細(xì) JeffreyHsu


灝界jbpm闈炲父寮哄ぇ錛屾槸鐩墠鏈閫傚悎鍟嗕笟鍖栫殑寮婧愬伐浣滄祦寮曟搸錛屽彲浠ュ紑鍙戝嚭澶嶆潅鐨勬祦紼嬶紝浣嗘槸鐗瑰埆閬楁喚鐨勬槸騫朵笉鏀寔騫跺彂瀛愭祦紼嬶紙multiple-subprocess錛?
鏈変竴嬈℃垜闇瑕佸仛涓涓鏉傜殑嫻佺▼錛屼富嫻佺▼閲岃姹傚悓鏃跺惎鍔ㄥ涓茍鍙戞墽琛岀殑瀛愭祦紼嬶紝騫朵笖瀛愭祦紼嬬殑鏁扮洰鍜屽惎鍔ㄧ殑鏃墮棿閮戒笉紜畾錛屽綋鎵鏈夊瓙嫻佺▼閮界粨鏉熶互鍚庯紝涓繪祦紼嬫墠緇х畫鎵ц銆傛垜浠煡閬搄bpm閲屾湁瀛愭祦紼嬬殑璁懼畾錛屾湁涓撻棬鐨勮妭鐐筆rocessState鏉ュ鐞嗭紝浣嗘槸鍚庢潵鍙戠幇鏃犺濡備綍涔熷疄鐜頒笉浜嗗瀛愭祦紼嬪茍鍙戞墽琛岋紝鍚庢潵鐪嬪叾婧愮爜鐭ラ亾鍥犱負(fù)subprocess鏄綔涓篜rocessState鐨勪竴涓睘鎬э紝涔熷氨鏄ProcessState鍙兘鍖呭惈涓涓猻ubprocess鐨勫畾涔夛紝騫朵笖鏈閲嶈鐨勬槸processInstance.getRootToken()鍜屽瓙嫻佺▼鐩稿叧鐨勫彧鏈塩reateSubProcessInstance, getSubProcessInstance, setSubProcessInstance涓変釜鏂規(guī)硶錛岃繖鎰忓懗鐫涓繪祦紼嬬殑rootToken鍙兘璁劇疆涓涓瓙嫻佺▼錛宩bpm騫朵笉鐩存帴鏀寔澶氬瓙嫻佺▼銆?
閭d箞鎴戜滑灝卞繀欏葷敤涓涓彉閫氱殑鏂規(guī)硶鏉ュ疄鐜幫紝“騫跺彂”寰堣嚜鐒剁殑璁╂垜浠兂鍒頒簡fork錛屼絾鏄繖閲岀殑fork涓嶈兘鎼厤join鏉ヤ嬌鐢紝鍏蜂綋鍘熷洜錛屽皢鍦ㄥ悗闈㈣璁恒?
涓嬮潰鍏堢粰鍑烘祦紼嬪浘錛?

state鑺傜偣鐢ㄦ潵鍚姩瀛愭祦紼嬶紙瀹為檯搴旂敤鍙互鎹㈡垚Task-Node錛夛紝state榪涘叆fork鍚庡悓鏃惰繘鍏ヤ袱涓垎鏀紝涓鏉″幓鍚姩瀛愭祦紼嬶紝鍙︿竴鏉″洖鍒拌嚜宸憋紝榪欐牱琛ㄩ潰鐪嬫潵state娌℃湁鍔紝鑰屽悓鏃朵綘鍙堝彲浠ュ惎鍔ㄧ2涓紝絎?涓?#8230;…瀛愭祦紼嬶紝闇瑕佹敞鎰忕殑鏄2鏉″瓙嫻佺▼鍜岀1涓瓙嫻佺▼騫朵笉澶勪簬鍚屼竴綰т笂錛岃屾瘮絎竴涓瓙嫻佺▼浣庝竴綰э紝鍏蜂綋璇風(fēng)湅鍚庨潰涓寮犲浘灝辨槑鐧戒簡錛屽垎瑙e悗鐨勶細(xì)

浠庡浘涓垜浠彲浠ョ湅鍒板悗涓涓瓙嫻佺▼鐨勬暣媯墊爲(wèi)鏄墠涓涓瓙嫻佺▼鐨勫厔寮燂紝浣嗘槸鍦ㄤ笟鍔$駭涓婃槸騫跺彂鐨勬晥鏋滐紝宸茬粡瀹炵幇鎴戜滑鍓嶉潰鐨勯渶姹傘?/font>

鐜板湪鏉ヨ璇翠負(fù)浠涔堜笉鑳界敤join鑰岀洿鎺ョ敤end錛屽洜涓轟細(xì)浜х敓涓涓棶棰橈紝state3鍜宻ub process 2閮藉埌杈句簡join浠ュ悗錛宻tate2涓嬮潰鐨刦ork灝辯粨鏉熶簡錛屽氨浼?xì)绔嬪埢瓒姌q噅oin鍒拌揪end錛岃宻ub process 1鍗充嬌鎵ц瀹屾瘯鍒拌揪浜唈oin鍗翠粛鐒跺湪鍌誨偦絳夊緟鐫浠栫殑鍏勫紵鍒嗘敮涔熷埌杈緅oin錛堣屽疄闄呬笂瀹冨凡緇忚嚜璺戝埌end鍘諱簡錛変竴鍚岀粨鏉燂紝榪欐牱sub process 1灝變細(xì)姘歌繙鍋滃湪join鍔ㄥ脊涓嶅緱錛屼笟鍔℃棤娉曡繘琛屻?/font>

榪欐槸鎴戠殑涓涓В鍐蟲柟妗堬紝浣嗚繕鏈変竴涓棶棰橈紝铏界劧鍏ㄩ儴鐨勫瓙嫻佺▼閮借兘緇撴潫錛屼富嫻佺▼涔熻兘緇撴潫錛屼絾鍥犱負(fù)娌℃湁join錛屼富嫻佺▼鐨剅ootToken浠嶇劧鍋滅暀鍦╢ork鑺傜偣涓娿傜洰鍓嶆垜灝氫笉鐭ュ浣曡В鍐籌紝甯屾湜鍚勪綅澶у鑳芥彁鍑哄叾浠栨洿濂界殑瑙e喅鍔炴硶銆?
鍒濆jbpm錛屾按騫蟲湁闄愶紝鏈変笉褰撲箣澶勮繕璇烽珮鎵嬫枾姝?/font>

鏈鍚庨檮涓奷emo浠g爜渚涘弬鑰冿細(xì)

浠g爜
  1.   
  2. import static org.junit.Assert.*;   
  3.   
  4. import org.jbpm.graph.def.ProcessDefinition;   
  5. import org.jbpm.graph.exe.ProcessInstance;   
  6. import org.jbpm.graph.exe.Token;   
  7. import org.jbpm.graph.node.ProcessState;   
  8. import org.junit.Before;   
  9. import org.junit.Test;   
  10.   
  11. public class MultiProcessTest {   
  12.     private ProcessDefinition superProcessDefinition;   
  13.   
  14.     private ProcessDefinition subProcessDefinition;   
  15.   
  16.     @Before   
  17.     public void setUp() throws Exception {   
  18.         superProcessDefinition = ProcessDefinition.parseXmlString(   
  19.                 "<process-definition name='super'>" +                
  20.                 "  <start-state name='start'>" +   
  21.                 "    <transition to='state' />" +   
  22.                 "  start-state>" +   
  23.                 "  <state name='state'>" +   
  24.                 "    <transition name='create sub' to='fork' />" +   
  25.                 "    <transition name='end' to='end' />" +   
  26.                 "  state>" +   
  27.                 "  <fork name='fork'>" +   
  28.                 "    <transition name='back' to='state' />" +   
  29.                 "    <transition name='go to sub' to='sub process' />" +   
  30.                 "  fork>" +   
  31.                 "  <process-state name='sub process'>" +   
  32.                 "    <sub-process name='sub' />" +   
  33.                 "    <transition to='end' />" +   
  34.                 "  process-state>" +   
  35.                 "  <end-state name='end' />" +   
  36.                 "process-definition>");   
  37.            
  38.         subProcessDefinition = ProcessDefinition.parseXmlString(   
  39.                 "<process-definition name='sub'>" +                          
  40.                 "  <start-state name='start'>"  +   
  41.                 "    <transition to='wait' />" +   
  42.                 "  start-state>" +                         
  43.                 "  <state name='wait'>" +   
  44.                 "    <transition to='end' />" +   
  45.                 "  state>" +              
  46.                 "  <end-state name='end' />" +   
  47.                 "process-definition>");   
  48.         ProcessState processState = (ProcessState) superProcessDefinition   
  49.                 .getNode("sub process");   
  50.         processState.setSubProcessDefinition(subProcessDefinition);   
  51.     }   
  52.   
  53.     @Test   
  54.     public void testMultiProcesses() {   
  55.         ProcessInstance pi = new ProcessInstance(superProcessDefinition);   
  56.   
  57.         // 鍚姩涓涓富嫻佺▼   
  58.         pi.signal();   
  59.         assertEquals("state", pi.getRootToken().getNode().getName());   
  60.   
  61.         // 榪涘叆鍒嗘敮錛屾澶勫皢榪涘叆瀛愭祦紼?  
  62.         pi.signal("create sub");   
  63.         // 涓繪祦紼媡oken灝嗗仠鐣欏湪fork鑺傜偣涓?  
  64.         assertEquals("fork", pi.getRootToken().getNode().getName());   
  65.   
  66.         // fork鍒嗕負(fù)涓ゆ敮錛屽叾涓竴鏀殑鑺傜偣鍋滅暀鍦≒rocessState涓?  
  67.         Token subProcessToken1 = pi.getRootToken().getChild("go to sub");   
  68.         ProcessInstance subPi1 = subProcessToken1.getSubProcessInstance();   
  69.         assertEquals("wait", subPi1.getRootToken().getNode().getName());   
  70.   
  71.         // 鍙︿竴鏀繑鍥炰簡state鑺傜偣錛屽疄闄呬笂騫舵病鏈夎繑鍥烇紝榪欎釜state鑺傜偣涓嶅悓浜庡厛鍓嶇殑state錛屽畠浠茍涓嶅湪鍚屼竴涓猵ath涓?  
  72.         Token stateToken1 = pi.getRootToken().getChild("back");   
  73.         assertEquals("state", stateToken1.getNode().getName());   
  74.            
  75.         // 鍐嶆榪涘叆fork錛屽惎鍔ㄧ浜屼釜瀛愭祦紼?  
  76.         stateToken1.signal("create sub");   
  77.         ProcessInstance subPi2 = stateToken1.getChild("go to sub")   
  78.                 .getSubProcessInstance();   
  79.         // 铏界劧閮芥槸瀛愭祦紼嬶紝浣嗗畠浠茍涓嶇浉鍚岋紝鍦ㄩ昏緫涓婃槸灞炰簬騫跺彂鐨勬棤鍏崇郴鐨勫瓙嫻佺▼   
  80.         assertFalse(subPi1.equals(subPi2));   
  81.         // 緇撴潫絎簩涓瓙嫻佺▼   
  82.         subPi2.signal();   
  83.         assertTrue(subPi2.hasEnded());   
  84.         assertFalse(pi.hasEnded());   
  85.   
  86.         // 緇撴潫絎竴涓瓙嫻佺▼錛屼絾涓繪祦紼嬩粛鏈粨鏉?  
  87.         subPi1.signal();   
  88.         assertTrue(subPi1.hasEnded());   
  89.         assertFalse(pi.hasEnded());   
  90.            
  91.         // 緇撴潫絎簩涓瓙嫻佺▼涓殑state錛岀涓瀛愭祦紼嬬殑back鍒嗘敮緇撴潫錛屼粠鑰屼富嫻佺▼涔熺粨鏉?  
  92.         Token stateToken2 = stateToken1.getChild("back");   
  93.         assertEquals("state", stateToken2.getNode().getName());   
  94.         assertFalse(stateToken1.hasEnded());   
  95.         assertFalse(pi.hasEnded());   
  96.         stateToken2.signal("end");   
  97.            
  98.         assertTrue(stateToken1.hasEnded());   
  99.         assertTrue(subPi1.hasEnded());   
  100.         assertTrue(pi.getRootToken().getChild("back").hasEnded());   
  101.         assertTrue(pi.getRootToken().getChild("go to sub").hasEnded());   
  102.         // 涓繪祦紼嬬粨鏉熶簡   
  103.         assertTrue(pi.hasEnded());   
  104.         // 铏界劧涓繪祦紼嬪凡緇忕粨鏉熶簡錛屼絾鏄洜涓哄瓙嫻佺▼娌℃湁join錛屾墍浠ュ叾rootToken浠嶇劧鍋滅暀鍦╢ork涓?  
  105.         assertEquals("fork", pi.getRootToken().getNode().getName());   
  106.         // 絎簩涓瓙嫻佺▼鍒拌揪鐨別nd鍜屼富嫻佺▼涓殑end騫朵笉鏄悓涓涓妭鐐?/font>   
  107.         assertTrue(!pi.getRootToken().getNode().equals(stateToken2.getNode()));   
  108.     }   
  109. }   


jbpm 2007-09-11 17:48 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲第一综合天堂另类专 | 国产h视频在线观看免费| 狠狠综合久久综合88亚洲| 亚洲人成免费网站| 亚洲AV无码乱码国产麻豆穿越| 亚洲色无码专区在线观看| 亚洲不卡在线观看| 2015日韩永久免费视频播放| 天天摸天天操免费播放小视频| 亚洲最大在线视频| 很黄很色很刺激的视频免费| 亚洲日本天堂在线| 免费**毛片在线播放直播| 免费一级毛片在线播放视频免费观看永久 | 精品97国产免费人成视频| 亚洲免费视频观看| 亚洲乱码一二三四区麻豆| 特级毛片在线大全免费播放| 亚洲五月午夜免费在线视频| 日韩亚洲国产高清免费视频| 四虎成人免费网址在线| 狠狠热精品免费观看| 国产成人精品免费视频网页大全 | 四色在线精品免费观看| 边摸边吃奶边做爽免费视频网站 | 亚洲国产电影av在线网址| 国产黄在线观看免费观看不卡| 亚洲精品高清国产一线久久| 色噜噜噜噜亚洲第一| 国产成人无码免费看视频软件| 亚洲精品第一国产综合亚AV| 国产成人亚洲影院在线观看| 免费无码av片在线观看| 亚洲另类春色校园小说| 国产又大又黑又粗免费视频| 中国在线观看免费的www| 久久伊人亚洲AV无码网站| 最近中文字幕免费完整| 亚洲人成网址在线观看| 在线看片免费人成视频播| 亚洲人成网站在线观看播放青青|