public interface DeploymentHandler
The DeploymentHandler interface should be implemented when there is a need to
 define a custom behavior for determining what Resources should be added to a new Deployment.
The class that implements this interface must provide a Process Engine parameter in it's
 constructor. Custom implementations of this interface should be coupled with an implementation
 of the DeploymentHandlerFactory interface, which can then be wired to the Process Engine
 through the
 ProcessEngineConfigurationImpl.setDeploymentHandlerFactory(DeploymentHandlerFactory)
 method.
See DefaultDeploymentHandler for the default
 behavior of the deployment process.
| 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  
shouldDeployResource(Resource, Resource) method determines that none of the
 provided resources for deployment satisfy the comparison criteria, i.e. | 
boolean | 
shouldDeployResource(Resource newResource,
                    Resource existingResource)
This method is called in the first stage of the deployment process. 
 | 
boolean shouldDeployResource(Resource newResource, Resource existingResource)
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
 DefaultDeploymentHandler.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).
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.String determineDuplicateDeployment(CandidateDeployment candidateDeployment)
This method is called in the second stage of the deployment process, when the previously
 called 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.
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.Set<String> determineDeploymentsToResumeByProcessDefinitionKey(String[] processDefinitionKeys)
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.
processDefinitionKeys - are the Process Definition Keys of a subset of Process Resources
                              provided for deployment. The subset includes Process Definition
                              Keys from:
                              shouldDeployResource(Resource, Resource) method.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).Set<String> determineDeploymentsToResumeByDeploymentName(CandidateDeployment candidateDeployment)
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.
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.