[rules-users] Guided editor (BRL) rules in the drools-examples-brms dont work
Edgardo
edgardoibanez at gmail.com
Tue Aug 7 10:15:02 EDT 2007
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
--
Edgardo Ibañez O.
More information about the rules-users
mailing list