org.exoplatform.services.workflow.impl.bonita
Class WorkflowServiceContainerImpl

java.lang.Object
  extended by org.exoplatform.services.workflow.impl.bonita.WorkflowServiceContainerImpl
All Implemented Interfaces:
WorkflowServiceContainer, org.picocontainer.Startable

public class WorkflowServiceContainerImpl
extends java.lang.Object
implements WorkflowServiceContainer, org.picocontainer.Startable

Bonita implementation of the Workflow Service in eXo Platform Created by Bull R&D

Author:
Brice Revenant , Rodrigue Le Gall Dec 25, 2005

Field Summary
static java.lang.ThreadLocal<java.util.Map<java.lang.String,java.lang.Object>> InitialVariables
          Holds variables to be set while instantiating a Process.
 
Fields inherited from interface org.exoplatform.services.workflow.WorkflowServiceContainer
ACTOR_ID_KEY_SEPARATOR
 
Constructor Summary
WorkflowServiceContainerImpl(WorkflowFileDefinitionService fileDefinitionService, WorkflowFormsService formsService, org.exoplatform.services.organization.OrganizationService organizationService, org.exoplatform.container.configuration.ConfigurationManager configurationManager, org.exoplatform.container.xml.InitParams params)
          Instantiates a new Bonita service instance.
 
Method Summary
 void addPlugin(org.exoplatform.container.component.ComponentPlugin plugin)
          Add a plugin to the Workflow service.
 void deleteProcess(java.lang.String processId)
           
 void deleteProcessInstance(java.lang.String processInstanceId)
           
 void deployProcess(java.io.InputStream jarInputStream)
           
 void endTask(java.lang.String taskId, java.util.Map variables)
           
 void endTask(java.lang.String taskId, java.util.Map variables, java.lang.String transition)
           
 java.util.List<Task> getAllTasks(java.lang.String user)
           
 WorkflowFileDefinitionService getFileDefinitionService()
           
 java.util.List<Task> getGroupTaskList(java.lang.String user)
           
 Process getProcess(java.lang.String processId)
           
 java.util.List<Process> getProcesses()
           
 ProcessInstance getProcessInstance(java.lang.String processInstanceId)
           
 java.util.List<ProcessInstance> getProcessInstances(java.lang.String processId)
           
 Task getTask(java.lang.String taskId)
           
 java.util.List<Task> getTasks(java.lang.String processInstanceId)
           
 java.util.List<Timer> getTimers()
           
 java.util.List<Task> getUserTaskList(java.lang.String user)
           
 java.util.Map getVariables(java.lang.String InstanceId, java.lang.String taskId)
           
 boolean hasStartTask(java.lang.String processId)
           
 void start()
           
 void startProcess(java.lang.String processId)
           
 void startProcess(java.lang.String remoteUser, java.lang.String processId, java.util.Map initialVariables)
           
 void startProcessFromName(java.lang.String remoteUser, java.lang.String processName, java.util.Map variables)
           
 void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

InitialVariables

public static java.lang.ThreadLocal<java.util.Map<java.lang.String,java.lang.Object>> InitialVariables
Holds variables to be set while instantiating a Process. Indeed Bonita currently executes some mappers and hooks prior having the opportunity to set variables in the instance. By accessing this Thread Local, mappers and hooks can retrieve them.

Constructor Detail

WorkflowServiceContainerImpl

public WorkflowServiceContainerImpl(WorkflowFileDefinitionService fileDefinitionService,
                                    WorkflowFormsService formsService,
                                    org.exoplatform.services.organization.OrganizationService organizationService,
                                    org.exoplatform.container.configuration.ConfigurationManager configurationManager,
                                    org.exoplatform.container.xml.InitParams params)
Instantiates a new Bonita service instance. This constructor requires the injection of the Forms Service.

Parameters:
fileDefinitionService - reference to the File Definition Service
formsService - reference to the Forms Service
organizationService - reference to the Organization Service
configuration - reference to the Configuration Manager
params - initialization parameters of the service
Method Detail

