Class BpmnDeployer
java.lang.Object
org.camunda.bpm.engine.impl.AbstractDefinitionDeployer<ProcessDefinitionEntity>
org.camunda.bpm.engine.impl.bpmn.deployer.BpmnDeployer
- All Implemented Interfaces:
Deployer
Deployer
responsible to parse BPMN 2.0 XML files and create the proper
ProcessDefinitionEntity
s. Overwrite this class if you want to gain some control over
this mechanism, e.g. setting different version numbers, or you want to use your own BpmnParser
.- Author:
- Tom Baeyens, Joram Barrez, Bernd Ruecker
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String[]
protected BpmnParser
protected ExpressionManager
protected static final PropertyMapKey<String,
List<JobDeclaration<?, ?>>> static BpmnParseLogger
Fields inherited from class org.camunda.bpm.engine.impl.AbstractDefinitionDeployer
DIAGRAM_SUFFIXES, idGenerator
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
addAuthorizations
(ProcessDefinitionEntity processDefinition) protected void
addAuthorizationsFromIterator
(Set<Expression> exprSet, ProcessDefinitionEntity processDefinition, org.camunda.bpm.engine.impl.bpmn.deployer.BpmnDeployer.ExprType exprType) protected void
addConditionalStartEventSubscription
(EventSubscriptionDeclaration conditionalEventDefinition, ProcessDefinitionEntity processDefinition) protected void
addDefinitionToDeploymentCache
(DeploymentCache deploymentCache, ProcessDefinitionEntity definition) Add a definition to the deployment cacheprotected void
addEventSubscription
(ProcessDefinitionEntity processDefinition, EventSubscriptionDeclaration eventDefinition) void
addEventSubscriptions
(ProcessDefinitionEntity processDefinition) protected void
addMessageStartEventSubscription
(EventSubscriptionDeclaration messageEventDefinition, ProcessDefinitionEntity processDefinition) protected void
addSignalStartEventSubscription
(EventSubscriptionDeclaration signalEventDefinition, ProcessDefinitionEntity processDefinition) void
addTimerDeclarations
(ProcessDefinitionEntity processDefinition) protected void
adjustStartEventSubscriptions
(ProcessDefinitionEntity newLatestProcessDefinition, ProcessDefinitionEntity oldLatestProcessDefinition) adjust all event subscriptions responsible to start process instances (timer start event, message start event).protected void
createJobDefinition
(ProcessDefinition processDefinition, JobDeclaration<?, ?> jobDeclaration) protected void
definitionAddedToDeploymentCache
(DeploymentEntity deployment, ProcessDefinitionEntity definition, Properties properties) Called after a definition was added to the deployment cache.protected ProcessDefinitionEntity
findDefinitionByDeploymentAndKey
(String deploymentId, String definitionKey) Find a definition entity by deployment id and definition key.protected ProcessDefinitionEntity
findLatestDefinitionByKeyAndTenantId
(String definitionKey, String tenantId) Find the last deployed definition entity by definition key and tenant id.protected DbEntityManager
protected EventSubscriptionManager
protected JobDefinitionManager
protected JobManager
protected ProcessDefinitionManager
protected String[]
<!> DON'T KEEP DEPLOYMENT-SPECIFIC STATE <!>protected void
handlePersistedDefinition
(ProcessDefinitionEntity definition, ProcessDefinitionEntity persistedDefinition, DeploymentEntity deployment, Properties properties) protected boolean
hasTenantId
(EventSubscriptionEntity cachedSubscription, String tenantId) protected boolean
isSameMessageStartEventSubscriptionAlreadyPresent
(EventSubscriptionDeclaration eventSubscription, String tenantId) protected boolean
isSubscriptionForIntermediateEvent
(EventSubscriptionEntity subscriptionEntity) protected boolean
isSubscriptionForStartEvent
(EventSubscriptionEntity subscriptionEntity) protected boolean
isSubscriptionOfDifferentTypeAsDeclaration
(EventSubscriptionEntity subscriptionEntity, EventSubscriptionDeclaration declaration) protected void
persistDefinition
(ProcessDefinitionEntity definition) Persist definition entity into the database.protected void
persistedDefinitionLoaded
(DeploymentEntity deployment, ProcessDefinitionEntity definition, ProcessDefinitionEntity persistedDefinition) Called when a previous version of a definition was loaded from the persistent store.protected void
removeObsoleteEventSubscriptions
(ProcessDefinitionEntity processDefinition, ProcessDefinitionEntity latestProcessDefinition) protected void
removeObsoleteTimers
(ProcessDefinitionEntity processDefinition) void
setBpmnParser
(BpmnParser bpmnParser) void
setExpressionManager
(ExpressionManager expressionManager) protected List<ProcessDefinitionEntity>
transformDefinitions
(DeploymentEntity deployment, ResourceEntity resource, Properties properties) Transform the resource entity into definition entities.protected void
updateJobDeclarations
(List<JobDeclaration<?, ?>> jobDeclarations, ProcessDefinitionEntity processDefinition, boolean isNewDeployment) Methods inherited from class org.camunda.bpm.engine.impl.AbstractDefinitionDeployer
deploy, ensureNoDuplicateDefinitionKeys, generateDefinitionId, getCommandContext, getDefinitionDiagramResourceName, getDeploymentCache, getDiagramResourceForDefinition, getDiagramSuffixes, getGeneralDiagramResourceName, getIdGenerator, getNextVersion, getProcessEngineConfiguration, isResourceHandled, loadDefinitions, parseDefinitionResources, persistDefinitions, postProcessDefinitions, registerDefinition, setIdGenerator, stripDefinitionFileSuffix, transformResource, updateDefinitionByLatestDefinition, updateDefinitionByPersistedDefinition
-
Field Details
-
LOG
-
BPMN_RESOURCE_SUFFIXES
-
JOB_DECLARATIONS_PROPERTY
-
expressionManager
-
bpmnParser
-
-
Constructor Details
-
BpmnDeployer
public BpmnDeployer()
-
-
Method Details
-
getResourcesSuffixes
<!> DON'T KEEP DEPLOYMENT-SPECIFIC STATE <!>- Specified by:
getResourcesSuffixes
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
- Returns:
- the list of resource suffixes for this cacheDeployer
-
transformDefinitions
protected List<ProcessDefinitionEntity> transformDefinitions(DeploymentEntity deployment, ResourceEntity resource, Properties properties) Description copied from class:AbstractDefinitionDeployer
Transform the resource entity into definition entities.- Specified by:
transformDefinitions
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
- Parameters:
deployment
- the deployment the resources belongs toresource
- the resource to transform- Returns:
- a list of transformed definition entities
-
findDefinitionByDeploymentAndKey
protected ProcessDefinitionEntity findDefinitionByDeploymentAndKey(String deploymentId, String definitionKey) Description copied from class:AbstractDefinitionDeployer
Find a definition entity by deployment id and definition key.- Specified by:
findDefinitionByDeploymentAndKey
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
- Parameters:
deploymentId
- the deployment iddefinitionKey
- the definition key- Returns:
- the corresponding definition entity or null if non is found
-
findLatestDefinitionByKeyAndTenantId
protected ProcessDefinitionEntity findLatestDefinitionByKeyAndTenantId(String definitionKey, String tenantId) Description copied from class:AbstractDefinitionDeployer
Find the last deployed definition entity by definition key and tenant id.- Specified by:
findLatestDefinitionByKeyAndTenantId
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
- Returns:
- the corresponding definition entity or null if non is found
-
persistDefinition
Description copied from class:AbstractDefinitionDeployer
Persist definition entity into the database.- Specified by:
persistDefinition
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
- Parameters:
definition
- the definition entity
-
addDefinitionToDeploymentCache
protected void addDefinitionToDeploymentCache(DeploymentCache deploymentCache, ProcessDefinitionEntity definition) Description copied from class:AbstractDefinitionDeployer
Add a definition to the deployment cache- Specified by:
addDefinitionToDeploymentCache
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
- Parameters:
deploymentCache
- the deployment cachedefinition
- the definition to add
-
definitionAddedToDeploymentCache
protected void definitionAddedToDeploymentCache(DeploymentEntity deployment, ProcessDefinitionEntity definition, Properties properties) Description copied from class:AbstractDefinitionDeployer
Called after a definition was added to the deployment cache.- Overrides:
definitionAddedToDeploymentCache
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
- Parameters:
deployment
- the deployment of the definitiondefinition
- the definition entity
-
persistedDefinitionLoaded
protected void persistedDefinitionLoaded(DeploymentEntity deployment, ProcessDefinitionEntity definition, ProcessDefinitionEntity persistedDefinition) Description copied from class:AbstractDefinitionDeployer
Called when a previous version of a definition was loaded from the persistent store.- Overrides:
persistedDefinitionLoaded
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
- Parameters:
deployment
- the deployment of the definitiondefinition
- the definition entitypersistedDefinition
- the loaded definition entity
-
handlePersistedDefinition
protected void handlePersistedDefinition(ProcessDefinitionEntity definition, ProcessDefinitionEntity persistedDefinition, DeploymentEntity deployment, Properties properties) - Overrides:
handlePersistedDefinition
in classAbstractDefinitionDeployer<ProcessDefinitionEntity>
-
updateJobDeclarations
protected void updateJobDeclarations(List<JobDeclaration<?, ?>> jobDeclarations, ProcessDefinitionEntity processDefinition, boolean isNewDeployment) -
createJobDefinition
protected void createJobDefinition(ProcessDefinition processDefinition, JobDeclaration<?, ?> jobDeclaration) -
adjustStartEventSubscriptions
protected void adjustStartEventSubscriptions(ProcessDefinitionEntity newLatestProcessDefinition, ProcessDefinitionEntity oldLatestProcessDefinition) adjust all event subscriptions responsible to start process instances (timer start event, message start event). The default behavior is to remove the old subscriptions and add new ones for the new deployed process definitions. -
addTimerDeclarations
-
removeObsoleteTimers
-
removeObsoleteEventSubscriptions
protected void removeObsoleteEventSubscriptions(ProcessDefinitionEntity processDefinition, ProcessDefinitionEntity latestProcessDefinition) -
addEventSubscriptions
-
addEventSubscription
protected void addEventSubscription(ProcessDefinitionEntity processDefinition, EventSubscriptionDeclaration eventDefinition) -
addMessageStartEventSubscription
protected void addMessageStartEventSubscription(EventSubscriptionDeclaration messageEventDefinition, ProcessDefinitionEntity processDefinition) -
isSameMessageStartEventSubscriptionAlreadyPresent
protected boolean isSameMessageStartEventSubscriptionAlreadyPresent(EventSubscriptionDeclaration eventSubscription, String tenantId) -
hasTenantId
-
isSubscriptionOfDifferentTypeAsDeclaration
protected boolean isSubscriptionOfDifferentTypeAsDeclaration(EventSubscriptionEntity subscriptionEntity, EventSubscriptionDeclaration declaration) -
isSubscriptionForStartEvent
-
isSubscriptionForIntermediateEvent
-
addSignalStartEventSubscription
protected void addSignalStartEventSubscription(EventSubscriptionDeclaration signalEventDefinition, ProcessDefinitionEntity processDefinition) -
addConditionalStartEventSubscription
protected void addConditionalStartEventSubscription(EventSubscriptionDeclaration conditionalEventDefinition, ProcessDefinitionEntity processDefinition) -
addAuthorizationsFromIterator
protected void addAuthorizationsFromIterator(Set<Expression> exprSet, ProcessDefinitionEntity processDefinition, org.camunda.bpm.engine.impl.bpmn.deployer.BpmnDeployer.ExprType exprType) -
addAuthorizations
-
getDbEntityManager
-
getJobManager
-
getJobDefinitionManager
-
getEventSubscriptionManager
-
getProcessDefinitionManager
-
getExpressionManager
-
setExpressionManager
-
getBpmnParser
-
setBpmnParser
-