[rules-users] Re: Testing out Type Declarations in simple rule file causing exceptions

CK chrisckc at gmail.com
Sun Mar 15 08:07:31 EDT 2009


So I did further testing and I was able to narrow it down.

Somehow the culprit is with the import statements.  My DRL file has a  
package name of:

package com.test.abc
dialect "mvel"

So, it appears that in drools using MVEL, a fully qualified name is  
required to instantiate the class?  It's quite strange though.   
Considering that I'm following the docs, I should be able to  
dynamically create a new type declaration instance without qualifying  
it.

The following somehow works:

then
   insert(new com.test.abc.Domestic());
end

Why is drools/mvel being so strict?

-ck

On Mar 15, 2009, at 4:23 AM, CK wrote:

> Hi,
>
> I'm wondering if I am doing something wrong in my code:
>
> I create dummy type declarations to indicate presence of certain  
> states (is there possibly a better way of doing this?):
>
> declare Domestic
>  dummy : boolean
> end
>
> declare Multiple
>  dummy : boolean
> end
>
> rule "..."
>   when
>         ......
>    then
>         insert(new Domestic());
> end
>
>
> Something like this is giving me the following errors during DRL  
> file parsing:
>
> Unable to build expression for 'consequence': Failed to compile: 1  
> compilation error(s):
> - (0,0) could not resolve class: Domestic '    insert(new Domestic());
>
>
> Based on what the docs say, this should generate the proper dynamic  
> classes and I should immediately be able to use the declared types.
>
> I did additional checking by outputting the registered Type  
> Declarations.  These two types are indeed registered in the  
> PackageBuilder.getPackage().getTypeDeclarations().
>
> So I can only guess that either I'm doing something wrong here or  
> there is a bug in the CR1 release.
>
>




More information about the rules-users mailing list