Depending on the amount of rules you have, compilation could be expensive. I recommend you to use the binary format instead of the drl. <div>You already figured out the things you need to change in your code, so there is nothing else to say.</div>
<div><br></div><div>Best Regards, <br clear="all"><br>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br><br>Esteban Aliverti<br>- Developer @ <a href="http://www.plugtree.com" target="_blank">http://www.plugtree.com </a><br>- Blog @ <a href="http://ilesteban.wordpress.com" target="_blank">http://ilesteban.wordpress.com</a><br>
<br><br><div class="gmail_quote">2011/1/6 Dean Whisnant <span dir="ltr"><<a href="mailto:dean@basys.com">dean@basys.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">A bit of a follow-up on this:</span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">When I build the package inside of Guvnor it shows me the following on the package build screen:</span></p><table border="0" cellpadding="0"><tbody><tr><td valign="top" style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">Last Modified:</span></b></p></td><td style="padding:.75pt .75pt .75pt .75pt"><p class="MsoNormal" style="line-height:18.0pt">
<b><span style="font-size:11.0pt;color:#1F497D">Wednesday, January 05, 2011 12:22:25 PM</span></b></p></td></tr><tr><td valign="top" style="padding:.75pt .75pt .75pt .75pt"><p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt">
<b><span style="font-size:11.0pt;color:#1F497D">Last contributor:</span></b></p></td><td style="padding:.75pt .75pt .75pt .75pt"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">admin</span></b></p>
</td></tr><tr><td valign="top" style="padding:.75pt .75pt .75pt .75pt"><p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">Date created:</span></b></p>
</td><td style="padding:.75pt .75pt .75pt .75pt"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">Wednesday, January 05, 2011 12:15:42 PM</span></b></p></td></tr><tr><td valign="top" style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">Show package source:</span></b></p></td><td style="padding:.75pt .75pt .75pt .75pt"><p class="MsoNormal" style="line-height:18.0pt">
<b><span style="font-size:11.0pt;color:#1F497D">Show package source</span></b></p></td></tr><tr><td valign="top" style="padding:.75pt .75pt .75pt .75pt"><p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt">
<b><span style="font-size:11.0pt;color:#1F497D">URL for package documentation:</span></b></p></td><td style="padding:.75pt .75pt .75pt .75pt"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top" style="padding:0in 0in 0in 0in">
<p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><a href="http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST/documentation.pdf" target="_blank"><span style="color:#1F497D;text-decoration:none">http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST/documentation.pdf</span></a></span></b></p>
</td><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><img border="0" width="16" height="16" src="cid:image001.gif@01CBADB2.904201E0" alt="Description: http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/images/information.gif"></span></b><b><span style="font-size:11.0pt;color:#1F497D"></span></b></p>
</td></tr></tbody></table></td></tr><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">URL for package source:</span></b></p>
</td><td style="padding:0in 0in 0in 0in"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><a href="http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST.drl" target="_blank"><span style="color:#1F497D;text-decoration:none">http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST.drl</span></a></span></b></p>
</td><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><img border="0" width="16" height="16" src="cid:image001.gif@01CBADB2.904201E0" alt="Description: http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/images/information.gif"></span></b><b><span style="font-size:11.0pt;color:#1F497D"></span></b></p>
</td></tr></tbody></table></td></tr><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">URL for package binary:</span></b></p>
</td><td style="padding:0in 0in 0in 0in"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><a href="http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST" target="_blank"><span style="color:#1F497D;text-decoration:none">http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST</span></a></span></b></p>
</td><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><img border="0" width="16" height="16" src="cid:image001.gif@01CBADB2.904201E0" alt="Description: http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/images/information.gif"></span></b><b><span style="font-size:11.0pt;color:#1F497D"></span></b></p>
</td></tr></tbody></table></td></tr><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">URL for running tests:</span></b></p>
</td><td style="padding:0in 0in 0in 0in"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><a href="http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST/SCENARIOS" target="_blank"><span style="color:#1F497D;text-decoration:none">http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST/SCENARIOS</span></a></span></b></p>
</td><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><img border="0" width="16" height="16" src="cid:image001.gif@01CBADB2.904201E0" alt="Description: http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/images/information.gif"></span></b><b><span style="font-size:11.0pt;color:#1F497D"></span></b></p>
</td></tr></tbody></table></td></tr><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">Change Set:</span></b></p>
</td><td style="padding:0in 0in 0in 0in"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><a href="http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST/ChangeSet.xml" target="_blank"><span style="color:#1F497D;text-decoration:none">http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/LATEST/ChangeSet.xml</span></a></span></b></p>
</td><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D"><img border="0" width="16" height="16" src="cid:image001.gif@01CBADB2.904201E0" alt="Description: http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/images/information.gif"></span></b><b><span style="font-size:11.0pt;color:#1F497D"></span></b></p>
</td></tr></tbody></table></td></tr><tr><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" align="right" style="text-align:right;line-height:18.0pt"><b><span style="font-size:11.0pt;color:#1F497D">Status:</span></b></p>
</td><td style="padding:0in 0in 0in 0in"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top" style="padding:0in 0in 0in 0in"></td><td valign="top" style="padding:0in 0in 0in 0in"><p class="MsoNormal" style="line-height:18.0pt">
<b><span style="font-size:11.0pt;color:#1F497D"><img border="0" width="16" height="16" src="cid:image002.gif@01CBADB2.904201E0" alt="Description: http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/images/edit.gif"></span></b><b><span style="font-size:11.0pt;color:#1F497D"></span></b></p>
</td></tr></tbody></table></td></tr></tbody></table><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">In the example below you showed how I could use the .drl, but is there an advantage for me to directly use the package here? Or say I create a package snapshot and it gives me the following url</span></p>
<p class="MsoNormal" style="text-indent:.5in"><b><span style="font-size:11.0pt;color:#1F497D"><a href="http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/20110106" target="_blank">http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/20110106</a></span></b></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Does using this package decrease the runtime inside of my app because Guvnor has pre-built the tables?</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">If so, based on the example below, how would I implement using something like this package snapshot? Would it be as simple as:</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal" style="text-indent:.5in"><b><span style="font-size:11.0pt;color:#1F497D">final String STANDARD_URL= <a href="http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/20110106" target="_blank">http://vmjboss:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/A_RDR_v9/20110106</a>;</span></b></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">and then</span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> <b>kbuilder.add( standardUrlResource, ResourceType.<span style="background:yellow">PKG</span>);</b></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">leaving all other lines the same?</span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Thank you!</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Dean Whisnant</span></p><div class="im"><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a> [mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>] <b>On Behalf Of </b>Michael Anstis<br>
<b>Sent:</b> Tuesday, January 04, 2011 3:31 AM<br><b>To:</b> Rules Users List<br><b>Subject:</b> Re: [rules-users] Knowledge Base and Guvnor</span></p><p class="MsoNormal"> </p></div><p class="MsoNormal" style="margin-bottom:12.0pt">
Hi,</p><div><div></div><div class="h5"><br><br>You should be able to use the URL syntax with KnowledgeBuilder as follows:-<br><span style="font-family:"Courier New""><br>final String STANDARD_URL = "<a href="http://your-guvnor-instance-host/org.drools.guvnor.Guvnor/package/standard/LATEST.drl" target="_blank">http://your-guvnor-instance-host/org.drools.guvnor.Guvnor/package/standard/LATEST.drl</a>";<br>
final String CUSTOMER_URL="<a href="http://your-guvnor-instance-host/org.drools.guvnor.Guvnor/package/customer/LATEST.drl" target="_blank">http://your-guvnor-instance-host/org.drools.guvnor.Guvnor/package/customer/LATEST.drl</a>";<br>
<br>KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();<br><br>UrlResource standardUrlResource = (UrlResource)ResourceFactory.newUrlResource(STANDARD_URL);<br>standardUrlResource.setBasicAuthentication("enabled");<br>
standardUrlResource.setUsername("xyz");<br>standardUrlResource.setPassword("abc");<br><br>UrlResource customerUrlResource = (UrlResource)ResourceFactory.newUrlResource(CUSTOMER_URL);<br>customerUrlResource.setBasicAuthentication("enabled");<br>
customerUrlResource.setUsername("xyz");<br>customerUrlResource.setPassword("abc");<br><br>kbuilder.add( standardUrlResource, ResourceType.DRL);<br>kbuilder.add( customerUrlResource, ResourceType.DRL);<br>
<br>assertFalse( kbuilder.hasErrors() );<br>KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();<br></span><br>I don't think you'd need to (or want to) create two KnowledgeBases: You could ensure "standard" rules are applied first by any of Drools' agenda controls; i.e. salience, agenda-group or ruleflow; plus sharing a single KnowledgeBase ensures rules in both packages that share patterns are optimissed in the RETE network.<br>
<br>Use of ChangeSet could make things a little simpler too (rather than the individual UrlResources).<br><br>Cheers,<br><br>Mike</div></div><p></p><div><div></div><div class="h5"><div><p class="MsoNormal">On 3 January 2011 20:03, Dean Whisnant <<a href="mailto:dean@basys.com" target="_blank">dean@basys.com</a>> wrote:</p>
<p class="MsoNormal">Hi all, thank you for all the help in the past.<br><br>I'm to a point in my project of implementing Guvnor built packages into my java code that calls drools.<br><br>In the past I used the simple solution of building the knowledge agent on a .drl file as follows:<br>
<br> //Setup the knowledge session for drools<br> private static KnowledgeBase readKnowledgeBase() throws Exception {<br> KnowledgeBuilder kbuilder = KnowledgeBuilderFactory<br> .newKnowledgeBuilder();<br>
kbuilder.add(ResourceFactory.newClassPathResource("Standard837P.drl"),<br> ResourceType.DRL);<br> KnowledgeBuilderErrors errors = kbuilder.getErrors();<br>
if (errors.size() > 0) {<br> for (KnowledgeBuilderError error : errors) {<br> System.err.println(error);<br> }<br> throw new IllegalArgumentException("Could not parse knowledge.");<br>
}<br> KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();<br> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br> return kbase;<br> }<br>
<br>A little background before the question. My project includes one set of rules that are standard business logic, we'll call that STANDARD for now and one set of rules that any one of my 45 customers could have created, we'll call CUSTOMER, on our common guvnor server. My java code knows which customer is running the app, so determining which two packages I want to fire is simple. The part that is not as straight forward for me is how I then I migrate using the guvnor urls in my above code.<br>
<br>I thought it would be as easy as to replace "Standard837P.drl" above with the STANDARD url and create a second add that would use the CUSTOMER url.<br><br>I also want all of my STANDARD rules applied before my CUSTOMER rules are applied. This got me thinking that I need to have two independent knowledge bases running so that I fire all in the first and then fire all in the second.<br>
<br>Backing up a bit again, my application looks through an incoming file inserting facts into the knowledge base for one medical claim line item, fires rules, writes out results to a database, and then moves on to the next claim line item in the file.<br>
<br>1) What would the syntax need to be to implement the STANDARD and CUSTOMER urls?<br>2) Would I need to create two independent knowledge bases?<br>3) DO you see any performance issues in this arrangement?<br><br>Thank you!<br>
<br>Dean<br><br>_______________________________________________<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></p>
</div><p class="MsoNormal"> </p></div></div></div></div><br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">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></blockquote></div><br></div>