Book Image

Drools JBoss Rules 5.X Developer's Guide

By : Michal Bali
Book Image

Drools JBoss Rules 5.X Developer's Guide

By: Michal Bali

Overview of this book

<p>Writing business rules has always been a challenging task. Business rules tend to change often leading to a maintenance nightmare. This book shows you various ways to code your business rules using Drools, the open source Business Rules Management System.<br /><br />Drools JBoss Rules 5.X Developer's Guide shows various features of the Drools platform by walking the reader through several real-world examples. Each chapter elaborates on different aspects of the Drools platform. The reader will also learn about the inner workings of Drools and its implementation of the Rete algorithm.<br /><br />The book starts with explaining rule basics, then builds on this information by going through various areas like human readable rules, rules for validation, and stateful rules, using examples from the banking domain. A loan approval process example shows the use of the jBPM module. Parts of a banking fraud detection system are implemented with the Drools Fusion module which is the complex event processing part of Drools. Finally, more technical details are shown detailing the inner workings of Drools, the implementation of the ReteOO algorithm, indexing, node sharing, and partitioning.</p>
Table of Contents (22 chapters)
Drools JBoss Rules 5.X Developer's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Setting Up the Development Environment
Creating Custom Operators
Dependencies of Sample Application
Index

Implementation of the data loading


In this section we'll look closer at getting the data from the legacy system. If you're not interested in actually trying out this example, you can skip this section.

Database setup

The data can come from various sources – database, XML, CSV, and so on. Our application will pull data from a database; however, it shouldn't be a problem to work with any other data source. The table structure looks as follows:

CREATE TABLE  `droolsBook`.`customer` ( 
  `customer_id` bigint(20) NOT NULL, 
  `first_name` varchar(255) NOT NULL, 
  `last_name` varchar(255) NOT NULL, 
  `email` varchar(255) NOT NULL, 
  PRIMARY KEY  (`customer_id`) 
)

Code listing 24: Table structure for legacy customers in a MySQL Database

CREATE TABLE  `droolsBook`.`address` ( 
  `address_id` bigint(20) NOT NULL default '0', 
  `parent_id` bigint(20) NOT NULL, 
  `street` varchar(255) NOT NULL, 
  `area` varchar(255) NOT NULL, 
  `town` varchar(255) NOT NULL, 
  `country` varchar(255) NOT NULL,...