Debugging rules
You can debug rules during the execution of your Drools application.
You can add breakpoints in the consequences of your rules, and whenever
such a breakpoint is encounted during the execution of the rules, the execution
is halted. You can then inspect the variables known at that point and use any
of the default debugging actions to decide what should happen next (step over,
continue, etc.). You can also use the debug views to inspect the content of the
working memory and agenda.
Creating breakpoints
You can add/remove rule breakpoints in drl files in two ways, similar to adding
breakpoints to Java files:
Double-click the ruler of the DRL editor at the line where you want to
add a breakpoint. Note that rule breakpoints can only be created in the
consequence of a rule. Double-clicking on a line where no breakpoint is allowed
will do nothing. A breakpoint can be removed by double-clicking the ruler once more.
If you right-click the ruler, a popup menu will show up, containing the
"Toggle breakpoint" action. Note that rule breakpoints can only be created in the
consequence of a rule. The action is automatically disabled if no rule
breakpoint is allowed at that line. Clicking the action will add a breakpoint at the
selected line, or remove it if there was one already.
The Debug Perspective contains a Breakpoints view which can be used to see
all defined breakpoints, get their properties, enable/disable or remove them, etc.
Debugging rules
Drools breakpoints are only enabled if you debug your application as
a Drools Application. You can do this like this:
Select the main class of your application. Right click it and select the
"Debug As >" sub-menu. There, select the "Debug ..." menu item to open a
new dialog for creating, managing and running debug configurations (see
screenshot below)
Select the "JBoss Rules Application" item in the left tree and click the "New
launch configuration" button (leftmost icon in the toolbar above the tree). This
will create a new configuration and already fill in some of the properties
(like the project and main class) based on main class you selected in the beginning.
All properties shown here are the same as any standard Java program.
Change the name of your debug configuration to something meaningful.
You can just accept the defaults for all other properties. For more information
about these properties, please check the eclipse jdt documentation.
Click the "Debug" button on the botton to start debugging your application.
You only have to define your debug configuration once. The next time you try to run your
JBoss Rules application, you don't have to create a new one but select the one you defined
previously by selecting it in the tree on the left, as a sub-element of the "JBoss Rules Application"
tree node, and then click the Debug button. The eclipse toolbar also contains shortcut
buttons to quickly re-execute the one of your previous configurations (at least when the
Java, Java Debug, or JBoss Rules perspective has been selected).
After clicking the "Debug" button, the application starts executing and will halt if any
breakpoint is encountered. This can be a Drools rule breakpoint, or any other standard
Java breakpoint. Whenever a Drools rule breakpoint is encountered, the corresponding drl
file is opened and the active line is highlighted. The Variables view also contains all rule
parameters and their value.You can then use the default Java debug actions
to decide what to do next (resume, terminate, step over, etc.). The debug views can also
be used to determine the contents of the working memory and agenda at that time as well
(you don't have to select a working memory now, the current executing working memory
is automatically shown).
Comments