<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Thanks :-)</div><br><div><div>On 24/04/2009, at 11:19 PM, David Sinclair wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Darrin,<br><br>You have it except for 1 important line of code<br><br> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br><br>Need to add the built packages to the rule base :)<br><br><div class="gmail_quote"> 2009/4/24 Darrin Mison <span dir="ltr"><<a href="mailto:dmison@redhat.com">dmison@redhat.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> <div style=""><div>Hi, I'm very new to Drools and I'm trying to get code running based on the first sample code from the QuickStart chapter of the drools-doc-expert.</div><div><br></div><div>It compiles and runs (tried on commandline & in JBoss Dev Studio <a href="http://2.0.0.GA" target="_blank">2.0.0.GA</a>) but does not work, ie it always says "rejected" instead of "accepted". </div> <div><br></div><div>I've had to fill out a bit of code to get it to compile so I may be doing something completely wrong. I've included the code (rule, model, main) below. </div><div><br></div><div>Any help would be really appreciated.</div> <div><br></div><div>Darrin</div><div><br></div><div><br></div><div><br></div><div>#Sample.drl</div><div><div style="margin: 0px;"><span style="color: rgb(150, 0, 0);">package</span> com.company.license</div><div style="margin: 0px; min-height: 15px;"> <span style="color: rgb(0, 128, 0);"><span style="color: rgb(150, 0, 0);">rule</span><span style="color: rgb(0, 0, 0);"> </span>"Is of valid age"<span style="color: rgb(0, 0, 0);"> </span></span></div><div style="margin: 0px; color: rgb(150, 0, 0);"> when<span style="color: rgb(0, 0, 0);"> </span></div><div style="margin: 0px;"> $a : Applicant( age > 18);</div><div style="margin: 0px; color: rgb(150, 0, 0);">then<span style="color: rgb(0, 0, 0);"> </span></div><div style="margin: 0px;"> $a.setValid( <span style="color: rgb(150, 0, 0);">true</span> ); </div><div style="margin: 0px;"><span style="white-space: pre;">        </span>System.out.println(<span style="color: rgb(0, 128, 0);">"true"</span>);</div> <div style="margin: 0px; color: rgb(150, 0, 0);">end</div></div><div><br></div><div>//Applicant.java</div><div><div style="margin: 0px;"><span style="color: rgb(127, 0, 85);">package</span> com.company.license;</div><div style="margin: 0px; min-height: 15px;"> <span style="color: rgb(127, 0, 85);">public</span> <span style="color: rgb(127, 0, 85);">class</span> Applicant </div><div style="margin: 0px;">{ </div><div style="margin: 0px;"> <span style="color: rgb(127, 0, 85);">private</span> String <span style="color: rgb(0, 0, 192);">name</span>; </div> <div style="margin: 0px; color: rgb(127, 0, 85);"><span style="color: rgb(0, 0, 0);"> </span>private<span style="color: rgb(0, 0, 0);"> </span>int<span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 192);">Age</span><span style="color: rgb(0, 0, 0);">; </span></div> <div style="margin: 0px; color: rgb(127, 0, 85);"><span style="color: rgb(0, 0, 0);"> </span>private<span style="color: rgb(0, 0, 0);"> </span>boolean<span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 192);">valid</span><span style="color: rgb(0, 0, 0);">; </span></div> <div style="margin: 0px; min-height: 15px;"><br></div><div style="margin: 0px; color: rgb(63, 127, 95);"><span style="color: rgb(0, 0, 0);"> </span>// getter and setter methods here </div><div style="margin: 0px;"><span style="white-space: pre;">        </span><span style="color: rgb(127, 0, 85);">public</span> String getName() { <span style="color: rgb(127, 0, 85);">return</span> <span style="color: rgb(0, 0, 192);">name</span>; }</div> <div style="margin: 0px;"><span style="white-space: pre;">        </span><span style="color: rgb(127, 0, 85);">public</span> <span style="color: rgb(127, 0, 85);">int</span> getAge()<span style="white-space: pre;">        </span>{ <span style="color: rgb(127, 0, 85);">return</span> <span style="color: rgb(0, 0, 192);">Age</span>; }</div> <div style="margin: 0px;"><span style="white-space: pre;">        </span><span style="color: rgb(127, 0, 85);">public</span> <span style="color: rgb(127, 0, 85);">boolean</span> getValid(){ <span style="color: rgb(127, 0, 85);">return</span> <span style="color: rgb(0, 0, 192);">valid</span>; }</div> <div style="margin: 0px;"><span style="white-space: pre;">        </span><span style="color: rgb(127, 0, 85);">public</span> <span style="color: rgb(127, 0, 85);">void</span> setName(String s){ <span style="color: rgb(127, 0, 85);">this</span>.<span style="color: rgb(0, 0, 192);">name</span> = s; }</div> <div style="margin: 0px;"><span style="white-space: pre;">        </span><span style="color: rgb(127, 0, 85);">public</span> <span style="color: rgb(127, 0, 85);">void</span> setAge(<span style="color: rgb(127, 0, 85);">int</span> i){ <span style="color: rgb(127, 0, 85);">this</span>.<span style="color: rgb(0, 0, 192);">Age</span> = i; }</div> <div style="margin: 0px;"><span style="white-space: pre;">        </span><span style="color: rgb(127, 0, 85);">public</span> <span style="color: rgb(127, 0, 85);">void</span> setValid(<span style="color: rgb(127, 0, 85);">boolean</span> v){ <span style="color: rgb(127, 0, 85);">this</span>.<span style="color: rgb(0, 0, 192);">valid</span> = v; }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; min-height: 15px; "><span style="white-space: pre;">        </span><br> </div><div style="margin: 0px;">}</div><div style="margin: 0px;"><br></div><div style="margin: 0px;"><br></div><div style="margin: 0px;">//ruletest.java</div><div style="margin: 0px;"><div style="margin: 0px;">package com.company.license;</div> <div style="margin: 0px;">import org.drools.builder.*;</div><div style="margin: 0px;">import org.drools.io.*;</div><div style="margin: 0px;">import org.drools.runtime.*;</div><div style="margin: 0px;">import org.drools.*;</div> <div style="margin: 0px;"><br></div><div style="margin: 0px;">public class ruletest</div><div style="margin: 0px;">{</div><div style="margin: 0px;"><span style="white-space: pre;">        </span>public ruletest(){}</div><div style="margin: 0px;"> <span style="white-space: pre;">        </span></div><div style="margin: 0px;"><span style="white-space: pre;">        </span>public static void main(String args[])</div><div style="margin: 0px;"><span style="white-space: pre;">        </span>{</div> <div style="margin: 0px;"><span style="white-space: pre;">                </span>ruletest rt = new ruletest();</div><div style="margin: 0px;"><span style="white-space: pre;">                </span>rt.go();</div><div style="margin: 0px;"><span style="white-space: pre;">        </span>}</div> <div style="margin: 0px;"><br></div><div style="margin: 0px;"><span style="white-space: pre;">        </span>public void go()</div><div style="margin: 0px;"><span style="white-space: pre;">        </span>{</div><div style="margin: 0px;"> <span style="white-space: pre;">                </span>Applicant dude = new Applicant();</div><div style="margin: 0px;"><span style="white-space: pre;">                </span>dude.setName("Rufus");</div><div style="margin: 0px;"><span style="white-space: pre;">                </span>dude.setAge(32);</div> <div style="margin: 0px;"><br></div><div style="margin: 0px;"><span style="white-space: pre;">                </span>System.out.println(dude.getName());</div><div style="margin: 0px;"><span style="white-space: pre;">                </span>System.out.println("test: "+dude.getValid());</div> <div style="margin: 0px;"><span style="white-space: pre;">                </span></div><div style="margin: 0px;"><span style="white-space: pre;">                </span>KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); </div> <div style="margin: 0px;"><span style="white-space: pre;">                </span>Resource ruleResource = ResourceFactory.newClassPathResource( "Sample.drl", getClass() );</div><div style="margin: 0px;"><br></div><div style="margin: 0px;"> <span style="white-space: pre;">                </span>kbuilder.add( ruleResource, ResourceType.DRL ); </div><div style="margin: 0px;"><br></div><div style="margin: 0px;"><span style="white-space: pre;">                </span>if ( kbuilder.hasErrors() ) </div> <div style="margin: 0px;"><span style="white-space: pre;">                </span> System.err.println( kbuilder.getErrors().toString() ); </div><div style="margin: 0px;"><br></div><div style="margin: 0px;"><span style="white-space: pre;">                </span>KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();</div> <div style="margin: 0px;"><span style="white-space: pre;">                </span>StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession(); </div><div style="margin: 0px;"><br></div><div style="margin: 0px;"><span style="white-space: pre;">                </span>System.out.println( dude.getValid() ); //should display false</div> <div style="margin: 0px;"><span style="white-space: pre;">                </span>ksession.execute( dude ); </div><div style="margin: 0px;"><span style="white-space: pre;">                </span></div><div style="margin: 0px;"><span style="white-space: pre;">                </span>if (dude.getValid())</div> <div style="margin: 0px;"><span style="white-space: pre;">                </span> System.out.println("Application approved"); //should display due to hardcoded as of 32</div><div style="margin: 0px;"><span style="white-space: pre;">                </span> else</div> <div style="margin: 0px;"><span style="white-space: pre;">                </span> System.out.println("Application rejected");</div><div style="margin: 0px;"><span style="white-space: pre;">        </span>} </div><div style="margin: 0px;"> }</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> _______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/rules-users<br></blockquote></div><br></body></html>