[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.technology.ecf] Re: org.eclipse.ecf.example.collab problems

Hi Scott,

Ok - it was indeed a problem with the MANIFEST.MF file. I refreshed it and the example app works fine now.

Thanks,

Li-Te

Scott Lewis wrote:
Hi Li-Te,

Thanks for the info...couple of comments and questions below:

Li-Te wrote:

Hi,

<stuff deleted>


Now the joinGroup call appears to be successful. There must be a typo somewhere with an extra slash.


OK...I did find a typo and fixed in the source/config files. Thanks. Getting an update for the org.eclipse.ecf.example.collab and org.eclipse.ecf.provider plugins will get you the fixed code.



b) ClassNotFoundException: RemoteSharedObjectMsgEvent

<stack trace deleted>


It looks like a classloader problem with RemoteSharedObjectMsgEvent, which is defined in the org.eclipse.ecf.example.collab plugin, whereas the rest of the ECF Event classes are found in the org.eclipse.ecf plugin.


There's a feature of OSGI that we are depending upon here...and that's provided via the 'DynamicImport-Package' property in the org.eclipse.ecf.provider plugin. In the manifest.mf file in the org.eclipse.ecf.provider plugin is a line that looks like this:

DynamicImport-Package: *

The OSGI-spec'd behavior for this is that any classes exposed by other plugins (via the Export-Package: property in manifest.mf) should be seen/loaded by the plugin declaring the DynamicImport-Package wildcard as above. So in the manifest.mf for the org.eclipse.ecf.example.collab plugin should be:

Export-Package: org.eclipse.ecf.example.collab.share, org.eclipse.ecf.example.collab.share.url, org.eclipse.ecf.example.collab.share.io

(on one line)

And this *should* allow the org.eclipse.ecf.provider plugin classloader (the one doing the object deserialization) to find the org.eclipse.ecf.example.collab.share.RemoteSharedObjectMsgEvent class, load it, and deserialize the stream.

This is working fine for my/our tests...I'm currently at a loss as to why it would not be working for you. Can you make sure that the respective manifest.mf files have the lines above in them (they do in the checkedin versions...I just checked now).

Then, assuming they are there in your copies...what platform are you running on and what version of Eclipse are you using? Is there a chance that the OSGI behavior for classloading is not working right on that platform/version?

I will also attempt to reproduce on my machine given a whole new installation/etc. I would appreciate any further assistance you can give on this, as it's obviously important to make sure that this mechanism works as expected until ECF puts something else in place (i.e. to allow plugins to register their packages with providers rather than using DynamicImport-Package.

Thanks,

Scott




Any thoughts?

Thanks,

Li-Te