Process Archive Configuration

The process archive tag allows configuration of a process engine deployment and can be used in the processes.xml file.

See the processes.xml section of the User Guide for more details.


The following example shows a process-archive XML snippet:

<process-archive name="loan-approval">
    <property name="isDeleteUponUndeploy">false</property>
    <property name="isScanForProcessDefinitions">true</property>
    <property name="additionalResourceSuffixes">groovy,py</property>

Syntax Reference

Tag name Parent tag name Required? Description
<process-archive> <process-application> true Container element for the configuration of a process archive (deployment).


  • name: Allows you to define the name of the process archive. The name will be used for the process engine deployment.
  • tenantId: Allows you to define the tenant-id of the process archive. If a tenant-id is set then all containing resources will be deployed for the given tenant-id. See the User Guide for details about Multi-Tenancy.

Text Content: None.

<process-engine> <process-archive> false Specifies the name of the process engine to which the deployment is performed. If the element is not provided, the default process engine is used.

Attributes: None.

Text Content: The name of the process engine to which the deployment should be performed.

<resource> <process-archive> false Can be used to explicitly list the paths to resources that are part of this deployment. These can be process or case definitions but also additional files like script files.

Attributes: None.

Text Content: The path to the resource that is part of this deployment. The resource is loaded with the classloader of the process application and therefore must be relative to the process application classloader root(s).

<properties> <process-engine>, <plugin> false Container element for providing a set of process archive configuration properties.

Attributes: None.

Text Content: None.

<property> <properties> false Set value for process archive configuration property


  • name: The name of the property.

Text Content: The value of the property to be set.

Configuration Properties

The following is a list of all supported configuration properties.

Property name Type Description
isDeleteUponUndeploy boolean If true, the process engine deployment will be deleted (cascade = true) when the process application is undeployed.

Default value: false.

isScanForProcessDefinitions boolean

If true, the process application will be scanned for deployable resources (.bpmn20.xml, .bpmn, .cmmn11.xml, .cmmn, .dmn11.xml or .dmn files). Resources matching the additionalResourceSuffixes parameter are also included in the scan.

Scanning is performed recursively based on the filesystem directory to which the resource root resolves (see property resourceRootPath). This may not cover the entire classpath. For example, scanning for resources in a WAR file does not consider processes of a JAR that is contained within that WAR.

Default value: true.

isResumePreviousVersions boolean If true, previous versions of the deployment are automatically resumed. See the Process Application Deployment section of the User Guide for more details.

Default value: true.

isDeployChangedOnly boolean If true, only resources that have changed become part of the deployment. This check is performed against previous deployments of the same name. Every resource contained in the process archive is compared to the most recent resource of the same name that is part of one of the previous deployments. Activating this setting does not automatically resume previous versions of the deployment.

Default value: false.


It is not advised to use this setting when process elements are bound against resources of the same deployment. A binding is required when resources like a process definition from a call activity or an external script are referenced (see the BPMN implementation reference). For example, if a call activity uses the binding deployment and a certain process definition key, whether the process can be resolved depends on whether it was deployed. Thus it is recommended to use the binding latest or version when activating this setting.

resourceRootPath string The resource root of the process archive. This property is used when scanning for process definitions (if isScanForProcessDefinitions is set to true).

The path is interpreted as

  • local to the root of the classpath. By default or if the prefix classpath: is used, the path is interpreted as relative to the root of the classloader. Example: path/to/my/processes or classpath:path/to/my/processes)
  • relative to the parent folder of the process archive's deployment descriptor file (processes.xml). If the prefix pa: is used, the path is interpreted as relative to the deployment descriptor defining the process archive. Consider the situation of a process application packaged as a WAR file: The deployment structure could look like this:
    |-- My-Application.war
        |-- WEB-INF
            |-- lib/
                |-- Sales-Processes.jar
                    |-- META-INF/processes.xml  (1)
                    |-- opps/openOpportunity.bpmn
                    |-- leads/openLead.bpmn
                |-- Invoice-Processes.jar
                    |-- META-INF/processes.xml  (2)
    If the process archive(s) defined in (1) uses a path prefixed with pa:, like for instance pa:opps/, only the opps/-folder of sales-processes.jar is scanned. More precisely, a "pa-local path", is resolved relative to the the parent directory of the META-INF-directory containing the defining processes.xml file. This implies that when using a pa-local path in (1), no processes from (2) are visible.

additionalResourceSuffixes comma-seperated list Specifies a list of additional suffixes which are considered as deployment resource if the isScanForProcessDefinitions property is set to true. It can be used to deploy additional resources beside process and case definitions, for example to add a script to the deployment and reference it as an external source (see the documentation about script source for more information). To specify multiple suffixes, a comma is used as seperator, ie. py,groovy,rb.

On this Page: