[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Datashare channels...

Hi Remy,

Remy Chi Jian Suen wrote:
Hi Scott,

On Mon, Apr 20, 2009 at 4:43 PM, Scott Lewis <slewis@xxxxxxxxxxxxxxxxx> wrote:
Because the XMPPID serialization/deserialization is done by the XMPP
provider...and those classes (XMPPID) are available in the class namespace
of that provider.

Sorry, can you put that in layman's terms? Did you mean that the
message has already been deserialized once in the SOContainer?

No...actually I was thinking of the shared object API (rather than the datashare API) when I answered this question...and in the shared object API the serialization/deserialization is done within the container (and this allows messages of the form: sendMessage(ID target, Object message). I've recently added more flexibility in the shared object container incidently, to allow for custom serialization within the container: https://bugs.eclipse.org/bugs/show_bug.cgi?id=272224

But with the datashare API the payload of a send/receiveMessage is a byte array...i.e. IChannel.sendMessage(ID target, byte[] message)...so clients/users of the datashare API do any object serialization/deserialization on their own...and so they have to define their own available classes (via Eclipse-BuddyPolicy: global...as you discovered for docshare...which is a client of the datashare API).

I also noticed that I was wrong and that both the XMPP provider and
the DocShare bundles have a 'Eclipse-BuddyPolicy: global' in their
MANIFEST.MF files. I added that in bundle B and now everything is
working. :O I didn't have to put it in the datashare implementation
bundle though.

As far as I'm concerned, it would be useful to have more than one nio-based
provider/implementation. Where is the nio implementation that you've been
working on (Remy)?

At the moment, it's just on my hard drive and it's very much tied to
the provider I'm currently working on enhancing.

Ok. When you can, it would be good to get it into the repo.