<div dir="ltr">Hi all,<div><br></div><div style>thanks a lot for your helpful answers.</div><div style><br></div><div style>I&#39;m looking forward to the update to 5.6.0. Is the mentioned time horizon (&quot;a few days&quot;) still realistic? I.e. could you recommend me to pause the evaluation of drools, instead of downgrading to 5.4.0?</div>
<div style><br></div><div style>We consider to use drools in a larger project, and I have to decide whether I recommend drools, or prefer a simpler design developed from scratch. As far it&#39;s an fact that I cannot recommend drools 5.5.0. </div>
<div style><br></div><div style>What version is reasonable to use for further evaluation?</div><div style><br></div><div style>Stefan </div><div style><br></div><div style><br></div><div style><br></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2013/4/19 Wolfgang Laun <span dir="ltr">&lt;<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 18/04/2013, Stefan Schuster &lt;<a href="mailto:stefan.m.schuster@gmail.com">stefan.m.schuster@gmail.com</a>&gt; wrote:<br>
&gt;<br>
</div><div class="im">&gt; Please don&#39;t misunderstand me, I have a deep respect for the developer of<br>
&gt; such complex systems like DROOLS, and  I know from my own code that bugs<br>
&gt; simply happen. But I wonder why there is still this version without any<br>
&gt; warning the official release?<br>
&gt;<br>
<br>
</div>Not putting out warnings when some release is known to be broken is a<br>
rather dark spot on the gloss of Drools. I have urged this before,<br>
mainly because<br>
not warning users is a primary cause for them wasting time and effort.<br>
<br>
Keep carping...<br>
<span class="HOEnZb"><font color="#888888">Wolfgang<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
&gt; Is it better to use an older version?<br>
&gt;<br>
&gt; best regards<br>
&gt;<br>
&gt; Stefan<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; 2013/4/18 Mark Proctor &lt;<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a>&gt;<br>
&gt;<br>
&gt;&gt; There are a lot of fixes in the 5.x master. Anyone verified their bugs<br>
&gt;&gt; against this? I suspect this is fixed in that.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Mark<br>
&gt;&gt; On 18 Apr 2013, at 16:21, Wolfgang Laun &lt;<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; &gt; Ah, my memory :-)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; <a href="http://lists.jboss.org/pipermail/rules-dev/2013-January/004338.html" target="_blank">http://lists.jboss.org/pipermail/rules-dev/2013-January/004338.html</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Mark has promised a fix for 3 months ago, but of course 5.5.0 remains<br>
&gt;&gt; broken.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; -W<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On 18/04/2013, Stefan Schuster &lt;<a href="mailto:stefan.m.schuster@gmail.com">stefan.m.schuster@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; Hi, thank you for your response.<br>
&gt;&gt; &gt;&gt; I&#39;m using the latest stable release of Drools 5.5.0 final.<br>
&gt;&gt; &gt;&gt; Eclipse is Juno Service Release 2.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Can you confirm, that the order 1,2,3 is the expected result?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; If this is a known bug, is there some kind of jira or bugzilla numer<br>
&gt;&gt; &gt;&gt; assigned to it?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2013/4/18 Wolfgang Laun &lt;<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; IIRC, this was a bug one or two minor versions ago. What version are<br>
&gt;&gt; you<br>
&gt;&gt; &gt;&gt;&gt; using?<br>
&gt;&gt; &gt;&gt;&gt; -W<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; On 18/04/2013, Stefan Schuster &lt;<a href="mailto:stefan.m.schuster@gmail.com">stefan.m.schuster@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;&gt;&gt; For the sake of  completeness, here is also the RuleRunner class<br>
&gt;&gt; &gt;&gt;&gt;&gt; used<br>
&gt;&gt; &gt;&gt;&gt;&gt; in<br>
&gt;&gt; &gt;&gt;&gt;&gt; this example:<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; package org.drools.tutorials.banking;<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import java.util.Collection;<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import org.drools.KnowledgeBase;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import org.drools.KnowledgeBaseFactory;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import org.drools.builder.KnowledgeBuilder;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import org.drools.builder.KnowledgeBuilderFactory;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import org.drools.builder.ResourceType;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import org.drools.definition.KnowledgePackage;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import org.drools.io.ResourceFactory;<br>
&gt;&gt; &gt;&gt;&gt;&gt; import org.drools.runtime.StatefulKnowledgeSession;<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; public class RuleRunner {<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;    public RuleRunner() {<br>
&gt;&gt; &gt;&gt;&gt;&gt;    }<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;    public void runRules(String[] rules,<br>
&gt;&gt; &gt;&gt;&gt;&gt;                         Object[] facts) {<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;        KnowledgeBase kbase =<br>
&gt;&gt; &gt;&gt;&gt;&gt; KnowledgeBaseFactory.newKnowledgeBase();<br>
&gt;&gt; &gt;&gt;&gt;&gt;        KnowledgeBuilder kbuilder =<br>
&gt;&gt; &gt;&gt;&gt;&gt; KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;        for ( int i = 0; i &lt; rules.length; i++ ) {<br>
&gt;&gt; &gt;&gt;&gt;&gt;            String ruleFile = rules[i];<br>
&gt;&gt; &gt;&gt;&gt;&gt;            System.out.println( &quot;Loading file: &quot; + ruleFile );<br>
&gt;&gt; &gt;&gt;&gt;&gt;            kbuilder.add( ResourceFactory.newClassPathResource(<br>
&gt;&gt; &gt;&gt;&gt;&gt; ruleFile,<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; RuleRunner.class ),<br>
&gt;&gt; &gt;&gt;&gt;&gt;                                  ResourceType.DRL );<br>
&gt;&gt; &gt;&gt;&gt;&gt;        }<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;        Collection&lt;KnowledgePackage&gt; pkgs =<br>
&gt;&gt; &gt;&gt;&gt;&gt; kbuilder.getKnowledgePackages();<br>
&gt;&gt; &gt;&gt;&gt;&gt;        kbase.addKnowledgePackages( pkgs );<br>
&gt;&gt; &gt;&gt;&gt;&gt;        StatefulKnowledgeSession ksession =<br>
&gt;&gt; &gt;&gt;&gt;&gt; kbase.newStatefulKnowledgeSession();<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;        for ( int i = 0; i &lt; facts.length; i++ ) {<br>
&gt;&gt; &gt;&gt;&gt;&gt;            Object fact = facts[i];<br>
&gt;&gt; &gt;&gt;&gt;&gt;            System.out.println( &quot;Inserting fact: &quot; + fact );<br>
&gt;&gt; &gt;&gt;&gt;&gt;            ksession.insert( fact );<br>
&gt;&gt; &gt;&gt;&gt;&gt;        }<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;        ksession.fireAllRules();<br>
&gt;&gt; &gt;&gt;&gt;&gt;    }<br>
&gt;&gt; &gt;&gt;&gt;&gt; }<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; 2013/4/18 Stefan Schuster &lt;<a href="mailto:stefan.m.schuster@gmail.com">stefan.m.schuster@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Hello,<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; I have a problem with the banking tutorial number 3, which is part<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; of<br>
&gt;&gt; &gt;&gt;&gt; the<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; examples of drools expert.<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; It simply adds some Numbers as facts, and retracts them in an<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; increasing<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; order.<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; It is very short, therefore I post the whole Code:<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; BankingExample3.java<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; _________________________________________________<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; package org.drools.tutorials.banking;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; public class BankingExample3 {<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;    public static void main(String[] args) {<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;        Number[] numbers = new Number[] {wrap(3), wrap(1), wrap(4),<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; wrap(1), wrap(5)};<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;        new RuleRunner().runRules( new String[] { &quot;Example3.drl&quot; },<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;                                   numbers );<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;    }<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;    private static Integer wrap(int i) {<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;        return new Integer(i);<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;    }<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; _________________________________________________<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Example3.drl:<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; _________________________________________________<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; package org.drools.tutorials.banking<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; rule &quot;Rule 01&quot;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;    when<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;        $number : Number()<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;        not Number( intValue &lt; $number.intValue )<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;    then<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;        System.out.println(&quot;Number found with value: &quot; +<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; $number.intValue() );<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;        retract( $number );<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; end<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; _________________________________________________<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Output:<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; _________________________________________________<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Loading file: Example3.drl<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Inserting fact: 3<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Inserting fact: 1<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Inserting fact: 4<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Inserting fact: 1<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Inserting fact: 5<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number found with value: 1<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number found with value: 1<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number found with value: 3<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number found with value: 4<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number found with value: 5<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; _________________________________________________<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; that seams absolute logically to me.<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; But now I alter the Numbers in the Java-Part:<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number[] numbers = new Number[] {wrap(3), wrap(1), wrap(2)};<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; and the output destroys everything I thought I understood:<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Loading file: Example3.drl<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Inserting fact: 3<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Inserting fact: 1<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Inserting fact: 2<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number found with value: 1<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number found with value: 3<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Number found with value: 2<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Can someone  reproduce this behavior?? It seams absolutely strange<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; to<br>
&gt;&gt; &gt;&gt;&gt; me.<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; I would have expected the order 1,2,3. Any explanations?<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt; Thanks in advance for helping me!<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt;&gt; rules-users mailing list<br>
&gt;&gt; &gt;&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt; &gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; rules-users mailing list<br>
&gt;&gt; &gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; rules-users mailing list<br>
&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;<br>
&gt;<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>
</div></div></blockquote></div><br></div>