addPlugin

public void addPlugin(org.exoplatform.container.component.ComponentPlugin plugin)
               throws java.lang.Exception
Add a plugin to the Workflow service. This method currently only supports plugins to deploy predefined processes.

Specified by:
addPlugin in interface WorkflowServiceContainer
Parameters:
plugin - the plugin to add
Throws:
java.lang.Exception - if the plugin type is unknown.

deleteProcess

public void deleteProcess(java.lang.String processId)
Specified by:
deleteProcess in interface WorkflowServiceContainer

deleteProcessInstance

public void deleteProcessInstance(java.lang.String processInstanceId)
Specified by:
deleteProcessInstance in interface WorkflowServiceContainer

deployProcess

public void deployProcess(java.io.InputStream jarInputStream)
                   throws java.io.IOException
Specified by:
deployProcess in interface WorkflowServiceContainer
Throws:
java.io.IOException

endTask

public void endTask(java.lang.String taskId,
                    java.util.Map variables)
Specified by:
endTask in interface WorkflowServiceContainer

endTask

public void endTask(java.lang.String taskId,
                    java.util.Map variables,
                    java.lang.String transition)
Specified by:
endTask in interface WorkflowServiceContainer

getAllTasks

public java.util.List<Task> getAllTasks(java.lang.String user)
                                 throws java.lang.Exception
Specified by:
getAllTasks in interface WorkflowServiceContainer
Throws:
java.lang.Exception

getFileDefinitionService

public WorkflowFileDefinitionService getFileDefinitionService()
Specified by:
getFileDefinitionService in interface WorkflowServiceContainer

getGroupTaskList

public java.util.List<Task> getGroupTaskList(java.lang.String user)
                                      throws java.lang.Exception
Specified by:
getGroupTaskList in interface WorkflowServiceContainer
Throws:
java.lang.Exception

getProcess

public Process getProcess(java.lang.String processId)
Specified by:
getProcess in interface WorkflowServiceContainer

getProcesses

public java.util.List<Process> getProcesses()
Specified by:
getProcesses in interface WorkflowServiceContainer

getProcessInstance

public ProcessInstance getProcessInstance(java.lang.String processInstanceId)
Specified by:
getProcessInstance in interface WorkflowServiceContainer

getProcessInstances

public java.util.List<ProcessInstance> getProcessInstances(java.lang.String processId)
Specified by:
getProcessInstances in interface WorkflowServiceContainer

getTask

public Task getTask(java.lang.String taskId)
Specified by:
getTask in interface WorkflowServiceContainer

getTasks

public java.util.List<Task> getTasks(java.lang.String processInstanceId)
Specified by:
getTasks in interface WorkflowServiceContainer

getTimers

public java.util.List<Timer> getTimers()
Specified by:
getTimers in interface WorkflowServiceContainer

getUserTaskList

public java.util.List<Task> getUserTaskList(java.lang.String user)
Specified by:
getUserTaskList in interface WorkflowServiceContainer

getVariables

public java.util.Map getVariables(java.lang.String InstanceId,
                                  java.lang.String taskId)
Specified by:
getVariables in interface WorkflowServiceContainer

hasStartTask

public boolean hasStartTask(java.lang.String processId)
Specified by:
hasStartTask in interface WorkflowServiceContainer

start

public void start()
Specified by:
start in interface org.picocontainer.Startable

startProcess

public void startProcess(java.lang.String processId)
Specified by:
startProcess in interface WorkflowServiceContainer

startProcess

public void startProcess(java.lang.String remoteUser,
                         java.lang.String processId,
                         java.util.Map initialVariables)
Specified by:
startProcess in interface WorkflowServiceContainer

startProcessFromName

public void startProcessFromName(java.lang.String remoteUser,
                                 java.lang.String processName,
                                 java.util.Map variables)
Specified by:
startProcessFromName in interface WorkflowServiceContainer

stop

public void stop()
Specified by:
stop in interface org.picocontainer.Startable


Copyright © 2014 eXo Platform SAS. All Rights Reserved.