static JbpmConfinguration jbpmConfiguration = JbpmConfinguration.getInstance(); |
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); try { // 这是我们调用的上下文块 // 这里你可以招生工作流操作 } finally { jbpmContext.close();
}
|
<jbpm-configuration>
<jbpm-context> <service name='persistence' factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' /> <service name='message' factory='org.jbpm.msg.db.DbMessageServiceFactory' /> <service name='scheduler' factory='org.jbpm.scheduler.db.DbSchedulerServiceFactory' /> <service name='logging' factory='org.jbpm.logging.db.DbLoggingServiceFactory' /> <service name='authentication' factory='org.jbpm.security.authentication.DefaultAuthenticationServiceFactory' /> </jbpm-context> <!-- configuration resource files pointing to default configuration files in jbpm-{version}.jar --> <string name='resource.hibernate.cfg.xml' value='hibernate.cfg.xml' /> <!-- <string name='resource.hibernate.properties' value='hibernate.properties' /> --> <string name='resource.business.calendar' value='org/jbpm/calendar/jbpm.business.calendar.properties' /> <string name='resource.default.modules' value='org/jbpm/graph/def/jbpm.default.modules.properties' /> <string name='resource.converter' value='org/jbpm/db/hibernate/jbpm.converter.properties' /> <string name='resource.action.types' value='org/jbpm/graph/action/action.types.xml' /> <string name='resource.node.types' value='org/jbpm/graph/node/node.types.xml' /> <string name='resource.parsers' value='org/jbpm/jpdl/par/jbpm.parsers.xml' /> <string name='resource.varmapping' value='org/jbpm/context/exe/jbpm.varmapping.xml' /> <int name='jbpm.byte.block.size' value="1024" singleton="true" /> <bean name='jbpm.task.instance.factory' class='org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl' singleton='true' /> <bean name='jbpm.variable.resolver' class='org.jbpm.jpdl.el.impl.JbpmVariableResolver' singleton='true' />
</jbpm-configuration>
|
l 第一部分用一系列的服务实现配置jbpm上下文。可能的配置选项被提及在特定的服务实现中提到了。
l 第二部分是所有的持久性映射的配置资源。这些资源引用可以被更新如果你想定制这些资源中的一个文件的话。通常,你可以生成一个在jbpm-3.x.jar中的缺少配置的一个拷贝然后把它放在你的类路径上的某处。然后你更新这个文件中的引用那么jbpm将使用你定制的配置文件。
l 第三部分是一些用于jbpm的零散配置。这些配置选项在特定主题的章节中被描述。
public void deployProcessDefinition(ProcessDefinition processDefinition) {...} public List getTaskList() {...} public List getTaskList(String actorId) {...} public List getGroupTaskList(List actorIds) {...} public TaskInstance loadTaskInstance(long taskInstanceId) {...} public TaskInstance loadTaskInstanceForUpdate(long taskInstanceId) {...} public Token loadToken(long tokenId) {...} public Token loadTokenForUpdate(long tokenId) {...} public ProcessInstance loadProcessInstance(long processInstanceId) {...} public ProcessInstance loadProcessInstanceForUpdate(long processInstanceId) {...} public ProcessInstance newProcessInstance(String processDefinitionName) {...} public void save(ProcessInstance processInstance) {...} public void save(Token token) {...} public void save(TaskInstance taskInstance) {...} public void setRollbackOnly() {...} |
指定多个jbpm上下文中可能的,但是那样的话你就不得不确保每个jbpm上下文赋予了唯一的命名(name)属性。被命名的上下文能够被JbpmConfiguration.createContext(String name)方法检索。
服务元素指定服务的名称和那个服务的服务工厂。这个服务将只在它使用JbpmContext.getServices().getService(String name)方法进行请求时被创建。
...
<service name='persistence' factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' /> |
<service name="persistence">
<factory>
<bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory"> <field name="dataSourceJndiName"><string value="java:/myDataSource"/></field> <field name="isCurrentSessionEnabled"><true /></field> <field name="isTransactionEnabled"><false /></field> </bean>
</factory>
</service>
|
这个文件包含hibernate的查询被使用在jBPM 的session 类org.jbpm.db.*Session中。
log4j.logger.org.hibernate.event.def.AbstractFlushingEventListener=FATAL
|
<boolean name="jbpm.hide.stale.object.exceptions" value="false" /> |
<beans>
<bean name="task" class="org.jbpm.taskmgmt.exe.TaskInstance"/> <string name="greeting">hello world</string> <int name="answer">42</int> <boolean name="javaisold">true</boolean> <float name="percentage">10.2</float> <double name="salary">100000000.32</double> <char name="java">j</char> <null name="dusttodust" />
</beans>
---------------------------------------------------------
ObjectFactory of = ObjectFactory.parseXmlFromAbove(); assertEquals(TaskInstance.class, of.getNewObject("task").getClass()); assertEquals("hello world", of.getNewObject("greeting")); assertEquals(new Integer(42), of.getNewObject("answer")); assertEquals(Boolean.TRUE, of.getNewObject("javaisold"));
assertEquals(new Float(10.2), of.getNewObject("percentage"));
assertEquals(new Double(100000000.32), of.getNewObject("salary")); assertEquals(new Character('j'), of.getNewObject("java"));
assertNull(of.getNewObject("dusttodust"));
|
<beans>
<list name="numbers"> <string>one</string> <string>two</string> <string>three</string>
</list>
</beans>
|
<beans>
<map name="numbers"> <entry><key><int>1</int></key><value><string>one</string></value></entry> <entry><key><int>2</int></key><value><string>two</string></value></entry> <entry><key><int>3</int></key><value><string>three</string></value></entry>
</map>
</beans>
|
<beans>
<bean name="task" class="org.jbpm.taskmgmt.exe.TaskInstance" > <field name="name"><string>do dishes</string></field> <property name="actorId"><string>theotherguy</string></property>
</bean>
</beans>
|
<beans>
<bean name="a" class="org.jbpm.A" /> <ref name="b" bean="a" />
</beans>
|
<beans>
<bean name="task" class="org.jbpm.taskmgmt.exe.TaskInstance" >
<constructor>
<parameter class="java.lang.String"> <string>do dishes</string> </parameter> <parameter class="java.lang.String"> <string>theotherguy</string> </parameter>
</constructor>
</bean>
</beans>
|
<beans>
<bean name="taskFactory" class="org.jbpm.UnexistingTaskInstanceFactory" singleton="true"/> <bean name="task" class="org.jbpm.taskmgmt.exe.TaskInstance" > <constructor factory="taskFactory" method="createTask" > <parameter class="java.lang.String"> <string>do dishes</string> </parameter> <parameter class="java.lang.String"> <string>theotherguy</string> </parameter>
</constructor>
</bean>
</beans>
|
<beans>
<bean name="task" class="org.jbpm.taskmgmt.exe.TaskInstance" > <constructor factory-class="org.jbpm.UnexistingTaskInstanceFactory" method="createTask" > <parameter class="java.lang.String"> <string>do dishes</string> </parameter> <parameter class="java.lang.String"> <string>theotherguy</string> </parameter>
</constructor>
</bean>
</beans>
|