Re: [rules-users] Problems running brms
That solved the problem. Thanks. --Aziz Fernando Meyer <[EMAIL PROTECTED]> wrote: Aziz, It was a problem with our last build, please download the latest brms war from http://labs.jboss.com/drools/downloads Regards Fernando Meyer http://fmeyer.org [EMAIL PROTECTED] PGP: 0xD804DDFB On Jul 27, 2007, at 6:17 PM, Aziz Boxwala wrote: I am having a problem running brms. I cannot view any part of the web page except the mast head. I earlier had downloaded and tried out brms 4.0 MR3 and it appeared to work fine. I then downloaded a continuous build release and subsequently the 4.0.0 release. In both of these, I encountered the problem. I am running the brms under JBoss AS 4.2 on Windows Vista. I have used IE 7, Firefox 2.0.0.5 and Safari as the browser. --Aziz ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Drools Puzzle #1: Ages of the sons
Hallo all! I talked about running a periodic puzzle solving contest in the user mailing list to some people in the drools team. They have never done it before so did not know how this contest will come out. However, I was allowed to make the first try. If no body is interested, there won't be any Drools Puzzle #2. Sorry for the spam if you do not like this at all. In the end of this email you can see how I came up with this idea. So, here is the puzzle for round No. 1: Difficulty level: settler An old man asked a mathematician to guess the ages of his three sons. Old man said: "The product of their ages is 36." Mathematician said: "I need more information." Old man said:"Over there you can see a building. The sum of their ages equals the number of the windows in that building." After a short while the mathematician said: "I need more information." Old man said: "The oldest son has blue eyes." Mathematician said: "I got it." This is a simple puzzle, you may not need any computer to solve it. But here are the rules: 1. Solution (the core algorithm) must be written in drools. Any dialect is allowed. Any DSL is allowed. 2. Any kind of user interface is allowed. 3. Make your program as easy to test as possible. Please attach a simple and short readme file about how to build/test/deploy it. 4. The drools team will measure the performance of all submissions on a same computer. 3. The winner will be allowed to post the next puzzle. 4. Any participator, no matter finally win or not, will get points for each participation. Drools team will run a global ranking system and build a hall of fame for all participators. At the end of the year, the one who has most points will be awarded with ( Drools team please fill here, something like a T-shirt or ?). Top ten people in the hall of fame will be awarded with (Drools team please fill here). 5. If there are many, many participators, the Drools team might consider things like "shortest run-time award", "least memory-usage award", "best UI award", "shortest code award", etc. for each puzzle. 6. Currently the puzzle will come once half month. Submission deadline of this round is August 15th, 2007. 7. Please do not post your solution to the user mailing list, since everybody can see your program before the deadline. Drools team please specify an email account to which participators can post solutions. 8. Best/inspiring solutions will be disclosed when next round is on. 9. If any Drools bug is caught during your solving of the puzzle, the Drools team will award you with (Drools team please fill here). --- Any constructive advice and suggestion about the rules of Drools Puzzle is welcome. Here is guideline for posting puzzles: 1. You do not want to scare people away with too difficult puzzles or bore people with questions like 1+1=?, so please consider a proper difficulty level for the puzzle. 2. NP-complete or NP-hard is okay. For some NP-hard problems, sub-optimal solutions can be achieved efficiently. But do please tag the difficulty level as something like "veteran", "guru", etc. 3. Complexity aside, there is still scope and testability consideration. Puzzles like "How to integrate my 15 different kind of services objects and my entity home with Drools?" might be algorithmically not difficult, but the application-building can really take a lot of time and energy, and it is not straightforward to test the solution. 4. The purposes of this contest are: 4.1 To learn from each other, enhance our programming skill and learn good algorithms, good implementations. 4.2 To encourage people to explore features of Drools. 4.3 For fun. So your puzzle should not take too much work to solve. It should not mentally or physically torture participators. - This idea was inspired by a "Weekly Challenge" running on dpreview.com user forum and GOTM from http://gotm.civfanatics.net/ On dpreview.com, a subject is posted by the winner of the prior week, people can post their photos to compete. On civfanatics.net, an initial configuration file is posted each month, and gamers submit their end results for ranking. Both of these two non-official contests are running very well, I hope Drools Puzzle will turn out a fun thing too. Regards and nice weekend, Ellen ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Problems running brms
Aziz, It was a problem with our last build, please download the latest brms war from http://labs.jboss.com/drools/downloads Regards Fernando Meyer http://fmeyer.org [EMAIL PROTECTED] PGP: 0xD804DDFB On Jul 27, 2007, at 6:17 PM, Aziz Boxwala wrote: I am having a problem running brms. I cannot view any part of the web page except the mast head. I earlier had downloaded and tried out brms 4.0 MR3 and it appeared to work fine. I then downloaded a continuous build release and subsequently the 4.0.0 release. In both of these, I encountered the problem. I am running the brms under JBoss AS 4.2 on Windows Vista. I have used IE 7, Firefox 2.0.0.5 and Safari as the browser. --Aziz ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Problems running brms
I am having a problem running brms. I cannot view any part of the web page except the mast head. I earlier had downloaded and tried out brms 4.0 MR3 and it appeared to work fine. I then downloaded a continuous build release and subsequently the 4.0.0 release. In both of these, I encountered the problem. I am running the brms under JBoss AS 4.2 on Windows Vista. I have used IE 7, Firefox 2.0.0.5 and Safari as the browser. --Aziz ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] (no subject)
Hi everybody I just checked in new maven2 artifacts to maven repository, Now it counts with deployment metadata info and md5 + sha1 checksum. Regards. Fernando Meyer http://fmeyer.org [EMAIL PROTECTED] PGP: 0xD804DDFB ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Updated Maven2 artifacts
Hi everybody I just checked in new maven2 artifacts to maven repository, Now it counts with deployment metadata info and md5 + sha1 checksum. Regards. Fernando Meyer http://fmeyer.org [EMAIL PROTECTED] PGP: 0xD804DDFB ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Something going on with maven2 repo?
Yup! All synced up now and my tests work today. The repo was in an odd state yesterday and didn't all have the necessary supporting elements for artifacts. How often is the repo updated? I would assume only after a release is cut? Thanks so much! Eric On Fri, 2007-07-27 at 14:53 -0300, Fernando Meyer wrote: > Hey Eric, > > > > It takes a few minutes to sync maven2 repository with subversion, > please try again in a few minutes. > > > Cheers > > Fernando Meyer http://fmeyer.org > [EMAIL PROTECTED] > PGP: 0xD804DDFB > > > > > > > > > On Jul 27, 2007, at 2:45 PM, Eric Miles wrote: > > > > > I'm trying to attempt to upgrade to 4.0.0 GA again and it looks like > > the org.drools:drools:4.0.0 artifact is missing on the server. > > However, unlike yesterday, the core and compiler artifacts now have > > poms and checksums (which I think was the issue yesterday). Is the > > release not fully available on the repo yet? > > > > Thanks, > > Eric > > > > ___ > > rules-users mailing list > > rules-users@lists.jboss.org > > https://lists.jboss.org/mailman/listinfo/rules-users > > > ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Something going on with maven2 repo?
Hey Eric, It takes a few minutes to sync maven2 repository with subversion, please try again in a few minutes. Cheers Fernando Meyer http://fmeyer.org [EMAIL PROTECTED] PGP: 0xD804DDFB On Jul 27, 2007, at 2:45 PM, Eric Miles wrote: I'm trying to attempt to upgrade to 4.0.0 GA again and it looks like the org.drools:drools:4.0.0 artifact is missing on the server. However, unlike yesterday, the core and compiler artifacts now have poms and checksums (which I think was the issue yesterday). Is the release not fully available on the repo yet? Thanks, Eric ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Something going on with maven2 repo?
I'm trying to attempt to upgrade to 4.0.0 GA again and it looks like the org.drools:drools:4.0.0 artifact is missing on the server. However, unlike yesterday, the core and compiler artifacts now have poms and checksums (which I think was the issue yesterday). Is the release not fully available on the repo yet? Thanks, Eric ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] adding process to an empty rule base
If I do like this, it works : PackageBuilder builder = new PackageBuilder(); Reader drlReader = new InputStreamReader(getClass().getResourceAsStream("/emptyPackage.drl")); builder.addPackageFromDrl(drlReader); builder.addRuleFlow(ruleFlow); Package pkgRuleFlow = builder.getPackage(); ruleBase.addPackage(pkgRuleFlow); In the emptyPackage.drl file this no rules, but it seems to be impossible to have a rule base with only a rule flow. I hope I'm wrong :) hypnosat7 wrote: > > thanks, it works but now I have this : > Caused by: java.lang.NullPointerException > at > org.drools.compiler.PackageBuilder.addRuleFlowsToPackage(PackageBuilder.java:469) > at > org.drools.compiler.PackageBuilder.getPackage(PackageBuilder.java:449) > > > > Kris Verlaenen wrote: >> >> This error is caused by a mismatch between the version of the mvel >> library >> you are using and the version that is expected by drools. >> Drools 4.0.0 is expecting mvel14-1.2rc1.jar. Previous versions of drools >> are probably based on older versions of mvel. >> Might also be caused by having multiple versions of mvel in your >> classpath. >> >> Kris >> >> - Original Message - >> From: "hypnosat7" <[EMAIL PROTECTED]> >> To: >> Sent: Friday, July 27, 2007 5:30 PM >> Subject: Re: [rules-users] adding process to an empty rule base >> >> >>> >>> >>> I try this: >>> ... >>> InputStream stream = >>> getClass().getResourceAsStream("/rules/demoRuleFlow.rfm"); >>> Reader ruleFlowReader = new InputStreamReader(stream); >>> ruleEngine.setRuleFlow(ruleFlowReader); >>> .. >>> >>> PackageBuilder builder = new PackageBuilder(); >>> builder.addRuleFlow(ruleFlow); >>> Package pkgRuleFlow = builder.getPackage(); >>> ruleBase.addPackage(pkgRuleFlow); >>> >>> but I have this error: >>> Caused by: java.lang.NoSuchMethodError: >>> org.mvel.optimizers.OptimizerFactory.setDefaultOptimizer(Ljava/lang/String;)V >>> at >>> org.drools.rule.builder.dialect.mvel.MVELDialect.init(MVELDialect.java:132) >>> at org.drools.compiler.DialectRegistry.initAll(DialectRegistry.java:49) >>> at org.drools.compiler.PackageBuilder.(PackageBuilder.java:139) >>> at org.drools.compiler.PackageBuilder.(PackageBuilder.java:88) >>> >>> >>> >>> Kris Verlaenen wrote: Yes, that is possible, but you should also add the (generated) package of your PackageBuilder. But this process is actually much simpler when using the ProcessBuilder exclusively. It should look something like this: PackageBuilder builder = new PackageBuilder(); // add your rules (if any) builder.addPackageFromDrl( ... ); // add your processes (if any) builder.addRuleFlow( ... ); // add Package to ruleBase Package pkg = builder.getPackage(); // this includes all the rules and processes ruleBase.addPackage( pkg ); Kris - Original Message - From: "hypnosat7" <[EMAIL PROTECTED]> To: Sent: Friday, July 27, 2007 3:59 PM Subject: [rules-users] adding process to an empty rule base > > Is it possible to set the rule flow in my rule base before adding rule > packages : > > ruleBase = RuleBaseFactory.newRuleBase(); > org.drools.compiler.ProcessBuilder processBuilder = new > ProcessBuilder(new > PackageBuilder()); > processBuilder.addProcessFromFile(ruleFlow); > ruleBase.addProcess(processBuilder.getProcesses()[0]); > > thanks > -- > View this message in context: > http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11829714 > Sent from the drools - user mailing list archive at Nabble.com. > > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11831502 >>> Sent from the drools - user mailing list archive at Nabble.com. >>> >>> ___ >>> rules-users mailing list >>> rules-users@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >> >> ___ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> > > -- View this message in context: http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11833321 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] adding process to an empty rule base
thanks, it works but now I have this : Caused by: java.lang.NullPointerException at org.drools.compiler.PackageBuilder.addRuleFlowsToPackage(PackageBuilder.java:469) at org.drools.compiler.PackageBuilder.getPackage(PackageBuilder.java:449) Kris Verlaenen wrote: > > This error is caused by a mismatch between the version of the mvel library > you are using and the version that is expected by drools. > Drools 4.0.0 is expecting mvel14-1.2rc1.jar. Previous versions of drools > are probably based on older versions of mvel. > Might also be caused by having multiple versions of mvel in your > classpath. > > Kris > > - Original Message - > From: "hypnosat7" <[EMAIL PROTECTED]> > To: > Sent: Friday, July 27, 2007 5:30 PM > Subject: Re: [rules-users] adding process to an empty rule base > > >> >> >> I try this: >> ... >> InputStream stream = >> getClass().getResourceAsStream("/rules/demoRuleFlow.rfm"); >> Reader ruleFlowReader = new InputStreamReader(stream); >> ruleEngine.setRuleFlow(ruleFlowReader); >> .. >> >> PackageBuilder builder = new PackageBuilder(); >> builder.addRuleFlow(ruleFlow); >> Package pkgRuleFlow = builder.getPackage(); >> ruleBase.addPackage(pkgRuleFlow); >> >> but I have this error: >> Caused by: java.lang.NoSuchMethodError: >> org.mvel.optimizers.OptimizerFactory.setDefaultOptimizer(Ljava/lang/String;)V >> at >> org.drools.rule.builder.dialect.mvel.MVELDialect.init(MVELDialect.java:132) >> at org.drools.compiler.DialectRegistry.initAll(DialectRegistry.java:49) >> at org.drools.compiler.PackageBuilder.(PackageBuilder.java:139) >> at org.drools.compiler.PackageBuilder.(PackageBuilder.java:88) >> >> >> >> Kris Verlaenen wrote: >>> >>> Yes, that is possible, but you should also add the (generated) package >>> of >>> your PackageBuilder. >>> >>> But this process is actually much simpler when using the ProcessBuilder >>> exclusively. >>> It should look something like this: >>> >>> PackageBuilder builder = new PackageBuilder(); >>> // add your rules (if any) >>> builder.addPackageFromDrl( ... ); >>> // add your processes (if any) >>> builder.addRuleFlow( ... ); >>> // add Package to ruleBase >>> Package pkg = builder.getPackage(); // this includes all the rules and >>> processes >>> ruleBase.addPackage( pkg ); >>> >>> Kris >>> >>> - Original Message - >>> From: "hypnosat7" <[EMAIL PROTECTED]> >>> To: >>> Sent: Friday, July 27, 2007 3:59 PM >>> Subject: [rules-users] adding process to an empty rule base >>> >>> Is it possible to set the rule flow in my rule base before adding rule packages : ruleBase = RuleBaseFactory.newRuleBase(); org.drools.compiler.ProcessBuilder processBuilder = new ProcessBuilder(new PackageBuilder()); processBuilder.addProcessFromFile(ruleFlow); ruleBase.addProcess(processBuilder.getProcesses()[0]); thanks -- View this message in context: http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11829714 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> ___ >>> rules-users mailing list >>> rules-users@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11831502 >> Sent from the drools - user mailing list archive at Nabble.com. >> >> ___ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > -- View this message in context: http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11832555 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] adding process to an empty rule base
This error is caused by a mismatch between the version of the mvel library you are using and the version that is expected by drools. Drools 4.0.0 is expecting mvel14-1.2rc1.jar. Previous versions of drools are probably based on older versions of mvel. Might also be caused by having multiple versions of mvel in your classpath. Kris - Original Message - From: "hypnosat7" <[EMAIL PROTECTED]> To: Sent: Friday, July 27, 2007 5:30 PM Subject: Re: [rules-users] adding process to an empty rule base I try this: ... InputStream stream = getClass().getResourceAsStream("/rules/demoRuleFlow.rfm"); Reader ruleFlowReader = new InputStreamReader(stream); ruleEngine.setRuleFlow(ruleFlowReader); .. PackageBuilder builder = new PackageBuilder(); builder.addRuleFlow(ruleFlow); Package pkgRuleFlow = builder.getPackage(); ruleBase.addPackage(pkgRuleFlow); but I have this error: Caused by: java.lang.NoSuchMethodError: org.mvel.optimizers.OptimizerFactory.setDefaultOptimizer(Ljava/lang/String;)V at org.drools.rule.builder.dialect.mvel.MVELDialect.init(MVELDialect.java:132) at org.drools.compiler.DialectRegistry.initAll(DialectRegistry.java:49) at org.drools.compiler.PackageBuilder.(PackageBuilder.java:139) at org.drools.compiler.PackageBuilder.(PackageBuilder.java:88) Kris Verlaenen wrote: Yes, that is possible, but you should also add the (generated) package of your PackageBuilder. But this process is actually much simpler when using the ProcessBuilder exclusively. It should look something like this: PackageBuilder builder = new PackageBuilder(); // add your rules (if any) builder.addPackageFromDrl( ... ); // add your processes (if any) builder.addRuleFlow( ... ); // add Package to ruleBase Package pkg = builder.getPackage(); // this includes all the rules and processes ruleBase.addPackage( pkg ); Kris - Original Message - From: "hypnosat7" <[EMAIL PROTECTED]> To: Sent: Friday, July 27, 2007 3:59 PM Subject: [rules-users] adding process to an empty rule base Is it possible to set the rule flow in my rule base before adding rule packages : ruleBase = RuleBaseFactory.newRuleBase(); org.drools.compiler.ProcessBuilder processBuilder = new ProcessBuilder(new PackageBuilder()); processBuilder.addProcessFromFile(ruleFlow); ruleBase.addProcess(processBuilder.getProcesses()[0]); thanks -- View this message in context: http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11829714 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- View this message in context: http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11831502 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] adding process to an empty rule base
I try this: ... InputStream stream = getClass().getResourceAsStream("/rules/demoRuleFlow.rfm"); Reader ruleFlowReader = new InputStreamReader(stream); ruleEngine.setRuleFlow(ruleFlowReader); .. PackageBuilder builder = new PackageBuilder(); builder.addRuleFlow(ruleFlow); Package pkgRuleFlow = builder.getPackage(); ruleBase.addPackage(pkgRuleFlow); but I have this error: Caused by: java.lang.NoSuchMethodError: org.mvel.optimizers.OptimizerFactory.setDefaultOptimizer(Ljava/lang/String;)V at org.drools.rule.builder.dialect.mvel.MVELDialect.init(MVELDialect.java:132) at org.drools.compiler.DialectRegistry.initAll(DialectRegistry.java:49) at org.drools.compiler.PackageBuilder.(PackageBuilder.java:139) at org.drools.compiler.PackageBuilder.(PackageBuilder.java:88) Kris Verlaenen wrote: > > Yes, that is possible, but you should also add the (generated) package of > your PackageBuilder. > > But this process is actually much simpler when using the ProcessBuilder > exclusively. > It should look something like this: > > PackageBuilder builder = new PackageBuilder(); > // add your rules (if any) > builder.addPackageFromDrl( ... ); > // add your processes (if any) > builder.addRuleFlow( ... ); > // add Package to ruleBase > Package pkg = builder.getPackage(); // this includes all the rules and > processes > ruleBase.addPackage( pkg ); > > Kris > > - Original Message - > From: "hypnosat7" <[EMAIL PROTECTED]> > To: > Sent: Friday, July 27, 2007 3:59 PM > Subject: [rules-users] adding process to an empty rule base > > >> >> Is it possible to set the rule flow in my rule base before adding rule >> packages : >> >> ruleBase = RuleBaseFactory.newRuleBase(); >> org.drools.compiler.ProcessBuilder processBuilder = new >> ProcessBuilder(new >> PackageBuilder()); >> processBuilder.addProcessFromFile(ruleFlow); >> ruleBase.addProcess(processBuilder.getProcesses()[0]); >> >> thanks >> -- >> View this message in context: >> http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11829714 >> Sent from the drools - user mailing list archive at Nabble.com. >> >> ___ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > -- View this message in context: http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11831502 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] NullPointerException in a simple test -- a Drools bug?
Hello Edson, thanks for your quick reply. Edson Tirelli wrote: Yes, looks like a bug. Can you please open a JIRA for it? Ok, I've filed a bug in JIRA here: http://jira.jboss.com/jira/browse/JBRULES-1034 I've set the priority to "Blocker" as this bug currently blocks our migration to Drools 4. Please feel free to change this as necessary, however. Cheers, Christian begin:vcard fn:Christian Spurk n:Spurk;Christian org:DFKI GmbH;Language Technology Lab adr;quoted-printable:;;Stuhlsatzenhausweg 3;Saarbr=C3=BCcken;;66123;Germany email;internet:[EMAIL PROTECTED] title:Dipl.-Ling. (Computerlinguistik) tel;work:+49681/302-5354 note;quoted-printable:Deutsches Forschungszentrum f=C3=BCr K=C3=BCnstliche Intelligenz GmbH=0D=0A= Firmensitz: Trippstadter Stra=C3=9Fe 122, D-67663 Kaiserslautern=0D=0A= =0D=0A= Gesch=C3=A4ftsf=C3=BChrung:=0D=0A= Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster (Vorsitzender),=0D=0A= Dr. Walter Olthoff=0D=0A= =0D=0A= Vorsitzender des Aufsichtsrats:=0D=0A= Prof. Dr. h.c. Hans A. Aukes=0D=0A= =0D=0A= Amtsgericht Kaiserslautern, HRB 2313=0D=0A= x-mozilla-html:FALSE version:2.1 end:vcard ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Accum question
Thanks Edson. Yea, I typed it on the fly instead of cut/paste. I will try the inline eval. Your help is appreciated! Edson Tirelli-3 wrote: > >Sorry, it is not clear what you are trying to do. >There are a few clear mistakes in your rule: > > 1. You can't use the $totV variable inside the accumulate, since $totV is > the "result" of the accumulate. > > 2. You can't use variables bound inside accumulate outside of it, since > accumulate is a scope delimiter ($ciNo, $ciLineNo). > > 3. If you want to sum values, use sum() function, but if you want to count > occurrences, use the count() function. > > 4. This expression is wrong: "$totV > 1". You must either compare > something > to a field or use an "eval()" (inlined or not) to evaluate arbitrary > expressions. > > 5. I think it is simply a typo, but since the DRL is case sensitive, the > java class Number must be written with capital N. > >Maybe if you can explain with more common terms what rule you are > trying > to write, we can help more... the best I could imagine is: > > rule "00910 Pass XV sets" > when > $status : ValidationPassFailStatus() > exists ValidationControl(validationNo == 910) > CiLines( $ciNo : $ciNo, $ciLineNo : $ciLineNo, spiSecondary == "X" ) > Number( intValue > 1 ) > from accumulate( $c : CiLines( ciNo == $ciNo, ciLineNo == > $ciLineNo, > spiSecondary == "V" ), >count( $c ) ) > then > $status.pass(910); > end > >Hope it helps. > >Edson > > 2007/7/27, Mike D <[EMAIL PROTECTED]>: >> >> >> Newbie question again... >> >> I'm trying to get a count of V lines if I have an X. If more than 1 V >> line, >> I pass... Obviously I can't have $totV on LHS, but you get my >> drift. What >> is the correct syntax for this one? I've been digging in the docs on >> accum, >> but can't find anything that fits what I'm trying to do. >> >> Thanks, >> Mike >> >> rule "00910 Pass XV sets" >> when >> $status : ValidationPassFailStatus() >> exists ValidationControl(validationNo == 910) >> $totV : number() >> from accumulate(CiLines($ciNo : $ciNo, $ciLineNo : >> ciLineNo, spiSecondary >> == "V"), sum($totV)) >> CiLines(ciNo == $ciNo, ciLineNo == $ciLineNo, >> spiSecondary >> == "X", $totV > 1) >> then >> $status.pass(910); >> end >> >> >> -- >> View this message in context: >> http://www.nabble.com/Accum-question-tf4157809.html#a11829193 >> Sent from the drools - user mailing list archive at Nabble.com. >> >> ___ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > > -- > Edson Tirelli > Software Engineer - JBoss Rules Core Developer > Office: +55 11 3529-6000 > Mobile: +55 11 9287-5646 > JBoss, a division of Red Hat @ www.jboss.com > > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > -- View this message in context: http://www.nabble.com/Accum-question-tf4157809.html#a11830313 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] NullPointerException in a simple test -- a Drools bug?
Christian, Yes, looks like a bug. Can you please open a JIRA for it? Thank you, Edson 2007/7/27, Christian Spurk <[EMAIL PROTECTED]>: > > Hi all, > > I'm trying to migrate my JBoss v3.0.6 rules to the latest v4.0.0 > release. I could already resolve some issues but now I'm already stuck > for hours with a NullPointerException that I can't get rid of. I broke > the problem down to a relatively small set of test files that I'd like > to show you here: > > > /* SimpleTest.java */ > package com.sample; > // ... imports removed for brevity > public class SimpleTest { >public static final void main(String[] args) throws Exception { > PackageBuilder builder = new PackageBuilder(); > builder.addPackageFromDrl(new InputStreamReader(SimpleTest.class > .getResourceAsStream("/rf1.drl"))); > builder.addPackageFromDrl(new InputStreamReader(SimpleTest.class > .getResourceAsStream("/rf2.drl"))); > RuleBase rb = RuleBaseFactory.newRuleBase(); > rb.addPackage(builder.getPackage()); > WorkingMemory wm = rb.newStatefulSession(); > wm.insert(new Task()); // <-- crashes here > wm.fireAllRules(); >} > } > > > /* Task.java */ > package com.sample; > public class Task { >private String next = null; >public String getNext() { > return next; >} >public void setNext(String next) { > this.next = next; >} > } > > > // rf1.drl > package com.sample > rule "r0" >when > Task( next == null ); # <-- change to "x" >then > System.out.println("r0"); > end > rule "r1" >when > Task( next == "1" ); >then > System.out.println("r1"); > end > > > // rf2.drl > package com.sample > rule "r2" >when > Task( next == "2" ); >then > System.out.println("r1"); > end > > > As you can see there are two Drools rule files and two Java classes. If > I run the SimpleTest class, I get the following exception: > > Exception in thread "main" java.lang.NullPointerException > at > org.drools.reteoo.CompositeObjectSinkAdapter$HashKey.equals( > CompositeObjectSinkAdapter.java:608) > at > org.drools.util.AbstractHashTable$EqualityEquals.equal( > AbstractHashTable.java:345) > at org.drools.util.ObjectHashMap.get(ObjectHashMap.java:86) > at > org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject( > CompositeObjectSinkAdapter.java:295) > at org.drools.reteoo.ObjectTypeNode.assertObject( > ObjectTypeNode.java:168) > at org.drools.reteoo.Rete.assertObject(Rete.java:168) > at org.drools.reteoo.ReteooRuleBase.assertObject( > ReteooRuleBase.java:190) > at > org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java > :70) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java > :848) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java > :822) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java > :623) > at com.sample.SimpleTest.main(SimpleTest.java:22) > > I've marked the position in the source code at which the run crashes. > Does anybody have an idea what's wrong here? > > Some more strange things relating to this problem: > * If I change the 'null' in rf1.drl to '""' (empty string), the > problem remains. > * If I change the 'null' in rf1.drl to '"x"' (or some other non-empty > string), then the exception is gone. > * If I remove any of the two rule files, the exception is gone, too. > > Any ideas? Should I file a bug? > > Thanks in advance! > > Cheers, > Christian > > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > > -- Edson Tirelli Software Engineer - JBoss Rules Core Developer Office: +55 11 3529-6000 Mobile: +55 11 9287-5646 JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] adding process to an empty rule base
Yes, that is possible, but you should also add the (generated) package of your PackageBuilder. But this process is actually much simpler when using the ProcessBuilder exclusively. It should look something like this: PackageBuilder builder = new PackageBuilder(); // add your rules (if any) builder.addPackageFromDrl( ... ); // add your processes (if any) builder.addRuleFlow( ... ); // add Package to ruleBase Package pkg = builder.getPackage(); // this includes all the rules and processes ruleBase.addPackage( pkg ); Kris - Original Message - From: "hypnosat7" <[EMAIL PROTECTED]> To: Sent: Friday, July 27, 2007 3:59 PM Subject: [rules-users] adding process to an empty rule base Is it possible to set the rule flow in my rule base before adding rule packages : ruleBase = RuleBaseFactory.newRuleBase(); org.drools.compiler.ProcessBuilder processBuilder = new ProcessBuilder(new PackageBuilder()); processBuilder.addProcessFromFile(ruleFlow); ruleBase.addProcess(processBuilder.getProcesses()[0]); thanks -- View this message in context: http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11829714 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Accum question
Sorry, it is not clear what you are trying to do. There are a few clear mistakes in your rule: 1. You can't use the $totV variable inside the accumulate, since $totV is the "result" of the accumulate. 2. You can't use variables bound inside accumulate outside of it, since accumulate is a scope delimiter ($ciNo, $ciLineNo). 3. If you want to sum values, use sum() function, but if you want to count occurrences, use the count() function. 4. This expression is wrong: "$totV > 1". You must either compare something to a field or use an "eval()" (inlined or not) to evaluate arbitrary expressions. 5. I think it is simply a typo, but since the DRL is case sensitive, the java class Number must be written with capital N. Maybe if you can explain with more common terms what rule you are trying to write, we can help more... the best I could imagine is: rule "00910 Pass XV sets" when $status : ValidationPassFailStatus() exists ValidationControl(validationNo == 910) CiLines( $ciNo : $ciNo, $ciLineNo : $ciLineNo, spiSecondary == "X" ) Number( intValue > 1 ) from accumulate( $c : CiLines( ciNo == $ciNo, ciLineNo == $ciLineNo, spiSecondary == "V" ), count( $c ) ) then $status.pass(910); end Hope it helps. Edson 2007/7/27, Mike D <[EMAIL PROTECTED]>: > > > Newbie question again... > > I'm trying to get a count of V lines if I have an X. If more than 1 V > line, > I pass... Obviously I can't have $totV on LHS, but you get my > drift. What > is the correct syntax for this one? I've been digging in the docs on > accum, > but can't find anything that fits what I'm trying to do. > > Thanks, > Mike > > rule "00910 Pass XV sets" > when > $status : ValidationPassFailStatus() > exists ValidationControl(validationNo == 910) > $totV : number() > from accumulate(CiLines($ciNo : $ciNo, $ciLineNo : > ciLineNo, spiSecondary > == "V"), sum($totV)) > CiLines(ciNo == $ciNo, ciLineNo == $ciLineNo, spiSecondary > == "X", $totV > 1) > then > $status.pass(910); > end > > > -- > View this message in context: > http://www.nabble.com/Accum-question-tf4157809.html#a11829193 > Sent from the drools - user mailing list archive at Nabble.com. > > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -- Edson Tirelli Software Engineer - JBoss Rules Core Developer Office: +55 11 3529-6000 Mobile: +55 11 9287-5646 JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] adding process to an empty rule base
Is it possible to set the rule flow in my rule base before adding rule packages : ruleBase = RuleBaseFactory.newRuleBase(); org.drools.compiler.ProcessBuilder processBuilder = new ProcessBuilder(new PackageBuilder()); processBuilder.addProcessFromFile(ruleFlow); ruleBase.addProcess(processBuilder.getProcesses()[0]); thanks -- View this message in context: http://www.nabble.com/adding-process-to-an-empty-rule-base-tf4157978.html#a11829714 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Accum question
Newbie question again... I'm trying to get a count of V lines if I have an X. If more than 1 V line, I pass... Obviously I can't have $totV on LHS, but you get my drift. What is the correct syntax for this one? I've been digging in the docs on accum, but can't find anything that fits what I'm trying to do. Thanks, Mike rule "00910 Pass XV sets" when $status : ValidationPassFailStatus() exists ValidationControl(validationNo == 910) $totV : number() from accumulate(CiLines($ciNo : $ciNo, $ciLineNo : ciLineNo, spiSecondary == "V"), sum($totV)) CiLines(ciNo == $ciNo, ciLineNo == $ciLineNo, spiSecondary == "X", $totV > 1) then $status.pass(910); end -- View this message in context: http://www.nabble.com/Accum-question-tf4157809.html#a11829193 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] NullPointerException in a simple test -- a Drools bug?
Hi all, I'm trying to migrate my JBoss v3.0.6 rules to the latest v4.0.0 release. I could already resolve some issues but now I'm already stuck for hours with a NullPointerException that I can't get rid of. I broke the problem down to a relatively small set of test files that I'd like to show you here: /* SimpleTest.java */ package com.sample; // ... imports removed for brevity public class SimpleTest { public static final void main(String[] args) throws Exception { PackageBuilder builder = new PackageBuilder(); builder.addPackageFromDrl(new InputStreamReader(SimpleTest.class .getResourceAsStream("/rf1.drl"))); builder.addPackageFromDrl(new InputStreamReader(SimpleTest.class .getResourceAsStream("/rf2.drl"))); RuleBase rb = RuleBaseFactory.newRuleBase(); rb.addPackage(builder.getPackage()); WorkingMemory wm = rb.newStatefulSession(); wm.insert(new Task()); // <-- crashes here wm.fireAllRules(); } } /* Task.java */ package com.sample; public class Task { private String next = null; public String getNext() { return next; } public void setNext(String next) { this.next = next; } } // rf1.drl package com.sample rule "r0" when Task( next == null ); # <-- change to "x" then System.out.println("r0"); end rule "r1" when Task( next == "1" ); then System.out.println("r1"); end // rf2.drl package com.sample rule "r2" when Task( next == "2" ); then System.out.println("r1"); end As you can see there are two Drools rule files and two Java classes. If I run the SimpleTest class, I get the following exception: Exception in thread "main" java.lang.NullPointerException at org.drools.reteoo.CompositeObjectSinkAdapter$HashKey.equals(CompositeObjectSinkAdapter.java:608) at org.drools.util.AbstractHashTable$EqualityEquals.equal(AbstractHashTable.java:345) at org.drools.util.ObjectHashMap.get(ObjectHashMap.java:86) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:295) at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:168) at org.drools.reteoo.Rete.assertObject(Rete.java:168) at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:190) at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:848) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:822) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:623) at com.sample.SimpleTest.main(SimpleTest.java:22) I've marked the position in the source code at which the run crashes. Does anybody have an idea what's wrong here? Some more strange things relating to this problem: * If I change the 'null' in rf1.drl to '""' (empty string), the problem remains. * If I change the 'null' in rf1.drl to '"x"' (or some other non-empty string), then the exception is gone. * If I remove any of the two rule files, the exception is gone, too. Any ideas? Should I file a bug? Thanks in advance! Cheers, Christian begin:vcard fn:Christian Spurk n:Spurk;Christian org:DFKI GmbH;Language Technology Lab adr;quoted-printable:;;Stuhlsatzenhausweg 3;Saarbr=C3=BCcken;;66123;Germany email;internet:[EMAIL PROTECTED] title:Dipl.-Ling. (Computerlinguistik) tel;work:+49681/302-5354 note;quoted-printable:Deutsches Forschungszentrum f=C3=BCr K=C3=BCnstliche Intelligenz GmbH=0D=0A= Firmensitz: Trippstadter Stra=C3=9Fe 122, D-67663 Kaiserslautern=0D=0A= =0D=0A= Gesch=C3=A4ftsf=C3=BChrung:=0D=0A= Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster (Vorsitzender),=0D=0A= Dr. Walter Olthoff=0D=0A= =0D=0A= Vorsitzender des Aufsichtsrats:=0D=0A= Prof. Dr. h.c. Hans A. Aukes=0D=0A= =0D=0A= Amtsgericht Kaiserslautern, HRB 2313=0D=0A= x-mozilla-html:FALSE version:2.1 end:vcard ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Using rules with database scenario
Did you find any ideas to deal with a large data base system ? Thanks Joe Chuby wrote: > > Thanks all for replying. > > We currently already have a layer of service (DAO) to retrieve data from > the database. We were thinking along the line you suggested there, but > somehow, we have the impression that it's not quite as efficient as we > would like. > > If we were to load the data from the database so that Rules can pick those > we wanted, we would have to load records in the range of hundreds of > thousands (or even more), which would kill our system there. It would be > much less expensive to do this with a single query statement. > > Right now, we are thinking along the line of, say, letting the rules > generate > a query statement on the fly, based on the result from firing the rules. > But that's > much more complicated to achieve that just writing the SQL directly. > > Now, to make things more complicated (as per the business requirements), > if we use rules, we have to run parts of the rules first, retrieve parts > of the > data, then run the second part of the rules (which use the first part of > data > to make decision), then retrieve next part of data, and so on. This does > not > seem like an efficient way though. With SQL, we could write a more or less > complicated statement (with sub-queries and the usual suspect), and get > the final result in one shot. > > The major issue we have with rules is that it assumes all data necessary > for > firing the rules are in memory. This works fine for small systems (and > with small > number of users). But right now, we couldn't figure out an efficient way > to work > with large amount of data already in the database. > > Maybe we are are not thinking in the right line of reasoning. Please help > to > point out what's wrong. > > If someone had experience dealing with large database system and is > willing to > share the experience, that would be really appreciated. > > We are currently using Rules v3.0.5. Will try the v3.1.0. > > Best, > > Marcus Ilgner <[EMAIL PROTECTED]> wrote: > That's probably the best solution. Using the current version (3.1M1), > you can use the FROM keyword to reference facts from List object > returned from a method call on a service, for example. > Something like this works very good in my current testing project: > > rule foobar > when > MyObject( someValue = "foobar" ) from MyObjectDAO.loadAll() > then > ... > end > > The DAO then uses Hibernate to load some objects and returns a > List which can be used by Drools. > As Uday already wrote, you could also write a DAO which retrieves > arbitrary objects using a given HQL statement. > > Best regards > Marcus > ___ > > > > - > No need to miss a message. Get email on-the-go > with Yahoo! Mail for Mobile. Get started. > ___ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > -- View this message in context: http://www.nabble.com/Using-rules-with-database-scenario-tf3374493.html#a11826729 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users