users@shoal.java.net

re: Message serialization question

From: Jim Marino <jim.marino_at_gmail.com>
Date: Wed, 1 Oct 2008 08:42:34 -0700

Hello Olaf,

Yes thanks, that's what I was looking for. I should have seen that in
the API earlier.

Jim


---------------------
Date: Tue, 30 Sep 2008 18:57:46 +0200
From: Olaf Krische <java_at_ecopatz.de>
Content-Type: text/plain; charset=us-ascii
Subject: [Shoal-Users] Message serialization question

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.