bpm-platform.xml

The bpm-platform.xml file is part of the Camunda 7 distribution and can be used for configuration of process engines and the job executor. It is used to configure Camunda 7 in the following distributions:

Wildfly

The bpm-platform.xml file is not used in the Camunda 7 distribution for Wildfly. There, the configuration is added to the central application server configuration file (standalone.xml or domain.xml). The XML schema is the same (i.e., the same elements and properties can be used). See the The Camunda Wildfly Subsystem section of the User Guide for more details.

Xml Schema Namespace

The namespace for the bpm-platform.xml file is http://www.camunda.org/schema/1.0/BpmPlatform. The XSD file can be found in the camunda-engine.jar file.

Example

<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform xmlns="http://www.camunda.org/schema/1.0/BpmPlatform"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.camunda.org/schema/1.0/BpmPlatform http://www.camunda.org/schema/1.0/BpmPlatform ">

  <job-executor>
    <job-acquisition name="default" />
  </job-executor>

  <process-engine name="default">
    <job-acquisition>default</job-acquisition>
    <configuration>org.camunda.bpm.engine.impl.cfg.JtaProcessEngineConfiguration</configuration>
    <datasource>jdbc/ProcessEngine</datasource>

    <properties>
      <property name="history">full</property>
      <property name="databaseSchemaUpdate">true</property>
      <property name="transactionManagerJndiName">java:appserver/TransactionManager</property>
      <property name="authorizationEnabled">true</property>
    </properties>

  </process-engine>

</bpm-platform>

Syntax Reference

Tag name Parent tag name Required? Description
<bpm-platform> None. true Root element of the bpm-platform.xml file.
<job-executor> <bpm-platform> true See job-executor Reference
<process-engine> <bpm-platform> false See process-engine Reference

Configure Location of the bpm-platform.xml File

You can configure the location of the bpm-platform.xml, so the file can be stored externally to allow an easy update path of camunda-bpm-platform.ear. This negates the work of unpacking / repackaging the ear when you need to change the configuration.

This feature is available for:

It is not available for the Wildfly subsystem implementation, because the subsystem implementation uses the JBoss specific standalone.xml to configure the platform.

To specify the location, you have to provide an absolute path or an http/https url pointing to the bpm-platform.xml file, e.g., /home/camunda/.camunda/bpm-platform.xml or http://camunda.org/bpm-platform.xml.

During startup of the camunda-bpm-platform, it tries to discover the location of the bpm-platform.xml file from the following sources, in the listed order:

  1. JNDI entry is available at java:/comp/env/bpm-platform-xml
  2. Environment variable BPM_PLATFORM_XML is set
  3. System property bpm.platform.xml is set, e.g., when starting the server JVM it is appended as -Dbpm.platform.xml on the command line
  4. META-INF/bpm-platform.xml exists on the classpath
  5. (For Tomcat only): checks if there is a bpm-platform.xml inside the folder specified by ${CATALINA_BASE} || ${CATALINA_HOME} + /conf/

The discovery stops when one of the above mentioned sources is found or, in case none is found, it falls back to the bpm-platform.xml on the classpath, respectively ${CATALINA_BASE} || ${CATALINA_HOME} + /conf/ for Tomcat. We ship a default bpm-platform.xml file inside the camunda-bpm-platform.ear, except when you use the Tomcat or Wildfly version of the platform.

Using System Properties

To externalize environment specific parts of the configuration, it is possible to reference system properties using Ant-style expressions (i.e., ${PROPERTY_KEY}). Expression resolution is supported within the property elements only. System properties may be set via command line (-Doption) or in an implementation specific manner (Apache Tomcat’s catalina.properties for example). Complex operations are not supported, but you may combine more than one expression in a single property element (e.g., ${ldap.host}:${ldap.port}).

Example

<!-- ... -->
<plugin>
  <class>org.camunda.bpm.engine.impl.plugin.AdministratorAuthorizationPlugin</class>
  <properties>
    <property name="administratorUserName">${camunda.administratorUserName}</property>
  </properties>
</plugin>
<!-- ... -->

On this Page: