Package org.activiti.engine.impl
Class RepositoryServiceImpl
- java.lang.Object
-
- org.activiti.engine.impl.ServiceImpl
-
- org.activiti.engine.impl.RepositoryServiceImpl
-
- All Implemented Interfaces:
RepositoryService
public class RepositoryServiceImpl extends ServiceImpl implements RepositoryService
-
-
Field Summary
-
Fields inherited from class org.activiti.engine.impl.ServiceImpl
commandExecutor, processEngineConfiguration
-
-
Constructor Summary
Constructors Constructor Description RepositoryServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivateProcessDefinitionById(java.lang.String processDefinitionId)Activates the process definition with the given id.voidactivateProcessDefinitionById(java.lang.String processDefinitionId, boolean activateProcessInstances, java.util.Date activationDate)Activates the process definition with the given id.voidactivateProcessDefinitionByKey(java.lang.String processDefinitionKey)Activates the process definition with the given key (=id in the bpmn20.xml file).voidactivateProcessDefinitionByKey(java.lang.String processDefinitionKey, boolean activateProcessInstances, java.util.Date activationDate)Activates the process definition with the given key (=id in the bpmn20.xml file).voidactivateProcessDefinitionByKey(java.lang.String processDefinitionKey, boolean activateProcessInstances, java.util.Date activationDate, java.lang.String tenantId)Similar toRepositoryService.activateProcessDefinitionByKey(String, boolean, Date), but only applicable for the given tenant identifier.voidactivateProcessDefinitionByKey(java.lang.String processDefinitionKey, java.lang.String tenantId)Similar toRepositoryService.activateProcessDefinitionByKey(String), but only applicable for the given tenant identifier.voidaddCandidateStarterGroup(java.lang.String processDefinitionId, java.lang.String groupId)Authorizes a candidate group for a process definition.voidaddCandidateStarterUser(java.lang.String processDefinitionId, java.lang.String userId)Authorizes a candidate user for a process definition.voidaddModelEditorSource(java.lang.String modelId, byte[] bytes)Saves the model editor source for a modelvoidaddModelEditorSourceExtra(java.lang.String modelId, byte[] bytes)Saves the model editor source extra for a modelvoidchangeDeploymentTenantId(java.lang.String deploymentId, java.lang.String newTenantId)EXPERIMENTAL FEATURE! Changes the tenant identifier of a deployment to match the given tenant identifier.DeploymentBuildercreateDeployment()Starts creating a new deploymentDeploymentQuerycreateDeploymentQuery()Query deployment.ModelQuerycreateModelQuery()Query models.NativeDeploymentQuerycreateNativeDeploymentQuery()Returns a newNativeQueryfor deployment.NativeModelQuerycreateNativeModelQuery()Returns a newNativeQueryfor process definitions.NativeProcessDefinitionQuerycreateNativeProcessDefinitionQuery()Returns a newNativeQueryfor process definitions.ProcessDefinitionQuerycreateProcessDefinitionQuery()Query process definitions.voiddeleteCandidateStarterGroup(java.lang.String processDefinitionId, java.lang.String groupId)Removes the authorization of a candidate group for a process definition.voiddeleteCandidateStarterUser(java.lang.String processDefinitionId, java.lang.String userId)Removes the authorization of a candidate user for a process definition.voiddeleteDeployment(java.lang.String deploymentId)Deletes the given deployment.voiddeleteDeployment(java.lang.String deploymentId, boolean cascade)Deletes the given deployment and cascade deletion to process instances, history process instances and jobs.voiddeleteDeploymentCascade(java.lang.String deploymentId)voiddeleteModel(java.lang.String modelId)Deploymentdeploy(DeploymentBuilderImpl deploymentBuilder)org.activiti.bpmn.model.BpmnModelgetBpmnModel(java.lang.String processDefinitionId)Returns theBpmnModelcorresponding with the process definition with the provided process definition id.ProcessDefinitiongetDeployedProcessDefinition(java.lang.String processDefinitionId)java.util.List<java.lang.String>getDeploymentResourceNames(java.lang.String deploymentId)Retrieves a list of deployment resources for the given deployment, ordered alphabetically.java.util.List<IdentityLink>getIdentityLinksForProcessDefinition(java.lang.String processDefinitionId)Retrieves theIdentityLinks associated with the given process definition.ModelgetModel(java.lang.String modelId)Returns theModelbyte[]getModelEditorSource(java.lang.String modelId)Returns the model editor source as a byte arraybyte[]getModelEditorSourceExtra(java.lang.String modelId)Returns the model editor source extra as a byte arrayProcessDefinitiongetProcessDefinition(java.lang.String processDefinitionId)Returns theProcessDefinitionincluding all BPMN information like additional Properties (e.g.java.io.InputStreamgetProcessModel(java.lang.String processDefinitionId)Gives access to a deployed process model, e.g., a BPMN 2.0 XML file, through a stream of bytes.java.io.InputStreamgetResourceAsStream(java.lang.String deploymentId, java.lang.String resourceName)Gives access to a deployment resource through a stream of bytes.booleanisProcessDefinitionSuspended(java.lang.String processDefinitionId)Checks if the process definition is suspended.ModelnewModel()Creates a new model.voidsaveModel(Model model)Saves the model.voidsetDeploymentCategory(java.lang.String deploymentId, java.lang.String category)Sets the category of the deployment.voidsetDeploymentKey(java.lang.String deploymentId, java.lang.String key)Sets the key of the deployment.voidsetProcessDefinitionCategory(java.lang.String processDefinitionId, java.lang.String category)Sets the category of the process definition.voidsuspendProcessDefinitionById(java.lang.String processDefinitionId)Suspends the process definition with the given id.voidsuspendProcessDefinitionById(java.lang.String processDefinitionId, boolean suspendProcessInstances, java.util.Date suspensionDate)Suspends the process definition with the given id.voidsuspendProcessDefinitionByKey(java.lang.String processDefinitionKey)Suspends the all process definitions with the given key (= id in the bpmn20.xml file).voidsuspendProcessDefinitionByKey(java.lang.String processDefinitionKey, boolean suspendProcessInstances, java.util.Date suspensionDate)Suspends the all process definitions with the given key (= id in the bpmn20.xml file).voidsuspendProcessDefinitionByKey(java.lang.String processDefinitionKey, boolean suspendProcessInstances, java.util.Date suspensionDate, java.lang.String tenantId)Similar toRepositoryService.suspendProcessDefinitionByKey(String, boolean, Date), but only applicable for the given tenant identifier.voidsuspendProcessDefinitionByKey(java.lang.String processDefinitionKey, java.lang.String tenantId)Similar toRepositoryService.suspendProcessDefinitionByKey(String), but only applicable for the given tenant identifier.java.util.List<org.activiti.validation.ValidationError>validateProcess(org.activiti.bpmn.model.BpmnModel bpmnModel)Validates the given process definition against the rules for executing a process definition on the Activiti engine.-
Methods inherited from class org.activiti.engine.impl.ServiceImpl
getCommandExecutor, setCommandExecutor
-
-
-
-
Method Detail
-
createDeployment
public DeploymentBuilder createDeployment()
Description copied from interface:RepositoryServiceStarts creating a new deployment- Specified by:
createDeploymentin interfaceRepositoryService
-
deploy
public Deployment deploy(DeploymentBuilderImpl deploymentBuilder)
-
deleteDeployment
public void deleteDeployment(java.lang.String deploymentId)
Description copied from interface:RepositoryServiceDeletes the given deployment.- Specified by:
deleteDeploymentin interfaceRepositoryService- Parameters:
deploymentId- id of the deployment, cannot be null.
-
deleteDeploymentCascade
public void deleteDeploymentCascade(java.lang.String deploymentId)
-
deleteDeployment
public void deleteDeployment(java.lang.String deploymentId, boolean cascade)Description copied from interface:RepositoryServiceDeletes the given deployment and cascade deletion to process instances, history process instances and jobs.- Specified by:
deleteDeploymentin interfaceRepositoryService- Parameters:
deploymentId- id of the deployment, cannot be null.
-
setDeploymentCategory
public void setDeploymentCategory(java.lang.String deploymentId, java.lang.String category)Description copied from interface:RepositoryServiceSets the category of the deployment. Deployments can be queried by category: seeDeploymentQuery.deploymentCategory(String).- Specified by:
setDeploymentCategoryin interfaceRepositoryService
-
setDeploymentKey
public void setDeploymentKey(java.lang.String deploymentId, java.lang.String key)Description copied from interface:RepositoryServiceSets the key of the deployment. Deployments can be queried by key: seeDeploymentQuery.deploymentKey(String).- Specified by:
setDeploymentKeyin interfaceRepositoryService
-
createProcessDefinitionQuery
public ProcessDefinitionQuery createProcessDefinitionQuery()
Description copied from interface:RepositoryServiceQuery process definitions.- Specified by:
createProcessDefinitionQueryin interfaceRepositoryService
-
createNativeProcessDefinitionQuery
public NativeProcessDefinitionQuery createNativeProcessDefinitionQuery()
Description copied from interface:RepositoryServiceReturns a newNativeQueryfor process definitions.- Specified by:
createNativeProcessDefinitionQueryin interfaceRepositoryService
-
getDeploymentResourceNames
public java.util.List<java.lang.String> getDeploymentResourceNames(java.lang.String deploymentId)
Description copied from interface:RepositoryServiceRetrieves a list of deployment resources for the given deployment, ordered alphabetically.- Specified by:
getDeploymentResourceNamesin interfaceRepositoryService- Parameters:
deploymentId- id of the deployment, cannot be null.
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String deploymentId, java.lang.String resourceName)Description copied from interface:RepositoryServiceGives access to a deployment resource through a stream of bytes.- Specified by:
getResourceAsStreamin interfaceRepositoryService- Parameters:
deploymentId- id of the deployment, cannot be null.resourceName- name of the resource, cannot be null.
-
changeDeploymentTenantId
public void changeDeploymentTenantId(java.lang.String deploymentId, java.lang.String newTenantId)Description copied from interface:RepositoryServiceEXPERIMENTAL FEATURE! Changes the tenant identifier of a deployment to match the given tenant identifier. This change will cascade to any related entity: - process definitions related to the deployment - process instances related to those process definitions - executions related to those process instances - tasks related to those process instances - jobs related to the process definitions and process instances This method can be used in the case that there was no tenant identifier set on the deployment or those entities before. This method can be used to remove a tenant identifier from the deployment and related entities (simply pass null). Important: no optimistic locking will be done while executing the tenant identifier change! This is an experimental feature, mainly because it WILL NOT work properly in a clustered environment without special care: suppose some process instance is in flight. The process definition is in the process definition cache. When a task or job is created when continuing the process instance, the process definition cache will be consulted to get the process definition and from it the tenant identifier. Since it's cached, it will not be the new tenant identifier. This method does clear the cache for this engineinstance , but it will not be cleared on other nodes in a cluster (unless using a shared process definition cache).- Specified by:
changeDeploymentTenantIdin interfaceRepositoryService- Parameters:
deploymentId- The id of the deployment of which the tenant identifier will be changed.newTenantId- The new tenant identifier.
-
createDeploymentQuery
public DeploymentQuery createDeploymentQuery()
Description copied from interface:RepositoryServiceQuery deployment.- Specified by:
createDeploymentQueryin interfaceRepositoryService
-
createNativeDeploymentQuery
public NativeDeploymentQuery createNativeDeploymentQuery()
Description copied from interface:RepositoryServiceReturns a newNativeQueryfor deployment.- Specified by:
createNativeDeploymentQueryin interfaceRepositoryService
-
getProcessDefinition
public ProcessDefinition getProcessDefinition(java.lang.String processDefinitionId)
Description copied from interface:RepositoryServiceReturns theProcessDefinitionincluding all BPMN information like additional Properties (e.g. documentation).- Specified by:
getProcessDefinitionin interfaceRepositoryService
-
getBpmnModel
public org.activiti.bpmn.model.BpmnModel getBpmnModel(java.lang.String processDefinitionId)
Description copied from interface:RepositoryServiceReturns theBpmnModelcorresponding with the process definition with the provided process definition id. TheBpmnModelis a pojo versions of the BPMN 2.0 xml and can be used to introspect the process definition using regular Java.- Specified by:
getBpmnModelin interfaceRepositoryService
-
getDeployedProcessDefinition
public ProcessDefinition getDeployedProcessDefinition(java.lang.String processDefinitionId)
-
isProcessDefinitionSuspended
public boolean isProcessDefinitionSuspended(java.lang.String processDefinitionId)
Description copied from interface:RepositoryServiceChecks if the process definition is suspended.- Specified by:
isProcessDefinitionSuspendedin interfaceRepositoryService
-
suspendProcessDefinitionById
public void suspendProcessDefinitionById(java.lang.String processDefinitionId)
Description copied from interface:RepositoryServiceSuspends the process definition with the given id. If a process definition is in state suspended, it will not be possible to start new process instances based on the process definition. Note: all the process instances of the process definition will still be active (ie. not suspended)!- Specified by:
suspendProcessDefinitionByIdin interfaceRepositoryService
-
suspendProcessDefinitionById
public void suspendProcessDefinitionById(java.lang.String processDefinitionId, boolean suspendProcessInstances, java.util.Date suspensionDate)Description copied from interface:RepositoryServiceSuspends the process definition with the given id. If a process definition is in state suspended, it will not be possible to start new process instances based on the process definition.- Specified by:
suspendProcessDefinitionByIdin interfaceRepositoryServicesuspendProcessInstances- If true, all the process instances of the provided process definition will be suspended too.suspensionDate- The date on which the process definition will be suspended. If null, the process definition is suspended immediately. Note: The job executor needs to be active to use this!
-
suspendProcessDefinitionByKey
public void suspendProcessDefinitionByKey(java.lang.String processDefinitionKey)
Description copied from interface:RepositoryServiceSuspends the all process definitions with the given key (= id in the bpmn20.xml file). If a process definition is in state suspended, it will not be possible to start new process instances based on the process definition. Note: all the process instances of the process definition will still be active (ie. not suspended)!- Specified by:
suspendProcessDefinitionByKeyin interfaceRepositoryService
-
suspendProcessDefinitionByKey
public void suspendProcessDefinitionByKey(java.lang.String processDefinitionKey, boolean suspendProcessInstances, java.util.Date suspensionDate)Description copied from interface:RepositoryServiceSuspends the all process definitions with the given key (= id in the bpmn20.xml file). If a process definition is in state suspended, it will not be possible to start new process instances based on the process definition.- Specified by:
suspendProcessDefinitionByKeyin interfaceRepositoryServicesuspendProcessInstances- If true, all the process instances of the provided process definition will be suspended too.suspensionDate- The date on which the process definition will be suspended. If null, the process definition is suspended immediately. Note: The job executor needs to be active to use this!
-
suspendProcessDefinitionByKey
public void suspendProcessDefinitionByKey(java.lang.String processDefinitionKey, java.lang.String tenantId)Description copied from interface:RepositoryServiceSimilar toRepositoryService.suspendProcessDefinitionByKey(String), but only applicable for the given tenant identifier.- Specified by:
suspendProcessDefinitionByKeyin interfaceRepositoryService
-
suspendProcessDefinitionByKey
public void suspendProcessDefinitionByKey(java.lang.String processDefinitionKey, boolean suspendProcessInstances, java.util.Date suspensionDate, java.lang.String tenantId)Description copied from interface:RepositoryServiceSimilar toRepositoryService.suspendProcessDefinitionByKey(String, boolean, Date), but only applicable for the given tenant identifier.- Specified by:
suspendProcessDefinitionByKeyin interfaceRepositoryService
-
activateProcessDefinitionById
public void activateProcessDefinitionById(java.lang.String processDefinitionId)
Description copied from interface:RepositoryServiceActivates the process definition with the given id.- Specified by:
activateProcessDefinitionByIdin interfaceRepositoryService
-
activateProcessDefinitionById
public void activateProcessDefinitionById(java.lang.String processDefinitionId, boolean activateProcessInstances, java.util.Date activationDate)Description copied from interface:RepositoryServiceActivates the process definition with the given id.- Specified by:
activateProcessDefinitionByIdin interfaceRepositoryServiceactivationDate- The date on which the process definition will be activated. If null, the process definition is activated immediately. Note: The job executor needs to be active to use this!
-
activateProcessDefinitionByKey
public void activateProcessDefinitionByKey(java.lang.String processDefinitionKey)
Description copied from interface:RepositoryServiceActivates the process definition with the given key (=id in the bpmn20.xml file).- Specified by:
activateProcessDefinitionByKeyin interfaceRepositoryService
-
activateProcessDefinitionByKey
public void activateProcessDefinitionByKey(java.lang.String processDefinitionKey, boolean activateProcessInstances, java.util.Date activationDate)Description copied from interface:RepositoryServiceActivates the process definition with the given key (=id in the bpmn20.xml file).- Specified by:
activateProcessDefinitionByKeyin interfaceRepositoryServiceactivationDate- The date on which the process definition will be activated. If null, the process definition is activated immediately. Note: The job executor needs to be active to use this!
-
activateProcessDefinitionByKey
public void activateProcessDefinitionByKey(java.lang.String processDefinitionKey, java.lang.String tenantId)Description copied from interface:RepositoryServiceSimilar toRepositoryService.activateProcessDefinitionByKey(String), but only applicable for the given tenant identifier.- Specified by:
activateProcessDefinitionByKeyin interfaceRepositoryService
-
activateProcessDefinitionByKey
public void activateProcessDefinitionByKey(java.lang.String processDefinitionKey, boolean activateProcessInstances, java.util.Date activationDate, java.lang.String tenantId)Description copied from interface:RepositoryServiceSimilar toRepositoryService.activateProcessDefinitionByKey(String, boolean, Date), but only applicable for the given tenant identifier.- Specified by:
activateProcessDefinitionByKeyin interfaceRepositoryService
-
setProcessDefinitionCategory
public void setProcessDefinitionCategory(java.lang.String processDefinitionId, java.lang.String category)Description copied from interface:RepositoryServiceSets the category of the process definition. Process definitions can be queried by category: seeProcessDefinitionQuery.processDefinitionCategory(String).- Specified by:
setProcessDefinitionCategoryin interfaceRepositoryService
-
getProcessModel
public java.io.InputStream getProcessModel(java.lang.String processDefinitionId)
Description copied from interface:RepositoryServiceGives access to a deployed process model, e.g., a BPMN 2.0 XML file, through a stream of bytes.- Specified by:
getProcessModelin interfaceRepositoryService- Parameters:
processDefinitionId- id of aProcessDefinition, cannot be null.
-
newModel
public Model newModel()
Description copied from interface:RepositoryServiceCreates a new model. The model is transient and must be saved usingRepositoryService.saveModel(Model).- Specified by:
newModelin interfaceRepositoryService
-
saveModel
public void saveModel(Model model)
Description copied from interface:RepositoryServiceSaves the model. If the model already existed, the model is updated otherwise a new model is created.- Specified by:
saveModelin interfaceRepositoryService- Parameters:
model- model to save, cannot be null.
-
deleteModel
public void deleteModel(java.lang.String modelId)
- Specified by:
deleteModelin interfaceRepositoryService- Parameters:
modelId- id of model to delete, cannot be null. When an id is passed for an unexisting model, this operation is ignored.
-
addModelEditorSource
public void addModelEditorSource(java.lang.String modelId, byte[] bytes)Description copied from interface:RepositoryServiceSaves the model editor source for a model- Specified by:
addModelEditorSourcein interfaceRepositoryService- Parameters:
modelId- id of model to delete, cannot be null. When an id is passed for an unexisting model, this operation is ignored.
-
addModelEditorSourceExtra
public void addModelEditorSourceExtra(java.lang.String modelId, byte[] bytes)Description copied from interface:RepositoryServiceSaves the model editor source extra for a model- Specified by:
addModelEditorSourceExtrain interfaceRepositoryService- Parameters:
modelId- id of model to delete, cannot be null. When an id is passed for an unexisting model, this operation is ignored.
-
createModelQuery
public ModelQuery createModelQuery()
Description copied from interface:RepositoryServiceQuery models.- Specified by:
createModelQueryin interfaceRepositoryService
-
createNativeModelQuery
public NativeModelQuery createNativeModelQuery()
Description copied from interface:RepositoryServiceReturns a newNativeQueryfor process definitions.- Specified by:
createNativeModelQueryin interfaceRepositoryService
-
getModel
public Model getModel(java.lang.String modelId)
Description copied from interface:RepositoryServiceReturns theModel- Specified by:
getModelin interfaceRepositoryService- Parameters:
modelId- id of model
-
getModelEditorSource
public byte[] getModelEditorSource(java.lang.String modelId)
Description copied from interface:RepositoryServiceReturns the model editor source as a byte array- Specified by:
getModelEditorSourcein interfaceRepositoryService- Parameters:
modelId- id of model
-
getModelEditorSourceExtra
public byte[] getModelEditorSourceExtra(java.lang.String modelId)
Description copied from interface:RepositoryServiceReturns the model editor source extra as a byte array- Specified by:
getModelEditorSourceExtrain interfaceRepositoryService- Parameters:
modelId- id of model
-
addCandidateStarterUser
public void addCandidateStarterUser(java.lang.String processDefinitionId, java.lang.String userId)Description copied from interface:RepositoryServiceAuthorizes a candidate user for a process definition.- Specified by:
addCandidateStarterUserin interfaceRepositoryService- Parameters:
processDefinitionId- id of the process definition, cannot be null.userId- id of the user involve, cannot be null.
-
addCandidateStarterGroup
public void addCandidateStarterGroup(java.lang.String processDefinitionId, java.lang.String groupId)Description copied from interface:RepositoryServiceAuthorizes a candidate group for a process definition.- Specified by:
addCandidateStarterGroupin interfaceRepositoryService- Parameters:
processDefinitionId- id of the process definition, cannot be null.groupId- id of the group involve, cannot be null.
-
deleteCandidateStarterGroup
public void deleteCandidateStarterGroup(java.lang.String processDefinitionId, java.lang.String groupId)Description copied from interface:RepositoryServiceRemoves the authorization of a candidate group for a process definition.- Specified by:
deleteCandidateStarterGroupin interfaceRepositoryService- Parameters:
processDefinitionId- id of the process definition, cannot be null.groupId- id of the group involve, cannot be null.
-
deleteCandidateStarterUser
public void deleteCandidateStarterUser(java.lang.String processDefinitionId, java.lang.String userId)Description copied from interface:RepositoryServiceRemoves the authorization of a candidate user for a process definition.- Specified by:
deleteCandidateStarterUserin interfaceRepositoryService- Parameters:
processDefinitionId- id of the process definition, cannot be null.userId- id of the user involve, cannot be null.
-
getIdentityLinksForProcessDefinition
public java.util.List<IdentityLink> getIdentityLinksForProcessDefinition(java.lang.String processDefinitionId)
Description copied from interface:RepositoryServiceRetrieves theIdentityLinks associated with the given process definition. Such anIdentityLinkinforms how a certain identity (eg. group or user) is authorized for a certain process definition- Specified by:
getIdentityLinksForProcessDefinitionin interfaceRepositoryService
-
validateProcess
public java.util.List<org.activiti.validation.ValidationError> validateProcess(org.activiti.bpmn.model.BpmnModel bpmnModel)
Description copied from interface:RepositoryServiceValidates the given process definition against the rules for executing a process definition on the Activiti engine. To create such aBpmnModelfrom a String, following code may be used: XMLInputFactory xif = XMLInputFactory.newInstance(); InputStreamReader in = new InputStreamReader(new ByteArrayInputStream(myProcess.getBytes()), "UTF-8"); // Change to other streams for eg from classpath XMLStreamReader xtr = xif.createXMLStreamReader(in); bpmnModel = new BpmnXMLConverter().convertToBpmnModel(xtr);- Specified by:
validateProcessin interfaceRepositoryService
-
-