public class DefaultDeploymentHandler extends Object implements DeploymentHandler
Modifier and Type | Field and Description |
---|---|
protected ProcessEngine |
processEngine |
protected RepositoryService |
repositoryService |
Constructor and Description |
---|
DefaultDeploymentHandler(ProcessEngine processEngine) |
Modifier and Type | Method and Description |
---|---|
Set<String> |
determineDeploymentsToResumeByDeploymentName(CandidateDeployment candidateDeployment)
This method is called in the last stage of the deployment process, if a Process Application
deployment is performed.
|
Set<String> |
determineDeploymentsToResumeByProcessDefinitionKey(String[] processDefinitionKeys)
This method is called in the last stage of the deployment process, if a Process Application
deployment is performed.
|
String |
determineDuplicateDeployment(CandidateDeployment candidateDeployment)
This method is called in the second stage of the deployment process, when the previously
called
DeploymentHandler.shouldDeployResource(Resource, Resource) method determines that none of the
provided resources for deployment satisfy the comparison criteria, i.e. |
protected boolean |
resourcesDiffer(Resource resource,
Resource existing) |
boolean |
shouldDeployResource(Resource newResource,
Resource existingResource)
This method is called in the first stage of the deployment process.
|
protected ProcessEngine processEngine
protected RepositoryService repositoryService
public DefaultDeploymentHandler(ProcessEngine processEngine)
public boolean shouldDeployResource(Resource newResource, Resource existingResource)
DeploymentHandler
This method is called in the first stage of the deployment process. It determines if there
is a difference between a Resource
that is included in the set of resources provided
for deployment, and a Resource of the same name, already deployed to the Process Engine
with a previous Deployment. The method will be called for every (new, existing) Resource
pair. If a Resource of the same name doesn't exist in the Process Engine database, the new
Resource is deployed by default and this method is not called.
An implementation should define the comparison criteria for the two provided
Resources. For the default comparison criteria, see
shouldDeployResource(Resource, Resource)
.
The output of this method (Boolean) will determine if newResource
is
included in the list of Resources to be deployed (true), or not (false).
shouldDeployResource
in interface DeploymentHandler
newResource
- is a resource that is part of the new Deployment.existingResource
- is the most recently deployed resource that has the same resource name.true
, if the new Resource satisfies the comparison criteria, or
false
if not.public String determineDuplicateDeployment(CandidateDeployment candidateDeployment)
DeploymentHandler
This method is called in the second stage of the deployment process, when the previously
called DeploymentHandler.shouldDeployResource(Resource, Resource)
method determines that none of the
provided resources for deployment satisfy the comparison criteria, i.e. there are no new
Resources to deploy. This method then determines a Deployment
already present in the
Process Engine database that is a duplicate of the new Deployment.
An implementation should determine what defines a duplicate Deployment.
The returned Deployment ID (String) will be used to retrieve the corresponding Deployment from the Process Engine database. This Deployment will then be registered with the JobExecutor and the Process Application (if a Process Application Deployment is performed). Furthermore, any Process Definitions that this Deployment contains will be scheduled for activation, if a Process Definition Activation Date was set.
determineDuplicateDeployment
in interface DeploymentHandler
candidateDeployment
- a wrapper for the set of Resources provided for deployment and the
name under which they should have been deployed. At this stage,
it should be assumed that all of the Resources of this set didn't
satisfy the comparison criteria and will not be deployed.candidateDeployment
.public Set<String> determineDeploymentsToResumeByProcessDefinitionKey(String[] processDefinitionKeys)
DeploymentHandler
This method is called in the last stage of the deployment process, if a Process Application
deployment is performed. An additional condition is that the
ProcessApplicationDeploymentBuilder.resumePreviousVersions()
flag of the Process
Application Deployment Builder is set, and
ProcessApplicationDeploymentBuilder.resumePreviousVersionsBy(String)
()} is set to the
default, ResumePreviousBy.RESUME_BY_PROCESS_DEFINITION_KEY
value.
The implementation of this method determines a Set
of Deployment IDs of Deployments
already present in the Process Engine database. These deployments will then be registered
with the Process Application, so that any Java classes that the Process Application provides
can be utilised by the Process Definitions of the Deployments.
determineDeploymentsToResumeByProcessDefinitionKey
in interface DeploymentHandler
processDefinitionKeys
- are the Process Definition Keys of a subset of Process Resources
provided for deployment. The subset includes Process Definition
Keys from:
DeploymentHandler.shouldDeployResource(Resource, Resource)
method.DeploymentHandler.shouldDeployResource(Resource, Resource)
determines that all of the provided resources should be deployed
to the database, and there are no Process Definitions with the
same key already present in the database (i.e. the Process
Resources are completely new), this method will not be called.Set
of deployment IDs of Deployments already present in the Process Engine
database, that should be resumed (registered with the
JobExecutor
and registered with the newly
deployed Process Application).public Set<String> determineDeploymentsToResumeByDeploymentName(CandidateDeployment candidateDeployment)
DeploymentHandler
This method is called in the last stage of the deployment process, if a Process Application
deployment is performed. An additional condition is that the
ProcessApplicationDeploymentBuilder.resumePreviousVersions()
flag of the Process
Application Deployment Builder is set, and
ProcessApplicationDeploymentBuilder.resumePreviousVersionsBy(String)
()} is set to the
ResumePreviousBy.RESUME_BY_DEPLOYMENT_NAME
value.
The implementation of this method should determine a set of Deployment IDs of Deployments with the same name, that are already present in the Process Engine database.
determineDeploymentsToResumeByDeploymentName
in interface DeploymentHandler
candidateDeployment
- a wrapper for the set of resources that were provided for
deployment and the name that should be used for this deployment.
This information can be used to find any Deployments of the same
name already present in the Process Engine database. The set of
Resources can then be used, if needed, to filter out the resulting
Deployments according to a given criteria.Set
of deployment IDs of Deployments already present in the Process Engine
database, that should be resumed (registered with the
JobExecutor
and registered with the newly
deployed Process Application).Copyright © 2021. All rights reserved.