Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

The Most Popular Way to Get Started Integrating BPM with Apache Camel

DZone's Guide to

The Most Popular Way to Get Started Integrating BPM with Apache Camel

Free Resource

The Integration Zone is brought to you in partnership with Cloud Elements.  What’s below the surface of an API integration? Download The Definitive Guide to API Integrations to start building an API strategy.

 

This week we bring you a new demo project to highlight the integration possibilities between Red Hat JBoss BPM Suite and Red Hat JBoss Fuse products.

These products are used to get you started integrating your BPM projects with your Apache Camel architecture in minutes.

This initial announcement provides an automated installation (repeatable) in minutes where you get JBoss BPM Suite running on an instance of JBoss EAP and a separate instance of JBoss Fuse in its very own Karaf container.

There are plans to expand this demo project with various integration scenarios or use cases, but for now we start with just a single story around using a JBoss Fuse camel route to interact with a rules and process project deployed onto JBoss BPM Suite.

Background

External BPM customer evaluation process
This demo is brought to you in part by our very own Christina Lin who is the JBoss Technology Evangelist that focuses on JBoss Fuse & messaging products. There will be more expansion and if you have a use case you would like to see then just let us know.

The project can be found on github and has documentation to get you up and running in minutes.

Demo details

Upon starting the server you will find a JBoss BPM Suite setup with the Customer Evaluation project ready for you to inspect, build and deploy for use by the JBoss Fuse camel route we will deploy.
A new container in JBoss Fuse
The JBoss Fuse component of this demo consists of setting up a new container to deploy our camel route into, where we then watch messages get processed live in the management console as we push them into the waiting queue. Each message will trigger an external call out to the deployed BPM process to evaluate our customer.

Installing and running

The following steps will get you up and running in a matter of minutes with this fully automated and repeatable demo:
  1. Camel route with visual message count
    Download and unzip.
  2. Add products to installs directory.
  3. Run 'init.sh' or 'init.bat'.
  4. Start the JBoss BPM Suite server, login, build and deploy JBoss BPM Suite process project at http://localhost:8080/business-central (u:erics/p:bpmsuite).
  5. Add fabric server passwords for Maven Plugin to your ~/.m2/settings.xml file the fabric server's user and password so that the maven plugin can login to the fabric.
     <server>
       <id>fabric8.upload.repo</id>
       <username>admin</username>
       <password>admin</password>
     </server>
  6. Start Fuse Server and start up fabric in fuse console:
     fabric:create --wait-for-provisioning 
  7. Deploy simple route from projects/brms-fuse-integration/simpleRoute:
     mvn fabric8:deploy
  8. Login to Fuse management console at: http://localhost:8181 (u:admin/p:admin).
  9. Connect to root container with login presented by console (u:admin/p:admin)
  10. Create container name c1 and add BPMSuiteFuse profile (see screenshot below)
  11. Trigger camel route by placing support/data/message.xml files into target/jboss-fuse-6.1.0.redhat-379/instances/c1/src/data folder (rename this message on copy for multiple runs)
  12. Enjoy the demo!
This video walks you through the project in less than 5 minutes:

The State of API Integration Report provides data from the Cloud Elements platform and will help all developers navigate the recent explosion of APIs and the implications of API integrations to work more efficiently in 2017 and beyond.

Topics:

Published at DZone with permission of Eric D. Schabell, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}