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...
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(a)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(a)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(a)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(a)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(a)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(a)lists.jboss.org
>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/rules-dev
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> rules-dev mailing list
>>>>>>> rules-dev(a)lists.jboss.org
>>>>>>>
https://lists.jboss.org/mailman/listinfo/rules-dev
>>>>>>
>>>>>>
>>>>>>
>>>>>> --Edgardo Ibañez O.
>>>>>> _______________________________________________
>>>>>> rules-users mailing list
>>>>>> rules-users(a)lists.jboss.org
>>>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> rules-users mailing list
>>>>> rules-users(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users