[rules-users] Guided editor (BRL) rules in the drools-examples-brms dont work

Mark Proctor mproctor at codehaus.org
Tue Aug 7 16:38:59 EDT 2007


there is a package text file, you add all your imports there.

Mark
Edgardo wrote:
> Hi, How I can import the package classes for MVEL? I import the Java 
> Classes in the package configuration, is this sufficient one?
>
> Really thanks
>
> En Tue, 07 Aug 2007 15:59:29 -0400, Mark Proctor 
> <mproctor at codehaus.org> escribió:
>
>> MVEL does not dynamically import package classes, they must be 
>> imported manually, so I actually imagine its that. the consequence 
>> syntax you have is valid for both java and MVEL.
>>
>> Mark
>> Edgardo wrote:
>>> Hi,finally the problem is the guided editor, the code generated in 
>>> assert fact is not for the mvel compiler, the solution for mi 
>>> problem was add a new dialect option with "java" parameter.
>>>
>>> - The source code of the rule:
>>>
>>> rule "Driver is crazy"
>>>     dialect "java"
>>>     when
>>>          Driver( age >= "20"  && < "25" , locationRiskProfile == 
>>> "HIGH" , name == "Fernando Meyer" )
>>>          Policy( type == "PROBLEMATIC" )
>>>     then
>>>     insert(new Rejection(" Go away drunk "));
>>> end
>>>
>>> - The result:
>>>
>>> RuleAgent(insuranceconfig) INFO (Tue Aug 07 09:56:30 CLT 2007): 
>>> Configuring with newInstance=true, secondsToRefresh=30
>>> RuleAgent(insuranceconfig) INFO (Tue Aug 07 09:56:30 CLT 2007): 
>>> Configuring package provider : URLScanner monitoring URLs:  
>>> http://localhost:8080/drools-jbrms/org.drools.brms.JBRMS/package/org.acme.insurance/InsuranceSnapshot 
>>> RuleAgent(insuranceconfig) INFO (Tue Aug 07 09:56:31 CLT 2007): 
>>> Applying changes to the rulebase.
>>> RuleAgent(insuranceconfig) INFO (Tue Aug 07 09:56:31 CLT 2007): 
>>> Creating a new rulebase as per settings.
>>> RuleAgent(insuranceconfig) INFO (Tue Aug 07 09:56:31 CLT 2007): 
>>> Adding package called org.acme.insurance
>>> REJECTED:  Go away drunk
>>>
>>> :):):)
>>>
>>> I hope my solution work for anybody have the same problem
>>>
>>> PD: The classpath was not the problem.
>>>
>>> Thanks, see you in another post :)
>>>
>>>
>>> En Mon, 06 Aug 2007 12:28:37 -0400, Mark Proctor 
>>> <mproctor at codehaus.org> escribió:
>>>
>>>> Edgardo wrote:
>>>>> Hi, when I use the BRL editor, I can't edit the source code of the 
>>>>> rule, that is available in read-only mode, when you or other users 
>>>>> fire this rules, you don't have this problem ?
>>>>>
>>>> The BRL editor does not allow the source code to be edited, so 
>>>> you'll have to accept what it generates for now.
>>>>> RuleAgent(insuranceconfig) INFO (Fri Aug 03 16:05:58 CLT 2007):
>>>>> Adding package called org.acme.insurance
>>>>> org.mvel.CompileException: class or class reference not found: 
>>>>> Rejection()
>>>>> at 
>>>>> org.mvel.optimizers.impl.asm.ASMAccessorOptimizer.optimizeObjectCreation(ASMAccessorOptimizer.java:1771) 
>>>>>
>>>> This issue means the compiler cannot find your model, the class 
>>>> Rejection is not in the classpath.
>>>>>
>>>>> Greetings
>>>>>
>>>>> En Mon, 06 Aug 2007 08:00:47 -0400, Mark Proctor 
>>>>> <mproctor at codehaus.org> escribió:
>>>>>
>>>>>> btw if you are using the mvel dialect you can just do
>>>>>> fact0 = new Rejection();
>>>>>> fact0.reason = "Go away drunk" ;
>>>>>> insert( fact0 );
>>>>>>
>>>>>> MVEL has type inference, so it doesn't need to be used 
>>>>>> explicitley and also javascript style property accessors.
>>>>>>
>>>>>> Mark
>>>>>> Edgardo wrote:
>>>>>>> Hi fernando, the package source code is:
>>>>>>>
>>>>>>> package org.acme.insurance
>>>>>>> import org.acme.insurance.Driver
>>>>>>> import org.acme.insurance.Approve
>>>>>>> import org.acme.insurance.Policy
>>>>>>> import org.acme.insurance.Rejection
>>>>>>>
>>>>>>> ...
>>>>>>>
>>>>>>> rule "Driver is crazy"
>>>>>>>     dialect "mvel"
>>>>>>>     when
>>>>>>>         Driver( age >= "20"  && < "25" , locationRiskProfile == 
>>>>>>> "HIGH" , name == "Fernando Meyer" )
>>>>>>>         Policy( type == "PROBLEMATIC" )
>>>>>>>     then
>>>>>>>         Rejection fact0 = new Rejection();
>>>>>>>         fact0.setReason( "Go away drunk" );
>>>>>>>         insert( fact0 );
>>>>>>> end
>>>>>>>
>>>>>>> ...
>>>>>>>
>>>>>>> I import this from repository_export.xml in the resource folder, 
>>>>>>> and for fire "Driver is crazy" rule, I append the next code to 
>>>>>>> InsuranceBusiness class:
>>>>>>>
>>>>>>> public void executeExample() throws Exception {
>>>>>>>         RuleBase ruleBase = loadRuleBase();
>>>>>>>
>>>>>>>         testUnsafeDriver(ruleBase);
>>>>>>>         testSafeMature(ruleBase);
>>>>>>>         testUnsafeAreaAndPriors(ruleBase);
>>>>>>>         testDriverIsCrazy(ruleBase);  //-----> This
>>>>>>>     }
>>>>>>>
>>>>>>> /*** And this method ***/
>>>>>>>
>>>>>>> private void testDriverCrazy(RuleBase ruleBase) {
>>>>>>>         StatefulSession session = ruleBase.newStatefulSession();
>>>>>>>                Driver driver = new Driver();
>>>>>>>         driver.setAge(new Integer(23));
>>>>>>>         driver.setLocationRiskProfile("HIGH");
>>>>>>>         driver.setName("Fernando Meyer");
>>>>>>>                Policy policy = new Policy();
>>>>>>>         policy.setType("PROBLEMATIC");
>>>>>>>         policy.setApproved(false);
>>>>>>>                session.insert(driver);
>>>>>>>         session.insert(policy);
>>>>>>>         session.fireAllRules();
>>>>>>>     }
>>>>>>>
>>>>>>> In the example you dont fire the rules where I have the problems
>>>>>>>
>>>>>>> Thanks and sorry again for my english
>>>>>>>
>>>>>>> Greetings
>>>>>>>
>>>>>>> En Sun, 05 Aug 2007 11:46:14 -0400, Fernando Meyer 
>>>>>>> <fmcamargo at gmail.com> escribió:
>>>>>>>
>>>>>>>> Hi Eduardo,
>>>>>>>>
>>>>>>>>     Probably you missed some importing statement in your 
>>>>>>>> package configuration, check this please;
>>>>>>>>
>>>>>>>> Regards
>>>>>>>>
>>>>>>>> Fernando Meyer http://fmeyer.org
>>>>>>>> fmcamargo at gmail.com
>>>>>>>> PGP: 0xD804DDFB
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Aug 4, 2007, at 4:49 PM, Edgardo wrote:
>>>>>>>>
>>>>>>>>> Hi list, I post my problem in the rules-dev list. The problem 
>>>>>>>>> is execute the "Driver is Crazy", "Driver is too old" and 
>>>>>>>>> "Driver special age Approved" rules. I have the problem of the 
>>>>>>>>> next section:
>>>>>>>>>
>>>>>>>>>> Edgardo wrote:
>>>>>>>>>>> Yes, I did it, in the package configuration. I use the 
>>>>>>>>>>> drools-4.0.0-brms version. The problem is at the moment to 
>>>>>>>>>>> evaluate the next generate code of the rule:
>>>>>>>>>>>
>>>>>>>>>>> then
>>>>>>>>>>>         Rejection fact0 = new Rejection();
>>>>>>>>>>>         fact0.setReason( "Driver too old" );
>>>>>>>>>>>         insert( fact0 );
>>>>>>>>>>>
>>>>>>>>>>> If I use the Technical rule text editor, i dont have any 
>>>>>>>>>>> problem.
>>>>>>>>>>>
>>>>>>>>>>> Greetings from Chile :)
>>>>>>>>>>>
>>>>>>>>>>> En Fri, 03 Aug 2007 19:06:05 -0400, Mark Proctor 
>>>>>>>>>>> <mproctor at codehaus.org> escribió:
>>>>>>>>>>>
>>>>>>>>>>>> did you upload your model and import it?
>>>>>>>>>>>>
>>>>>>>>>>>> Mark
>>>>>>>>>>>> Edgardo wrote:
>>>>>>>>>>>>> Hi rules-dev list, (my english is very poor, sorry) I am 
>>>>>>>>>>>>> interested in using the
>>>>>>>>>>>>> BRMS of JBoss Rules, but when I use the guided editor, 
>>>>>>>>>>>>> this rules dont
>>>>>>>>>>>>> work, and in drools-examples-brms example, this dont work 
>>>>>>>>>>>>> too, the error message (in the
>>>>>>>>>>>>> "Driver is Crazy" rule)is:
>>>>>>>>>>>>>
>>>>>>>>>>>>> RuleAgent(insuranceconfig) INFO (Fri Aug 03 16:05:58 CLT 
>>>>>>>>>>>>> 2007): Adding
>>>>>>>>>>>>> package called org.acme.insurance
>>>>>>>>>>>>> org.mvel.CompileException: class or class reference not 
>>>>>>>>>>>>> found: Rejection()
>>>>>>>>>>>>>     at
>>>>>>>>>>>>> org.mvel.optimizers.impl.asm.ASMAccessorOptimizer.optimizeObjectCreation(ASMAccessorOptimizer.java:1771)     
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.mvel.ast.NewObjectNode.getReducedValueAccelerated(NewObjectNode.java:49)     
>>>>>>>>>>>>> at org.mvel.MVELRuntime.execute(MVELRuntime.java:87)
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.mvel.CompiledExpression.getValue(CompiledExpression.java:98) 
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.mvel.CompiledExpression.getValue(CompiledExpression.java:93) 
>>>>>>>>>>>>>     at
>>>>>>>>>>>>> org.mvel.ast.TypedVarNode.getReducedValueAccelerated(TypedVarNode.java:36)     
>>>>>>>>>>>>> at org.mvel.MVELRuntime.execute(MVELRuntime.java:87)
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.mvel.CompiledExpression.getValue(CompiledExpression.java:98) 
>>>>>>>>>>>>>     at org.mvel.MVEL.executeExpression(MVEL.java:202)
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:32) 
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:545) 
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:509) 
>>>>>>>>>>>>>     at
>>>>>>>>>>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:430)     
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:392)     
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.acme.insurance.launcher.InsuranceBusiness.testDriverCrazy(InsuranceBusiness.java:93)     
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.acme.insurance.launcher.InsuranceBusiness.executeExample(InsuranceBusiness.java:19)     
>>>>>>>>>>>>> at 
>>>>>>>>>>>>> org.acme.insurance.launcher.MainClass.main(MainClass.java:13)
>>>>>>>>>>>>> org.drools.spi.ConsequenceException: 
>>>>>>>>>>>>> org.mvel.CompileException: class or
>>>>>>>>>>>>> class reference not found: Rejection()
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:549) 
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:509) 
>>>>>>>>>>>>>     at
>>>>>>>>>>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:430)     
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:392)     
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.acme.insurance.launcher.InsuranceBusiness.testDriverCrazy(InsuranceBusiness.java:93)     
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.acme.insurance.launcher.InsuranceBusiness.executeExample(InsuranceBusiness.java:19)     
>>>>>>>>>>>>> at 
>>>>>>>>>>>>> org.acme.insurance.launcher.MainClass.main(MainClass.java:13)
>>>>>>>>>>>>> Caused by: org.mvel.CompileException: class or class 
>>>>>>>>>>>>> reference not found:
>>>>>>>>>>>>> Rejection()
>>>>>>>>>>>>>     at
>>>>>>>>>>>>> org.mvel.optimizers.impl.asm.ASMAccessorOptimizer.optimizeObjectCreation(ASMAccessorOptimizer.java:1771)     
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.mvel.ast.NewObjectNode.getReducedValueAccelerated(NewObjectNode.java:49)     
>>>>>>>>>>>>> at org.mvel.MVELRuntime.execute(MVELRuntime.java:87)
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.mvel.CompiledExpression.getValue(CompiledExpression.java:98) 
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.mvel.CompiledExpression.getValue(CompiledExpression.java:93) 
>>>>>>>>>>>>>     at
>>>>>>>>>>>>> org.mvel.ast.TypedVarNode.getReducedValueAccelerated(TypedVarNode.java:36)     
>>>>>>>>>>>>> at org.mvel.MVELRuntime.execute(MVELRuntime.java:87)
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.mvel.CompiledExpression.getValue(CompiledExpression.java:98) 
>>>>>>>>>>>>>     at org.mvel.MVEL.executeExpression(MVEL.java:202)
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:32) 
>>>>>>>>>>>>>     at 
>>>>>>>>>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:545) 
>>>>>>>>>>>>>     ... 6 more
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks :), I am waiting for you response...
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> rules-dev mailing list
>>>>>>>>>>>> rules-dev at lists.jboss.org
>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> rules-dev mailing list
>>>>>>>>>> rules-dev at lists.jboss.org
>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --Edgardo Ibañez O.
>>>>>>>>> _______________________________________________
>>>>>>>>> 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
>
>
>




More information about the rules-users mailing list