Chapter 12. Red Hat Process Automation Manager decision and process engines with Fuse on Apache Karaf

Apache Karaf is a standalone open-source runtime environment. It is based on the OSGi standard from the OSGi Alliance. Karaf provides support for modularisation through OSGi bundles with sophisticated class-loading support. You can deploy multiple versions of a dependency side by side in a Karaf container. You can use hot code swapping to upgrade or replace a module without shutting down the container.

Red Hat Process Automation Manager integration with Fuse on Karaf is provided through Karaf features. You can install individual components of Red Hat Process Automation Manager for Fuse on Karaf using these features.

Features files are XML files that specify which OSGI bundles are installed for a particular feature. The following features XML files facilitate Red Hat Process Automation Manager and Fuse on Karaf integration:

  • rhba-features-<FUSE-VERSION>-features.xml

    This file is a part of Fuse installed in Karaf where <FUSE-VERSION> is the version of Fuse. This file is stored in the Karaf system repository, in the system/org/jboss/fuse/features/rhba-features directory. This file contains prerequisites for installing Red Hat Process Automation Manager features.

  • kie-karaf-features-7.52.0.Final-redhat-00007-features-fuse.xml

    This file is a part of Red Hat Process Automation Manager and provides Red Hat Process Automation Manager features, which define the OSGi features that can be deployed into Red Hat Fuse. OSGi users can install features from this file to install Red Hat Process Automation Manager into Fuse and use it in their applications. You can find this features file in the online and offline Maven repository that is distributed with Red Hat Process Automation Manager. The group ID, artifact ID, and version (GAV) identifier of this file is org.kie:kie-karaf-features:7.52.0.Final-redhat-00007.

12.1. Uninstalling obsolete Red Hat Process Automation Manager features XML files on Karaf

If your installation contains older versions of the Red Hat Process Automation Manager features XML files (for example, kie-karaf-features-<VERSION>-features.xml), you must remove these files and all associated files before installing the most recent features XML files.

Prerequisites

  • Obsolete features XML files exist in your Apache Karaf installation.

Procedure

  1. Enter the following commands to determine whether your installation contains obsolete Red Hat Process Automation Manager features XML files:

    $ JBossFuse:karaf@root> feature:repo-list
    $ JBossFuse:karaf@root> feature:list
  2. Enter the following command, where <FUSE_HOME> is the Fuse installation directory, to start the Red Hat Fuse console:

    $ ./<FUSE_HOME>/bin/fuse
  3. Enter the following command, where <FEATURE_NAME> is the name of the feature that you want to uninstall, to uninstall features or applications that use obsolete features XML files:

    JBossFuse:karaf@root> features:uninstall <FEATURE_NAME>

    The following example shows how to remove features:

    JBossFuse:karaf@root> features:uninstall drools-module
    JBossFuse:karaf@root> features:uninstall jbpm
    JBossFuse:karaf@root> features:uninstall kie-ci
  4. Search Karaf home for references to bundles that use drools, kie, or jbpm. The following example shows how to use grep to search for these components:

    karaf@root> list -t 0 -s | grep drools
    karaf@root> list -t 0 -s | grep kie
    karaf@root> list -t 0 -s | grep jbpm

    The example shows the output from these commands:

    250 │ Active   │  80 │ 7.19.0.201902201522          │ org.drools.canonical-model
    251 │ Active   │  80 │ 7.19.0.201902201522          │ org.drools.cdi
    252 │ Active   │  80 │ 7.19.0.201902201522          │ org.drools.compiler
  5. Enter the following command, where BUNDLE_ID is a bundle ID returned in the search, to remove the bundles found in the previous step:

    karaf@root> osgi:uninstall BUNDLE_ID
  6. Enter the following command to remove the obsolete drools-karaf-features URL:

    karaf@root> features:removeurl
     mvn:org.kie/kie-karaf-features/VERSION.Final-redhat-VERSION/xml/features
  7. Restart Fuse.

12.2. Installing Red Hat Process Automation Manager features on Karaf using XML files

