178 - 流程引擎的查找与配置
Posted 分享牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了178 - 流程引擎的查找与配置相关的知识,希望对你有一定的参考价值。
1、查找一个流程引擎
cdi扩展需要访问ProcessEngine。为了实现这一点,org.flowable.cdi.spi.ProcessEngineLookup在运行时查看接口的实现。cdi模块附带一个名为的默认实现org.flowable.cdi.impl.LocalProcessEngineLookup,它使用ProcessEngines-Utility类来查找ProcessEngine。在默认配置ProcessEngines#NAME_DEFAULT中用于查找ProcessEngine。这个类可能被设置为一个自定义名称的子类。注意:需要flowable.cfg.xml在类路径上进行配置。
Flowable cdi使用java.util.ServiceLoader SPI来解析一个实例org.flowable.cdi.spi.ProcessEngineLookup。为了提供接口的自定义实现,
我们需要添加一个名为META-INF/services/org.flowable.cdi.spi.ProcessEngineLookup我们的部署的纯文本文件 ,其中我们指定了实现的完全限定类名。
如果您不提供自定义org.flowable.cdi.spi.ProcessEngineLookup实现,则Flowable将使用默认LocalProcessEngineLookup实现。在这
种情况下,您只需在类路径中提供一个flowable.cfg.xml文件。
2、配置Process Engine
配置取决于所选的ProcessEngineLookup-Strategy。在这里,我们把重点放在与LocalProcessEngineLookup结合使用的配置选项上,这需要我们在classpath中提供一个Spring的flowable.cfg.xml文件。
Flowable提供了不同的ProcessEngineConfiguration实现,主要依赖于底层的事务管理策略。flow-cdi模块不涉及事务,这意味着可能使用任何事务管理策略(甚至是Spring事务抽象)。为了方便,cdi-module提供了两个自定义的ProcessEngineConfiguration实现:
- org.flowable.cdi.CdiJtaProcessEngineConfiguration:如果JTA管理的事务应该用于Flowable,则可以使用Flowable JtaProcessEngineConfiguration的子类
- org.flowable.cdi.CdiStandaloneProcessEngineConfiguration:Flowable StandaloneProcessEngineConfiguration的子类,如果普通JDBC事务应该用于Flowable,则可以使用它。以下是JBoss 7的一个示例flowable.cfg.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- lookup the JTA-Transaction manager -->
<bean id="transactionManager" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:jboss/TransactionManager"></property>
<property name="resourceRef" value="true" />
</bean>
<!-- process engine configuration -->
<bean id="processEngineConfiguration"
class="org.flowable.cdi.CdiJtaProcessEngineConfiguration">
<!-- lookup the default Jboss datasource -->
<property name="dataSourceJndiName" value="java:jboss/datasources/ExampleDS" />
<property name="databaseType" value="h2" />
<property name="transactionManager" ref="transactionManager" />
<!-- using externally managed transactions -->
<property name="transactionsExternallyManaged" value="true" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
这就是Glassfish 3.1.1的样子(假设一个名为jdbc / flowable的数据源被正确配置):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- lookup the JTA-Transaction manager -->
<bean id="transactionManager" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:appserver/TransactionManager"></property>
<property name="resourceRef" value="true" />
</bean>
<!-- process engine configuration -->
<bean id="processEngineConfiguration"
class="org.flowable.cdi.CdiJtaProcessEngineConfiguration">
<property name="dataSourceJndiName" value="jdbc/flowable" />
<property name="transactionManager" ref="transactionManager" />
<!-- using externally managed transactions -->
<property name="transactionsExternallyManaged" value="true" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
请注意,上面的配置需要“spring-context”模块:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
Java SE环境中的配置看起来与“ 创建ProcessEngine ” 一节中提供的示例完全相同,请将“CdiStandaloneProcessEngineConfiguration”替换
为“StandaloneProcessEngineConfiguration”。
上面文章来自盘古BPM研究院:http://vue.pangubpm.com/
文章翻译提交:https://github.com/qiudaoke/flowable-userguide
了解更多文章可以关注微信公众号:
以上是关于178 - 流程引擎的查找与配置的主要内容,如果未能解决你的问题,请参考以下文章