<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Esteban&#039;s Blog</title>
	<atom:link href="http://ilesteban.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ilesteban.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Fri, 06 Jan 2012 09:17:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ilesteban.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Esteban&#039;s Blog</title>
		<link>http://ilesteban.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ilesteban.wordpress.com/osd.xml" title="Esteban&#039;s Blog" />
	<atom:link rel='hub' href='http://ilesteban.wordpress.com/?pushpress=hub'/>
		<item>
		<title>New Change-Set Editor in Guvnor 5.4</title>
		<link>http://ilesteban.wordpress.com/2011/12/27/new-change-set-editor-in-guvnor-5-4/</link>
		<comments>http://ilesteban.wordpress.com/2011/12/27/new-change-set-editor-in-guvnor-5-4/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 12:42:57 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[Guvnor]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jbpm5]]></category>
		<category><![CDATA[plugtree]]></category>
		<category><![CDATA[guvnor]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=284</guid>
		<description><![CDATA[By default, Guvnor provides a unique Change-Set per package containing the package binary or the drl source. The main problem with this is when you want to use just a sub-set of assets of a package (or even from different packages) in your application. The only solution to this problem was to create the change-sets [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=284&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>By default, Guvnor provides a unique Change-Set per package containing the package binary or the drl source. The main problem with this is when you want to use just a sub-set of assets of a package (or even from different packages) in your application.<br />
The only solution to this problem was to create the change-sets files in your applications pointing to individual assets in Guvnor using its REST interface. One drawback of this solution is that change-set management is outside the scope of Guvnor, so you don’t have a centralized place to manage them, version them, etc.<br />
was working in a new Change-Set editor where you can define your own change-sets inside Guvnor in any way you want. You can have a combination of different assets and packages, or even different snapshots of a package in a change-set. You can have all the change-sets per package you need, so if different applications are using the same package in different ways (different assets or assets’ versions of a same package) you can make use of this new feature of Guvnor.</p>
<p>This new editor will be available in Guvnor 5.4 <span id="more-284"></span></p>
<div>
<h2>Change-Set Editor UI</h2>
<div><strong><a href="http://ilesteban.files.wordpress.com/2011/12/selection_002.png" target="_blank"><img class="aligncenter  wp-image-285" title="Change-Set Editor" src="http://ilesteban.files.wordpress.com/2011/12/selection_002.png?w=300&#038;h=146" alt="" width="300" height="146" /></a></strong></div>
<div>
<div></div>
<p>To create a new Chang-Set you have to go to “Create New” -&gt; “New Change Set” option in Knowledge Base section of Guvnor.<br />
In the editor you have 4 items you can interact with:</p>
<div>
<ol>
<li>Change-Set Editor canvas: Here you can edit your change-set by hand. You can add, remove or edit resources as you wish. Of course you will need to know the URL of each of the resources. You could get this information from the “Attributes” tab of each of the resources.</li>
<li>Change-Set URL: This is the URL you need to use in your applications to make reference to this change-set.</li>
<li>Package Button: This is an easy way to add packages to your change-set. You need to place the cursor where you want to add a new Package in the  Change-Set Editor canvas and then click this button. A Wizard will appear to help you choose the right package. See next section for further information.</li>
<li>Asset Button: Useful button to add a new Assets to the Change-Set using a Wizard. For more information please read “Adding Assets using a Wizard” section.</li>
</ol>
<h2>Adding Packages using a Wizard</h2>
<p>Clicking in the “Package” button of Change-Set Editor, a wizard will be displayed to help you choose the package you want to add as resource.</p>
<p style="text-align:center;"><a href="http://ilesteban.files.wordpress.com/2011/12/selection_004.png" target="_blank"><img class="aligncenter size-full wp-image-286" title="Add Package as Resource" src="http://ilesteban.files.wordpress.com/2011/12/selection_004.png?w=450" alt=""   /></a></p>
<p>The Package Wizard has 3 sections:</p>
<ol>
<li>Name: Each resource inside a Change-Set could have a descriptive name. Use this optional field to set this property.</li>
<li>Description: Each resource inside a Change-Set could have a description. Use this optional field to set this property.</li>
<li>Packages: In this section you can select the package and the Snapshot version of a package you want to add as a resource of the Change-Set you are editing. If the Change-Set you are editing belongs to the Global Area, then you will be able to select the resource to add from all the packages defined in Guvnor and their snapshots of course. If the Change-Set you are editing belongs to a particular Package, you will only see the Snapshots of that package in this Wizard.</li>
</ol>
<h2>Adding Assets using a Wizard</h2>
<p>You have 2 ways of adding assets as resources of a Change-Set: by hand using the Change-Set Editor canvas or using the Asset Wizard. This Wizard is invoked using the “Asset” button of the editor.</p>
<p style="text-align:center;"><a href="http://ilesteban.files.wordpress.com/2011/12/selection_006.png" target="_blank"><img class="aligncenter size-medium wp-image-288" title="Add Assets as Resources" src="http://ilesteban.files.wordpress.com/2011/12/selection_006.png?w=300&#038;h=178" alt="" width="300" height="178" /></a></p>
<p>This Wizard has 5 sections:</p>
<ol>
<li>Name: Each resource inside a Change-Set could have a descriptive name. Use this optional field to set this property.</li>
<li>Description: Each resource inside a Change-Set could have a description. Use this optional field to set this property.</li>
<li>Package: Use this field to filter the assets of a particular Package. If the Change-Set you are editing belongs to the Global Area, then you will be able to select any package, otherwise the package where your Change-Set belongs is automatically selected and you will not be able to change it.</li>
<li>Format: Use this field to filter the type of assets you are looking for.</li>
<li>Assets: The list of assets that match the selected package and format. You can select one or more assets using the check-box column and then click “OK” to add each resource to the Change-Set you are editing.</li>
</ol>
</div>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/284/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=284&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2011/12/27/new-change-set-editor-in-guvnor-5-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2011/12/selection_002.png?w=300" medium="image">
			<media:title type="html">Change-Set Editor</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2011/12/selection_004.png" medium="image">
			<media:title type="html">Add Package as Resource</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2011/12/selection_006.png?w=300" medium="image">
			<media:title type="html">Add Assets as Resources</media:title>
		</media:content>
	</item>
		<item>
		<title>Emergency-Service Demo Application got the second place in RuleML</title>
		<link>http://ilesteban.wordpress.com/2011/11/05/emergency-service-demo-application-got-the-second-place-in-ruleml/</link>
		<comments>http://ilesteban.wordpress.com/2011/11/05/emergency-service-demo-application-got-the-second-place-in-ruleml/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 15:41:34 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jbpm5]]></category>
		<category><![CDATA[plugtree]]></category>
		<category><![CDATA[ruleml]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=276</guid>
		<description><![CDATA[Salaboy and I presented emergency-service demo application during RuleML 2011 Demo Challenge and we got the second place! Not bad for our first participation in this excellent conference! I think this is a great opportunity to thank Plugtree for supporting this kind of initiatives and also thank to all the contributors too. We will continue improving the demo to integrate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=276&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="https://twitter.com/#!/salaboy" target="_blank">Salaboy</a> and I presented <a href="https://github.com/Salaboy/emergency-service-drools-app" target="_blank">emergency-service demo application</a> during RuleML 2011 Demo Challenge and we got the second place! Not bad for our first participation in this excellent conference! I think this is a great opportunity to thank <a href="http://www.plugtree.com/" target="_blank">Plugtree</a> for supporting this kind of initiatives and also thank to all the contributors too.</p>
<p>We will continue improving the demo to integrate it with more technologies and to add it more features. We are really looking forward to be in next year&#8217;s RuleML!</p>
<div id="attachment_279" class="wp-caption aligncenter" style="width: 460px"><a href="http://ilesteban.files.wordpress.com/2011/11/screenshot-at-2011-11-05-163714.png"><img class="size-full wp-image-279" title="Emergency Service Demo Application" src="http://ilesteban.files.wordpress.com/2011/11/screenshot-at-2011-11-05-163714.png?w=450&#038;h=357" alt="" width="450" height="357" /></a><p class="wp-caption-text">Emergency Service Demo Application</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/276/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=276&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2011/11/05/emergency-service-demo-application-got-the-second-place-in-ruleml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2011/11/screenshot-at-2011-11-05-163714.png" medium="image">
			<media:title type="html">Emergency Service Demo Application</media:title>
		</media:content>
	</item>
		<item>
		<title>[UPDATED] Drools and jBPM5 Open Training @London &#8211; August 8th/9th</title>
		<link>http://ilesteban.wordpress.com/2011/07/18/drools-and-jbpm5-open-training-london-august-8th9th/</link>
		<comments>http://ilesteban.wordpress.com/2011/07/18/drools-and-jbpm5-open-training-london-august-8th9th/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 11:27:01 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jbpm5]]></category>
		<category><![CDATA[plugtree]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=265</guid>
		<description><![CDATA[Do you live in Europe? You don&#8217;t have any plans for August 8th/9th? Do you want to learn or improve your Drools and/or jBPM5 skills? If your answer is yes, then start packing and meet us (http://plugtree.com) in London! For the first time, Plugtree is going to organize an open training session. We are used [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=265&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Do you live in Europe? You don&#8217;t have any plans for August 8th/9th? Do you want to learn or improve your <a href="http://www.jboss.org/drools/">Drools</a> and/or <a href="http://www.jboss.org/jbpm/">jBPM5</a> skills? If your answer is yes, then start packing and meet us (<a href="http://plugtree.com">http://plugtree.com</a>) in London!<span id="more-265"></span></p>
<p>For the first time, <a href="http://plugtree.com">Plugtree</a> is going to organize an open training session. We are used to give private on-side sessions, but this time we wanted to make it open! We are expecting a mix of knowledge background and experiences that enriches us all.</p>
<p>The main focuses of these sessions are <a href="http://www.jboss.org/drools/drools-expert.html">Drools-Expert</a> and <a href="http://www.jboss.org/jbpm/">jBPM5</a>. We are going to go from the most simple and basic concepts to the most advanced features of these frameworks. Of course we are not going to leave out<a href="http://www.jboss.org/drools/drools-fusion.html"> Drools-Fusion</a>!</p>
<p>If you are starting with these technologies, at the end of this training you will be able to understand and start using them. You will be familiarized will all the terms and concepts behind these technologies.</p>
<p>If you are already using some of these frameworks, you will have a great opportunity to clear all your doubts, ask about best practices, and to learn about projects&#8217; internals.</p>
<p>It is very important to confirm your presence as soon as possible so we can find a place that meet our needs. We are looking for a nice hotel that allows us to have even coding nights for those who are interested!</p>
<p>If you are interested, please post a comment and get in contact with us writing a comment here or sending emails to:  info AT plugtree DOT com or my personal email: esteban DOR aliverti AT gmail DOT com, using the subject: Drools and jBPM5 Training in London.</p>
<p><a href="http://www.eventbrite.com/event/1934320605" target="_blank">You can register to this event here</a>. Stay tuned for more information but please let us know if you are interested.</p>
<p>You can find more about this community training initiative <a href="http://ilesteban.wordpress.com/">@ilesteban</a> and <a href="http://salaboy.wordpress.com/">@salaboy</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/265/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=265&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2011/07/18/drools-and-jbpm5-open-training-london-august-8th9th/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>
	</item>
		<item>
		<title>Emergency Service Installation Guide</title>
		<link>http://ilesteban.wordpress.com/2011/05/04/emergency-service-installation-guide/</link>
		<comments>http://ilesteban.wordpress.com/2011/05/04/emergency-service-installation-guide/#comments</comments>
		<pubDate>Wed, 04 May 2011 00:15:00 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jbpm5]]></category>
		<category><![CDATA[plugtree]]></category>
		<category><![CDATA[emergency service]]></category>
		<category><![CDATA[JUDCon]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=249</guid>
		<description><![CDATA[This week Mauricio Salatino presented a Drools/jBPM Demo application in Boston JUDCon. Salaboy and I have developed this application at Plugtree to prove and show a lot of conceptual and architectural concepts behind JBoss Drools and jBPM projects. The application is about an emergency service call center. It uses jBPM for define and run the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=249&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<h2 id="internal-source-marker_0.019345230190083385"><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">This week <a href="http://twitter.com/#!/salaboy" target="_blank">Mauricio Salatino</a> presented a Drools/jBPM Demo application in Boston JUDCon.</span></h2>
<p><a href="http://twitter.com/#!/salaboy" target="_blank">Salaboy</a> and I have developed this application at <a href="http://plugtree.com" target="_blank">Plugtree</a> to prove and show a lot of conceptual and architectural concepts behind JBoss <a href="http://drools.org" target="_blank">Drools</a> and <a href="http://jbpm.org" target="_blank">jBPM</a> projects.<br />
The application is about an emergency service call center. It uses <a href="http://jbpm.org" target="_blank">jBPM</a> for define and run the company’s processes and <a href="http://www.jboss.org/drools/drools-expert.html" target="_blank">Drools Expert</a> to execute part of the involved Business Logic. The Demo application also uses <a href="http://www.jboss.org/drools/drools-fusion.html" target="_blank">Drools Fusion</a> to correlate events coming form real-time sensors (a Wiimote or the keyboard) .<span id="more-249"></span></p>
<h2>Prerequisites</h2>
<p>Emergency Service (ES) is a multi-module maven project hosted in github. So, the first 2 prerequisites are git and maven.<br />
You can get git binaries from the project home page: <a href="http://git-scm.com/download">http://git-scm.com/download</a><br />
In the case of Ubuntu, you already have git in the repositories.<br />
In the case of maven, you will need to have at least version 2 installed. In the case of Ubuntu, you can directly get it from the package repository. You can also download its binaries from here: <a href="http://maven.apache.org/download.html">http://maven.apache.org/download.html</a></p>
<h2>Getting the Sources</h2>
<p>Getting Emergency Service sources is pretty straight forward. The only thing you need to do is to clone the project from its github location:</p>
<pre>$git clone git://github.com/Salaboy/emergency-service-drools-app.git emergency-service</pre>
<p>After cloning the repository, you will end up with this directory structure:</p>
<div id="attachment_255" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2011/05/selection_029.png"><img class="size-medium wp-image-255" title="Demo Directory Structure" src="http://ilesteban.files.wordpress.com/2011/05/selection_029.png?w=300&#038;h=60" alt="" width="300" height="60" /></a><p class="wp-caption-text">Demo Directory Structure</p></div>
<p>I don’t want to enter in details about the project structure in this post, however this is a brief explanation of each of the modules:</p>
<ul>
<li>emergency-service-core: this module contains the “server” application. This server is in charge of start jBPM’s Human Task Server, create a Drools Grid Node, add some entities to the distributed cache and initialize some of the services classes used by the application.</li>
<li>emergency-service-model: this module contains all the model classes involved in the application. It also contains the classes used to reach the distributed cache and to send messages across different modules.</li>
<li>emergency-service-tasklists-ui-swing: the task list swing application of the demo.</li>
<li>emergency-service-world-ui-slick: the application containing the map of the demo.</li>
</ul>
<h2>Compiling the sources</h2>
<p>Compiling the sources is a maven task. Make sure you have maven in your classpath and run:</p>
<pre>$mvn clean install -DskipTests=true</pre>
<p>*We are skipping test because they are kind of unstable yet <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If everything works as expected, you will end up with the following message in your console:</p>
<div id="attachment_254" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2011/05/selection_030.png"><img class="size-medium wp-image-254" title="A Successful Compilation" src="http://ilesteban.files.wordpress.com/2011/05/selection_030.png?w=300&#038;h=120" alt="" width="300" height="120" /></a><p class="wp-caption-text">A Successful Compilation</p></div>
<h2>LWJGL Library Configuration</h2>
<p>For the City Map application we are using Slick. Slick is a 2D java library that wraps LWJGL. If you want to use slick, you need to have LWJGL in your system.<br />
These are the steps you need to do to get LWJGL running:</p>
<ol>
<li>First step to get slick running is to get LWJGL 2.1.0. You can get it from here: <a href="http://sourceforge.net/projects/java-game-lib/files/Official%20Releases/LWJGL%202.1.0/lwjgl-2.1.0.zip/download">http://sourceforge.net/projects/java-game-lib/files/Official%20Releases/LWJGL%202.1.0/lwjgl-2.1.0.zip/download</a></li>
<li>Download the zip file and expand it somewhere.</li>
<li>Edit  emergency-service-world-ui-slick/pom.xml file and search for -Djava.library.path configuration. Replace the current value to fit your configuration. Note that LWJGL has different directories for different operating systems, make sure you use the correct one.</li>
</ol>
<h2>Executing the Demo</h2>
<p>When executing the demo, the order of execution of its modules is essential.<br />
The first project you need to run is emergency-service-core:</p>
<pre>$cd emergency-service-core
$mvn exec:exec</pre>
<p>When emergency-service-core is running, you can start emergency-service-tasklists-ui-swing or emergency-service-world-ui-slick in any order. For example:</p>
<pre>$cd emergency-service-world-ui-slick
$mvn exec:exec</pre>
<p>The result should be:</p>
<div id="attachment_256" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2011/05/selection_033.png"><img class="size-medium wp-image-256" title="World UI" src="http://ilesteban.files.wordpress.com/2011/05/selection_033.png?w=300&#038;h=239" alt="World UI" width="300" height="239" /></a><p class="wp-caption-text">World UI</p></div>
<p>and</p>
<pre>$cd emergency-service-tasklists-ui-swing
$mvn exec:exec</pre>
<p>The result should be:</p>
<div id="attachment_252" class="wp-caption aligncenter" style="width: 217px"><a href="http://ilesteban.files.wordpress.com/2011/05/selection_032.png"><img class="size-medium wp-image-252" title="Task List Application" src="http://ilesteban.files.wordpress.com/2011/05/selection_032.png?w=207&#038;h=300" alt="Task List Application" width="207" height="300" /></a><p class="wp-caption-text">Task List Application</p></div>
<h2>Playing with the Demo</h2>
<p>To start playing with the Demo, you need to start an emergency. To do this, you have to press the space bar key in the map. When you press that key, a new emergency will be displayed in the map.<br />
In the first task list of emergency-service-tasklists-ui-swing you will see a task to be completed (you need to press the “Refresh” button.<br />
At this point you can continue with the flow of execution: complete the first task, go to the second task list, complete it, etc.<br />
Because the demo is not completed yet, it only supports HEART ATTACK emergencies for 1 person between 20 and 60 years old. We are working to support the all the possibilities soon.<br />
To simulate patient heart beat, you can use a Wiimote (need to be configured in task list application) or ‘q’ and ‘w’ keys.</p>
<h2>Conclusion</h2>
<p>I tried to explain how to download, compile, configure and run the emergency service demo application.<br />
Remember that this Demo is under heavy development, so expect changes and bugs!! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Feel free to play with it. to report any problem and to give us some feedback too!</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=249&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2011/05/04/emergency-service-installation-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2011/05/selection_029.png?w=300" medium="image">
			<media:title type="html">Demo Directory Structure</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2011/05/selection_030.png?w=300" medium="image">
			<media:title type="html">A Successful Compilation</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2011/05/selection_033.png?w=300" medium="image">
			<media:title type="html">World UI</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2011/05/selection_032.png?w=207" medium="image">
			<media:title type="html">Task List Application</media:title>
		</media:content>
	</item>
		<item>
		<title>jBPM5 Community Training – Module #5: Domain Specific Processes</title>
		<link>http://ilesteban.wordpress.com/2011/03/09/jbpm5-community-training-%e2%80%93-module-5-domain-specific-processes/</link>
		<comments>http://ilesteban.wordpress.com/2011/03/09/jbpm5-community-training-%e2%80%93-module-5-domain-specific-processes/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 20:42:46 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jbpm5]]></category>
		<category><![CDATA[plugtree]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=240</guid>
		<description><![CDATA[Salaboy and I have released Module #5 of jBPM5 Community Training. This module covers the use of domain specific logic inside your processes. BPMN2 standard specify a special Activity to perform this: Task. Using it we can interact with external systems to create complex processes for real life situations. The following topics are covered in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=240&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Salaboy and I have released Module #5 of jBPM5 <a href="http://salaboy.wordpress.com/2011/03/09/2011/01/24/announcing-jbpm5-community-training/">Community Training</a>.</p>
<p>This module covers the use of domain specific logic inside your processes. BPMN2 standard specify a special Activity to perform this: Task. Using it we can interact with external systems to create complex processes for real life situations.<span id="more-240"></span></p>
<p>The following topics are covered in this module:</p>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div>
<ul>
<li>Domain Specific Processes
<ul>
<li>Introduction
<ul>
<li>BPMN2 Service Tasks</li>
<li>Work Item Concept inside jBPM5</li>
</ul>
</li>
</ul>
</li>
<li>Work Items characteristics</li>
<li>Work Item Handlers
<ul>
<li>Implementing Custom Handlers</li>
<li>Controlling Flow Execution</li>
</ul>
</li>
<li>Examples</li>
</ul>
<iframe src='http://www.slideshare.net/slideshow/embed_code/7207338' width='450' height='369'></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p>Take a look at the slides and try to make the homework! I will be glad to help you if you find any problem!</p>
<p>P.S: This module is also published in<a href="http://salaboy.wordpress.com/2011/03/09/jbpm5-community-training-%E2%80%93-module-5-domain-specific-processes/"> salaboy&#8217;s blog</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/240/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=240&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2011/03/09/jbpm5-community-training-%e2%80%93-module-5-domain-specific-processes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>
	</item>
		<item>
		<title>Drools Expert Community Training Course</title>
		<link>http://ilesteban.wordpress.com/2011/02/23/drools-expert-community-training-course/</link>
		<comments>http://ilesteban.wordpress.com/2011/02/23/drools-expert-community-training-course/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 12:44:53 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[plugtree]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=233</guid>
		<description><![CDATA[Salaboy and I are going to start publishing some of the material we used to use during Drools’ consultancy and training courses in the last year and a half. This is another initiative from PlugTree to promote and support open source projects. All the material was created under the sponsorship of PlugTree and if you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=233&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://salaboy.wordpress.com" target="_blank">Salaboy</a> and I are going to start publishing some of the material we used to use during Drools’ consultancy and training courses in the last year and a half. This is another initiative from <a href="http://plugtree.com" target="_blank">PlugTree </a>to promote and support open source projects.<br />
All the material was created under the sponsorship of <a href="http://plugtree.com" target="_blank">PlugTree</a> and if you want us to give you and your company some on site workshops we will be glad to help you.</p>
<p>All the material provided here is under the <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">Creative Commons License</a>.<br />
Our aim is to lower Drools’ entrance barrier and to promote its adoption as well!. Feel free to join us in this journey, we will be waiting feedback, questions and criticisms!<span id="more-233"></span></p>
<h1>What and When?</h1>
<p>So, the 2 main questions are: What is going to be published? and When it is going to be published?</p>
<p>Salaboy and I made this roadmap to organize ourselves and to give more transparency to the whole process. So we will do our best to release the following material in the following dates:</p>
<p><strong>Module #1</strong> &#8211; February 28: Drools 5 and jBPM5 Theoretical Introduction:  This module covers a quick overview about all the modules inside the Drools 5 Business Logic Integration Platform. You will see that jBPM5 was also included here because it’s considered as one of the Drools Platform module. This module was conceived to cover all the conceptual background that you need to have in order to start working with Drools Expert.</p>
<p><strong>Module #2</strong> &#8211; March 3: Drools Expert Introduction + First Hands On Labs: This module gives us a quick overview about the needed Drools APIs to start interacting with the engine. A quick overview about how the engine works and how is the normal execution cycle for our rules is also discussed.</p>
<p><strong>Module #3</strong> &#8211; March 8: DRL Syntax + Two Hands On Labs: This module covers the DRL syntax in depth. Explaining you most of the features provided by the language. Two hands on labs will be provided to demonstrate the language functionality and the runtime behavior.</p>
<p><strong>Module #4</strong> &#8211; March 15: RETE Algorithm Introduction: A quick introduction to the RETE algorithm is discussed in this chapter. The main idea behind covering this algorithm is to understand the rule engine internals for performance tuning and optimizations that we can do over our rules.</p>
<p><strong>Module #</strong>5 &#8211; March 20: DSL and Decision Tables + 2 hands on labs: This module is focused on user experience when writing business rules. This module will cover how to write Domain Specific Languages that will make the rules easier to write using the language that the people is used to use in their daily work. Decision Tables will be also covered to demonstrate how we can create template-like structures that will generate different rules using different set of parameters.</p>
<p>This is the tempted list of topics. If you feel we are missing something, please let us know and we will be glad to include it!</p>
<p>So, stay tuned!</p>
<h6>Disclaimer: <a href="http://plugtree.com" target="_blank">Plugtree</a> is not affiliated with or sponsored by <a href="http://www.redhat.com/" target="_blank">Red Hat®</a>. <a href="http://www.jboss.org/drools/" target="_blank">Drools</a> is a community project sponsored by <a href="http://www.jboss.org/" target="_blank">JBoss®</a>. All the material published during this training course is under the <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">Creative Commons License</a>.</h6>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=233&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2011/02/23/drools-expert-community-training-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>
	</item>
		<item>
		<title>Spring Context Editor in Guvnor</title>
		<link>http://ilesteban.wordpress.com/2011/02/16/spring-context-editor-in-guvnor/</link>
		<comments>http://ilesteban.wordpress.com/2011/02/16/spring-context-editor-in-guvnor/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 13:59:26 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[guvnor plugtree spring]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=225</guid>
		<description><![CDATA[Nicolas and Leandro made their first big contribution to Drools&#8217; Guvnor. Congrats! They have created a Spring Context Editor for Guvnor. This feature allows you to: Create and Edit Spring Context Files inside Guvnor. Define Drools&#8217; specific tags using a palette. Customize the elements in the palette to allow custom tags. Validate Spring Context xml. Expose [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=225&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="https://github.com/nicolas-sanchez">Nicolas</a> and <a href="https://github.com/leandro-romero">Leandro</a> made their first big contribution to Drools&#8217; Guvnor. Congrats!<br />
They have created a Spring Context Editor for Guvnor.<br />
This feature allows you to:</p>
<ul>
<li>Create and Edit Spring Context Files inside Guvnor.</li>
<li>Define Drools&#8217; specific tags using a palette.</li>
<li>Customize the elements in the palette to allow custom tags.</li>
<li>Validate Spring Context xml.</li>
<li>Expose Spring Context xmls through independent URLs.</li>
</ul>
<p>This feature will be available in Drools 5.2.0M1. <a href="http://nicozan.wordpress.com/2011/02/03/drools-guvnor-spring-context-feature/" target="_blank">If you want to get more information, please read Nicola&#8217;s post.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=225&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2011/02/16/spring-context-editor-in-guvnor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>
	</item>
		<item>
		<title>Guvnor: Embed Asset&#8217;s Editor in your application.</title>
		<link>http://ilesteban.wordpress.com/2010/11/23/guvnor-embed-assets-editor-in-your-application/</link>
		<comments>http://ilesteban.wordpress.com/2010/11/23/guvnor-embed-assets-editor-in-your-application/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 18:41:15 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[guided editor]]></category>
		<category><![CDATA[guvnor]]></category>
		<category><![CDATA[plugtree]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=171</guid>
		<description><![CDATA[Until now, if you wanted to create or edit rule assets in Drools you needed to enter Guvnor and work inside it. When Drools 5.2 sees the light of the day, there will be a new way: to embed Guvnor’s editors in your applications. Guvnor’s Editors Guvnor provides a set of editors to author rules [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=171&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Until now, if you wanted to create or edit rule assets in Drools you needed to enter Guvnor and work inside it. When Drools 5.2 sees the light of the day, there will be a new way: to embed Guvnor’s editors in your applications.<span id="more-171"></span></p>
<div>
<h2 id="internal-source-marker_0.7172474001999944">Guvnor’s Editors</h2>
<p>Guvnor provides a set of editors to author rules in different ways. According to rule’s format a specialized editor is used. Some of the supported formats are: brl (guided editor), drl (plain editor), dsl (dsl editor), template (guided editor) and decision table (decision table editor).</p>
<div id="attachment_174" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2010/11/brleditor.png"><img class="size-medium wp-image-174" title="Guided Editor" src="http://ilesteban.files.wordpress.com/2010/11/brleditor.png?w=300&#038;h=124" alt="Guided Editor for Rule Assets" width="300" height="124" /></a><p class="wp-caption-text">Guided Editor</p></div>
<div id="attachment_175" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2010/11/drleditor.png"><img class="size-medium wp-image-175" title="DRL Editor" src="http://ilesteban.files.wordpress.com/2010/11/drleditor.png?w=300&#038;h=123" alt="Editor for DRL Assets" width="300" height="123" /></a><p class="wp-caption-text">DRL Editor</p></div>
<div id="attachment_176" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2010/11/dsleditor.png"><img class="size-medium wp-image-176" title="DSL Editor" src="http://ilesteban.files.wordpress.com/2010/11/dsleditor.png?w=300&#038;h=124" alt="Editor for DSL Assets" width="300" height="124" /></a><p class="wp-caption-text">DSL Editor</p></div>
<div id="attachment_177" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2010/11/dtableeditor.png"><img class="size-medium wp-image-177" title="Decision Table Editor" src="http://ilesteban.files.wordpress.com/2010/11/dtableeditor.png?w=300&#038;h=123" alt="Editor for Decision Table Assets" width="300" height="123" /></a><p class="wp-caption-text">Decision Table Editor</p></div>
<p>Since now, the only way to use these editor was using guvnor. But with Drools 5.2 you could embed any of these editors in your own application just like if they were standalone applications.</p>
<div>
<h2 id="internal-source-marker_0.7172474001999944">Standalone Editors and Guvnor</h2>
</div>
<p>The standalone version of Guvnor’s Editors lets you to use just the editor window inside your applications. In order to be able to invoke a Editor instance from an external application, Guvnor must be running: Standalone Editor is just a part of Guvnor and not a different application.<br />
So the first step is to have Guvnor deployed and running in a web/application server.</p>
<p>Using the standalone version of Guvnor’s Editor you can create or edit assets only inside existing categories and packages. You must configure at least one category and package with a valid model inside Guvnor to start working with this feature.</p>
<div>
<div>
<h2 id="internal-source-marker_0.7172474001999944">So, How do I embed these editors in my Application?</h2>
</div>
<div>Guvnor defines a single entry-point to embed any of its editors in a web application: <em><span style="color:#888888;">StandaloneEditorServlet</span></em>. This servlet is found in <strong><em>/standaloneEditorServlet</em></strong> URL, and according t to the parameters you pass to it (parameters names and posible values are going to be explained later), you can open the editor in 3 different modes: BRL Edition Mode, Edition of Existing Assets Mode and Create New Asset Mode.<br />
So, if you want to embed a Guvnor Editor in your application you will need to perform a request to <strong><em>/standaloneEditorServlet</em></strong> URL. Once open, you can interact with the editor using JavaScript.</div>
<div>Because you need to invoke JavaScript in order to interact with the editor, Guvnor and your application must be running in the same server. Otherwise you will find cross-domain JavaScript invocation problems.</div>
<div>
<h2 id="internal-source-marker_0.7172474001999944">Standalone Editor Modes</h2>
<p>Depending on the parameters used to invoke the Editor, you can use it in 3 different ways: BRL Edition Mode, Edition of Existing Assets Mode and Create New Asset Mode.</p>
<h3>1. BRL Edition Mode</h3>
<p>BRL Edition Mode is used if you want to use BRL code in your application. You can provide multiple BRL sources to the Editor, each of them will be converted to a temporal RuleAsset (a Guvnor’s internal representation) and displayed in a separate editor.</p>
<p>The parameters involved in this mode are:</p>
<table border="2">
<tbody>
<tr>
<td style="padding-left:5px;"><strong>Parameter Name</strong></td>
<td style="padding-left:5px;"><strong>Explanation</strong></td>
<td style="padding-left:5px;"><strong>Allow multiple values</strong></td>
<td style="padding-left:5px;"><strong>Example</strong></td>
</tr>
<tr>
<td style="padding-left:5px;">packageName</td>
<td style="padding-left:5px;">The name of the package used to hold the created assets. The package must exist in Guvnor.</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">mortgages</td>
</tr>
<tr>
<td style="padding-left:5px;">categoryName</td>
<td style="padding-left:5px;">Each rule must have at least one category. The created rules will belong to this category. The category must exist in Guvnor</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">Home Mortgage</td>
</tr>
<tr>
<td style="padding-left:5px;">brlSource</td>
<td style="padding-left:5px;">The BRL source used by the editor. You can pass multiple brlSource parameters for multiple rules.</td>
<td style="padding-left:5px;">true</td>
<td style="padding-left:5px;">&lt;rule&gt;<br />
&lt;name&gt;<br />
Bankruptcy history<br />
&lt;/name&gt;<br />
&lt;modelVersion&gt;<br />
1.0<br />
&lt;/modelVersion&gt;<br />
&lt;attributes&gt;<br />
&#8230;<br />
&lt;/attributes&gt;<br />
&lt;lhs&gt;<br />
&#8230;<br />
&lt;/lhs&gt;<br />
&lt;rhs&gt;<br />
&#8230;<br />
&lt;/rhs&gt;<br />
&lt;/rule&gt;</td>
</tr>
</tbody>
</table>
<p>All the assets created when using this mode are temporal. They are never going to be persisted in Guvnor. The purpose of this mode is to use just the Guided Editor and not Guvnor. You can provide one or more initial brls, work on them using the Guided Editor and then retrieve the modified source. Every time you want to edit a rule, you must provide its brl code.</p>
<div id="attachment_214" class="wp-caption aligncenter" style="width: 306px"><a href="http://ilesteban.files.wordpress.com/2010/11/standaloneguidededitor4.png"><img class="size-medium wp-image-214" title="Standalone Editor" src="http://ilesteban.files.wordpress.com/2010/11/standaloneguidededitor4.png?w=296&#038;h=300" alt="" width="296" height="300" /></a><p class="wp-caption-text">Standalone Editor with 2 BRL Rules</p></div>
<div>
<h3 id="internal-source-marker_0.7172474001999944">2. Edition of Existing Assets Mode</h3>
</div>
<p>You can use this mode if you want to use the Standalone Editor for edit assets that already exist inside Guvnor.<br />
When editing existing assets, you will be able to save the changes in Guvnor as well as get the DRL and BRL code of them.</p>
<p>The parameters involved in this mode are:</p>
<table border="2">
<tbody>
<tr>
<td style="padding-left:5px;"><strong>Parameter Name</strong></td>
<td style="padding-left:5px;"><strong>Explanation</strong></td>
<td style="padding-left:5px;"><strong>Allow multiple values</strong></td>
<td style="padding-left:5px;"><strong>Example</strong></td>
</tr>
<tr>
<td style="padding-left:5px;">assetsUUIDs</td>
<td style="padding-left:5px;">The asset’s UUID. Use multiple parameters for specify multiple assets.</td>
<td style="padding-left:5px;">true</td>
<td style="padding-left:5px;">968c9b3c-bc19-40ba-bb38-44435956ccee</td>
</tr>
</tbody>
</table>
<p>The asset’s UUID could be found using Guvnor (we are working on a way to get this information using Guvnor’s REST API).<br />
When using this mode, you can edit assets from different types: like rules and decision tables.</p>
<div id="attachment_215" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2010/11/standaloneguidededitor23.png"><img class="size-medium wp-image-215" title="Standalone Editor" src="http://ilesteban.files.wordpress.com/2010/11/standaloneguidededitor23.png?w=300&#038;h=230" alt="" width="300" height="230" /></a><p class="wp-caption-text">Standalone Editor with Multiple Assets</p></div>
<div>
<h3 id="internal-source-marker_0.7172474001999944">3. New Asset Mode</h3>
<p>You can use this mode if you want to start a new asset from scratch. Assets created using this mode could be persisted inside Guvnor using the “Save all Changes” button. At this moment, you can only create one asset at a time using this mode.</p>
<p>The parameters involved in this mode are:</p>
<table border="2" width="70%">
<tbody>
<tr>
<td style="padding-left:5px;"><strong>Parameter Name</strong></td>
<td style="padding-left:5px;"><strong>Explanation</strong></td>
<td style="padding-left:5px;"><strong>Allow multiple values</strong></td>
<td style="padding-left:5px;"><strong>Example</strong></td>
</tr>
<tr>
<td style="padding-left:5px;">packageName</td>
<td style="padding-left:5px;">The name of the package used to hold the created asset. The package must exist in Guvnor.</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">mortgages</td>
</tr>
<tr>
<td style="padding-left:5px;">categoryName</td>
<td style="padding-left:5px;">The created rule will belong to this category. The category must exist in Guvnor</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">Home Mortgage</td>
</tr>
<tr>
<td style="padding-left:5px;">createNewAsset</td>
<td style="padding-left:5px;">Flag indicating that we want to start a new rule from the scratch</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">true<br />
false</td>
</tr>
<tr>
<td style="padding-left:5px;">assetName</td>
<td style="padding-left:5px;">The name for the asset to be created</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">New Rule</td>
</tr>
<tr>
<td style="padding-left:5px;">assetFormat</td>
<td style="padding-left:5px;">The format of the asset to be created. The format identifies the editor to be used.</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">brl (default)<br />
drl<br />
dsl<br />
gdst<br />
template<br />
And possibly any value defined in org.drools.guvnor.client.common.AssetFormats</td>
</tr>
</tbody>
</table>
<h3>Rule’s Sections Visibility Parameters</h3>
<p>When you edit or create rules in BRL format (using the Guided Editor), you can choose which part of the rules would be visible (LHS, RHS and Attributes). You can specify this using 3 different HTTP parameters:</p>
<div>
<table border="2">
<tbody>
<tr>
<td style="padding-left:5px;"><strong>Parameter Name</strong></td>
<td style="padding-left:5px;"><strong>Explanation</strong></td>
<td style="padding-left:5px;"><strong>Allow multiple values</strong></td>
<td style="padding-left:5px;"><strong>Example</strong></td>
</tr>
<tr>
<td style="padding-left:5px;">hideRuleLHS</td>
<td style="padding-left:5px;">Should the LHS of the rules be hidden?</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">true<br />
false</td>
</tr>
<tr>
<td style="padding-left:5px;">hideRuleRHS</td>
<td style="padding-left:5px;">Should the RHS of the rules be hidden?</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">true<br />
false</td>
</tr>
<tr>
<td style="padding-left:5px;">hideRuleAttributes</td>
<td style="padding-left:5px;">Should the Attributes of the rules be hidden?</td>
<td style="padding-left:5px;">false</td>
<td style="padding-left:5px;">true<br />
false</td>
</tr>
</tbody>
</table>
<h3>Contraint Fact Types</h3>
<p>When you edit or create rules in BRL format (using the Guided Editor), you can define a subset of the Fact Types defined in the rule’s package. When authoring the rule, you will only see the Fact Types defined in that subset. This is the same concept as <a href="http://ilesteban.wordpress.com/2010/03/25/guvnors-working-sets/">Working-Sets</a>. In fact, a Working-Set will be created and applied on-the-fly using the provided subset.</p>
<p>If you want to define this set of Fact Types you could use this parameter:</p>
<table border="2">
<tbody>
<tr>
<td style="padding-left:5px;"><strong>Parameter Name</strong></td>
<td style="padding-left:5px;"><strong>Explanation</strong></td>
<td style="padding-left:5px;"><strong>Allow multiple values</strong></td>
<td style="padding-left:5px;"><strong>Example</strong></td>
</tr>
<tr>
<td style="padding-left:5px;">validFactType</td>
<td style="padding-left:5px;">The name of a valid Fact Type. This is just the class name and not the fqn.</td>
<td style="padding-left:5px;">true</td>
<td style="padding-left:5px;">Bankruptcy<br />
ApplicationLoan</td>
</tr>
</tbody>
</table>
<h2>Interacting with the Editor</h2>
<p>After the Editor is open, you can interact with it using JavaScript.<br />
The Editor defines a JavaScript object in the Window where it is rendered. This object looks like this:</p>
<p><pre class="brush: plain;">
var guvnorEditorObject = {
    getDRL: function (callbackFunction),
    getBRL: function (callbackFunction),
    registerAfterSaveAndCloseButtonCallbackFunction: function (callbackFunction),
    registerAfterCancelButtonCallbackFunction: function (callbackFunction),
    getAssetsUUIDs: function()
}
</pre></p>
<p>The window.guvnorEditorObject defines 5 functions that you can use to interact with it. <em><span style="color:#888888;">getDRL()</span></em> and <em><span style="color:#888888;">getBRL()</span></em> receive a callback function as parameter. This function will receive a String containing the DRL or BRL of the rules you are editing.</p>
<p>The next 2 functions are for register callbacks for “Save”, “Done” and “Cancel” buttons. These callback functions don’t accept any parameter.<br />
The last function is ised to retrieve the UUIDs of the assets you are editing. This is very useful when you are creating a new rule asset and you don’t know the UUID of it.</p>
<h2 id="internal-source-marker_0.7172474001999944">Conclusion</h2>
<p>If you want to create rules in your applications using Guvnor’s Editors you can embed them in your applications now.</p>
<p>To invoke an Editor instance you need to perform a HTTP Request to /standaloneEditorServlet URL. According to the parameters passed, you could use Guvnor’s Editors in 3 different ways.When you need to interact with Guvnor’s Editor, you can use a JavaScript object defined in the window/frame where it is open.</p>
<h2>Handy Resources</h2>
<p>If you want to try this feature, you need to get the <a href="http://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/" target="_blank">latest snapshot of Guvnor 5.2 version</a>.</p>
<p>I also have created the following files to test all the functionalities while I was developing them. You can use them if you want to make a quick test, or to see how your applications should interact with Guvnor’s Editors.<br />
You could download them and change the ACTION attribute of the form they have.</p>
<ul>
<li><strong><a href="http://plugtree.com/downloads/brlEditor.html" target="_blank">brlEditor.html</a></strong>: Shows how to open an Editor for 2 BRL sources.</li>
<li><strong><a href="http://plugtree.com/downloads/newAssetEditor.html" target="_blank">newAssetEditor.html</a></strong>: Shows how to create a new Asset from the scratch. You can select from different Asset Formats.</li>
<li><strong><a href="http://plugtree.com/downloads/assetEditor.html" target="_blank">assetEditor.html</a></strong>: Shows how to edit existing assets. You will need to change the harcoded Asset’s UUIDs.</li>
<li><strong><a href="http://plugtree.com/downloads/GECallbackFunctions.txt" target="_blank">GECallbackFunctions.txt</a></strong><a href="http://plugtree.com/downloads/GECallbackFunctions.txt" target="_blank">:</a> Shows the different function you can invoke on guvnorEditorObject. You can use frebug to execute these functions.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=171&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2010/11/23/guvnor-embed-assets-editor-in-your-application/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/11/brleditor.png?w=300" medium="image">
			<media:title type="html">Guided Editor</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/11/drleditor.png?w=300" medium="image">
			<media:title type="html">DRL Editor</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/11/dsleditor.png?w=300" medium="image">
			<media:title type="html">DSL Editor</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/11/dtableeditor.png?w=300" medium="image">
			<media:title type="html">Decision Table Editor</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/11/standaloneguidededitor4.png?w=296" medium="image">
			<media:title type="html">Standalone Editor</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/11/standaloneguidededitor23.png?w=300" medium="image">
			<media:title type="html">Standalone Editor</media:title>
		</media:content>
	</item>
		<item>
		<title>Guvnor Guided Editor: Custom Forms</title>
		<link>http://ilesteban.wordpress.com/2010/07/22/guvnor-guided-editor-custom-forms/</link>
		<comments>http://ilesteban.wordpress.com/2010/07/22/guvnor-guided-editor-custom-forms/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 00:04:17 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[custom forms]]></category>
		<category><![CDATA[guvnor]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=155</guid>
		<description><![CDATA[These past days I was busy trying to implement the first version of Custom Forms for Guvnor&#8217;s Guided Editor. The idea is to enhance the way users author their rules, and in particular the restriction values they use in those rules. Authoring rules without Custom Forms Previous to this feature, when users want to add [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=155&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>These past days I was busy trying to implement the first version of Custom Forms for Guvnor&#8217;s Guided Editor. The idea is to enhance the way users author their rules, and in particular the restriction values they use in those rules.</p>
<h2><span id="more-155"></span>Authoring rules without Custom Forms</h2>
<p>Previous to this feature, when users want to add a restriction on a Fact field they must choose one of the three available options: Literal Value, Formula or Expression Editor.</p>
<div id="attachment_158" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2010/07/constraintsvaluespopup.png"><img class="size-medium wp-image-158" title="Constraints Values Popup" src="http://ilesteban.files.wordpress.com/2010/07/constraintsvaluespopup.png?w=300&#038;h=128" alt="" width="300" height="128" /></a><p class="wp-caption-text">Constraints Values Popup</p></div>
<p>These options are enough for create basic rules. But if you want to have more control over the possible values a field could have while authoring a rule you, then these three options are not enough.</p>
<p>One way to get more control on what users write is using <a href="http://ilesteban.wordpress.com/2010/04/05/guvnors-field-constraints/" target="_blank">Fields Constraints</a>. But right now, they only work for post-authoring validation.</p>
<h2>What is a Custom Form?</h2>
<p>Custom Forms are for situations where selecting a value for a restriction involves some business logic. Suppose you have <code>Address</code> class with a <code>country</code> attribute. You might want to limit rules&#8217; authors to enter valid names, and not just a plain string. Another case could be he use of internal codes for some other attribute that need to be retrieved from external systems.</p>
<p>For situation like those described above, Guvnor needs a way to communicate with external systems to get business validated values.</p>
<p>So, for the first example it would be nice to open a popup containing a Google Map where users could select a country name by clicking on it. This is one of the main purposes of Custom Forms. The following screenshot shows how this should look like</p>
<div id="attachment_157" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2010/07/constraintsvaluespopup2.png"><img class="size-medium wp-image-157" title="Custom Form Popup" src="http://ilesteban.files.wordpress.com/2010/07/constraintsvaluespopup2.png?w=300&#038;h=121" alt="" width="300" height="121" /></a><p class="wp-caption-text">Custom Form Popup</p></div>
<p>So let&#8217;s go now to see how Custom Forms are created and how are they configured inside Guvnor.</p>
<h2>Custom Form creation</h2>
<p>Custom Forms are external web applications deployed in the same server Guvnor is. The Custom form must be accessible through an URL via HTTP GET method. You can use whatever technology you want for creating this form. Guvnor will open a popup containing an iframe and will load the form using its URL.</p>
<h3>Guvnor / Custom Form Communication</h3>
<p>The communication between Guvnor and the external application is performed using HTTP parameters (for Guvnor -&gt; Custom Form communication) and DOM inspection (for Custom Form -&gt; Guvnor communication).</p>
<p>Every time Guvnor invokes the Custom Form&#8217;s URL it will pass 4 GET parameters:</p>
<ol>
<li>factType: the short class name of the Fact that is being edited.</li>
<li>fieldName: the name of the Fact&#8217;s field that is being edited.</li>
<li>cf_id: the id of any previously selected value. Guvnor doesn&#8217;t use this value at all. It is only used by the external application to restore any previous state when editing a value. This value is empty the first time a Custom Form is opened.</li>
<li>cf_value: The previously selected value. This value is empty the first time a Custom Form is opened.</li>
</ol>
<p>The Custom Form could use this values to configure itself and must let users to select a new value for the field of the constraint that is being edited. Most of the times, the value itself is not meaningful for the external application. For example, if the external form let us choose a User name from a list, the external system might only cares about its ids. Guvnor in the other hand is only interested in the value of the name itself, because it is that value the one that will be used for the rule. But the next time a user edits the rule and wants to modify the User name of the constraint, the id of the User could be very useful for the External Form in order to restore any state. That is why Guvnor keeps 2 pieces of information for Custom Forms values: an internal id, and the value itself.</p>
<p>In order to get the selected value from the Custom Form, Guvnor uses javascript to introspect the external iframe DOM and retrieve the values. The external application must contain 2 &lt;input&gt; elements in the root container with ids: &#8220;cf_id&#8221; and &#8220;cf_value&#8221;. Guvnor will read the values of these input elements and store them. The value will be used in the rule (just like a literal value) and the id will be used in all the consequent invocations of the Custom Form.</p>
<h2>Custom Form Configuration Inside Guvnor</h2>
<p>Custom Forms are meta-data associated to a Fact&#8217;s field. So the better place to configure them are <a href="http://ilesteban.wordpress.com/2010/03/25/guvnors-working-sets/" target="_blank">Working Sets</a>.</p>
<p>The Working Set Management window now have an extra tab called &#8220;WS Custom Forms&#8221;. There you can configure different Custom Forms for different fields. A field can only have one Custom Form configuration in a Working Set.</p>
<div id="attachment_163" class="wp-caption aligncenter" style="width: 310px"><a href="http://ilesteban.files.wordpress.com/2010/07/customformmanagementpanel.png"><img class="size-medium wp-image-163" title="CustomFormManagementPanel" src="http://ilesteban.files.wordpress.com/2010/07/customformmanagementpanel.png?w=300&#038;h=129" alt="" width="300" height="129" /></a><p class="wp-caption-text">Custom Form Configuration Panel</p></div>
<p>As you can see in the screenshot above, Custom Forms configuration consists of 5 elements:</p>
<ol>
<li>Fact Type: You must choose from one of the working set&#8217;s fact types.</li>
<li>Field: This combobox is is filled in with the fields names of the Fact Type selected before.</li>
<li>UR: The URL of the custom form application that will be used for setting the field value in a restriction.</li>
<li>Width: The width of the opening popup.</li>
<li>Height: The height of the opening popup.</li>
</ol>
<h2>Using Custom Forms in Guided Editor</h2>
<p>Once you have configured the Custom Forms inside a Working Set, you can start using them in your guided editor. To do this you must enable the Working Set first, and then start creating restrictions as you always did.</p>
<p>When you add a restriction to a field that has a Custom Forms configuration associated, the configured URL will be opened instead of the regular popup (shown in figure 1). The selected value will be added to the guided editor in a button widget. When the user clicks this button, the popup will be shown again.</p>
<p><a href="http://ilesteban.files.wordpress.com/2010/07/customformpopup.png"><img class="aligncenter size-medium wp-image-164" title="CustomFormPopup" src="http://ilesteban.files.wordpress.com/2010/07/customformpopup.png?w=300&#038;h=141" alt="Custom Form Popup" width="300" height="141" /></a></p>
<h2>An example</h2>
<p>A screencast is worths 1000 screenshots, that is why I have created this little demo: <a href="http://plugtree.com/downloads/screencasts/CustomForms_demo.htm">http://plugtree.com/downloads/screencasts/CustomForms_demo.htm</a></p>
<p>There you can see how Custom Form are configured and used.</p>
<p>The External Application code could be found here: <a href="http://plugtree.com/downloads/screencasts/index.jsp.txt">http://plugtree.com/downloads/screencasts/index.jsp.txt</a></p>
<h2>Conclusion</h2>
<p>Guvnor now support custom business logic to fill constraints values while authoring rules using Guided Editor. You can assign URLs to Fact fields using Working Sets; this URLs will be shown in Guided Editor when creating rules.</p>
<p>Custom Forms are external web applications deployed in the same server where Guvnor is. You can use any web technology you want to create this forms.</p>
<p>And, as I always say, this is an experimental feature. Feel free to use it and test it. Comments and constructive criticisms are always welcome.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=155&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2010/07/22/guvnor-guided-editor-custom-forms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/07/constraintsvaluespopup.png?w=300" medium="image">
			<media:title type="html">Constraints Values Popup</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/07/constraintsvaluespopup2.png?w=300" medium="image">
			<media:title type="html">Custom Form Popup</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/07/customformmanagementpanel.png?w=300" medium="image">
			<media:title type="html">CustomFormManagementPanel</media:title>
		</media:content>

		<media:content url="http://ilesteban.files.wordpress.com/2010/07/customformpopup.png?w=300" medium="image">
			<media:title type="html">CustomFormPopup</media:title>
		</media:content>
	</item>
		<item>
		<title>Knowledge Agent: Added Support for DSL/DSLR</title>
		<link>http://ilesteban.wordpress.com/2010/07/04/knowledge-agent-added-support-for-dsldslr/</link>
		<comments>http://ilesteban.wordpress.com/2010/07/04/knowledge-agent-added-support-for-dsldslr/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 23:40:00 +0000</pubDate>
		<dc:creator>esteban</dc:creator>
				<category><![CDATA[drools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[dslr]]></category>
		<category><![CDATA[kagent]]></category>
		<category><![CDATA[knowledge agent]]></category>

		<guid isPermaLink="false">http://ilesteban.wordpress.com/?p=137</guid>
		<description><![CDATA[Finally, knowledge agent now supports DSL and DSLR files. A lot of people voted for this feature and it is finally done!. What drool&#8217;s team needs now are users that test it. So, if you was one of the people who voted this issue or you was waiting it, you can start using it right [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=137&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally, knowledge agent now supports DSL and DSLR files. A lot of people voted for this feature and it is finally done!.</p>
<p>What drool&#8217;s team needs now are users that test it. So, if you was one of the people who voted this issue or you was waiting it, you can start using it right now!<span id="more-137"></span></p>
<h2>Adding DSL/DSLR Resources</h2>
<p>Adding these type of resources to the knowledge agent&#8217;s kbase is as simple as adding any other resource type. You need to identify your resources with DSLR or DSL type:</p>
<p><pre class="brush: xml;">
&lt;change-set xmlns='http://drools.org/drools-5.0/change-set'
	xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'
	xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' &gt;
	&lt;add&gt;
		&lt;resource source='http://localhost/rules.drl' type='DSLR' /&gt;
		&lt;resource source='http://localhost/myExpander.dsl' type='DSL' /&gt;
	&lt;/add&gt;
&lt;/change-set&gt;
</pre></p>
<p>The order of the resources is not important. The agent will always treat DSL resources first.</p>
<h2>Modifying DSL or DSLR Resources</h2>
<p>DRLR and DSL resources are managed in different ways by the agent.<br />
Whenever the agent notes that a DSLR resource has changed, it would be treated as a regular DLR resource: All its rules will be compiled (using the pre-existent DSL expander) and they will be added to the agent&#8217;s kbase.<br />
The tricky part comes when you want to modify a DSL resource. Because DSL resources themselves don&#8217;t create any binary content (such as rules, queries, etc.), the only thing the agent does when a resource of this type is modified is to reload its definition. That&#8217;s it. No rules are created nor modified. If you want to recreate the rules that were created using the modified DSL resource, you have to modify the DSLR resource as well. If you don&#8217;t want to modify the DSLR content, you can just &#8220;touch&#8221; it (like the unix &#8216;touch&#8217; command) this will trigger the change set appliance process just like if you were modified the resource&#8217;s content.</p>
<h2>Conclusion</h2>
<p>The Knowledge Agent now supports DSL and DSLR resources. You can add these type of resources using change sets, just like any other resource. When a DSLR resource is modified, the agent will treat it as a regular DRL file; the builder the agent uses will contain all the DSL resource you have previously added. If a DSL resource is modified, nothing will happen until the corresponding DSLR resource/s get modified too.</p>
<p>This feature will be available from 5.1 RC1. If you could test it before that you will be helping me (and all the drool&#8217;s team) a lot <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Have fun!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilesteban.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilesteban.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilesteban.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilesteban.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilesteban.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilesteban.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilesteban.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilesteban.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilesteban.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilesteban.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilesteban.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilesteban.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilesteban.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilesteban.wordpress.com/137/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilesteban.wordpress.com&amp;blog=12782107&amp;post=137&amp;subd=ilesteban&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilesteban.wordpress.com/2010/07/04/knowledge-agent-added-support-for-dsldslr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da824ce4d44a7fa4703e9eff85c50f18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">esteban</media:title>
		</media:content>
	</item>
	</channel>
</rss>
