Please note that the following line in the example will configure the ResourceScanner to scan all the resources every 2 second! I don&#39;t think this is what you want!<div><br><div><i>sconf.setProperty(&quot;drools.resource.scanner.interval&quot;, &quot;2&quot;);</i></div>

<div><br><br></div><div><br><div class="gmail_quote">On Tue, May 11, 2010 at 1:25 PM, Esteban Aliverti <span dir="ltr">&lt;<a href="mailto:esteban.aliverti@gmail.com">esteban.aliverti@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi John,<div>Knowledge Agent is indeed the replacement of RuleAgent. It maintains a kbase and update it using change sets. A change set is an xml that list all the resources that the agent should take care of. In conjunction with ResouceChangeNotifier and ResourceChangeScanner you can use a knowledge agent to use packages exposed using guvnor.</div>


<div>Basically, the scanner will scan periodically a resource and find modifications. Whenever the resource changed, the scanner creates a change set and uses the Notifier to let the kagent know about the change.</div><div>


The thing is that you need to setup an initial change set, so the agent can start working. Here is one way to do that:</div><div><br></div><div>                //Scanner and notifier work as services. They must be started though</div>


<div><div>                ResourceFactory.getResourceChangeNotifierService().start();</div><div>                ResourceFactory.getResourceChangeScannerService().start();</div><div><br></div><div><div>                String xml = &quot;&quot;;</div>


<div><span style="white-space:pre">                </span>xml += &quot;&lt;change-set xmlns=&#39;<a href="http://drools.org/drools-5.0/change-set" target="_blank">http://drools.org/drools-5.0/change-set</a>&#39;&quot;;</div><div>
<span style="white-space:pre">                </span>xml += &quot;    xmlns:xs=&#39;<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>&#39;&quot;;</div><div><span style="white-space:pre">                </span>xml += &quot;    xs:schemaLocation=&#39;<a href="http://drools.org/drools-5.0/change-set" target="_blank">http://drools.org/drools-5.0/change-set</a> drools-change-set-5.0.xsd&#39; &gt;&quot;;</div>


<div><span style="white-space:pre">                </span>xml += &quot;    &lt;add&gt; &quot;;</div><div><span style="white-space:pre">                </span>xml += &quot;        &lt;resource source=&#39;<a href="http://localhost:9000/rule1.drl" target="_blank">http://localhost:9000/rule1.drl</a>&#39; type=&#39;DRL&#39; /&gt;&quot;;</div>


<div><span style="white-space:pre">                </span>xml += &quot;        &lt;resource source=&#39;<a href="http://localhost:9000/rule2.drl" target="_blank">http://localhost:9000/rule2.drl</a>&#39; type=&#39;DRL&#39; /&gt;&quot;;</div>


<div><span style="white-space:pre">                </span>xml += &quot;    &lt;/add&gt; &quot;;</div><div><span style="white-space:pre">                </span>xml += &quot;&lt;/change-set&gt;&quot;;</div>
<div><span style="white-space:pre">                </span>File fxml = fileManager.newFile(&quot;changeset.xml&quot;);</div><div><span style="white-space:pre">                </span>output = new BufferedWriter(new FileWriter(fxml));</div>
<div><span style="white-space:pre">                </span>output.write(xml);</div><div><span style="white-space:pre">                </span>output.close();</div><div><br></div><div><span style="white-space:pre">                </span>KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();</div>


<div><br></div><div><span style="white-space:pre">                </span>ResourceChangeScannerConfiguration sconf = ResourceFactory</div><div><span style="white-space:pre">                                </span>.getResourceChangeScannerService()</div>
<div><span style="white-space:pre">                                </span>.newResourceChangeScannerConfiguration();</div><div><span style="white-space:pre">                </span>sconf.setProperty(&quot;drools.resource.scanner.interval&quot;, &quot;2&quot;);</div>


<div><span style="white-space:pre">                </span>ResourceFactory.getResourceChangeScannerService().configure(sconf);</div><div><br></div><div><span style="white-space:pre">                </span>KnowledgeAgentConfiguration aconf = KnowledgeAgentFactory</div>


<div><span style="white-space:pre">                                </span>.newKnowledgeAgentConfiguration();</div><div><span style="white-space:pre">                </span>aconf.setProperty(&quot;drools.agent.scanDirectories&quot;, &quot;true&quot;);</div>
<div><span style="white-space:pre">                </span>aconf.setProperty(&quot;drools.agent.scanResources&quot;, &quot;true&quot;);</div><div><span style="white-space:pre">                </span>aconf.setProperty(&quot;drools.agent.newInstance&quot;, &quot;true&quot;);</div>


