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.67.0.Final-redhat-00024-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.67.0.Final-redhat-00024 . 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 Enter the following commands to determine whether your installation contains obsolete Red Hat Process Automation Manager features XML files: Enter the following command, where <FUSE_HOME> is the Fuse installation directory, to start the Red Hat Fuse console: 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: The following example shows how to remove features: 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: The example shows the output from these commands: Enter the following command, where BUNDLE_ID is a bundle ID returned in the search, to remove the bundles found in the step: Enter the following command to remove the obsolete drools-karaf-features URL: 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 A Red Hat Fuse installation in an Apache Karaf container is available. For information about installing Fuse in Apache Karaf, see Installing Red Hat Fuse on the Apache Karaf container . You have removed any obsolete Red Hat Process Automation Manager features XML files as described in Section 12.1, "Uninstalling obsolete Red Hat Process Automation Manager features XML files on Karaf" . Procedure To install Red Hat Process Automation Manager features, enter the following command: 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 A Red Hat Fuse 7.12 on Apache Karaf installation exists. For installation instructions, see Installing Red Hat Fuse on the Apache Karaf container . Any obsolete features XML files have been removed, as described in Section 12.1, "Uninstalling obsolete Red Hat Process Automation Manager features XML files on Karaf" . Procedure To configure the Maven repository, open the FUSE_HOME/etc/org.ops4j.pax.url.mvn.cfg file in a text editor. 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. To start Fuse, enter the following command, where FUSE_HOME is the Fuse installation directory: 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: Enter the following command to add a reference to the Red Hat Process Automation Manager features XML file: To see the current drools-karaf-features version, see the Red Hat Process Automation Manager 7 Supported Configurations page. 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" . Enter the following command to verify the installation: 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. Feature Description 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.

Commands:
JBossFuse:karaf@root> feature:repo-list JBossFuse:karaf@root> feature:list
./<FUSE_HOME>/bin/fuse
JBossFuse:karaf@root> features:uninstall <FEATURE_NAME>
JBossFuse:karaf@root> features:uninstall drools-module JBossFuse:karaf@root> features:uninstall jbpm JBossFuse:karaf@root> features:uninstall kie-ci
karaf@root> list -t 0 -s | grep drools karaf@root> list -t 0 -s | grep kie karaf@root> list -t 0 -s | grep jbpm
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
karaf@root> osgi:uninstall BUNDLE_ID
karaf@root> features:removeurl mvn:org.kie/kie-karaf-features/VERSION.Final-redhat-VERSION/xml/features
JBossFuse:karaf@root> feature:install <FEATURE_NAME>
./FUSE_HOME/bin/fuse
feature:repo-add mvn:org.jboss.fuse.features/rhba-features/<FUSE-VERSION>/xml/features
JBossFuse:karaf@root> features:addurl mvn:org.kie/kie-karaf-features/VERSION/xml/features-fuse
JBossFuse:karaf@root> features:install <FEATURE_NAME>
JBossFuse:karaf@root>feature:list