Hi all

I have been playing around with Drools 5.0.1 running as a service in
Felix/Karaf.
I finally got it working using a very simple HelloWorld drools example (BTW
this is also my first stab at using Drools, so I'm no expert on that
framework).

What I ended up with was.
1. A bundle that starts/initializes the Drools service and exposes a method
which allows clients to call the Rules engine service.
2. A domain Model bundle
3. A fragment bundle which imports the exported packages from the domain
model bundle, as well as supplying the .drl file (which is the rules
engines' rule base)
4. A client bundle which imports the exported packages from the model
bundle.

The client then creates a model object, and calls the Drools service bundle
to execute the simple test.
The Service bundle is also the fragment-host for the fragment bundle. So in
that way it knows about the domain model, without explicitly declaring a
dependency on it.

So my question is. Does the above seem right?
I have seen a couple of posts where the use of fragments are discouraged.
But I am not sure how to cleanly achieve  the above scenario without
fragments.

Also what bugs me about my solution above is that, since the Drools rules
engine does some bytecode enhancement. I eventually had to add import
package statements to the bundle which contains the domain model. This just
seems wrong because my Service bundle already imports packages from the
underlying rules engine.

So basically the question is, are there better ways to achieve above
modularization.
How does one write a service, which needs to operate on some domain model,
but without knowing what those domain models will be beforehand.

Thankyou in advance
Ivanhoe

Reply via email to