#Drools & #jBPM @ #JBCNConf 2016 (Barcelona, June)

Great news! Once again the amazing and flamboyant leaders of the Java User Group from Barcelona manage to put together their anual conference JBCNConf. And, of course, Drools & jBPM will be there. Take a look at their website for more information about the talks and speakers, and if you are close enough to Barcelona I hope to see you all there.
This year I will be doing a Drools Workshop there (Thursday, first day of the conference), hoping to introduce people to Drools in a very hands on session. So if you are looking to start using Drools straight away, this is a great opportunity to do so. If you are a more advanced user and wants to bring your examples or issues to the workshop you are more than welcome. I will be sharing the projects that I will be using on the workshop a couple of weeks before the event so  can take a look and bring more questions to the session. It is also probable that I will be bringing with me freshly printed copies of the new Mastering Drools book, so you might be able to get some copies for free 🙂
Maciej Swiderski will be covering the jBPM and Knowledge Driven Microservices this year. I totally recommend this talk to anyone interested in how to improve your micro services by adopting tools to formalise and automate domain specific knowledge.
Finally, this year Maciej and I will be given the closing talk of the conference titled : The Open Source Way were we will be sharing with the audience the main benefits of getting involved with the open source community & projects but most importantly we will be sharing how to do achieve that. If you are already an Open Source project contributor and you plan to attend to the conference, get in touch!
Stay tuned for more news, and get in touch if you want to hang around with us before and after the conference!

Oficial Wildfly Swarm #Drools Fraction

Oficial what? Long title for a quite small but useful contribution. Wildfly Swarm allows us to create rather small and self contained application including just what we need from the Wildfly Application Server. On this post we will be looking at the Drools Fraction provided to work with Wildfly Swarm. The main idea behind this fraction is to provide a quick way to bundle the Drools Server among with your own services inside a jar file that you can run anywhere.

Microservices World

Nowadays, while micro services are a trending topic we need to make sure that we can bundle our services as decoupled from other software as possible. For such a task, we can use Wildfly Swarm that allows us to create our services using a set of fractions instead of a whole JEE container. It also saves us a lot of time by allowing us to run our application without the need of downloading or installing a JEE container. With Swarm we will be able to just run java -jar <our services.jar> and we are ready to go.
In the particular case of Drools, the project provides a Web Application called Kie-Server (Drools Server) which offers a set of REST/SOAP/JMS endpoints to use as a service. You can load your domain specific rules inside this server and create new containers to use your different set of rules. But again, if we want to use it, we will need to worry about how to install it in Tomcat, Wildfly, Jetty, WebSphere, WebLogic, or any other Servlet Container. Each of these containers represent a different challenge while it comes to configurations, so instead of that we can start using the Wildfly Swarm Drools Fraction, which basically enables the Drools Server inside your Wildfly Swarm application. In a way you are bundling the Drools Server with your own custom services. By doing this, you can start the Drools Server by doing java -jar <your.jar> and you ready to go.
Imagine the other situation of dealing with several instances of Servlet Containers and deploying the WAR file to each of those containers. It gets worst if those containers are not all the same “brand” and version.
So let’s take a quick look at an example of how you can get started using the Wildfly Swarm Drools Fraction.


I recommend you to take a look at the Wildfly Swarm Documentation first, to get you started on using Wildfly Swarm. If you know the basics, then you can include the Drools Fraction.
I’ve created an example using this fraction here: https://github.com/Salaboy/drools-workshop/tree/master/drools-server-swarm
The main goal of this example is to show how simple is to get you started with the Drools Fraction, and for that reason I’m not including any other service in this project. You are not restricted by that, and you can expose your own endpoints.
Notice in the pom.xml file two things:
  1. The Drools Server Fraction: https://github.com/Salaboy/drools-workshop/blob/master/drools-server-swarm/pom.xml#L18 By adding this dependency, the fraction is going to be activated while Wildfly Swarm bootstrap.
  2. The wildfly-swarm plugin: https://github.com/Salaboy/drools-workshop/blob/master/drools-server-swarm/pom.xml#L25. Notice in the plugin configuration that we are pointing to the App class which basically just start the container. (This can be avoided, but I wanted to show that if you want to start your own services or do your own deployments you can do that inside that class)
