Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] ECF, Skype, and 64-bit systems

Hi everybody,
 
BTW, just saw Peter's email. Judging from the latest CVS changes, I believe he followed the same approach. I would also suggest adding “Eclipse-ExtensibleAPI” to the com.skype plug-in.
 
 
Below is my shot at the problem.
 
The issue is that there is platform-specific code (WindowsConnector) in a platform independent plug-in (com.skype). On the build machine this code gets compiled against the org.eclipse.swt...linux fragment. At runtime, on windows it runs against the org.eclipse.swt...win32 fragment and breaks.
 
I believe the solution is to put the WindowsConnector into a platform-specific
com.skype...win32 fragment and not have in in the com.skype plug-in. Hopefully PDE Build is then smart enough to compile this against the org.eclipse.swt + org.eclipse.swt.win32... fragment.
 
This also touches a second problem with the com.skype plug-in. It requires the
org.eclipse.swt bundle. However by inspecting the code, I believe that the dependency is only needed for the WindowsConnector and there is a fall back mechanism if SWT is not present (Win32Connector). Currently a non-availability of SWT will result in the com.skype plug-in not resolving and *prevent* normal operation of the plug-in.
 
To address both issues I've tried these changes:
 
- Creating a com.skype.swt.win32.win32.x86 fragment. This fragment has a dependency to org.eclipse.swt. The WindowsConnector is placed in that fragment. The com.skype plug-in itself has now *no* dependency to org.eclipse.swt.
Note that there are now two windows fragments, one for the SWT-based connector  (com.skype.swt.win32.win32.x86) and one for the plain connector (com.skype.win32.win32.x86)
 
- For uniformity and discouraging developers from using the platform specific connectors directly, I've moved the packages com.skype.connector.{osx,linux,windows} from the plug-in into respective fragments.
 
- Added "Eclipse-ExtensibleAPI: true" to the MANIFEST.MF of com.skype. This is so that PDE can deal with fragments contributing Java classes to the plug-in (see Eclipse Help).
 
- I took the liberty of using 0.3.0 as the version in all fragments.
Unfortunately I don't have a linux machine around, so I would be glad if somebody could give it a try and let my know if this helps.
 
Regards,
Elias.
---
Elias Volanakis
Technical Lead
Innoopract, Inc.
351 NW 12th Avenue
Portland, Oregon 97209
Tel: +1-503-552-1457
Fax: +1-503-715-4915
Mobile: +1-503-929-5537
evolanakis@xxxxxxxxxxxxxx
http://eclipsenuggets.blogspot.com

Attachment: com.skype-refactoring.zip
Description: com.skype-refactoring.zip


Back to the top