Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private ProcessEngine processEngine;
- private RuntimeService runtimeService;
- private TaskService taskService;
- private void getProcessEngine( boolean historyOn, String jdbc ) {
- ProcessEngineConfiguration configuration = ProcessEngineConfiguration
- .createStandaloneProcessEngineConfiguration()
- .setDatabaseSchemaUpdate(
- ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP )
- .setJdbcUrl( jdbc ).setJdbcMaxActiveConnections( 1000 );
- if( "postgresql".equalsIgnoreCase( jdbc.split( ":" )[1])) {
- configuration.setJdbcUsername( "postgres" ).setJdbcPassword( "mypass" );
- }
- if( historyOn ) {
- configuration.setHistory( ProcessEngineConfiguration.HISTORY_FULL );
- } else {
- configuration.setHistory( ProcessEngineConfiguration.HISTORY_NONE );
- }
- processEngine = configuration.buildProcessEngine();
- }
- @Override
- public void init( File schema, boolean historyOn, String jdbc )
- throws Exception {
- getProcessEngine( historyOn, jdbc );
- BpmnModelInstance modelInstance = Bpmn.readModelFromFile( schema );
- RepositoryService repositoryService = processEngine
- .getRepositoryService();
- List< ProcessDefinition > processDefinitions = repositoryService
- .createProcessDefinitionQuery().list();
- if( processDefinitions.isEmpty() ) {
- repositoryService.createDeployment()
- .addModelInstance( "test_PT.bpmn", modelInstance ).deploy();
- }
- runtimeService = processEngine.getRuntimeService();
- taskService = processEngine.getTaskService();
- class ExitHook extends Thread {
- public void run() {
- processEngine.close();
- }
- }
- Runtime.getRuntime().addShutdownHook( new ExitHook() );
- }
- //This method is called by each thread in a loop and then sleeps for a second.
- @Override
- public String startProcessOrFinishCurrentTask( String procID )
- throws Exception {
- List< Task > list = taskService.createTaskQuery().active()
- .processInstanceId( procID ).list();
- if( list.isEmpty() ) {
- return createProcessInstance().getId();
- } else {
- list.stream().forEach( c -> {
- if( c.getName().equals( "Stage3" ) ) {
- taskService.setVariable( c.getId(), "var1",
- flowSelector() );
- }
- taskService.complete( c.getId() );
- } );
- return procID;
- }
- }
- private ProcessInstance createProcessInstance() {
- return runtimeService.startProcessInstanceByKey( "test_process" );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement