[rules-users] Please help - losing hair
Richard Hoberman
richard.hoberman at sadalbari.com
Thu Aug 16 09:08:31 EDT 2007
That did the trick. Thank you! The "insert" keyword also feels a lot
more natural (although I get that "assert" went with "fact") :-)
Manjax23 wrote:
> I had same problem with 4M2 release. Please upgrade it to either 4.0.0 GA or
> 4M3 release.
> You can also find a sample example ShoppingExample.java and Shopping.drl,
> which is self-explanatory.
> However, I was not able to test few MVEL features like projections, which i
> think if added would make drools even more dynamic.
>
> Thanks,
> manjax23
>
>
> Richard Hoberman wrote:
>
>> 1. I can't find any mention of dialects anywhere in the Drools 4
>> manual. Am I missing something?
>>
>> 2. I've tried the following after finding a snippet in the archives for
>> this list:
>>
>> package mvanamibia.claim;
>>
>> import java.lang.Object;
>> import java.lang.String;
>> import java.lang.Double;
>> import java.util.Date;
>> import java.util.List;
>> import java.util.ArrayList;
>> import com.sadalbari.mvanamibia.beans.Claim;
>> import com.sadalbari.mvanamibia.beans.Mandate;
>> import com.sadalbari.mvanamibia.beans.SubmissionInfo;
>> import com.sadalbari.mvanamibia.inspector.ClaimEvaluation;
>>
>> global ClaimEvaluation evaluation;
>>
>> rule "hasDateReceived"
>> dialect "mvel"
>> when
>> Claim( submissionInfo == null )
>> then
>> evaluation.getViolations().add("missing: date received");
>> end
>>
>>
>> but it gives the following exception:
>>
>> java.lang.NullPointerException
>> at
>>
>> org.drools.rule.builder.RuleBuildContext.<init>(RuleBuildContext.java:115)
>> at
>> org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:350)
>> at
>> org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:233)
>> at
>>
>> org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:157)
>> at
>>
>> com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.setupWorkingMemory(UnregisteredClaimValidationTest.java:29)
>> at
>>
>> com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.testEmptyClaim(UnregisteredClaimValidationTest.java:42)
>> ... Removed 22 stack frames
>>
>>
>> Thanks
>>
>> Richard
>>
>>
>> Mark Proctor wrote:
>>
>>> in theory for nested accessors it should switch to the MVEL dialect
>>> automatically. You only need to specify the MVEL dialect explicitely
>>> for eval, return value and consequences.
>>>
>>> Mark
>>> Manjax23 wrote:
>>>
>>>> I think you should use dialect "mvel" when accessing the nested
>>>> accessors.
>>>> and I had some trouble with "mvel" dialect in 4M2 release.
>>>>
>>>> Please let me know if it works for you..
>>>>
>>>> Thanks,
>>>> Manjax23
>>>>
>>>>
>>>> Richard Hoberman wrote:
>>>>
>>>>
>>>>> I'm using Drools 4 (M2), which is supposed to support nested accessors*
>>>>>
>>>>> This works: when Claim( submissionInfo == null), but not this: when
>>>>> Claim( submissionInfo.date == null)
>>>>>
>>>>> Rule file, SubmissionInfo.java and exception are below.
>>>>>
>>>>> What am I missing?
>>>>>
>>>>> Richard
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> * See
>>>>> http://article.gmane.org/gmane.comp.java.drools.user/8079/match=nested+properties,
>>>>> which states "Support to nested accessors, property navigation and
>>>>> simplified collection, arrays and maps syntax"
>>>>>
>>>>> Rule File
>>>>>
>>>>> ---------------------------------------------------------------------------------------
>>>>> package mvanamibia.claim;
>>>>>
>>>>> import java.lang.Object;
>>>>> import java.lang.String;
>>>>> import java.lang.Double;
>>>>> import java.util.Date;
>>>>> import java.util.List;
>>>>> import java.util.ArrayList;
>>>>> import com.sadalbari.mvanamibia.beans.Claim;
>>>>> import com.sadalbari.mvanamibia.beans.Mandate;
>>>>> import com.sadalbari.mvanamibia.beans.SubmissionInfo;
>>>>> import com.sadalbari.mvanamibia.inspector.ClaimEvaluation;
>>>>>
>>>>> global ClaimEvaluation evaluation;
>>>>>
>>>>> rule "hasDateReceived"
>>>>>
>>>>> when
>>>>> Claim( submissionInfo.date == null )
>>>>> then
>>>>> evaluation.getFailures().add("missing: date received");
>>>>> end
>>>>>
>>>>> -----------------------------------------------------------------------------------
>>>>>
>>>>> Exception
>>>>> -----------------------------------------------------------------------------------
>>>>> org.drools.rule.InvalidRulePackage: [19,23]: unknown:19:23 mismatched
>>>>> token: [@137,471:471='.',<69>,19:23]; expecting type RIGHT_PAREN
>>>>> at org.drools.rule.Package.checkValidity(Package.java:368)
>>>>> at
>>>>> org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:250)
>>>>> at
>>>>> com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.setupWorkingMemory(UnregisteredClaimValidationTest.java:33)
>>>>> at
>>>>> com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.testMandateClaim(UnregisteredClaimValidationTest.java:56)
>>>>> ... Removed 22 stack frames
>>>>> FAILED: testEmptyClaim
>>>>> org.drools.rule.InvalidRulePackage: [19,23]: unknown:19:23 mismatched
>>>>> token: [@137,471:471='.',<69>,19:23]; expecting type RIGHT_PAREN
>>>>> at org.drools.rule.Package.checkValidity(Package.java:368)
>>>>> at
>>>>> org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:250)
>>>>> at
>>>>> com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.setupWorkingMemory(UnregisteredClaimValidationTest.java:33)
>>>>> at
>>>>> com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.testEmptyClaim(UnregisteredClaimValidationTest.java:42)
>>>>> ... Removed 22 stack frames
>>>>>
>>>>>
>>>>> ------------------------------------------------------
>>>>> SubmissionInfo (relevant bits)
>>>>>
>>>>> public class SubmissionInfo implements Serializable {
>>>>>
>>>>> private Date date;
>>>>>
>>>>> public Date getDate() {
>>>>> return date;
>>>>> }
>>>>>
>>>>> public void setDate(Date date) {
>>>>> this.date = date;
>>>>> }
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>
>>
>>
>
>
More information about the rules-users
mailing list