Chapter 12. Red Hat Decision Manager decision engine 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 Decision Manager integration with Fuse on Karaf is provided through Karaf features. You can install individual components of Red Hat Decision 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 Decision 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 Decision Manager features. kie-karaf-features-7.67.0.Final-redhat-00024-features-fuse.xml This file is a part of Red Hat Decision Manager and provides Red Hat Decision 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 Decision 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 Decision 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 Decision Manager features XML files on Karaf If your installation contains older versions of the Red Hat Decision 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 Decision 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 Decision Manager features on Karaf using XML files You can install Red Hat Decision Manager features on Karaf to create a dynamic runtime environment for your Red Hat Decision 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 Decision Manager features XML files as described in Section 12.1, "Uninstalling obsolete Red Hat Decision Manager features XML files on Karaf" . Procedure To install Red Hat Decision 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 Decision Manager Karaf features" . 12.3. Installing Red Hat Decision Manager features on Karaf through maven Install Red Hat Decision 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 Decision 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 Decision Manager features XML file: To see the current drools-karaf-features version, see the Red Hat Decision Manager 7 Supported Configurations page. Enter the following command to install a feature provided by Red Hat Decision Manager features XML file. In this command, <FEATURE_NAME> is one of the features listed in Section 12.4, "Red Hat Decision Manager Karaf features" . Enter the following command to verify the installation: Successfully installed features have the status started . 12.4. Red Hat Decision Manager Karaf features The following table lists Red Hat Decision 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. Core engine JARs and kie-ci Uses Red Hat Decision 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 Decision 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