<div><span style="white-space:pre">                </span>KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent(</div><div><span style="white-space:pre">                                </span>&quot;test agent&quot;, kbase, aconf);</div>
<div><br></div><div><span style="white-space:pre">                </span>assertEquals(&quot;test agent&quot;, kagent.getName());</div><div><br></div><div><span style="white-space:pre">                </span>kagent.applyChangeSet(ResourceFactory.newUrlResource(fxml.toURI()</div>


<div><span style="white-space:pre">                                </span>.toURL()));</div><div><br></div><div><span style="white-space:pre">                </span>StatefulKnowledgeSession ksession = kagent.getKnowledgeBase()</div>
<div><span style="white-space:pre">                                </span>.newStatefulKnowledgeSession();</div></div><div><br></div><div><br></div><div>I took this code from kagent&#39;s test cases.</div><div>You can also create a new ChangeSetImpl by hand instead of use an xml file.</div>


<div><br></div><div>I hope you find this helpful.</div><div>If you have any other question, or you have doubts about this, feel free to ask!</div><div><br></div><div>Best,</div><br><div class="gmail_quote">2010/5/11 John Peterson <span dir="ltr">&lt;<a href="mailto:john.peterson.gv3k@statefarm.com" target="_blank">john.peterson.gv3k@statefarm.com</a>&gt;</span><br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div class="h5">






<div>


<p dir="LTR"><span lang="en-us"><font face="Calibri">Hi all,</font></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">I</font></span><span lang="en-us"><font face="Calibri">’</font></span><span lang="en-us"><font face="Calibri">m trying to get the</font></span><span lang="en-us"> <font face="Calibri">sample</font></span><span lang="en-us"><font face="Calibri"></font></span><span lang="en-us"> <font face="Calibri">code in the Drools 5.0.1</font></span><span lang="en-us"><font face="Calibri"> User Manual</font></span><span lang="en-us"><font face="Calibri"> to work locally for a Knowledge Agent, but I</font></span><span lang="en-us"><font face="Calibri">’</font></span><span lang="en-us"><font face="Calibri">m missing</font><font face="Calibri"> some info (from my perspective) to get it to run.</font></span><span lang="en-us"></span></p>




<p dir="LTR"><span lang="en-us"></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">Question #1:</font></span></p>

<p dir="LTR"><span lang="en-us"></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">From the</font> <font face="Calibri">User Manual (3.2.6):</font></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">KnowledgeAgent kagent = </font></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">          KnowledgeAgentFactory.newKnowledgeAgent( &quot;MyAgent&quot; );</font></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">kagent.applyChangeSet( ResourceFactory.newUrlResource( url ) );</font></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">KnowledgeBase kbase = kagent.getKnowledgeBase();</font></span><span lang="en-us"></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">In the</font></span><span lang="en-us"> <font face="Calibri">third</font></span><span lang="en-us"><font face="Calibri"> line, what is</font></span><span lang="en-us"> <font face="Calibri">“</font></span><span lang="en-us"><font face="Calibri">url</font></span><span lang="en-us"><font face="Calibri">”</font></span><span lang="en-us"><font face="Calibri"> and how is it defined in the java code?</font></span><span lang="en-us"><font face="Calibri">  I don</font></span><span lang="en-us"><font face="Calibri">’</font></span><span lang="en-us"><font face="Calibri">t know what to</font></span><span lang="en-us"> <font face="Calibri">set up here to make it work.</font></span><span lang="en-us"><font face="Calibri">  I</font></span><span lang="en-us"><font face="Calibri">’</font></span><span lang="en-us"><font face="Calibri">ve found this same</font> <font face="Calibri">code on</font></span><span lang="en-us"> <font face="Calibri">multiple</font></span><span lang="en-us"><font face="Calibri"> sites, but no answer to the question.</font></span><span lang="en-us"></span></p>




<p dir="LTR"><span lang="en-us"><font face="Calibri">Question #2:</font></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">How do I set up a Change Set XML file?  I see the XML, but I don</font></span><span lang="en-us"><font face="Calibri">’</font></span><span lang="en-us"><font face="Calibri">t know where to put the fi</font><font face="Calibri">le and how to link it into the code.</font></span><span lang="en-us"></span></p>




<p dir="LTR"><span lang="en-us"><font face="Calibri">Question #3:</font></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">Does KnowledgeAgent replace RuleAgent for invoking Guvnor</font></span><span lang="en-us">-<font face="Calibri">deployed</font></span><span lang="en-us"> <font face="Calibri">packages in 5.0.1?  If so, how do you speci</font><font face="Calibri">fy the</font></span><span lang="en-us"> <font face="Calibri">url of the deployed package from Guvnor?</font></span></p>




<p dir="LTR"><span lang="en-us"><font face="Calibri">Sorry if my questions are ignorant.  I</font></span><span lang="en-us"><font face="Calibri">’</font></span><span lang="en-us"><font face="Calibri">ve been trying to find these answers for several days and</font> <font face="Calibri">hit the point where I needed to get some help.</font></span></p>




<p dir="LTR"><span lang="en-us"><font face="Calibri">Thanks,</font></span></p>

<p dir="LTR"><span lang="en-us"><font face="Calibri">John</font></span><span lang="en-us"></span></p>

</div>
<br></div></div><div class="im">_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></div></blockquote></div><br><br clear="all"><br>-- <br>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br><br>Esteban Aliverti<br>
</div>
</blockquote></div><br><br clear="all"><br>-- <br>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br><br>Esteban Aliverti<br>
</div></div>