Camunda BPM Installation Guide (GlassFish)

Overview

This document will guide you through the installation of Camunda BPM and its components on a Glassfish 3.1 application server.

Reading the Guide
Throughout this guide we will use a number of variables to denote common path names and constants.
$GLASSFISH_HOME points to the glassfish application server main directory (typically glassfish3/glassfish when extracted from a glassfish distribution).
$PLATFORM_VERSION denotes the version of the camunda BPM platform you want to install or already have installed, e.g. 7.0.0.
$GLASSFISH_DISTRIBUTION represents the downloaded pre-packaged camunda BPM distribution for Glassfish, e.g. camunda-bpm-glassfish-$PLATFORM_VERSION.zip or camunda-bpm-glassfish-$PLATFORM_VERSION.tar.gz.

Install the pre-built distro

  1. Download the pre-packaged distribution from http://camunda.org/release/camunda-bpm/glassfish/.
  2. Unpack the distro to a directory.
  3. Adjust the datasource according to your needs (see below).
  4. Startup the server by running camunda-welcome.bat or using the $GLASSFISH_HOME/glassfish/config/startserv.{bat/sh} script.

Install the platform on a vanilla GlassFish

This section will describe how you can install the camunda BPM platform on a vanilla Glassfish 3.1, if you are not able to use the pre-packaged Glassfish distribution. Regardless, we recommend that you download a Glassfish 3.1 distribution to use the required modules.

Create the database schema for the camunda BPM platform

If you do not want to use the H2 database, you first have to create a database schema for the camunda BPM platform. The camunda BPM distribution ships with a set of SQL create scripts that can be executed by a database administrator.

The database creation scripts are reside in the sql/create folder:

