2015-10-23 23 views
0

如何通過processes.xml爲camunda設置我自己的IdGenerator。 切換到使用processes.xml之前,我用camunda的序列發生器

ProcessEngineConfiguration.setIdGenerator(IdGenerator); 

它採用了Oracle數據庫的序列。

回答

1

1)實施ProcessEnginePlugin

package com.example; 

import org.camunda.bpm.engine.ProcessEngine; 
import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl; 
import org.camunda.bpm.engine.impl.cfg.ProcessEnginePlugin; 

public class IdGeneratorPlugin implements ProcessEnginePlugin { 

    public void preInit(ProcessEngineConfigurationImpl processEngineConfiguration) { 
    processEngineConfiguration.setIdGenerator(new CustomIdGenerator()); 
    } 

    public void postInit(ProcessEngineConfigurationImpl processEngineConfiguration) { 
    } 

    public void postProcessEngineBuild(ProcessEngine processEngine) { 
    } 
} 

2)註冊於processes.xml

<?xml version="1.0" encoding="UTF-8"?> 
<process-application 
    xmlns="http://www.camunda.org/schema/1.0/ProcessApplication" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.camunda.org/schema/1.0/ProcessApplication http://www.camunda.org/schema/1.0/ProcessApplication "> 

    <process-engine name="default"> 
    ... 
    <properties> 
     ... 
    </properties> 

    <plugins> 
     <plugin> 
     <class>com.example.IdGeneratorPlugin</class> 
     </plugin> 
    </plugins> 
    </process-engine> 

    <process-archive name="pa"> 
    <properties> 
     ... 
    </properties> 
    </process-archive> 
</process-application> 

3插件)確保該插件在camunda引擎類路徑或流程應用程序的類路徑

來源:https://docs.camunda.org/manual/7.3/api-references/deployment-descriptors/#descriptors-processesxml