﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-星泉の编程</title><link>http://www.blogjava.net/sashyomaru/</link><description>Java进行时</description><language>zh-cn</language><lastBuildDate>Fri, 17 Apr 2026 21:13:10 GMT</lastBuildDate><pubDate>Fri, 17 Apr 2026 21:13:10 GMT</pubDate><ttl>60</ttl><item><title>工作流应用之jBpm（二）——一个最简单的jpdl </title><link>http://www.blogjava.net/sashyomaru/archive/2006/11/13/workflow_jbpm_3.html</link><dc:creator>刘鑫铨</dc:creator><author>刘鑫铨</author><pubDate>Mon, 13 Nov 2006 03:46:00 GMT</pubDate><guid>http://www.blogjava.net/sashyomaru/archive/2006/11/13/workflow_jbpm_3.html</guid><wfw:comment>http://www.blogjava.net/sashyomaru/comments/80846.html</wfw:comment><comments>http://www.blogjava.net/sashyomaru/archive/2006/11/13/workflow_jbpm_3.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sashyomaru/comments/commentRss/80846.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sashyomaru/services/trackbacks/80846.html</trackback:ping><description><![CDATA[&lt;process-definition name="process名称"&gt;<br />   &lt;start-state&gt;<br />      &lt;transition to="s"/&gt;<br />   &lt;/start-state&gt;<br />   &lt;state name="s"&gt;<br />      &lt;transition to="end"/&gt;<br />   &lt;/state&gt;<br />   &lt;end-state name="end"/&gt;<br /> &lt;/process-definition&gt;<img src ="http://www.blogjava.net/sashyomaru/aggbug/80846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sashyomaru/" target="_blank">刘鑫铨</a> 2006-11-13 11:46 <a href="http://www.blogjava.net/sashyomaru/archive/2006/11/13/workflow_jbpm_3.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作流应用之jBpm（一）</title><link>http://www.blogjava.net/sashyomaru/archive/2006/11/13/workflow_jbpm_1.html</link><dc:creator>刘鑫铨</dc:creator><author>刘鑫铨</author><pubDate>Mon, 13 Nov 2006 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/sashyomaru/archive/2006/11/13/workflow_jbpm_1.html</guid><wfw:comment>http://www.blogjava.net/sashyomaru/comments/80844.html</wfw:comment><comments>http://www.blogjava.net/sashyomaru/archive/2006/11/13/workflow_jbpm_1.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sashyomaru/comments/commentRss/80844.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sashyomaru/services/trackbacks/80844.html</trackback:ping><description><![CDATA[
		<p>早先在公司是实习的时候做过一些工作流的东西，听说过jBpm，可惜一直无缘得见。<br />这回念研，总算有个机会好好了解一下jBpm<br /><br />1、一个简单的例子：<br /> //解析XML，生成定义<br /> ProcessDefinition definition = ProcessDefinition.parseXmlString(String xmlString);<br /> //建立一个过程，并把节点设置在开始节点<br /> ProcessInstance processInstance = new ProcessInstance(processDefinition);<br /> //获得过程中记号的位置<br /> Token token = processInstance.getRootToken();<br /> <br /> 这时候token.getNode()就应该位于过程当前运行的节点上<br /> 所以刚创建的时候 precessDefinition.getStartState()应该等于token.getNode();</p>
		<p> 调用token.signal()用于让过程继续下去，而且该方法会阻塞直到程序处于等待状态</p>
		<p> </p>
		<p> 这时token.getNode()应该与期望的processDefinition.getNode(节点名称)一致<br /> <br />2、配置环境与状态持久化<br /> JbpmConfiguration configuration = JbmConfiguration.parseXmlString(String xml字符串);<br /> configuration.createSchema();<br /> configuration.dropSchema();</p>
		<p> 数据库记录当前状态<br /> JbpmContext context = configuration.createJbpmContext();</p>
		<p> //这句将ProcessDefinition持久化到数据库中<br /> context.deployProcessDefinition(processDefinition);<br /> context.close();<br /> <br /> //读取的办法<br /> GraphSession graphSession = context.getGraphSession();<br /> processDefinition = graphSession.findLatestProcessDefinition("定义名");<br /> List instances = graphSession.findProcessInstances(processDefinition.getId());<br /> <br /> instance.signal();//继续执行的过程<br /> instance.hasEnded();<br /> <br /> context.save(instance);</p>
		<p>3、变量操作<br /> ContextInstance contextInstance = processInstance.getContextInstance();<br /> contextInstance.setVariable("名",值);</p>
<img src ="http://www.blogjava.net/sashyomaru/aggbug/80844.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sashyomaru/" target="_blank">刘鑫铨</a> 2006-11-13 11:43 <a href="http://www.blogjava.net/sashyomaru/archive/2006/11/13/workflow_jbpm_1.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源系列之一——利用JMock进行交互测试</title><link>http://www.blogjava.net/sashyomaru/archive/2006/11/11/jmock_base.html</link><dc:creator>刘鑫铨</dc:creator><author>刘鑫铨</author><pubDate>Sat, 11 Nov 2006 15:55:00 GMT</pubDate><guid>http://www.blogjava.net/sashyomaru/archive/2006/11/11/jmock_base.html</guid><wfw:comment>http://www.blogjava.net/sashyomaru/comments/80647.html</wfw:comment><comments>http://www.blogjava.net/sashyomaru/archive/2006/11/11/jmock_base.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sashyomaru/comments/commentRss/80647.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sashyomaru/services/trackbacks/80647.html</trackback:ping><description><![CDATA[
		<p>JUnit测试存在的问题——并未完成整个功能，而只是其中的某些类时该如何去做？<br />JMock解决了这一个问题，通过面向接口和动态代理，事情变得异常简单。<br />JMock的常见用法如下:<br />   1、com.mockobjects.dynamic.Mock类<br />       Mock 对象名 = new Mock(接口名.class);<br />       接口名 inter = (接口名)对象名.proxy();<br />   2、定义预期Mock对象哪个方法将被怎样调用<br />       (1)对象.expect("方法名",参数对象)<br />           常见的参数对象有C.ANY_ARGS<br />       (2)参数对象也可以用如下的方法<br />           new Constraint[]{}<br />           Constraint只有一个方法public boolean eval(Object o);<br />           常见的有<br />               IsEqual(Object)<br />               IsAnything<br />               IsInstanceOf(Class)<br />               IsGreaterThan(数字)<br />      (3)还可以用C.eq(对象1,对象2,.)<br />   3、将Mock对象作为参数传入程序，正常执行方法，然后调用对象的verify方法看是否已经真的被调用了该方法<br />   4、让Mock对象能按指定的方式返回值<br />          mock.matchAndReturn("方法名",对象);</p>
<img src ="http://www.blogjava.net/sashyomaru/aggbug/80647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sashyomaru/" target="_blank">刘鑫铨</a> 2006-11-11 23:55 <a href="http://www.blogjava.net/sashyomaru/archive/2006/11/11/jmock_base.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>