Chapter 8. Integrating Red Hat JBoss BRMS with Red Hat JBoss Fuse
Red Hat JBoss Fuse integration allows users of Red Hat JBoss Fuse to complement their integration solution with additional features provided by Red Hat JBoss BPM Suite and Red Hat JBoss BRMS.
Red Hat JBoss BRMS integration is provided by two features.xml files:
drools-karaf-features-VERSION-features.xmlThis file provides core Red Hat JBoss BPM Suite and Red Hat JBoss BRMS features, which defines the OSGi features that can be deployed into Red Hat JBoss Fuse. This file is a part of the Red Hat JBoss BPM Suite and Red Hat JBoss BRMS product. OSGi users can install features from this file in order to install Red Hat JBoss BRMS engine or Red Hat JBoss BPM Suite engine into Red Hat JBoss Fuse and use it in their applications.
karaf-features-VERSION-features.xmlThis file provides additional features used for integrating Red Hat JBoss BPM Suite and Red Hat JBoss BRMS with Apache Camel, primarily in Red Hat JBoss Fuse. This file is part of the Integration Pack and it defines OSGi features that enable integration with Apache Camel and SwitchYard. In addition to the
karaf-featuresXML file, the Integration Pack also contains afeatures.xmlfile for quick starts.drools-karaf-features-VERSION-features-fuse-6_3.xmlThis file is used for integration of Red Hat JBoss BRMS with Red Hat JBoss Fuse 6.3.0.
For further information about integration of Red Hat JBoss BRMS with Red Hat JBoss Fuse, see the Install Integration Pack chapter of the Red Hat JBoss Fuse Integration Guide.
8.1. Core Red Hat JBoss BPM Suite and Red Hat JBoss BRMS Features Copy linkLink copied to clipboard!
Core Red Hat JBoss BPM Suite and Red Hat JBoss BRMS features are provided by one of the following files:
-
For integration with Red Hat JBoss Fuse 6.2.1, use the
drools-karaf-features-VERSION-features.xmlfile. For integration with Red Hat JBoss Fuse 6.3.0, use the
drools-karaf-features-VERSION-features-fuse-6_3.xmlfileVERSIONis the version of Red Hat JBoss BRMS you are using, for example6.5.0.Final-redhat-9. See the Supported Component Versions chapter of the Red Hat JBoss BRMS Installation Guide.
The files are present in the product Maven repository (org/drools/drools-karaf-features) or the jboss-brms-bpmsuite-VERSION-redhat-VERSION-fuse-features.zip file. These files provide the following features:
-
drools-common -
drools-module -
drools-templates -
drools-decisiontable -
drools-jpa -
kie -
kie-ci -
kie-spring -
kie-aries-blueprint -
jbpm-commons -
jbpm-human-task -
jbpm -
droolsjbpm-hibernate -
h2
The following table provides example of use cases for some of the features listed above.
| Feature | Use Case |
|---|---|
|
| Use the Red Hat JBoss BRMS engine for rules evaluation, without requiring persistence, processes, or decision tables. |
|
|
Use the Red Hat JBoss BRMS engine for rules evaluation with persistence and transactions, but without requiring processes or decision tables. The |
|
| Use the Red Hat JBoss BRMS engine with decision tables. |
|
|
Use the Red Hat JBoss BPM Suite (or Red Hat JBoss BRMS engine with processes). The |
|
| Use the Red Hat JBoss BPM Suite (or Red Hat JBoss BRMS engine with processes) with Human Task. |
|
core engine JARs and |
Use Red Hat JBoss BRMS or Red Hat JBoss BPM Suite with |
|
| Use KIE-Spring integration. See the section called “kie-spring Feature Further Information” for more information. |
|
| Use KIE-Aries-Blueprint integration. |
kie-spring Feature Further Information
-
Use
org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessorinstead oforg.kie.spring.KModuleBeanFactoryPostProcessorto postprocess KIE elements in an OSGi environment. Do not install the
drools-modulefeature before thekie-springfeature. Otherwise, thedrools-compilerbundle does not detect packages exported bykie-spring.Run
osgi:refresh drools-compiler_bundle_IDif you have installed the features in the incorrect order to forcedrools-compilerto rebuild its Import-Package metadata.
8.2. Additional Features for SwitchYard and Apache Camel Integration Copy linkLink copied to clipboard!
The following additional features for integration with SwitchYard and Apache Camel on Red Hat JBoss Fuse are provided by the integration pack:
-
fuse-bxms-switchyard-common-knowledge -
fuse-bxms-switchyard-rules -
fuse-bxms-switchyard-bpm -
kie-camel -
jbpm-workitems-camel
The integration pack features are defined in the karaf-features-VERSION-features.xml file. This file (and supporting repositories) is located in http://repository.jboss.org/nexus/content/repositories/public, which is already configured for use on Red Hat JBoss Fuse out of the box in INSTALLATION_DIRECTORY/etc/org.ops4j.pax.url.mvn.cfg.
The file can also be downloaded from either the Red Hat JBoss Fuse product page or Red Hat JBoss BRMS product page on the Red Hat Customer Portal.
8.3. Installing and Updating Core Integration Features Copy linkLink copied to clipboard!
This section refers to features in the drools-karaf-features-VERSION-features.xml file. For additional integration features, see Section 8.4, “Installing Additional Integration Features”.
If you have already installed an older version of the core Red Hat JBoss BPM Suite and Red Hat JBoss BRMS features (for example, drools-karaf-features-6.2.0.Final-redhat-6-features.xml), you need to remove them and all associated files before installing the most recent features.xml file.
Procedure: Removing Existing drools-karaf-features Installation
Start the Red Hat JBoss Fuse console using:
$ ./INSTALLATION_DIRECTORY/bin/fuseUnistall old features or applications that used the previous
features.xmlfile. For example:JBossFuse:karaf@root> features:uninstall drools-module JBossFuse:karaf@root> features:uninstall jbpm JBossFuse:karaf@root> features:uninstall kie-ciSearch for references of bundles using
drools,kie, orjbpm, and remove them:karaf@root> list -t 0 -s | grep drools karaf@root> list -t 0 -s | grep kie karaf@root> list -t 0 -s | grep jbpmTo remove the bundles:
karaf@root> osgi:uninstall BUNDLE_IDRemove the old
drools-karaf-featuresURL:karaf@root> features:removeurl mvn:org.drools/drools-karaf-features/6.2.0.Final-redhat-VERSION/xml/features- Restart Red Hat JBoss Fuse.
To install the drools-karaf-features:
Procedure: Installing Core Red Hat JBoss BPM Suite and Red Hat JBoss BRMS Features
Configure required repositories:
Edit the
INSTALLATION_DIRECTORY/etc/org.ops4j.pax.url.mvn.cfgfile in your Red Hat JBoss Fuse installation and add the following entry to theorg.ops4j.pax.url.mvn.repositoriesvariable (note that entries are separated by, \):
Start Red Hat JBoss Fuse:
$ ./INSTALLATION_DIRECTORY/bin/fuseAdd a reference to the core features file by running the following console command:
For Red Hat JBoss Fuse 6.2.1, use:
JBossFuse:karaf@root> features:addurl mvn:org.drools/drools-karaf-features/VERSION/xml/featuresFor Red Hat JBoss Fuse 6.3.0, use:
JBossFuse:karaf@root> features:addurl mvn:org.drools/drools-karaf-features/VERSION/xml/features-fuse-6_3For example:
features:addurl mvn:org.drools/drools-karaf-features/6.4.0.Final-redhat-10/xml/features-fuse-6_3To see the current
drools-karaf-featuresversion, see the Supported Component Versions chapter of the Red Hat JBoss BRMS Installation Guide.You can now install the features provided by this file by running, for example, the following console command:
JBossFuse:karaf@root> features:install drools-module
8.4. Installing Additional Integration Features Copy linkLink copied to clipboard!
Use the following procedure for additional integration with SwitchYard and Apache Camel.
Procedure: SwitchYard and Apache Camel Integration
Download the
fuse-integrationpackage that is aligned with your version of Red Hat JBoss Fuse.NoteFor instance, if you want to use the
6.2.0.redhat-117version of Red Hat JBoss Fuse, you need to install thefuse-6.2.0.redhat-117Red Hat JBoss Fuse integration features.Add the remote Maven repository that contains the fuse dependencies to your
karafinstance:-
Edit
FUSE_HOME/etc/org.ops4j.pax.url.mvn.cfg
-
Edit
Update the Drools features URL:
JBossFuse:karaf@root> features:addurl mvn:org.switchyard.karaf/mvn:org.switchyard.karaf/switchyard/SWITCHYARD_VERSION/xml/core-features JBossFuse:karaf@root> features:addurl mvn:org.jboss.integration.fuse/karaf-features/1.0.0.redhat-VERSION/xml/featuresAdditionally, update the
drools-karaf-featuresURL. For Red Hat JBoss Fuse 6.2.1, use:JBossFuse:karaf@root> features:addurl mvn:org.drools/drools-karaf-features/VERSION/xml/featuresFor Red Hat JBoss Fuse 6.3.0, use:
JBossFuse:karaf@root> features:addurl mvn:org.drools/drools-karaf-features/VERSION/xml/features-fuse-6_3To see the current
drools-karaf-featuresversion, see the Supported Component Versions chapter of the Red Hat JBoss BRMS Installation Guide.You can now install the features provided for SwitchYard and Apache Camel integration by running, for example, the following console command:
JBossFuse:karaf@root> features:install fuse-bxms-switchyard-rules JBossFuse:karaf@root> features:install kie-camel JBossFuse:karaf@root> features:install jbpm-workitems-camel
8.5. Configuring Dependencies Copy linkLink copied to clipboard!
When you configure KIE, Red Hat JBoss BRMS, or Red Hat Jboss BPM Suite in your application, you can follow one of the following approaches to build your OSGi application bundles:
-
Bundle required dependencies into your application bundle. In this approach, you declare all required artifacts as runtime dependencies in your
pom.xml. Hence, you need not import the packages that provide these artifacts that you have already added as dependencies. -
Import the required dependencies into the application bundle. This is a preferred approach for building OSGi bundles as it adheres to the principles of OSGi framework. In this approach, you declare only the API JARs (such as
org.kie:kie-api) as dependencies in your application bundle. You will need to install the required Red Hat JBoss BRMS and Red Hat JBoss BPM Suite bundles and then import them in your application.
The MVELUserGroupCallback class fails to initialize in an OSGi environment. Do not use or include MVELUserGroupCallback as it is not designed for production purposes.
8.6. Installing Red Hat JBoss Fuse Integration Quick Start Applications Copy linkLink copied to clipboard!
The following features for Red Hat JBoss Fuse integration quick start applications are provided by org/jboss/integration/fuse/quickstarts/karaf-features/VERSION/karaf-features-VERSION-features.xml:
-
fuse-bxms-quickstart-switchyard-bpm-service -
fuse-bxms-quickstart-switchyard-rules-camel-cbr -
fuse-bxms-quickstart-switchyard-rules-interview -
fuse-bxms-quickstart-switchyard-rules-interview-container -
fuse-bxms-quickstart-switchyard-rules-interview-dtable -
fuse-bxms-quickstart-switchyard-library -
fuse-bxms-quickstart-switchyard-helpdesk -
fuse-bxms-quickstart-camel-blueprint-drools-decision-table -
fuse-bxms-quickstart-camel-spring-drools-decision-table -
fuse-bxms-quickstart-camel-jbpm-workitems -
fuse-bxms-spring-jbpm-osgi-example
This file (and supporting repositories) is located in http://repository.jboss.org/nexus/content/repositories/public, which is already configured for use on Red Hat JBoss Fuse out of the box in INSTALLATION_DIRECTORY/etc/org.ops4j.pax.url.mvn.cfg.
Procedure: Installing Quick Start Applications
Add a reference to the features file by running the following console command:
JBossFuse:karaf@root> features:addurl mvn:org.jboss.integration.fuse.quickstarts/karaf-features/1.0.0.redhat-VERSION/xml/featuresYou can now install the quick start applications provided by this features file by running, for example, the following console command:
JBossFuse:karaf@root> features:install fuse-bxms-quickstart-switchyard-bpm-service
Procedure: Downloading and Installing Quick Start ZIP Files
- Download the quick start application ZIP file.
-
Unpack the contents of the quick starts directory into your existing
INSTALLATION_DIRECTORY/quickstartsdirectory. -
Unpack the contents of the system directory into your existing
INSTALLATION_DIRECTORY/systemdirectory.
8.6.1. Testing Your First Quick Start Application Copy linkLink copied to clipboard!
Procedure: Testing Quick Start Application
Start Red Hat JBoss Fuse:
$ ./INSTALLATION_DIRECTORY/bin/fuseInstall and start the
switchyard-bpm-serviceby running the following console command:JBossFuse:karaf@root> features:install fuse-bxms-quickstart-switchyard-bpm-serviceNoteAny dependent features specified by the application’s features file will be installed automatically.
Submit a web service request to invoke the SOAP gateway.
-
Open a terminal window and navigate to the associated quick start directory that was unpacked from the quick start application ZIP file (in this case,
switchyard-bpm-service). Run the following command:
$ mvn clean installNoteYou will need the following repositories configured in your
settings.xmlfile:Run the following command:
$ mvn exec:java -Pkaraf
-
Open a terminal window and navigate to the associated quick start directory that was unpacked from the quick start application ZIP file (in this case,
You will receive the following response:
SOAP Reply: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/> <soap:Body> <ns2:submitOrderResponse xmlns:ns2="urn:switchyard-quickstart:bpm-service:1.0"> <orderId>test1</orderId> <accepted>true</accepted> <status>Thanks for your order, it has been shipped!</status> </ns2:submitOrderResponse> </soap:Body> </soap:Envelope>