On Fri, Nov 21, 2008 at 8:28 PM, vanshi <nilu.thakur@gmail.com> wrote:

Hi all,

I have some set of rules which work on same Person object but depending on
whether a person is student/employee/Faculty, the rule will have dfferent
logic.

So, I've made 3 .drl files, one will have all the rules for students, other
for employee and then last .drl for faculty. All 3 .drl have same package
name (as the first statement in drl) but all rules are named differently.
When my rule engine starts, it reads these 3 drl files and adds them to a
single rule base, starts a new session, inserts person in working memory and
fires rules.

Now, my questions are...is there anything odd/wrong with this approach?
Secondly, I had some rules names same in different drl and when I changed
them ....then I started getting null pointer exception error..... during
parsing of drl files. Any idea why is that?

Hi vanshi,

In our system the rules are deployed in a similar method:
We have a "include.drl", "globles.drl", "common.drl" and the specific rules for each channel (C1, C2, C3).

The "include.drl" and "globles.drl" are inserted at system load to each of the filtering files (common, C1, C2...). 
All the filtering files sit in the same package "com.XX.filtering". 

Up until now I had no problems with this approach, the only thing that I'm concerned with is the RuleBaes performance because we use several "Packages" to build the sessions.  

I hope someone on this list could answer if this working mode has effect on performance?

--
Cheers,
Maxim Veksler

"Free as in Freedom" - Do u GNU ?