Eclipse Plug-in dependencies – Required Bundle vrs. Import-Package

Eclipse allows to define dependencies between plug-ins based on bundle or on package level. In the MANIFEST.MF of the plugin.xml you can tell that your plug-in should either depend on another plug-in (and all its exported packages) or if your plug-in should only depend on the availability of certain packages no matter which plug-in is exporting this package.

The corresponding statements in MANIFEST.MF are Require-Bundle: or Import-Package:

Today I got the question what approach should be preferred.

I believe the preferred way should be to use Import-Package because the coupling between the plug-ins is not that tight. As only as one plug-in exports this package the other plug-in will be fine. With this you can replaced a plug-in without changing the other plug-ins.

Of course if you have the same package in different plug-ins then you have to use the plug-in dependency.

The other advantage of plug-in dependencies is that the dependency is very clearly explicit, with the import-package it is not immediately obvious which plug-in is contributing this package.

But in total I would argue that loose coupling is always better so in general import-package should be preferred.

About Lars Vogel

Lars Vogel is the founder and CEO of the vogella GmbH and works as Eclipse and Android consultant, trainer and book author. He is a regular speaker at international conferences, He is the primary author of vogella.com. With more than one million visitors per month this website is one of the central sources for Java, Eclipse and Android programming information.
This entry was posted in Eclipse. Bookmark the permalink.