Example usage for com.liferay.portal.workflow.kaleo.runtime.node NodeExecutor executeTimer

List of usage examples for com.liferay.portal.workflow.kaleo.runtime.node NodeExecutor executeTimer

Introduction

In this page you can find the example usage for com.liferay.portal.workflow.kaleo.runtime.node NodeExecutor executeTimer.

Prototype

public void executeTimer(KaleoNode currentKaleoNode, ExecutionContext executionContext) throws PortalException;

Source Link

Usage

From source file:de.hofuniversity.iisys.liferay.workflows.LoggingWorkflowEngine.java

License:Open Source License

@Override
public ExecutionContext executeTimerWorkflowInstance(long kaleoTimerInstanceTokenId,
        ServiceContext serviceContext, Map<String, Serializable> workflowContext) throws WorkflowException {

    try {/*from   ww  w  . jav  a 2  s .c om*/
        fLogger.println("WorkflowEngine.executeTimerWorkflowInstance");
        fLogger.println("\tkaleoTimerInstanceTokenId: " + kaleoTimerInstanceTokenId);
        fLogger.println("\tserviceContext:");
        logServiceContext(serviceContext, "\t\t");
        fLogger.println("\tworkflowContext:");
        logMap(workflowContext, "\t\t");

        KaleoTimerInstanceToken kaleoTimerInstanceToken = kaleoTimerInstanceTokenLocalService
                .getKaleoTimerInstanceToken(kaleoTimerInstanceTokenId);

        KaleoInstanceToken kaleoInstanceToken = kaleoTimerInstanceToken.getKaleoInstanceToken();

        final ExecutionContext executionContext = new ExecutionContext(kaleoInstanceToken,
                kaleoTimerInstanceToken, workflowContext, serviceContext);

        KaleoTaskInstanceToken kaleoTaskInstanceToken = kaleoTimerInstanceToken.getKaleoTaskInstanceToken();

        executionContext.setKaleoTaskInstanceToken(kaleoTaskInstanceToken);

        final KaleoNode currentKaleoNode = kaleoInstanceToken.getCurrentKaleoNode();

        NodeExecutor nodeExecutor = _nodeExecutorFactory.getNodeExecutor(currentKaleoNode.getType());

        nodeExecutor.executeTimer(currentKaleoNode, executionContext);

        TransactionCommitCallbackUtil.registerCallback(new Callable<Void>() {

            @Override
            public Void call() throws Exception {
                _kaleoSignaler.signalExecute(currentKaleoNode, executionContext);

                return null;
            }

        });

        fLogger.println("\tRETURN executionContext:");
        logExecContext(executionContext, "\t\t");
        fLogger.flush();

        return executionContext;
    } catch (Exception e) {
        throw new WorkflowException(e);
    }
}