[rules-users] Guvnor declarative model and ASM deserialization

Abdel Dridi abdel.dridi at gmail.com
Tue Sep 14 12:26:57 EDT 2010


In my application I am using the following flow:

   1. I am using Guvnor to allow customer to define business event structure
   through the "Declarative Model" feature.
   2. After defining the model, customers write rules and package them into
   a snapshot where my event-driven-application-server can see.
   3. My server load successfully the customer packages (couple hundreds of
   them).
   4. Customer uses HornetQ client to produce events that respects the model
   that has been created using Guvnor.
   5. I have HornetQ listeners in my application that listens to new events.
   6. HornetQ listeners tries to deserialize the message bytes to an event
   object to insert it to the customer ksession

The problem is that my server classloader has no idea about the model, so I
use ASM to inject the class definition when ClassNotFoundException is thrown
however this was not enough as serialVersionUID of client side object is
going to be different from the ASM default injected one.

I know some of you might say why cant I use the same static final
serialVersionUID in the client side as well as in the server side - the
answer is I want to give control to customers to define whatever business
model they want using Guvnor.
Using jar file model will not give freedom to business users that Guvnor
provide.

I am wondering if some of you were facing the same issue while using the
fusion message queue streaming gate?

I am thinking to extend the Java ObjectInputStream and implement my own
deserialization.
Could Drools ksession accept bytes along side with objects (I mean in the
future)  - Something like; "ksession.insert(bytes)"

Any ideas?

Abdel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100914/f5fbfe01/attachment.html 


More information about the rules-users mailing list