<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Drools_KIE_introduction</id>
	<title>Drools KIE introduction - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Drools_KIE_introduction"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Drools_KIE_introduction&amp;action=history"/>
	<updated>2026-05-13T20:43:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=Drools_KIE_introduction&amp;diff=75244&amp;oldid=prev</id>
		<title>Fstachecki: /* Modification to previous scenario */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Drools_KIE_introduction&amp;diff=75244&amp;oldid=prev"/>
		<updated>2019-12-16T13:09:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Modification to previous scenario&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Drools Filip|000]]&lt;br /&gt;
=Drools Kie=&lt;br /&gt;
==Drools Kie Overview==&lt;br /&gt;
&lt;br /&gt;
== Business Rules Manager ⌘==&lt;br /&gt;
* allows people to manage rules in a multi user environment&lt;br /&gt;
* single point of truth for business rules&lt;br /&gt;
&lt;br /&gt;
== Kie ==&lt;br /&gt;
* Common terms for combining common libraries and other parts of jBPM, Drools and Fusion&lt;br /&gt;
* Stands for Knowledge Is Everything&lt;br /&gt;
&lt;br /&gt;
== When to use Kie ==&lt;br /&gt;
* versions/deployment of rules, &lt;br /&gt;
* let non-technical people create/update/view rules&lt;br /&gt;
* embedded in existing applications&lt;br /&gt;
* no existing infrastructure&lt;br /&gt;
* lots of &amp;quot;business&amp;quot; rules&lt;br /&gt;
* can be used on its own, or with the IDE&lt;br /&gt;
&lt;br /&gt;
== When to not use Kie ==&lt;br /&gt;
* mostly technical rules&lt;br /&gt;
* part of an application rather than corporate solution&lt;br /&gt;
* existing infrastructure and GUI&lt;br /&gt;
&lt;br /&gt;
== Kie Users ==&lt;br /&gt;
* Business Analysts&lt;br /&gt;
* Rule experts&lt;br /&gt;
* Developers&lt;br /&gt;
* Administrators&lt;br /&gt;
* Managers (as documentation and analysis tool)&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Multiple types of rule editors (GUI, text)&lt;br /&gt;
* Version control (historical assets)&lt;br /&gt;
* Build and deploy&lt;br /&gt;
* Store multiple rule &amp;quot;assets&amp;quot; together as a package&lt;br /&gt;
* Human Task console&lt;br /&gt;
&lt;br /&gt;
== Starting KIE ==&lt;br /&gt;
Starting KIE:&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
cd /opt/jbpm-installer&lt;br /&gt;
ant start.demo.noeclipse&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
cd /opt/jbpm-server-7.XX.0.Final-dist/bin/&lt;br /&gt;
. standalone.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
open a web browser and go to &lt;br /&gt;
&lt;br /&gt;
localhost:8080/jbpm-console (drools 7.10)&lt;br /&gt;
&lt;br /&gt;
localhost:8080/business-central (drools 7.19+)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
# Creating Organizational Unit&lt;br /&gt;
## Authoring/Administration&lt;br /&gt;
## Organization Units/Manage Organization Units/Add&lt;br /&gt;
## Name: npou / Owner: NobleProg Ltd&lt;br /&gt;
# Creating Repository&lt;br /&gt;
## Authoring/Administration&lt;br /&gt;
## Repositories/New Repository&lt;br /&gt;
## Repository Name: nprep / Organizational Unit: npou&lt;br /&gt;
# Creating Project&lt;br /&gt;
## Authoring/ Project Authoring&lt;br /&gt;
## Switch to npou&lt;br /&gt;
## New Project / Quick Setup&lt;br /&gt;
## Project Name: npproj&lt;br /&gt;
[[File:ClipCapIt-170903-174350.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello World ⌘==&lt;br /&gt;
* Create New Asset  -&amp;gt; DRL file&lt;br /&gt;
** Name: Hello World&lt;br /&gt;
* Paste&lt;br /&gt;
 rule &amp;quot;Hello World&amp;quot;&lt;br /&gt;
 when &lt;br /&gt;
    eval(true)&lt;br /&gt;
 then&lt;br /&gt;
     System.out.println(&amp;quot;Hello world&amp;quot;);&lt;br /&gt;
 end&lt;br /&gt;
* Save the rule&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Testing Hello World Rule&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Create New Asset -&amp;gt; Test Scenario&lt;br /&gt;
** Name: Hello World Test&lt;br /&gt;
* Run scenario&lt;br /&gt;
* Check the log files:&lt;br /&gt;
** e.g. &lt;br /&gt;
 cd /opt/jbpm-installer/wildfly-10.1.0.Final/standalone/log&lt;br /&gt;
 tail server.log  -f&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Apply Discount ==&lt;br /&gt;
=== Creating a Fact Type ⌘===&lt;br /&gt;
* Add Asset -&amp;gt; Data Object&lt;br /&gt;
** Data Object: ShoppingCart&lt;br /&gt;
::[[File:ClipCapIt-170903-175815.PNG]]&lt;br /&gt;
&lt;br /&gt;
* Create new field&lt;br /&gt;
** Id: totalPrice&lt;br /&gt;
** Label: Total Price&lt;br /&gt;
** Type: BigDecimal (not supported in test scenarios in version 7.19)&lt;br /&gt;
::[[File:ClipCapIt-170903-175930.PNG]]&lt;br /&gt;
* Save (upper right corner)&lt;br /&gt;
&lt;br /&gt;
=== Looking at generated POJO ===&lt;br /&gt;
* Switch to Source tab&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 package npou.npproj;&lt;br /&gt;
 /**&lt;br /&gt;
 * This class was automatically generated by the data modeler tool.&lt;br /&gt;
 */&lt;br /&gt;
 public class ShoppingCart implements java.io.Serializable {&lt;br /&gt;
 &lt;br /&gt;
 static final long serialVersionUID = 1L;&lt;br /&gt;
 &lt;br /&gt;
 @org.kie.api.definition.type.Label(value = &amp;quot;Total Price&amp;quot;)&lt;br /&gt;
 private java.math.BigDecimal totalPrice;&lt;br /&gt;
 &lt;br /&gt;
 public ShoppingCart() {&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 public ShoppingCart(java.math.BigDecimal totalPrice) {&lt;br /&gt;
 this.totalPrice = totalPrice;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 public java.math.BigDecimal getTotalPrice() {&lt;br /&gt;
 return this.totalPrice;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public void setTotalPrice( java.math.BigDecimal totalPrice ) {&lt;br /&gt;
 this.totalPrice = totalPrice;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Drools Kie - Example=&lt;br /&gt;
=== Creating a Rule ===&lt;br /&gt;
* Add Asset  -&amp;gt; Guided Rule&lt;br /&gt;
* Resource Name: Apply Tall Order Discount&lt;br /&gt;
* Enter details as below&lt;br /&gt;
[[File:ClipCapIt-170903-180656.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[File:ApplyDiscountRule.png|400px]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* View Source should return&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package npou.npproj;&lt;br /&gt;
&lt;br /&gt;
import java.lang.Number;&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Apply Tall Order Discount&amp;quot;&lt;br /&gt;
	dialect &amp;quot;mvel&amp;quot;&lt;br /&gt;
	when&lt;br /&gt;
		$sc : ShoppingCart( $tp : totalPrice &amp;gt;= 10000.0B )&lt;br /&gt;
	then&lt;br /&gt;
		modify( $sc ) {&lt;br /&gt;
				setTotalPrice( $tp*0.9 )&lt;br /&gt;
		}&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating a Test Scenario (Legacy)===&lt;br /&gt;
* Create New Asset-&amp;gt; Test Scenario (Legacy)&lt;br /&gt;
* Resource Name: Apply Discount Test&lt;br /&gt;
* Run Scenario&lt;br /&gt;
&amp;lt;!--[[File:ApplyDiscountTestPlan.png|400px]]--&amp;gt;&lt;br /&gt;
[[File:ClipCapIt-170903-181355.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== Creating a Test Scenario ===&lt;br /&gt;
* Create New Asset-&amp;gt; Test Scenario&lt;br /&gt;
* Resource Name: Apply Discount Test 2&lt;br /&gt;
* Run Scenario&lt;br /&gt;
[[File:ClipCapIt-191210-145729.PNG]]&lt;br /&gt;
[[File:ClipCapIt-191210-150035.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercise 1.1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Create CourseEvent fact type containing fields:&lt;br /&gt;
* name:String&lt;br /&gt;
* date:Date&lt;br /&gt;
* price:decimal&lt;br /&gt;
* booked:boolean&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercise 1.2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Create a rule which remove past events&lt;br /&gt;
{{Collapse|Hint|Create another fact called CurrentDate}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercise 1.4&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create three test scenarios for the event above&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dealing with Recursion ==&lt;br /&gt;
* Let us try to add a test for order value of 15000 and set EXPECT section to 13500&lt;br /&gt;
[[File:ClipCapIt-170903-181553.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== No-Loop Attribute ===&lt;br /&gt;
We need to ad no-loop attribute&lt;br /&gt;
&lt;br /&gt;
[[File:ClipCapIt-170903-191346.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package com.nobleprog.npproj;&lt;br /&gt;
 &lt;br /&gt;
import java.lang.Number;&lt;br /&gt;
 &lt;br /&gt;
rule &amp;quot;Apply Tall Order Discount&amp;quot;&lt;br /&gt;
	dialect &amp;quot;mvel&amp;quot;&lt;br /&gt;
	no-loop true&lt;br /&gt;
	when&lt;br /&gt;
		$sc : ShoppingCart( $tp : totalPrice &amp;gt;= 10000.0B )&lt;br /&gt;
	then&lt;br /&gt;
		modify( $sc ) {&lt;br /&gt;
				setTotalPrice( $tp*0.9 )&lt;br /&gt;
		}&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Correct test should look like that&lt;br /&gt;
[[File:ClipCapIt-170903-182204.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Exercises ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercise 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* to the shopping cart fact type add &amp;quot;discountApplied:Boolean&amp;quot; field, &lt;br /&gt;
* set it to true after applying a discount&lt;br /&gt;
* modify rule so it will work without no-loop or other attributes&lt;br /&gt;
&lt;br /&gt;
=Drools Kie - Decision Table=&lt;br /&gt;
== Applying Progressive Discounts ==&lt;br /&gt;
We want to apply discounts according to the table below:&lt;br /&gt;
 0      -  9,999  -&amp;gt; 0%&lt;br /&gt;
 10,000 -  49,999 -&amp;gt; 10%&lt;br /&gt;
 50,000 -  79,999 -&amp;gt; 12%&lt;br /&gt;
 80,000 -  above  -&amp;gt; 15%&lt;br /&gt;
=== Modification to previous scenario ===&lt;br /&gt;
&amp;lt;!-- * Disable &amp;#039;&amp;#039;Apply Tall Order Discount.rdrl&amp;#039;&amp;#039; by renaming it to &amp;#039;&amp;#039;Apply Tall Order Discount.rdrl.disabled&amp;#039;&amp;#039; --&amp;gt;&lt;br /&gt;
* In Data Objects -&amp;gt; ShoppingCart add a new field discount:Double&lt;br /&gt;
&lt;br /&gt;
=== Guided Decision Table ===&lt;br /&gt;
* Create New Asset -&amp;gt; Guided Decision Table&lt;br /&gt;
** Name: Progressive Discount Table&lt;br /&gt;
** Hit Policy - None&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:ClipCapIt-160414-194046.PNG]]&lt;br /&gt;
[[File:ClipCapIt-150714-150923.PNG]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[File:ClipCapIt-170905-132403.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Exercises ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercise 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Implement the decision table above&lt;br /&gt;
# Test if it works&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercise 2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Create another rule which would calculate totalPrice after discount has been applied&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exercise 3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Add a condition to stop looping (2 solutions)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Exercise 3.2 ==&lt;br /&gt;
# Create another rule which would calculate totalPrice after discount has been applied&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== Applying Progressive Discounts - Source ===&lt;br /&gt;
* View Source&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package npou.npproj;&lt;br /&gt;
&lt;br /&gt;
//from row number: 1&lt;br /&gt;
rule &amp;quot;Row 1 Progressive Decision Table&amp;quot;&lt;br /&gt;
	dialect &amp;quot;mvel&amp;quot;&lt;br /&gt;
	when&lt;br /&gt;
		$sc : ShoppingCart( totalPrice &amp;gt;= 80000.0B )&lt;br /&gt;
	then&lt;br /&gt;
		modify( $sc ) {&lt;br /&gt;
				setDiscount( 0.15B )&lt;br /&gt;
		}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
//from row number: 2&lt;br /&gt;
rule &amp;quot;Row 2 Progressive Decision Table&amp;quot;&lt;br /&gt;
	dialect &amp;quot;mvel&amp;quot;&lt;br /&gt;
	when&lt;br /&gt;
		$sc : ShoppingCart( totalPrice &amp;gt;= 50000.0B , totalPrice &amp;lt; 80000.0B )&lt;br /&gt;
	then&lt;br /&gt;
		modify( $sc ) {&lt;br /&gt;
				setDiscount( 0.12B )&lt;br /&gt;
		}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
//from row number: 3&lt;br /&gt;
rule &amp;quot;Row 3 Progressive Decision Table&amp;quot;&lt;br /&gt;
	dialect &amp;quot;mvel&amp;quot;&lt;br /&gt;
	when&lt;br /&gt;
		$sc : ShoppingCart( totalPrice &amp;gt;= 10000.0B , totalPrice &amp;lt; 50000.0B )&lt;br /&gt;
	then&lt;br /&gt;
		modify( $sc ) {&lt;br /&gt;
				setDiscount( 0.10B )&lt;br /&gt;
		}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
//from row number: 4&lt;br /&gt;
rule &amp;quot;Row 4 Progressive Decision Table&amp;quot;&lt;br /&gt;
	dialect &amp;quot;mvel&amp;quot;&lt;br /&gt;
	when&lt;br /&gt;
		$sc : ShoppingCart( totalPrice &amp;lt; 10000B )&lt;br /&gt;
	then&lt;br /&gt;
		modify( $sc ) {&lt;br /&gt;
				setDiscount( 0B )&lt;br /&gt;
		}&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Knowledge Session=&lt;br /&gt;
==Stateless Knowledge Session==&lt;br /&gt;
* A stateless session can be called like a function passing it some data and then receiving some results back. &lt;br /&gt;
* Some common use cases for stateless sessions are, but not limited to:&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Validation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*** Is this person eligible for a mortgage?&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Calculation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
***Compute a mortgage premium.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Routing and Filtering&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
***Filter incoming messages, such as emails, into folders.&lt;br /&gt;
* Stateless sessions do not support iterative insertions and the method call fireAllRules()&lt;br /&gt;
* The act of calling execute() is a single-shot method that will internally instantiate a KieSession, add all the user data and execute user commands, call fireAllRules(), and then call dispose()&lt;br /&gt;
&lt;br /&gt;
==Stateful Knowledge Session==&lt;br /&gt;
*Stateful Sessions are long lived and allow iterative changes over time.&lt;br /&gt;
* Some common use cases for Stateful Sessions are, but not limited to:&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Monitoring&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
***Stock market monitoring and analysis for semi-automatic buying.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Diagnostics&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
***Fault finding, medical diagnostics&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Logistics&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
***Parcel tracking and delivery provisioning&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;Compliance&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
***Validation of legality for market trades.&lt;br /&gt;
&lt;br /&gt;
==kmodule.xml==&lt;br /&gt;
The kmodule.xml file is the descriptor that selects resources to knowledge bases and configures those knowledge bases and sessions. &lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;kmodule xmlns=&amp;quot;http://jboss.org/kie/6.0.0/kmodule&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;kbase name=&amp;quot;kbase1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ksession name=&amp;quot;ksession1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/kbase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;kbase name=&amp;quot;kbase2&amp;quot; packages=&amp;quot;org.some.pkg&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ksession name=&amp;quot;ksession2&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/kbase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;kbase name=&amp;quot;kbase3&amp;quot; includes=&amp;quot;kbase2&amp;quot; packages=&amp;quot;org.some.pkg2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ksession name=&amp;quot;ksession3&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/kbase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;kbase name=&amp;quot;kbase4&amp;quot; packages=&amp;quot;org.some.pkg, org.other.pkg&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ksession name=&amp;quot;ksession4&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/kbase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;kbase name=&amp;quot;kbase5&amp;quot; packages=&amp;quot;org.*&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ksession name=&amp;quot;ksession5&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/kbase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;kbase name=&amp;quot;kbase6&amp;quot; packages=&amp;quot;org.some.*&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ksession name=&amp;quot;ksession6&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/kbase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/kmodule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*&amp;#039;kbase1&amp;#039; includes all resources from the KieModule. &lt;br /&gt;
* The other KieBases include resources from other selected folders, via the &amp;#039;packages&amp;#039; attribute. &lt;br /&gt;
* Note the use wildcard &amp;#039;*&amp;#039; use, to select this package and all packages below it.&lt;/div&gt;</summary>
		<author><name>Fstachecki</name></author>
	</entry>
</feed>