Tag Archives: jbpm

Drools channels and Apache Camel integration.

The previous posts only showed how to build a route using the Drools endpoint as the target consumer of the message, but what happen if we need to start the route from a Drools endpoint (the source endpoint) and send a message from the rules consequence to the target endpoint? In this case we need to use Drools channels.

A Drools channel provides a mechanism to send objects from the working memory to some external process or functions.
Continue reading

JBoss Drools Developer‘s Cookbook released

Maybe you noticed, or not, that this blog hasn’t had too much activity lately (but hey, I wasn’t blooging much before, right?). Well, one of the reasons was the Drools Developer Cookbook, a book that I was writing and that after a few months of hard work is finally finished and released by Packt Publishing.

Drools Developer's Cookbook cover

Inside this book you will find lots of recipes to apply in your Drools projects, in order to take advantage of the latest features released in JBoss Drools 5.2 and 5.3. It covers all the main modules, Expert, Fusion, Guvnor, Planner and even jBPM5.

I would like to thank Packt Publishing & crew, Edson Tirelli, Geoffrey De Smet, Toni Rikkola and everyone else that in any way helped me.

The chapters 2 & 7 are available to read in the next links:

Expert: behind the rules (Full chapter)
Integration: How to connect Drools (Article)

As always, for further details you can take a look in the book website
http://www.packtpub.com/drools-developers-using-jboss-cookbook/book

Have fun

Drools Flow migration to jBPM 5

If you are smart and wants to migrate from Drools Flow to jBPM 5 remember to configure the processInstanceFactory and processSignalFactory, using a Properties object or configuring them into the drools.conf file, before the creation of a KnowledgeSession.

Properties properties = new Properties();
properties.put("drools.processInstanceManagerFactory", 
   "org.jbpm.process.instance.impl.DefaultProcessInstanceManagerFactory");
properties.put("drools.processSignalManagerFactory", 
   "org.jbpm.process.instance.event.DefaultSignalManagerFactory");
KnowledgeSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(properties);
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(config, EnvironmentFactory.newEnvironment());

otherwise you’ll obtain this RuntimeException

java.lang.RuntimeException: java.lang.ClassNotFoundException: Unable to load class: org.drools.process.instance.impl.DefaultProcessInstanceManagerFactory