users@shoal.java.net

Re: [Shoal-Users] Message serialization question

From: Olaf Krische <java_at_ecopatz.de>
Date: Tue, 30 Sep 2008 18:57:46 +0200

Hello Jim,


On Tue, Sep 30, 2008 at 09:38:05AM -0700, Jim Marino wrote:
> I noticed in ClusterManager.send(final ID peerid, final Serializable
> msg) messages are serialized using Java serialization. Since our
> message classes will be loaded in a different classloaders than the
> TCCL or the Shoal classloader, we need to insert a mechanism to handle
> deserialization in our peer classloader environment. Currently, we
> are using JXTA for communication and have implemented a mechanism to
> handle serialization/deserialization in our environment. Is there a
> way our runtime can hook into Shoal to perform message serialization/
> deserialization? If not, would the best approach be to encode our

With Shoal you will always send messages as byte[]:

GroupManagementService gms = ...;
gms.getGroupHandle().sendMessage(..., byte[] message);

And in reverse, you get byte[], wenn unpacking a message:

String groupName = signal.getGroupName();
String sender = signal.getMemberToken();
if (signal instanceof MessageSignal) {
   MessageSignal messageSignal = (MessageSignal)signal;
   String targetComponent = messageSignal.getTargetComponent();
   byte[] message = messageSignal.getMessage()
   ...
}

So you can hook up your own serializer/deserializer.

Hope it helps.