[rules-users] Please help - losing hair
Richard Hoberman
richard.hoberman at sadalbari.com
Thu Aug 16 09:09:38 EDT 2007
Will bear that in mind. Thanks.
Mark Proctor wrote:
> These days trunk snapshot is the best place, as it has all the latest
> fixes, this is what will make up 4.0.1 when its releases.
> http://cruisecontrol.jboss.com/cc/artifacts/jboss-rules
>
> Mark
>
>
> 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
>>>
>>>
>>>
>>
>>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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