If you compile and package this project by doing mvn clean install, you will find in the target/ directory a file called:
drools-server-swarm-1.0-SNAPSHOT-swarm.jar which you can start by doing
<br /><br />java -jar&nbsp;drools-server-swarm-1.0-SNAPSHOT-swarm.jar<br /><br />
For this example, we will include one more flag when we start our project to make sure that our Drools Server can resolve the artefacts that I’m going to use later on, so it will be like this:
<br /><br />java -Dkie.maven.settings.custom=../src/main/resources/settings.xml&nbsp;-jar drools-server-swarm-1.0-SNAPSHOT-swarm.jar<br /><br />
By adding the “kie.maven.setting.custom” flag here we are letting the Drools Server know that we had configured an external maven repository to be used to resolve our artefacts. You can find the custom settings.xml file here.
Once you start this project and everything boots up (less than 2 seconds to start wildfly-swarm core + less than 14 to boot up the drools server) you are ready to start creating your KIE Containers with your domain specific rules.
You can find the output of running this app here. Notice the binding address for the http port:
WFLYUT0006: Undertow HTTP listener default listening on [0:0:0:0:0:0:0:0]:8083
Now you can start sending requests to http://localhost:8083/drools to interact with the server.
I’ve included in this project also a Chrome’s Postman project for you to test some very simple request like:
  • Getting All the registered Containers -> GET http://localhost:8083/drools/server/containers
  • Creating a new container – > PUT http://localhost:8083/drools/server/containers/sample
  • Sending some commands like Insert Fact + Fire All Rules -> POST http://localhost:8083/drools/server/containers/instances/sample
You can import this file to Postman and fire the requests against your newly created Drools Server. Besides knowing to which URLs to PUT,POST or GET data, you also need to know about the required headers and Authentication details:
Authentication -> Basic
User: kieserver
Password: kieserver1!
Finally, you can find the source code of the Fraction here: https://github.com/wildfly-swarm/wildfly-swarm-drools
There are tons of things that can be improved, helpers to be provided, bugs to be fixed, so if you are up to the task, get in touch and let’s the Drools fraction better for everyone.

Summing up

While I’m still writing the documentation for this fraction, you can start using it right away. Remember that the main goal of these Wildfly Swarm extensions is to make your life easier and save you some time when  you need to get something like the Drools Server in a small bundle and isolated package that doesn’t require a server to be installed and configured.
If you have any questions about the Drools Fraction don’t hesitate to write a comment here.

Mastering #Drools 6 book is out!

Hi everyone, just a quick post to share the good news! The book is out and ready to ship! You can buy it from Packt or from Amazon directly. I’m happy to announce also that we are going to be presenting the book next week in Denmark, with the local JBug: http://www.meetup.com/jbug-dk/events/229407454/ if you are around or know someone that might be interested in attending please let them know!
Mastering Drools 6
The book covers a wide range of topics from the basic ones including how to set up your environment and how to write simple rules, to more advanced topics such as Complex Event Processing and the core of the Rule Engine, the PHREAK algorithm.

Drools @ JUG Cork, Ireland (2nd March 2016)

Hi all, I’m creating this blog post to share with you all that I’m doing a presentation in the Java User Group at Cork, Ireland
For more information about the meet up go here: http://www.meetup.com/corkjug/events/226397805/
The session is titled “Go back home knowing how to use Drools 6 in your own projects” and it will be focused on the basics to get you started using Drools and the common pitfalls that new developers might find when using Drools. We will also quickly cover some common architectural patterns of using Drools and how it can be integrated into your existing applications. 
If you are planning to attend please share this blog post with your friend and post a message here or in the meet up page with the topics that you would like to see during the presentation. As usual, I’m pretty open to cover what the audience consider more important. 
I will be back with more information more close to the meet up date. 

