Chapter 2. 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 part of Fuse installed in Karaf where
<FUSE-VERSION>
is the version of Fuse. This file is stored in the Karaf system repository, in thesystem/org/jboss/fuse/features/rhba-features
directory. This file contains prerequisites for installing Red Hat Process Automation Manager features.kie-karaf-features-7.39.0.Final-redhat-00005-features-fuse.xml
This file is 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.39.0.Final-redhat-00005
.
2.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:
$ JBossFuse:karaf@root> feature:repo-list $ JBossFuse:karaf@root> feature:list
Enter the following command, where
<FUSE_HOME>
is the Fuse installation directory, to start the Red Hat Fuse console:$ ./<FUSE_HOME>/bin/fuse
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
Search Karaf home for references to bundles that use
drools
,kie
, orjbpm
. The following example shows how to usegrep
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 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
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
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
- Restart Fuse.
2.2. Installing Red Hat Process Automation Manager features on Karaf using XML files
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 2.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:
$ JBossFuse:karaf@root> feature:install <FEATURE_NAME>
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 1.1, “Red Hat Process Automation Manager Karaf features”.
2.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.6 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 2.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 theorg.ops4j.pax.url.mvn.repositories
variable and add it if necessary.NoteEntries are separated by 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:$ ./FUSE_HOME/bin/fuse
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
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.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 1.1, “Red Hat Process Automation Manager Karaf features”.JBossFuse:karaf@root> features:install <FEATURE_NAME>
Enter the following command to verify the installation:
$ JBossFuse:karaf@root>feature:list
Successfully installed features have the status
started
.