[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] [SHAREDOBJECT] Can't retrieve the object.
|
Hi Cyril,
I'm very glad that things are working OK for you.
cyril giraudon wrote:
Hi,
I have now exported the package containing my object and all works fine !
I'm a totally newby in Eclipse. And for the moment, I don't exactly
what "export" means.
This is part of OSGi, which is underneath Eclipse. If you are
interested in the spec, see: http://www.osgi.org/Main/HomePage
And/or look at the materials on the Equinox project (the implementation
of the OSGi spec that is in Eclipse): http://www.eclipse.org/equinox/
For instance, what is the relation between the 'export' statement and
the error :
The object can be retrieved by the manager which shared it but not by
another manager ?
The reason for this is as follows:
Each plugin (also called a 'bundle' in OSGi) has it's own, separate
classloader. On the *receiver* of the replicate message, the code in
bundle org.eclipse.ecf.provider tries to create the shared object
replica...but first must load the shared object class(s). To do this
it has to find the specified class (i.e. your MySharedObject class).
For this class to be found by the classloader for bundle
org.eclipse.ecf.provider, it has to be exported via the Export-Package
statement in the manifest.mf. If it's not exported, then the
classloader that is trying to create the replica of MySharedObject
cannot find the MySharedObject class, and the replication fails.
This was one of the sources of the Equinox work on the 'buddy
classloader', which allows plugins to have 'buddy' plugins that can
supply them with classes (like MySharedObject). See this bug for a bit
of the history
https://bugs.eclipse.org/bugs/show_bug.cgi?id=87775
I must tame more Eclipse.
Thanks a lot for you help, I will be able to study in greater depth
ECF now.
OK, great! Thanks.
Scott