锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合激情六月婷婷在线观看,亚洲中文无码av永久,亚洲a级片在线观看http://www.tkk7.com/stevenjohn/category/51867.html閭d簺闈掓槬鐨勫瞾鏈?/description>zh-cnSun, 03 Jun 2012 18:06:41 GMTSun, 03 Jun 2012 18:06:41 GMT60瀛︿範OSWorkFlow鐨勬枃绔犳敹闆?http://www.tkk7.com/stevenjohn/archive/2012/06/03/379881.htmlabinabinSun, 03 Jun 2012 15:16:00 GMThttp://www.tkk7.com/stevenjohn/archive/2012/06/03/379881.htmlhttp://www.tkk7.com/stevenjohn/comments/379881.htmlhttp://www.tkk7.com/stevenjohn/archive/2012/06/03/379881.html#Feedback0http://www.tkk7.com/stevenjohn/comments/commentRss/379881.htmlhttp://www.tkk7.com/stevenjohn/services/trackbacks/379881.html

OSWorkflow鏄竴涓伒媧葷殑宸ヤ綔嫻佸紩鎿庯紝璁捐鎴愬彲宓屽叆鍒頒紒涓氬簲鐢ㄧ▼搴忎腑銆傚畠鎻愪緵浜嗚澶氱殑鎸佷箙鍖朅PI鏀寔鍖呮嫭錛欵JB,Hibernate,JDBC鍜屽叾瀹冦侽SWorkflow榪樺彲浠ヤ笌Spring闆嗘垚銆?br />緗戝潃錛?a target="_blank">http://www.opensymphony.com/osworkflow/

