If you don't do development work in Eclipse - stop reading this post now, come back tomorrow I promise that I will write about something else.
We’re writing our test plugins as fragments to be hosted inside the plugin they’re testing. Most of the time this works without a hitch and gives the benefit of being able to test classes and methods with package (default) visibility. We have several of these plugins that work with no problem both in my Eclipse IDE and our PDE builds. However for one developer one fragment plugin suffers the problem: Host bundle 'xxx.xxx.xxx.common' exists but is unresolved.
What does this mean? What is Eclipse saying? How on Earth do I debug this?
Fragment Manifest file:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Common Test
Bundle-SymbolicName: com.xxx.xxx.common.test
Bundle-Version: 0.1.0
Bundle-Vendor: XXXXX
Fragment-Host: com.xxx.xxx.common;bundle-version="0.1.0"
Bundle-Localization: plugin
Require-Bundle: org.junit
Host Manifest file:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Common Plug-in
Bundle-SymbolicName: com.xxx.xxx.common
Bundle-Version: 0.1.0
Bundle-Activator: com.xxx.xxx.common.Activator
Bundle-Vendor: XXXXX
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime
Eclipse-LazyStart: true
BTW Clearly I’ve removed information that identifies the company and project – please trust that I’ve checked a hundred times over. The fragment manifest does refer to the correct host. In any case these same files work on my own and a third developers machine.
We’re using Eclipse 3.2 (and will for the next month or two). How do you debug these problems? Our source trees (and target platforms) are the same, I even tried diffing our workspaces but the binary nature of files means I found nothing useful. So what do you do when you encounter this sort of problem?
If you enjoyed this post, subscribe now to get free updates.