it's quite normal for RETE engines to make everything in the workingmemory
and the nodes serializable.  this is often done so that one can save the
state of the rule engine.  In my own engine, I have both the nodes,
functions, rules, workingmemory and base items either extend or implement
serializable.

peter


On 4/4/06, Greg Barton <[EMAIL PROTECTED]> wrote:
>
>
> I've been trying to serialize an instance of
> org.drools.rule.Package and have come upon some
> problems.  The object itself is Externalizable, but
> several objects it uses are not:
>
> org.drools.base.ClassObjectType
> org.drools.rule.Column
> org.drools.base.evaluators.StringFactory$StringEqualEvaluator
>
> That's no problem, I just implemented Serializable on
> those classes.  (org.drools.base.BaseEvaluator to
> cover all of the evaluators...)
>
> The problem lies in these classes:
> org.drools.spi.FieldValue and
> org.drools.base.FieldImpl.
>
> FieldValue has a methods that returns Object and
> FieldImpl contains a reference to Object.  I changed
> that to Serializable, but unfortunately that would
> mean every field of every WM object would need to be
> Serializable, and that ain't kosher.  (And, even after
> that change I was getting ClassNotFoundExceptions
> because class names of my fields were having
> "org.drools.fieldaccess." prepended to them...)
>
> At this point I think org.drools.rule.Package should
> not implement Externalizable.  Seems there's some
> difficult issues deep down in making it functional.  I
> thought on first blush that I'd be able to ship
> packages over the wire for some mobile agent stuff I'm
> doing, but have had to back off to just sending DRL,
> globals, and the content of working memory and
> reconstituting at the other end of the line.
>
> I tried Serializing reteoo.WorkingMemoryImpl and got
> similar results.  I had to implement Serializable on:
>
> org.drools.common.AgendaGroupImpl
> org.drools.common.ActivationQueue
> org.drools.util.LinkedList
> org.drools.util.LinkedListNode
> org.drools.common.PropagationContextImpl
>
> Then it wrapped around again onto the Package
> serialization problems...
>
> As a side note, org.drools.lang.descr.PackageDescr was
> easily serialized by making
> org.drools.lang.descr.PaternDescr Serializable.
> Worked like a champ. :)
>
> GreG
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>

Reply via email to