Improved Drools & jBPM Eclipse wizard

Bob has been working on improving our Drools & jBPM Eclipse wizards.

  • The user no longer needs to create runtimes. They can now be created automatically on the fly by the new project wizard.
  • The project wizard will now list examples from the github repository and allow them to be selected and dowloaded as part of the wizard.
You cans see a video for this here:
Currently all the downloadable examples are jBPM, we still need to migrate the Drools examples over to this repository format.

Drools 6.2.0.Final Released

We are happy to announce the latest and greatest Drools 6.2.0.Final release.

This release in particular had a greater focus on improved usability and features that make the project easier to use (and adopt). Lots of improvements on the workbench UI, support for social activities and plugin management, as well as a brand new Execution Server for rules are among the new features.

Improved Wizards
Execution Server Management UI
Social activities
Contributors dashboard
Perspective editors

Here are a few links of interest:

We would like to use the opportunity to thank all the community members for their contributions to this release and also JetBrains and Syncro Soft for the open source licenses to their products that greatly help our developers!

Happy drooling!


Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology

Last week I did a blog highlighting the recent R&D we are doing to make our web platform easily extensible and allow the development of a self service apps platform. The blog had two video links showing progress.

Today I gave a presentation that highlighted the wider scope of our UI efforts; demonstrating what we’ve done within the BRMS and BPMS platform and the flexibility and adaptability provided by our UI technology. It provides a great testimony for the power of GWTErrai and UberFire, the three technologies driving all of this. We can’t wait for the GWT 2.7 upgrade 🙂

As mentioned in the last blog the UberFire website is just a placeholder and there is no release yet, we’ll be working on that over xmas, along with documention to make things more easily understandable and consumerable for end users.

The presentation is now live up on Slideshare and I’ve taken time to embed all the video’s within it.

The presentation is mostly self explanatory screenshots with headers with videos scattered throughout – many of which are previous video’s you might have seen before. It provides a very good over, using scatter gun approach, of what we have done, what we are doing and where we are going. Two of the videos around the extensible workbench and the technical web ide have audio commentary.

It starts by showing the existing BRMS and BPMS stuff before moving onto the new extensibility efforts. Finally it covers a new demo we’ve done with the workbench reskinned for a more technical audience. It also shows ACE integration for java and xml editing, as well as real time provisioning and running of Spring Pet Clinic application within the workbench.

Decision Camp 2014 : Call for Speakers : Oct 13-15, San Jose

Decision Camp is on again for 2014, registration is now open.


Who Should Attend

Practitioners are Business Analysts or Business Experts, Developers or Architects that
use or consider using Decision Management technologies such as Business Rules, Predictive Analytics, Business Intelligence
and Decision Optimization

Join practitioners like you as well as the renowned experts from industry, coming from consulting companies and technology vendors


Why Attend

Decision CAMP is the
first event for Decision Management practitioners.

It is filled with hands-on activities and insightful experience-sharing sessions.​

If you are new to Business Rules or Predictive Analytics, join us to speed up your learning curve and get more out of those technologies

The Call for speakers is now also open:

Who should submit an abstract

We are looking for keynotes, case studies, general sessions, and technical workshops. We are particularly looking for case studies.If you are a Business Analyst, Rules Writer, Rules Analyst or Rules Architect, and your job function includes harvesting, eliciting, capturing business rules, or more generally speaking decision logic, 
then you are the perfect speaker for the event!

If you are an Enterprise Architect, head of Software Development, or Software Architect, and your job function includes the integration of business rules / decision management technologies in your systems,
then you are a wonderful speaker too!

We are looking for practitioners from both sides.

Submissions will not be selected if they appear to directly promote any products or services, or are of a commercial nature.