Interface DeploymentBuilder

All Known Subinterfaces:
ProcessApplicationDeploymentBuilder
All Known Implementing Classes:
DeploymentBuilderImpl, ProcessApplicationDeploymentBuilderImpl

public interface DeploymentBuilder

Builder for creating new deployments.

A builder instance can be obtained through RepositoryService.createDeployment().

Multiple resources can be added to one deployment before calling the deploy() operation.

After deploying, no more changes can be made to the returned deployment and the builder instance can be disposed.

In order the resources to be processed as definitions, their names must have one of allowed suffixes (file extensions in case of file reference).

Resource name suffixWill be treated as
.bpmn20.xml, .bpmnBPMN process definition
.cmmn11.xml, .cmmn10.xml, .cmmnCMMN case definition
.dmn11.xml, .dmnDMN decision table

Additionally resources with resource name suffixes .png, .jpg, .gif and .svg can be treated as diagram images. The deployment resource is considered to represent the specific model diagram by file name, e.g. bpmnDiagram1.png will be considered to be a diagram image for bpmnDiagram1.bpmn20.xml.

Author:
Tom Baeyens, Joram Barrez
  • Method Details

    • addInputStream

      DeploymentBuilder addInputStream(String resourceName, InputStream inputStream)
    • addClasspathResource

      DeploymentBuilder addClasspathResource(String resource)
    • addString

      DeploymentBuilder addString(String resourceName, String text)
    • addModelInstance

      DeploymentBuilder addModelInstance(String resourceName, BpmnModelInstance modelInstance)
      Adds a BPMN model to the deployment.
      Parameters:
      resourceName - resource name. See suffix requirements for resource names: .
      modelInstance - model instance
      Returns:
    • addModelInstance

      DeploymentBuilder addModelInstance(String resourceName, DmnModelInstance modelInstance)
      Adds a DMN model to the deployment.
      Parameters:
      resourceName - resource name. See suffix requirements for resource names: .
      modelInstance - model instance
      Returns:
    • addModelInstance

      DeploymentBuilder addModelInstance(String resourceName, CmmnModelInstance modelInstance)
      Adds a CMMN model to the deployment.
      Parameters:
      resourceName - resource name. See suffix requirements for resource names: .
      modelInstance - model instance
      Returns:
    • addZipInputStream

      DeploymentBuilder addZipInputStream(ZipInputStream zipInputStream)
    • addDeploymentResources

      DeploymentBuilder addDeploymentResources(String deploymentId)
      All existing resources contained by the given deployment will be added to the new deployment to re-deploy them.
      Throws:
      NotValidException - if deployment id is null.
    • addDeploymentResourceById

      DeploymentBuilder addDeploymentResourceById(String deploymentId, String resourceId)
      A given resource specified by id and deployment id will be added to the new deployment to re-deploy the given resource.
      Throws:
      NotValidException - if either deployment id or resource id is null.
    • addDeploymentResourcesById

      DeploymentBuilder addDeploymentResourcesById(String deploymentId, List<String> resourceIds)
      All given resources specified by id and deployment id will be added to the new deployment to re-deploy the given resource.
      Throws:
      NotValidException - if either deployment id or the list of resource ids is null.
    • addDeploymentResourceByName

      DeploymentBuilder addDeploymentResourceByName(String deploymentId, String resourceName)
      A given resource specified by name and deployment id will be added to the new deployment to re-deploy the given resource.
      Throws:
      NotValidException - if either deployment id or resource name is null.
    • addDeploymentResourcesByName

      DeploymentBuilder addDeploymentResourcesByName(String deploymentId, List<String> resourceNames)
      All given resources specified by name and deployment id will be added to the new deployment to re-deploy the given resource.
      Throws:
      NotValidException - if either deployment id or the list of resource names is null.
    • name

      Gives the deployment the given name.
      Throws:
      NotValidException - if nameFromDeployment(String) has been called before.
    • nameFromDeployment

      DeploymentBuilder nameFromDeployment(String deploymentId)
      Sets the deployment id to retrieve the deployment name from it.
      Throws:
      NotValidException - if name(String) has been called before.
    • enableDuplicateFiltering

      @Deprecated DeploymentBuilder enableDuplicateFiltering()
      Deprecated.

      If set, this deployment will be compared to any previous deployment. This means that every (non-generated) resource will be compared with the provided resources of this deployment. If any resource of this deployment is different to the existing resources, all resources are re-deployed.

      Deprecated: use enableDuplicateFiltering(boolean)

    • enableDuplicateFiltering

      DeploymentBuilder enableDuplicateFiltering(boolean deployChangedOnly)
      Check the resources for duplicates in the set of previous deployments with same deployment source. If no resources have changed in this deployment, its contained resources are not deployed at all. For further configuration, use the parameter deployChangedOnly.
      Parameters:
      deployChangedOnly - determines whether only those resources should be deployed that have changed from the previous versions of the deployment. If false, all of the resources are re-deployed if any resource differs.
    • activateProcessDefinitionsOn

      DeploymentBuilder activateProcessDefinitionsOn(Date date)
      Sets the date on which the process definitions contained in this deployment will be activated. This means that all process definitions will be deployed as usual, but they will be suspended from the start until the given activation date.
    • source

      DeploymentBuilder source(String source)

      Sets the source of a deployment.

      Furthermore if duplicate check of deployment resources is enabled (by calling enableDuplicateFiltering(boolean)) then only previous deployments with the same given source are considered to perform the duplicate check.

    • deploy

      Deployment deploy()

      Deploys all provided sources to the process engine and returns the created deployment.

      The returned Deployment instance has no information about the definitions, which are deployed with that deployment. To access this information you can use the deployWithResult() method. This method will return an instance of DeploymentWithDefinitions, which contains the information about the successful deployed definitions.

      Returns:
      the created deployment
      Throws:
      NotFoundException - thrown
      NotValidException - if there are duplicate resource names from different deployments to re-deploy.
      ParseException - In case of a BPMN Parsing exception due to null historyTimeToLive. To disable this behaviour, configure the feature flag enforceHistoryTimeToLive to false.
      AuthorizationException - thrown if the current user does not possess the following permissions:
    • deployWithResult

      DeploymentWithDefinitions deployWithResult()
      Deploys all provided sources to the process engine and returns the created deployment with the deployed definitions.
      Returns:
      the created deployment, contains the deployed definitions
      Throws:
      NotFoundException - thrown
      NotValidException - if there are duplicate resource names from different deployments to re-deploy.
      ParseException - In case of a BPMN Parsing exception due to null historyTimeToLive. To disable this behaviour, configure the feature flag enforceHistoryTimeToLive to false.
      AuthorizationException - thrown if the current user does not possess the following permissions:
    • getResourceNames

      Collection<String> getResourceNames()
      Returns:
      the names of the resources which were added to this builder.
    • tenantId

      DeploymentBuilder tenantId(String tenantId)
      Sets the tenant id of a deployment.