You can install Red Hat Process Automation Manager features on Karaf to create a dynamic runtime environment for your Red Hat Process Automation Manager processes.

Prerequisites

Procedure

To install Red Hat Process Automation Manager features, enter the following command:

$ JBossFuse:karaf@root> feature:install <FEATURE_NAME>
Note

Use org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor instead of org.kie.spring.KModuleBeanFactoryPostProcessor to postprocess KIE elements in an OSGi environment.

Do not install the drools-module feature before the kie-spring feature. If you do, the drools-compiler bundle will not detect packages exported by kie-spring.

If you install the features in the incorrect order, run osgi:refresh drools-compiler_bundle_ID to force the drools-compiler to rebuild its Import-Package metadata.

In this command, <FEATURE_NAME> is one of the features listed in Section 12.4, “Red Hat Process Automation Manager Karaf features”.

12.3. Installing Red Hat Process Automation Manager features on Karaf through maven

Install Red Hat Process Automation Manager with Fuse on Apache Karaf to deploy integrated services where required.

Prerequisites

Procedure

  1. To configure the Maven repository, open the FUSE_HOME/etc/org.ops4j.pax.url.mvn.cfg file in a text editor.
  2. Make sure that the https://maven.repository.redhat.com/ga/ repository is present in the org.ops4j.pax.url.mvn.repositories variable and add it if necessary.

    Note

    Separate entries in the org.ops4j.pax.url.mvn.repositories variable with a comma, space, and backslash (, \). The backslash forces a new line.

  3. To start Fuse, enter the following command, where FUSE_HOME is the Fuse installation directory:

    $ ./FUSE_HOME/bin/fuse
  4. To add a reference to the features file that contains installation prerequisites, enter the following command, where <FUSE_VERSION is the version of Fuse that you are installing:

    $ feature:repo-add mvn:org.jboss.fuse.features/rhba-features/<FUSE-VERSION>/xml/features
  5. Enter the following command to add a reference to the Red Hat Process Automation Manager features XML file:

    $ JBossFuse:karaf@root> features:addurl mvn:org.kie/kie-karaf-features/VERSION/xml/features-fuse

    To see the current drools-karaf-features version, see the Red Hat Process Automation Manager 7 Supported Configurations page.

  6. Enter the following command to install a feature provided by Red Hat Process Automation Manager features XML file. In this command, <FEATURE_NAME> is one of the features listed in Section 12.4, “Red Hat Process Automation Manager Karaf features”.

    JBossFuse:karaf@root> features:install <FEATURE_NAME>
  7. Enter the following command to verify the installation:

    $ JBossFuse:karaf@root>feature:list

    Successfully installed features have the status started.

12.4. Red Hat Process Automation Manager Karaf features

The following table lists Red Hat Process Automation Manager Karaf features.

FeatureDescription

drools-module

Contains the core and compiler of Drools, used to create KIE bases and KIE sessions from plain DRL. It also contains the implementation of the executable model. Uses Drools for rules evaluation, without requiring persistence, processes, or decision tables.

drools-template

Contains the Drools templates.

drools-jpa

Uses Drools for rules evaluation with persistence and transactions, but without requiring processes or decision tables. The drools-jpa feature includes the drools-module. However, you might also need to install the droolsjbpm-hibernate feature or ensure that a compatible hibernate bundle is installed.

drools-decisiontable

Uses Drools with decision tables.

jbpm

Uses jBPM. The jbpm feature includes the drools-module and drools-jpa. You might need to install the droolsjbpm-hibernate feature, or ensure that a compatible hibernate bundle is installed.

jbpm and jbpm-human-task

Uses jBPM with human tasks.

jbpm-workitems-camel

Provides the jbpm-workitems-camel component.

Core engine JARs and kie-ci

Uses Red Hat Process Automation Manager with the KIE scanner (kie-ci) to download kJARs from a Maven repository.

kie-camel

Provides the kie-camel component, an Apache Camel endpoint that integrates Fuse with Red Hat Process Automation Manager.

kie-spring

Installs the kie-spring component that enables you to configure listeners to KIE sessions using XML tags.