[rules-users] Problem with Banking Tutorial

Mark Proctor mproctor at codehaus.org
Tue Jun 18 08:00:02 EDT 2013


We prioritise our product releases, for which there are paid subscriptions. Via the customer support portal, you can flag up bugs and they are fixed as a priority, under monitored SLAs. The "free" community releases, are best effort. We don't tend to do maintenance releases in the community, only the product releases - otherwise there would be no incentive or value to the products support subscriptions.

Our development branch is currently 6.x, so that is currently taking priority for our time. The 5.6 branch is ready to go, we just haven't had time to release it, we hope to do so shortly. But you could build it yourself, and use the resulting jar, rather than wait. 5.6 master is very stable, so that should not be an issue.

To understand the differences between project and product, please read this page. This is an important differentiation, to carefully balance open source R&D innovation, and revenue generation via a stable product - so my team and I can feed our families. 
http://blog.athico.com/2011/04/drools-jbpm-community-versus-product.html

Mark
On 18 Jun 2013, at 11:16, Stefan Schuster <stefan.m.schuster at gmail.com> wrote:

> Hello,
> 
> thanks you all for your support.
> 
> I have to announce that I could not recommend to use drools in our project. This Bug was one of the main reasons for it. - Can hardly belief that this is still the official stable release...
> We now implement a simplified solution for our problem from scratch. It will of course never have as many features as drools, neither in the backend nor in the user interface. 
> 
> Don't want to nag, just want to provide feedback.
> 
> Maybe I will have a look again in a year or two.
> best wishes
> 
> Stefan
> 
> 
> 
> 
> 
> 2013/4/23 Davide Sottara <dsotty at gmail.com>
> It is still realistic.. the team is preparing a beta release of 6.x.
> When that is done, I hope they will focus on finalizing 5.x.. 
> I am waiting for 5.6.Final myself :)
> You may have answered this question before.. could you give a try at
> 5.5.1-SNAPSHOT?
> Thanks for your patience
> Davide
> 
> On 04/23/2013 01:50 AM, Stefan Schuster wrote:
>> Hi all,
>> 
>> thanks a lot for your helpful answers.
>> 
>> I'm looking forward to the update to 5.6.0. Is the mentioned time horizon ("a few days") still realistic? I.e. could you recommend me to pause the evaluation of drools, instead of downgrading to 5.4.0?
>> 
>> 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's an fact that I cannot recommend drools 5.5.0. 
>> 
>> What version is reasonable to use for further evaluation?
>> 
>> Stefan 
>> 
>> 
>> 
>> 
>> 
>> 2013/4/19 Wolfgang Laun <wolfgang.laun at gmail.com>
>> On 18/04/2013, Stefan Schuster <stefan.m.schuster at gmail.com> wrote:
>> >
>> > Please don't misunderstand me, I have a deep respect for the developer of
>> > such complex systems like DROOLS, and  I know from my own code that bugs
>> > simply happen. But I wonder why there is still this version without any
>> > warning the official release?
>> >
>> 
>> Not putting out warnings when some release is known to be broken is a
>> rather dark spot on the gloss of Drools. I have urged this before,
>> mainly because
>> not warning users is a primary cause for them wasting time and effort.
>> 
>> Keep carping...
>> Wolfgang
>> 
>> 
>> 
>> 
>> > Is it better to use an older version?
>> >
>> > best regards
>> >
>> > Stefan
>> >
>> >
>> >
>> >
>> > 2013/4/18 Mark Proctor <mproctor at codehaus.org>
>> >
>> >> There are a lot of fixes in the 5.x master. Anyone verified their bugs
>> >> against this? I suspect this is fixed in that.
>> >>
>> >>
>> >> Mark
>> >> On 18 Apr 2013, at 16:21, Wolfgang Laun <wolfgang.laun at gmail.com> wrote:
>> >>
>> >> > Ah, my memory :-)
>> >> >
>> >> > http://lists.jboss.org/pipermail/rules-dev/2013-January/004338.html
>> >> >
>> >> > Mark has promised a fix for 3 months ago, but of course 5.5.0 remains
>> >> broken.
>> >> >
>> >> > -W
>> >> >
>> >> > On 18/04/2013, Stefan Schuster <stefan.m.schuster at gmail.com> wrote:
>> >> >> Hi, thank you for your response.
>> >> >> I'm using the latest stable release of Drools 5.5.0 final.
>> >> >> Eclipse is Juno Service Release 2.
>> >> >>
>> >> >> Can you confirm, that the order 1,2,3 is the expected result?
>> >> >>
>> >> >> If this is a known bug, is there some kind of jira or bugzilla numer
>> >> >> assigned to it?
>> >> >>
>> >> >>
>> >> >>
>> >> >> 2013/4/18 Wolfgang Laun <wolfgang.laun at gmail.com>
>> >> >>
>> >> >>> IIRC, this was a bug one or two minor versions ago. What version are
>> >> you
>> >> >>> using?
>> >> >>> -W
>> >> >>>
>> >> >>> On 18/04/2013, Stefan Schuster <stefan.m.schuster at gmail.com> wrote:
>> >> >>>> For the sake of  completeness, here is also the RuleRunner class
>> >> >>>> used
>> >> >>>> in
>> >> >>>> this example:
>> >> >>>>
>> >> >>>> package org.drools.tutorials.banking;
>> >> >>>>
>> >> >>>> import java.util.Collection;
>> >> >>>>
>> >> >>>> import org.drools.KnowledgeBase;
>> >> >>>> import org.drools.KnowledgeBaseFactory;
>> >> >>>> import org.drools.builder.KnowledgeBuilder;
>> >> >>>> import org.drools.builder.KnowledgeBuilderFactory;
>> >> >>>> import org.drools.builder.ResourceType;
>> >> >>>> import org.drools.definition.KnowledgePackage;
>> >> >>>> import org.drools.io.ResourceFactory;
>> >> >>>> import org.drools.runtime.StatefulKnowledgeSession;
>> >> >>>>
>> >> >>>> public class RuleRunner {
>> >> >>>>
>> >> >>>>    public RuleRunner() {
>> >> >>>>    }
>> >> >>>>
>> >> >>>>    public void runRules(String[] rules,
>> >> >>>>                         Object[] facts) {
>> >> >>>>
>> >> >>>>        KnowledgeBase kbase =
>> >> >>>> KnowledgeBaseFactory.newKnowledgeBase();
>> >> >>>>        KnowledgeBuilder kbuilder =
>> >> >>>> KnowledgeBuilderFactory.newKnowledgeBuilder();
>> >> >>>>
>> >> >>>>        for ( int i = 0; i < rules.length; i++ ) {
>> >> >>>>            String ruleFile = rules[i];
>> >> >>>>            System.out.println( "Loading file: " + ruleFile );
>> >> >>>>            kbuilder.add( ResourceFactory.newClassPathResource(
>> >> >>>> ruleFile,
>> >> >>>>
>> >> >>>> RuleRunner.class ),
>> >> >>>>                                  ResourceType.DRL );
>> >> >>>>        }
>> >> >>>>
>> >> >>>>        Collection<KnowledgePackage> pkgs =
>> >> >>>> kbuilder.getKnowledgePackages();
>> >> >>>>        kbase.addKnowledgePackages( pkgs );
>> >> >>>>        StatefulKnowledgeSession ksession =
>> >> >>>> kbase.newStatefulKnowledgeSession();
>> >> >>>>
>> >> >>>>        for ( int i = 0; i < facts.length; i++ ) {
>> >> >>>>            Object fact = facts[i];
>> >> >>>>            System.out.println( "Inserting fact: " + fact );
>> >> >>>>            ksession.insert( fact );
>> >> >>>>        }
>> >> >>>>
>> >> >>>>        ksession.fireAllRules();
>> >> >>>>    }
>> >> >>>> }
>> >> >>>>
>> >> >>>>
>> >> >>>> 2013/4/18 Stefan Schuster <stefan.m.schuster at gmail.com>
>> >> >>>>
>> >> >>>>> Hello,
>> >> >>>>>
>> >> >>>>> I have a problem with the banking tutorial number 3, which is part
>> >> >>>>> of
>> >> >>> the
>> >> >>>>> examples of drools expert.
>> >> >>>>> It simply adds some Numbers as facts, and retracts them in an
>> >> >>>>> increasing
>> >> >>>>> order.
>> >> >>>>>
>> >> >>>>> It is very short, therefore I post the whole Code:
>> >> >>>>>
>> >> >>>>>
>> >> >>>>> BankingExample3.java
>> >> >>>>> _________________________________________________
>> >> >>>>> package org.drools.tutorials.banking;
>> >> >>>>>
>> >> >>>>> public class BankingExample3 {
>> >> >>>>>    public static void main(String[] args) {
>> >> >>>>>        Number[] numbers = new Number[] {wrap(3), wrap(1), wrap(4),
>> >> >>>>> wrap(1), wrap(5)};
>> >> >>>>>        new RuleRunner().runRules( new String[] { "Example3.drl" },
>> >> >>>>>                                   numbers );
>> >> >>>>>    }
>> >> >>>>>
>> >> >>>>>    private static Integer wrap(int i) {
>> >> >>>>>        return new Integer(i);
>> >> >>>>>    }
>> >> >>>>> }
>> >> >>>>> _________________________________________________
>> >> >>>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>> Example3.drl:
>> >> >>>>> _________________________________________________
>> >> >>>>> package org.drools.tutorials.banking
>> >> >>>>>
>> >> >>>>> rule "Rule 01"
>> >> >>>>>    when
>> >> >>>>>        $number : Number()
>> >> >>>>>        not Number( intValue < $number.intValue )
>> >> >>>>>    then
>> >> >>>>>        System.out.println("Number found with value: " +
>> >> >>>>> $number.intValue() );
>> >> >>>>>        retract( $number );
>> >> >>>>> end
>> >> >>>>> _________________________________________________
>> >> >>>>>
>> >> >>>>>
>> >> >>>>> Output:
>> >> >>>>> _________________________________________________
>> >> >>>>> Loading file: Example3.drl
>> >> >>>>> Inserting fact: 3
>> >> >>>>> Inserting fact: 1
>> >> >>>>> Inserting fact: 4
>> >> >>>>> Inserting fact: 1
>> >> >>>>> Inserting fact: 5
>> >> >>>>> Number found with value: 1
>> >> >>>>> Number found with value: 1
>> >> >>>>> Number found with value: 3
>> >> >>>>> Number found with value: 4
>> >> >>>>> Number found with value: 5
>> >> >>>>> _________________________________________________
>> >> >>>>>
>> >> >>>>>
>> >> >>>>> that seams absolute logically to me.
>> >> >>>>> But now I alter the Numbers in the Java-Part:
>> >> >>>>> Number[] numbers = new Number[] {wrap(3), wrap(1), wrap(2)};
>> >> >>>>>
>> >> >>>>> and the output destroys everything I thought I understood:
>> >> >>>>> Loading file: Example3.drl
>> >> >>>>> Inserting fact: 3
>> >> >>>>> Inserting fact: 1
>> >> >>>>> Inserting fact: 2
>> >> >>>>> Number found with value: 1
>> >> >>>>> Number found with value: 3
>> >> >>>>> Number found with value: 2
>> >> >>>>>
>> >> >>>>>
>> >> >>>>> Can someone  reproduce this behavior?? It seams absolutely strange
>> >> >>>>> to
>> >> >>> me.
>> >> >>>>> I would have expected the order 1,2,3. Any explanations?
>> >> >>>>>
>> >> >>>>> Thanks in advance for helping me!
>> >> >>>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>
>> >> >>> _______________________________________________
>> >> >>> rules-users mailing list
>> >> >>> rules-users at lists.jboss.org
>> >> >>> https://lists.jboss.org/mailman/listinfo/rules-users
>> >> >>>
>> >> >>
>> >> > _______________________________________________
>> >> > rules-users mailing list
>> >> > rules-users at lists.jboss.org
>> >> > https://lists.jboss.org/mailman/listinfo/rules-users
>> >>
>> >>
>> >> _______________________________________________
>> >> rules-users mailing list
>> >> rules-users at lists.jboss.org
>> >> https://lists.jboss.org/mailman/listinfo/rules-users
>> >>
>> >
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>> 
>> 
>> 
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20130618/97b1c59b/attachment-0001.html 


More information about the rules-users mailing list