1.OSWorkflow鍩烘湰姒傚康(gigix)
http://gigix.blogdriver.com/gigix/113138.html
2.osworkflow涓枃鎸囧崡(Quake Wang)
http://wiki.opensymphony.com/display/WF/Tutorial+-+Chinese
3.OSWorkflow鍏ラ棬(鍙插笣鑺績寰楃瑪璁?
http://my.so-net.net.tw/idealist/OSWorkflow/
4.鑻辨枃鏂囨。
http://wiki.opensymphony.com/display/WF/Manual
5.娣卞叆鍒嗘瀽(閾剁嫄999)
http://blog.csdn.net/james999/category/52990.aspx


鍏跺畠鍏充簬osworkflow鐨勬枃绔?/p>

http://captainandboat.spaces.live.com/blog/cns!9a3607f7808d2d0d!334.entry

http://qinysong.iteye.com/blog/post/333919

http://www.cnblogs.com/jssy/archive/2007/06/08/776175.html

http://zhusl.blog.sohu.com/32223382.html




abin 2012-06-03 23:16 鍙戣〃璇勮
]]>
Osworkflow2.8 鍏ラ棬綰т緥瀛?/title><link>http://www.tkk7.com/stevenjohn/archive/2012/06/03/379878.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 03 Jun 2012 14:39:00 GMT</pubDate><guid>http://www.tkk7.com/stevenjohn/archive/2012/06/03/379878.html</guid><wfw:comment>http://www.tkk7.com/stevenjohn/comments/379878.html</wfw:comment><comments>http://www.tkk7.com/stevenjohn/archive/2012/06/03/379878.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/stevenjohn/comments/commentRss/379878.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/stevenjohn/services/trackbacks/379878.html</trackback:ping><description><![CDATA[osworkflow.xml<br /><osworkflow><br /> <persistence class="com.opensymphony.workflow.spi.memory.MemoryWorkflowStore" /><br /> <factory class="com.opensymphony.workflow.loader.XMLWorkflowFactory"><br />  <property key="resource" value="workflows.xml" /><br /> </factory><br /></osworkflow><br /><br /><br />workflows.xml<br /><workflows><br />  <workflow name="docworkflow" type="resource" location="myworkflow.xml"/><br /></workflows><br /><br /><br />myworkflow.xml<br /> <p><?xml version="1.0" encoding="UTF-8"?><br /><!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "<a ><br /><workflow><br /> <registers><br />  <register type="class" variable-name="log"><br />   <arg name="class.name">com.opensymphony.workflow.util.LogRegister</arg><br />   <arg name="addInstanceId">true</arg><br />  </register><br /> </registers></p> <p> <initial-actions><br />  <action id="100" name="Start Ordinary Workflow"><br />   <results><br />    <unconditional-result old-status="Finished"<br />     status="Queued" step="1" /><br />   </results><br />  </action><br />  <action id="200" name="Start Emergent Workflow"><br />   <results><br />    <unconditional-result old-status="Finished"<br />     status="Queued" step="5" /><br />   </results><br />  </action><br /> </initial-actions></p> <p> <steps></p> <p>  <step id="1" name="Initiate Doc"><br />   <actions><br />    <action id="1" name="Initial Work"><br />     <restrict-to><br />      <conditions><br />       <condition type="class"><br />        <arg name="class.name"><br />         com.opensymphony.workflow.util.StatusCondition<br />        </arg><br />        <arg name="status">Queued</arg><br />       </condition><br />      </conditions><br />     </restrict-to><br />     <validators><br />      <validator type="class"><br />       <arg name="class.name"><br />        org.abin.lee.validator.TitleValidator<br />       </arg><br />      </validator><br />     </validators><br />     <pre-functions><br />      <function type="class"><br />       <arg name="class.name"><br />        com.opensymphony.workflow.util.Caller<br />       </arg><br />       <arg name="stepId">1</arg><br />      </function><br />      <function type="beanshell"><br />       <arg name="script"><br />        transientVars.get("log").info("Initiate Work");<br />       </arg><br />      </function><br />     </pre-functions><br />     <results><br />      <unconditional-result old-status="Finished"<br />       status="Prepared" step="1" owner="${caller}" /><br />     </results><br />     <post-functions><br />      <function type="beanshell"><br />       <arg name="script"><br />        propertySet.setString("title",<br />        (String)transientVars.get("title"));<br />       </arg><br />      </function><br />     </post-functions><br />    </action><br />    <action id="2" name="Deliver Work"><br />     <restrict-to><br />      <conditions type="AND"><br />       <condition type="class"><br />        <arg name="class.name"><br />         com.opensymphony.workflow.util.StatusCondition<br />        </arg><br />        <arg name="status">Prepared</arg><br />        <arg name="stepId">1</arg><br />       </condition><br />       <condition type="class"><br />        <arg name="class.name"><br />         com.opensymphony.workflow.util.AllowOwnerOnlyCondition<br />        </arg><br />       </condition><br />      </conditions><br />     </restrict-to><br />     <pre-functions><br />      <function type="beanshell"><br />       <arg name="script"><br />        transientVars.get("log").info("Deliver Doc to Boss A and B");<br />       </arg><br />      </function><br />     </pre-functions><br />     <results><br />      <unconditional-result old-status="Finished"<br />       status="Prepared" split="1" /><br />     </results><br />    </action><br />   </actions><br />  </step></p> <p>  <step id="2" name="Review Doc In Boss A"><br />   <external-permissions><br />    <permission name="permA"><br />     <restrict-to><br />      <conditions type="AND"><br />       <condition name="check.status" type="class"><br />        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg><br />        <arg name="status">Prepared</arg><br />       </condition><br />       <condition name="allow.owner.only" type="class"><br />        <arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg><br />       </condition><br />      </conditions><br />     </restrict-to><br />    </permission><br />   </external-permissions><br />   <actions><br />    <action id="3" name="Review Work By A"><br />     <pre-functions><br />      <function type="beanshell"><br />       <arg name="script"><br />        transientVars.get("log").info("Doc Reviewed By Boss A")<br />       </arg><br />      </function><br />     </pre-functions><br />     <results><br />      <unconditional-result old-status="Finished"<br />       status="Underway" join="1" /><br />     </results><br />    </action><br />   </actions><br />  </step></p> <p>  <step id="3" name="Review Doc In Boss B"><br />   <external-permissions><br />    <permission name="permA"><br />     <restrict-to><br />      <conditions type="AND"><br />       <condition name="check.status" type="class"><br />        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg><br />        <arg name="status">Prepared</arg><br />       </condition><br />       <condition name="allow.owner.only" type="class"><br />        <arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg><br />       </condition><br />      </conditions><br />     </restrict-to><br />    </permission><br />   </external-permissions><br />   <actions><br />    <action id="4" name="Review Work By B"><br />     <pre-functions><br />      <function type="beanshell"><br />       <arg name="script"><br />        transientVars.get("log").info("Doc Reviewed By Boss B")<br />       </arg><br />      </function><br />     </pre-functions><br />     <results><br />      <unconditional-result old-status="Finished"<br />       status="Underway" join="1" /><br />     </results><br />    </action><br />   </actions><br />  </step></p> <p>  <step id="4" name="Finish Ordinary Work"><br />   <pre-functions><br />    <function type="beanshell"><br />     <arg name="script"><br />      System.out.println("Finish Doc Review. \nTitle:"+propertySet.getString("title")+".");<br />     </arg><br />    </function><br />   </pre-functions><br />  </step></p> <p>  <step id="5" name="Finish Emergent Work"><br />   <pre-functions><br />    <function type="beanshell"><br />     <arg name="script"><br />      System.out.println("Emergency Handler");<br />     </arg><br />    </function><br />   </pre-functions><br />  </step></p> <p> </steps></p> <p> <splits><br />  <split id="1"><br />   <unconditional-result old-status="Finished"<br />    status="Prepared" step="2" /><br />   <unconditional-result old-status="Finished"<br />    status="Prepared" step="3" /><br />  </split><br /> </splits></p> <p> <joins><br />  <join id="1"><br />   <conditions type="AND"><br />    <condition type="beanshell"><br />     <arg name="script"><![CDATA[ "Finished".equals(jn.getStep(2).getStatus()) && "Finished".equals(jn.getStep(3).getStatus()) ]]></arg><br />    </condition><br />   </conditions><br />   <unconditional-result old-status="Finished"<br />    status="Reviewed" step="4" /><br />  </join><br /> </joins></p> <p></workflow></p><br /><br /><br />TitleValidator.java<br /> <p>package org.abin.lee.validator;</p> <p>import java.util.Map;<br />import com.opensymphony.module.propertyset.PropertySet;<br />import com.opensymphony.workflow.InvalidInputException;<br />import com.opensymphony.workflow.Validator;<br />import com.opensymphony.workflow.WorkflowException;</p> <p>public class TitleValidator implements Validator {<br /> public void validate(Map transientVars, Map args, PropertySet ps)<br />   throws InvalidInputException, WorkflowException {<br />  System.out.println("TitleValidator is running");<br />  String title = (String) transientVars.get("title");<br />  if (title == null)<br />   throw new InvalidInputException("Missing title");<br />  if (title.length() > 30)<br />   throw new InvalidInputException("Title too long");<br /> }<br />}</p><br /><br />SimpleSample.java<br /> <p>package org.abin.lee.workflow;</p> <p>import java.util.HashMap;</p> <p>import com.opensymphony.workflow.InvalidActionException;<br />import com.opensymphony.workflow.InvalidEntryStateException;<br />import com.opensymphony.workflow.InvalidInputException;<br />import com.opensymphony.workflow.InvalidRoleException;<br />import com.opensymphony.workflow.Workflow;<br />import com.opensymphony.workflow.WorkflowException;<br />import com.opensymphony.workflow.basic.BasicWorkflow;<br />import com.opensymphony.workflow.config.DefaultConfiguration;</p> <p>public class SimpleSample {<br /> public static void main(String[] args) {<br />  try {<br />   Workflow workflow = new BasicWorkflow("abin");</p> <p>   DefaultConfiguration config = new DefaultConfiguration();<br />   workflow.setConfiguration(config);</p> <p>   long workflowId = workflow.initialize("docworkflow", 100, null);<br />   HashMap inputs = new HashMap();<br />   inputs.put("title", "openopen");</p> <p>   workflow.doAction(workflowId, 1, inputs);</p> <p>   workflow.doAction(workflowId, 2, null);</p> <p>   workflow.doAction(workflowId, 3, null);</p> <p>   workflow.doAction(workflowId, 4, null);<br />   <br />  } catch (InvalidActionException e) {<br />   System.out.println(e.getMessage());<br />  } catch (InvalidRoleException e) {<br />   System.out.println(e.getMessage());<br />  } catch (InvalidInputException e) {<br />   System.out.println(e.getMessage());<br />  } catch (InvalidEntryStateException e) {<br />   System.out.println(e.getMessage());<br />  } catch (WorkflowException e) {<br />   System.out.println(e.getMessage());<br />  }<br /> }<br />}</p><br /><br /><br />log4j.properties<br /> <p>log4j.rootCategory=info,log,console</p> <p>log4j.logger.org.apache.axis2.enterprise=FATAL<br />log4j.logger.de.hunsicker.jalopy.io=FATAL<br />log4j.logger.httpclient.wire.header=FATAL<br />log4j.logger.org.apache.commons.httpclient=FATAL</p> <p>log4j.appender.console=org.apache.log4j.ConsoleAppender<br />log4j.appender.console.layout=org.apache.log4j.PatternLayout<br />log4j.appender.console.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n<br /> <br />log4j.appender.log=org.apache.log4j.DailyRollingFileAppender<br />log4j.appender.log.File=logs/osworkflow.log<br />log4j.appender.log.layout=org.apache.log4j.PatternLayout<br />log4j.appender.log.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n</p><br /><br /><br /> <p><a >http://blog.sina.com.cn/s/blog_544a96ce0100nvjy.html</a></p> <p><a >http://blog.csdn.net/tanruitian/article/details/498167</a></p> <p><a >http://www.cnblogs.com/jacky73/archive/2008/12/17/1357134.html</a></p><img src ="http://www.tkk7.com/stevenjohn/aggbug/379878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/stevenjohn/" target="_blank">abin</a> 2012-06-03 22:39 <a href="http://www.tkk7.com/stevenjohn/archive/2012/06/03/379878.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://yy885.com" target="_blank">亚洲精品无码专区在线在线播放</a>| <a href="http://hyhtzh.com" target="_blank">免费a级毛片无码a∨蜜芽试看</a>| <a href="http://2c06xyz.com" target="_blank">亚洲一级片内射网站在线观看</a>| <a href="http://datian-cn.com" target="_blank">亚洲欧美日韩一区二区三区在线</a>| <a href="http://qu41.com" target="_blank">好先生在线观看免费播放</a>| <a href="http://www66susu.com" target="_blank">亚洲制服在线观看</a>| <a href="http://eaivan.com" target="_blank">国产无人区码卡二卡三卡免费</a>| <a href="http://aqdav22.com" target="_blank">亚洲a∨无码男人的天堂</a>| <a href="http://snbbearing.com" target="_blank">18禁止观看免费私人影院</a>| <a href="http://ti166.com" target="_blank">色在线亚洲视频www</a>| <a href="http://zjjtejia.com" target="_blank">最近中文字幕免费mv视频8</a>| <a href="http://www676617.com" target="_blank">亚洲日本久久久午夜精品</a>| <a href="http://fenglengqi.com" target="_blank">亚洲成在人线aⅴ免费毛片</a>| <a href="http://s4lm0x.com" target="_blank">亚洲精品乱码久久久久蜜桃 </a>| <a href="http://assbjg.com" target="_blank">久久国产乱子免费精品</a>| <a href="http://www-44455588.com" target="_blank">亚洲第一AV网站</a>| <a href="http://yiqigxfc.com" target="_blank">久久精品一本到99热免费</a>| <a href="http://xianzijie.com" target="_blank">亚洲沟沟美女亚洲沟沟</a>| <a href="http://chinaedubrand.com" target="_blank">一二三四在线观看免费高清中文在线观看 </a>| <a href="http://1897tao.com" target="_blank">亚洲高清一区二区三区</a>| <a href="http://gtja1668.com" target="_blank">成人免费无毒在线观看网站</a>| <a href="http://wwwp784.com" target="_blank">色欲aⅴ亚洲情无码AV蜜桃</a>| <a href="http://333uy.com" target="_blank">亚洲国产精品人人做人人爽 </a>| <a href="http://805ios.com" target="_blank">131美女爱做免费毛片</a>| <a href="http://727744.com" target="_blank">亚洲人成黄网在线观看</a>| <a href="http://yiren2233.com" target="_blank">成年人免费观看视频网站</a>| <a href="http://qq-gm.com" target="_blank">黄色一级毛片免费看</a>| <a href="http://33eaa.com" target="_blank">亚洲AV无码一区二区三区系列</a>| <a href="http://pufenghotel.com" target="_blank">亚洲成人免费在线观看</a>| <a href="http://bcz123.com" target="_blank">亚洲精品乱码久久久久久V</a>| <a href="http://am33318.com" target="_blank">亚洲国产精品一区二区第一页免</a>| <a href="http://wilbysec.com" target="_blank">中国一级毛片免费看视频</a>| <a href="http://1178767.com" target="_blank">久久精品国产亚洲AV无码娇色</a>| <a href="http://doubaye.com" target="_blank">免费黄色app网站</a>| <a href="http://chuadang.com" target="_blank">成人无码视频97免费</a>| <a href="http://yuezhaoming.com" target="_blank">亚洲同性男gay网站在线观看</a>| <a href="http://yaku100.com" target="_blank">国产在线观看www鲁啊鲁免费</a>| <a href="http://ymiwang.com" target="_blank">yellow视频免费在线观看</a>| <a href="http://tc116.com" target="_blank">亚洲成电影在线观看青青</a>| <a href="http://alankell.com" target="_blank">又爽又高潮的BB视频免费看</a>| <a href="http://2255325.com" target="_blank">久久九九全国免费</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>