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.

 
Filed under: Eclipse

Leave a Reply