$GLASSFISH_DISTRIBUTION/sql/create/*_engine_$PLATFORM_VERSION.sql $GLASSFISH_DISTRIBUTION/sql/create/*_identity_$PLATFORM_VERSION.sql

There is an individual SQL script for each supported database. Select the appropriate script for your database and run it with your database administration tool. (e.g. SqlDeveloper for Oracle).

Configuring JDBC Connection Pool and JDBC Resource

The JDBC Connection Pool and the JDBC Resource can be configured by editing the file domain.xml inside the folder $GLASSFISH_HOME/glassfish/domains/<domain>/config/.

This could look like the following example for an H2 database:

<domain>
  ...
  <resources>
    ...
    <jdbc-resource pool-name="ProcessEnginePool"
                   jndi-name="jdbc/ProcessEngine"
                   enabled="true">
    </jdbc-resource>

    <jdbc-connection-pool is-isolation-level-guaranteed="false"
                          datasource-classname="org.h2.jdbcx.JdbcDataSource"
                          res-type="javax.sql.DataSource"
                          non-transactional-connections="true"
                          name="ProcessEnginePool">
      <property name="Url"
                value="jdbc:h2:./camunda-h2-dbs/process-engine;DB_CLOSE_DELAY=-1;MVCC=TRUE;DB_CLOSE_ON_EXIT=FALSE">
      </property>
      <property name="User" value="sa"></property>
      <property name="Password" value="sa"></property>
    </jdbc-connection-pool>
  </resources>

  <servers>
    <server>
      ...
      <resource-ref ref="jdbc/ProcessEngine"></resource-ref>
    </server>
  </servers>
</domain>

In case another database than H2 is used (i.e., DB2, MySQL etc.), you have to adjust the datasource-classname and the res-type attributes with the corresponding database classes and set the database specific properties (such as the url, etc.) inside the JDBC Connection Pool. Furthermore, you have to add the corresponding JDBC driver to $GLASSFISH_HOME/glassfish/lib/. For example, you can add the H2 JDBC driver which is located at $GLASSFISH_DISTRIBUTION/server/glassfish3/glassfish/lib/h2-VERSION.jar to run with the H2 database.

Configuring a Thread Pool for the Job Executor

To do so, you have to edit the file $GLASSFISH_HOME/glassfish/domains/<domain>/config/domain.xml and add the following elements to the resources section.

<domain>
  ...
  <resources>
    ...
    <resource-adapter-config
      enabled="true"
      resource-adapter-name="camunda-jobexecutor-rar"
      thread-pool-ids="platform-jobexecutor-tp" >
    </resource-adapter-config>

    <connector-connection-pool
        enabled="true"
        name="platformJobExecutorPool"
        resource-adapter-name="camunda-jobexecutor-rar"
        connection-definition-name=
            "org.camunda.bpm.container.impl.threading.jca.outbound.JcaExecutorServiceConnectionFactory"
        transaction-support="NoTransaction" />

    <connector-resource
        enabled="true"
        pool-name="platformJobExecutorPool"
        jndi-name="eis/JcaExecutorServiceConnectionFactory" />
  </resources>

  <servers>
    <server>
      ...
      <resource-ref ref="eis/JcaExecutorServiceConnectionFactory"></resource-ref>
    </server>
  </servers>
</domain>

To configure a thread pool for the job executor you have to add it to the corresponding config elements of domain.xml.

<domain>
  ...
  <configs>
    ...
    <config name="server-config">
      ...
      <thread-pools>
        ...
        <thread-pool max-thread-pool-size="6"
                     name="platform-jobexecutor-tp"
                     min-thread-pool-size="3"
                     max-queue-size="10">
        </thread-pool>
      </thread-pools>
    </config>
  </configs>
</domain>

Installing the camunda BPM platform

The following steps are required to deploy the camunda BPM platform on a Glassfish instance:

  1. Merge the shared libraries from $GLASSFISH_DISTRIBUTION/modules/lib into the GLASSFISH_HOME/glassfish/lib directory (i.e., copy the content into the Glassfish library directory).
  2. Copy the job executor resource adapter $GLASSFISH_DISTRIBUTION/modules/camunda-jobexecutor-rar-$PLATFORM_VERSION.rar into $GLASSFISH_HOME/glassfish/domains/<domain>/autodeploy. The job executor resource adapter has to be deployed first because the artifact camunda-glassfish-ear-$PLATFORM_VERSION.ear depends on it and cannot be deployed successfully without the resource adapter. If you try to deploy both components with the auto-deploy feature in one step you should be aware that the deployment order is not defined in this case. Due to this, we propose to startup the Glassfish application server to initially deploy the job executor resource adapter. After a successful startup, shutdown the Glassfish application server.
  3. Copy the artifact $GLASSFISH_DISTRIBUTION/modules/camunda-glassfish-ear-$PLATFORM_VERSION.ear into $GLASSFISH_HOME/glassfish/domains/<domain>/autodeploy.
  4. (optional) Configure the location of the bpm-platform.xml file
  5. Startup the Glassfish application server.
  6. After a successful startup, the camunda BPM platform is installed.

As next step you can, for example, install the REST API on Glassfish.

Install Optional Camunda Dependencies

This section describes how to install optional Camunda dependencies onto a Glassfish server. None of these are required to work with the core platform. Before continuing, make sure that the Camunda BPM platform is already installed according to this step.

Note

When using a pre-packaged Glassfish distribution, the optional extensions are already installed and activated.

The following section covers the installation of these extensions:

Install Camunda Connect

Add the following artifacts (if not existing) from the folder $GLASSFISH_DISTRIBUTION/modules/lib/ to the folder $GLASSFISH_HOME/glassfish/lib/:

  • camunda-connect-core-$CONNECT_VERSION.jar
  • camunda-commons-logging-$COMMONS_VERSION.jar
  • camunda-commons-utils-$COMMONS_VERSION.jar
  • slf4j-api-$SLF4J_VERSION.jar
  • slf4j-jdk14-$SLF4J_VERSION.jar

In order to activate Camunda Connect functionality for a process engine, a process engine plugin has to be registered in the BPM platform configuration as follows:

<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform ... ">
  <process-engine name="default">
    ...
    <plugins>
      ... existing plugins ...
      <plugin>
        <class>org.camunda.connect.plugin.impl.ConnectProcessEnginePlugin</class>
      </plugin>
    </plugins>
    ...
  </process-engine>

</bpm-platform>

Install Camunda Spin

Add the following artifacts (if not existing) from the folder $GLASSFISH_DISTRIBUTION/modules/lib/ to the folder $GLASSFISH_HOME/glassfish/lib/:

  • camunda-spin-core-$SPIN_VERSION.jar
  • camunda-commons-logging-$COMMONS_VERSION.jar
  • camunda-commons-utils-$COMMONS_VERSION.jar
  • slf4j-api-$SLF4J_VERSION.jar
  • slf4j-jdk14-$SLF4J_VERSION.jar

In order to activate Camunda Spin functionality for a process engine, a process engine plugin has to be registered in BPM platform configuration as follows:

<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform ... ">
  ...
  <process-engine name="default">
    ...
    <plugins>
      ... existing plugins ...
      <plugin>
        <class>org.camunda.spin.plugin.impl.SpinProcessEnginePlugin</class>
      </plugin>
    </plugins>
    ...
  </process-engine>
  ...
</bpm-platform>

Install Groovy Scripting

Add the following artifacts (if not existing) from the folder $GLASSFISH_DISTRIBUTION/modules/lib/ to the folder $GLASSFISH_HOME/glassfish/lib/:

  • groovy-all-$GROOVY_VERSION.jar

Install Freemarker Integration

Add the following artifacts (if not existing) from the folder $GLASSFISH_DISTRIBUTION/modules/lib/ to the folder $GLASSFISH_HOME/glassfish/lib/:

  • camunda-template-engines-freemarker-$TEMPLATE_VERSION.jar
  • freemarker-2.3.20.jar
  • camunda-commons-logging-$COMMONS_VERSION.jar
  • camunda-commons-utils-$COMMONS_VERSION.jar
  • slf4j-api-$SLF4J_VERSION.jar
  • slf4j-jdk14-$SLF4J_VERSION.jar

Install the REST API web application

To install the REST API, a Glassfish installation with the org.camunda.bpm.camunda-engine module is required. See the above section on how to install the pre-built distro or install the platform on a vanilla Glassfish.

Note: The distro already ships the REST API exposing it on the context path /engine-rest.

The following steps are required to deploy the REST API on a Glassfish instance:

  1. Download the REST API web application archive from our Maven Nexus Server. Or switch to the private repository for the enterprise version (User and password from license required). Choose the correct version named $PLATFORM_VERSION/camunda-engine-rest-$PLATFORM_VERSION.war.
  2. Optionally, you may change the context path to which the REST API will be deployed (default is /engine-rest). Edit the file WEB-INF/sun-web.xml in the war file and update the context-root element accordingly.
  3. Copy the war file to $GLASSFISH_HOME/domains/domain1/autodeploy.
  4. Startup the Glassfish Application Server.
  5. Access the REST API on the context path you configured. For example, http://localhost:8080/engine-rest/engine should return the names of all engines of the platform, if you deployed the application in the context /engine-rest.

Install Camunda Cockpit and Tasklist

To install camunda Cockpit and Tasklist, a Glassfish installation with the org.camunda.bpm.camunda-engine module is required. See the above section on how to install the pre-built distro or install the platform on a vanilla Glassfish.

Note: The distro already ships the applications. They may be accessed via /camunda/app/cockpit and /camunda/app/tasklist, respectively.

The following steps are required to deploy the applications on a Glassfish instance:

  1. Download the camunda web application that contains both applications from our Maven Nexus Server. Or switch to the private repository for the enterprise version (User and password from license required). Choose the correct version named $PLATFORM_VERSION/camunda-webapp-glassfish-$PLATFORM_VERSION.war.
  2. Optionally, you may change the context path to which the application will be deployed (default is /camunda). Edit the file WEB-INF/sun-web.xml in the war file and update the context-root element accordingly.
  3. Copy the war file to $GLASSFISH_HOME/domains/domain1/autodeploy.
  4. Startup the Glassfish Application Server.
  5. Access Cockpit and Tasklist via /camunda/app/cockpit and /camunda/app/tasklist or under the context path you configured.

Configuring LDAP for Camunda Cockpit and Tasklist

In order to setup LDAP for the glassfish distribution, you have to perform the following steps:

Add the LDAP Library

Make sure the camunda-identity-ldap-$PLATFORM_VERSION.jar is present in the GLASSFISH_HOME/glassfish/lib folder.

Adjust the Process Engine Configuration

Edit the file bpm-platform.xml located inside the folder $GLASSFISH_HOME/glassfish/domains/domain1/applications/camunda-bpm-platform/camunda-glassfish-service-VERSION.jar/META-INF and add the LDAP Identity Provider Plugin and the Administrator Authorization Plugin.

<?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">
  <!-- ... -->
  <process-engine name="default">
    <!-- ... -->
    <plugins>
      <plugin>
        <class>org.camunda.bpm.identity.impl.ldap.plugin.LdapIdentityProviderPlugin</class>
        <properties>

          <property name="serverUrl">ldap://localhost:4334/</property>
          <property name="managerDn">uid=jonny,ou=office-berlin,o=camunda,c=org</property>
          <property name="managerPassword">s3cr3t</property>

          <property name="baseDn">o=camunda,c=org</property>

          <property name="userSearchBase"></property>
          <property name="userSearchFilter">(objectclass=person)</property>

          <property name="userIdAttribute">uid</property>
          <property name="userFirstnameAttribute">cn</property>
          <property name="userLastnameAttribute">sn</property>
          <property name="userEmailAttribute">mail</property>
          <property name="userPasswordAttribute">userpassword</property>

          <property name="groupSearchBase"></property>
          <property name="groupSearchFilter">(objectclass=groupOfNames)</property>
          <property name="groupIdAttribute">ou</property>
          <property name="groupNameAttribute">cn</property>

          <property name="groupMemberAttribute">member</property>

        </properties>
      </plugin>
      <plugin>
        <class>org.camunda.bpm.engine.impl.plugin.AdministratorAuthorizationPlugin</class>
        <properties>
          <property name="administratorUserName">admin</property>
        </properties>
      </plugin>
    </plugins>
  </process-engine>
</bpm-platform>

The administratorUserName property should contain the user id of the LDAP user you want to grant administrator authorizations to. You can then use this user to log into the webapplication and grant authorizations to additional users.

See our user guide for complete documentation on the LDAP Identity Provider Plugin and the Administrator Authorization Plugin.

Enable Hal Resource caching

If you use LDAP as Indentity Provider, you should consider activating caching of Users and Groups in the camunda webapplication. In order to activate this, add the following configuration to the web.xml file of camunda webapplication (camunda-webapp-glassfish-$PLATFORM_VERSION.war/WEB-INF/web.xml):

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <!-- ... -->

  <listener>
    <listener-class>org.camunda.bpm.engine.rest.hal.cache.HalRelationCacheBootstrap</listener-class>
  </listener>

  <context-param>
    <param-name>org.camunda.bpm.engine.rest.hal.cache.config</param-name>
    <param-value>
      {
        "cacheImplementation": "org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache",
        "caches": {
          "org.camunda.bpm.engine.rest.hal.user.HalUser": {
            "capacity": 100,
            "secondsToLive": 900
          },
          "org.camunda.bpm.engine.rest.hal.group.HalGroup": {
            "capacity": 100,
            "secondsToLive": 900
          }
        }
      }
    </param-value>
  </context-param>

  <!-- ... -->

</web-app>

Migrate from Camunda BPM 7.1 to Camunda BPM 7.2

The following steps describe how to upgrade the Camunda artifacts on a Glassfish 3.1 application server in a shared process engine setting. For the entire migration procedure, refer to the migration guide. If not already done, make sure to download the Camunda BPM 7.2 Glassfish distribution.

The upgrade procedure takes the following steps:

  1. Uninstall the Camunda libraries and archives
  2. Add the new Camunda libraries
  3. Install optional Camunda dependencies
  4. Configure process engines
  5. Install the Camunda archive
  6. Install the Camunda BPM web applications

In each of the following steps, the identifiers $*_VERSION refer to the current version and the new versions of the artifacts.

Changing Platform Configuration

Depending on your chosen feature set for Camunda BPM, some of the (optional) migration steps may require to change the configuration of the BPM platform. The Camunda enterprise archive (EAR) contains a default platform configuration. If you want to change this configuration, you can replace it as described in the deployment descriptor reference.

1. Uninstall the Camunda Applications and Archives

First, uninstall the Camunda web applications, namely the Camunda REST API (artifact name like camunda-engine-rest) and the Camunda applications Cockpit, Tasklist and Admin (artifact name like camunda-webapp).

Uninstall the Camunda EAR. Its name should be camunda-glassfish-ear-$PLATFORM_VERSION.ear. Then, uninstall the Camunda job executor adapter, called camunda-jobexecutor-rar-$PLATFORM_VERSION.rar.

2. Replace the Camunda Libraries

After shutting down the server, replace the following libraries in $GLASSFISH_HOME/glassfish/lib with their equivalents from $GLASSFISH_DISTRIBUTION/modules/lib:

  • camunda-engine-$PLATFORM_VERSION.jar
  • camunda-bpmn-model-$PLATFORM_VERSION.jar
  • camunda-xml-model-$PLATFORM_VERSION.jar
  • mybatis-$MYBATIS_VERSION.jar

If present, also replace the following optional artifact:

  • camunda-identity-ldap-$PLATFORM_VERSION.jar

Add the following library from $GLASSFISH_DISTRIBUTION/modules/lib to the folder $GLASSFISH_HOME/glassfish/lib:

  • camunda-cmmn-model-$PLATFORM_VERSION.jar

3. Install Optional Camunda Dependencies

There are artifacts for Camunda Connect, Camunda Spin, the Freemarker template language and Groovy scripting that may optionally be added to the shared library folder. Since all these artifacts add new functionality, the following steps are not required for migration.

Note: The default Camunda configuration file contained by the Camunda EAR automatically activates the newly introduced, optional Camunda dependencies, Camunda Spin and Connect. If you do not use a custom BPM platform configuration as described here and do not intend to do so, you must install the Camunda Spin and Connect core libraries to the shared libraries folder.

Not Using Connect/Spin

If you do not want to use Camunda Connect or Camunda Spin, you cannot use the default BPM platform configuration that is contained in the Camunda EAR. In this case, make sure to change the configuration location as described here. As a starting point, you can copy the default configuration from $GLASSFISH_DISTRIBUTION/modules/camunda-glassfish-ear-$PLATFORM_VERSION.ear/camunda-glassfish-service-$PLATFORM_VERSION.jar/META-INF/bpm-platform.xml and remove the <plugin/> entries for the classes ConnectProcessEnginePlugin and SpinProcessEnginePlugin.

Camunda Connect

If Camunda Connect is intended to be used, copy the following library from $GLASSFISH_DISTRIBUTION/modules/lib to the folder $GLASSFISH_HOME/glassfish/lib:

  • camunda-connect-core-$CONNECT_VERSION.jar
  • camunda-commons-logging-$COMMONS_VERSION.jar
  • camunda-commons-utils-$COMMONS_VERSION.jar
  • slf4j-api-$SLF4J_VERSION.jar
  • slf4j-jdk14-$SLF4J_VERSION.jar

If you use a custom BPM platform configuration file, Camunda Connect functionality has to be activated for a process engine by registering a process engine plugin (note that if you use the default configuration, this step is not necessary):

<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform ... ">
  <process-engine name="default">
    ...
    <plugins>
      ... existing plugins ...
      <plugin>
        <class>org.camunda.connect.plugin.impl.ConnectProcessEnginePlugin</class>
      </plugin>
    </plugins>
    ...
  </process-engine>

</bpm-platform>

Camunda Spin

If camunda Spin is intended to be used, copy the following library from $GLASSFISH_DISTRIBUTION/modules/lib to the folder $GLASSFISH_HOME/glassfish/lib:

  • camunda-spin-core-$CONNECT_VERSION.jar
  • camunda-commons-logging-$COMMONS_VERSION.jar
  • camunda-commons-utils-$COMMONS_VERSION.jar
  • slf4j-api-$SLF4J_VERSION.jar
  • slf4j-jdk14-$SLF4J_VERSION.jar

If you use a custom BPM platform configuration file, camunda Spin functionality has to be activated for a process engine by registering a process engine plugin (note that if you use the default configuration, this step is not necessary):

<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform ... ">
  <process-engine name="default">
    ...
    <plugins>
      ... existing plugins ...
      <plugin>
        <class>org.camunda.spin.plugin.impl.SpinProcessEnginePlugin</class>
      </plugin>
    </plugins>
    ...
  </process-engine>

</bpm-platform>

Groovy Scripting

If Groovy is to be used as a scripting language, add the following artifacts to the folder $GLASSFISH_HOME/glassfish/lib:

  • groovy-all-$GROOVY_VERSION.jar

Freemarker Integration

If the camunda integration for Freemarker is intended to be used, add the following artifacts to the folder $GLASSFISH_HOME/glassfish/lib:

  • camunda-template-engines-freemarker-$TEMPLATE_VERSION.jar
  • freemarker-2.3.20.jar
  • camunda-commons-logging-$COMMONS_VERSION.jar
  • camunda-commons-utils-$COMMONS_VERSION.jar
  • slf4j-api-$SLF4J_VERSION.jar

4. Configure Process Engines

Script Variable Storing

As of 7.2, the default behavior of script variables has changed. Script variables are set in e.g. a BPMN Script Task that uses a language such as JavaScript or Groovy. In previous versions, the process engine automatically stored all script variables as process variables. Starting with 7.2, this behavior has changed and the process engine does not automatically store script variables any longer. You can re-enable the legacy behavior by setting the boolean property autoStoreScriptVariables to true for any process engine in the bpm-platform.xml:

<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform ... ">
  ...
  <process-engine name="default">
    ...
    <properties>
      ... existing properties ...
      <property name="autoStoreScriptVariables">true</property>
    </properties>
    ...
  </process-engine>
  ...
</bpm-platform>

As an alternative, process application developers can migrate script code by replacing all implicit declarations of process variables in their scripts with an explicit call to execution.setVariable('varName', 'value').

5. Install the Camunda Archive

First, install the camunda job executor resource adapter, namely the file $GLASSFISH_DISTRIBUTION/modules/camunda-jobexecutor-rar-$PLATFORM_VERSION.rar. Then, install the camunda EAR, i.e., the file $GLASSFISH_DISTRIBUTION/modules/camunda-glassfish-ear-$PLATFORM_VERSION.ear.

6. Install the Camunda Web Applications

Camunda REST API

The following steps are required to upgrade the camunda REST API on a Glassfish instance:

  1. Download the REST API web application archive from our Maven Nexus Server. Or switch to the private repository for the enterprise version (User and password from license required). Choose the correct version named $PLATFORM_VERSION/camunda-engine-rest-$PLATFORM_VERSION.war.
  2. Deploy the web application archive to your Glassfish instance.

Camunda Cockpit, Tasklist, and Admin

The following steps are required to upgrade the camunda web applications Cockpit, Tasklist, and Admin on a Glassfish instance:

  1. Download the camunda web application archive from our Maven Nexus Server. Or switch to the private repository for the enterprise version (User and password from license required). Choose the correct version named $PLATFORM_VERSION/camunda-webapp-glassfish-$PLATFORM_VERSION.war.
  2. Deploy the web application archive to your Glassfish instance.

LDAP Entity Caching

With 7.2, it is possible to enable entity caching for Hypertext Application Language (HAL) requests that the camunda web applications make. This can be especially useful when you use camunda in combination with LDAP. To activate caching, the camunda webapp artifact has to be modified and the pre-built application cannot be used as is. See the REST Api Documentation for details.

Migrate from Camunda BPM 7.2 to Camunda BPM 7.3

The following steps describe how to upgrade the Camunda artifacts on a Glassfish 3.1 application server in a shared process engine setting. For the entire migration procedure, refer to the migration guide. If not already done, make sure to download the Camunda BPM 7.3 Glassfish distribution.

The upgrade procedure takes the following steps:

  1. Uninstall the Camunda libraries and archives
  2. Replace Camunda core libraries
  3. Replace optional Camunda dependencies
  4. Maintain BPM platform configuration (optional)
  5. Install the Camunda archive
  6. Install the Camunda BPM web applications

In each of the following steps, the identifiers $*_VERSION refer to the current version and the new versions of the artifacts.

1. Uninstall the Camunda Applications and Archives

First, uninstall the Camunda web applications, namely the Camunda REST API (artifact name like camunda-engine-rest) and the Camunda applications Cockpit, Tasklist and Admin (artifact name like camunda-webapp).

Uninstall the Camunda EAR. Its name should be camunda-glassfish-ear-$PLATFORM_VERSION.ear. Then, uninstall the Camunda job executor adapter, called camunda-jobexecutor-rar-$PLATFORM_VERSION.rar.

2. Replace Camunda Core Libraries

After shutting down the server, replace the following libraries in $GLASSFISH_HOME/glassfish/lib with their equivalents from $GLASSFISH_DISTRIBUTION/modules/lib:

  • camunda-engine-$PLATFORM_VERSION.jar
  • camunda-bpmn-model-$PLATFORM_VERSION.jar
  • camunda-cmmn-model-$PLATFORM_VERSION.jar
  • camunda-xml-model-$PLATFORM_VERSION.jar

3. Replace Optional Camunda Dependencies

In addition to the core libraries, there may be optional artifacts in $GLASSFISH_HOME/glassfish/lib for LDAP integration, Camunda Connect, and Camunda Spin. If you use any of these extensions, the following upgrade steps apply:

LDAP integration

Copy the following libraries from $GLASSFISH_DISTRIBUTION/modules/lib to the folder $GLASSFISH_HOME/glassfish/lib if present:

  • camunda-identity-ldap-$PLATFORM_VERSION.jar

Camunda Connect

Copy the following libraries from $GLASSFISH_DISTRIBUTION/modules/lib to the folder $GLASSFISH_HOME/glassfish/lib if present:

  • camunda-connect-core-$CONNECT_VERSION.jar

Camunda Spin

Copy the following libraries from $GLASSFISH_DISTRIBUTION/modules/lib to the folder $GLASSFISH_HOME/glassfish/lib if present:

  • camunda-spin-core-$SPIN_VERSION.jar

4. Maintain the BPM platform configuration

If you have previously replaced the default BPM platform configuration by a custom configuration following any of the ways outlined in the deployment descriptor reference, it may be necessary to restore this configuration. This can be done by repeating the configuration replacement steps for the upgraded platform.

5. Install the Camunda Archive

First, install the camunda job executor resource adapter, namely the file $GLASSFISH_DISTRIBUTION/modules/camunda-jobexecutor-rar-$PLATFORM_VERSION.rar. Then, install the camunda EAR, i.e., the file $GLASSFISH_DISTRIBUTION/modules/camunda-glassfish-ear-$PLATFORM_VERSION.ear.

6. Install the Camunda Web Applications

Camunda REST API

The following steps are required to upgrade the camunda REST API on a Glassfish instance:

  1. Download the REST API web application archive from our Maven Nexus Server. Or switch to the private repository for the enterprise version (User and password from license required). Choose the correct version named $PLATFORM_VERSION/camunda-engine-rest-$PLATFORM_VERSION.war.
  2. Deploy the web application archive to your Glassfish instance.

Camunda Cockpit, Tasklist, and Admin

The following steps are required to upgrade the camunda web applications Cockpit, Tasklist, and Admin on a Glassfish instance:

  1. Download the camunda web application archive from our Maven Nexus Server. Or switch to the private repository for the enterprise version (User and password from license required). Choose the correct version named $PLATFORM_VERSION/camunda-webapp-glassfish-$PLATFORM_VERSION.war.
  2. Deploy the web application archive to your Glassfish instance.

LDAP Entity Caching

Beginning with 7.2, it is possible to enable entity caching for Hypertext Application Language (HAL) requests that the Camunda web applications make. If you have previously used caching, you can enable this feature by modifying the Camunda webapp artifact. See the REST Api Documentation for details.