The Eclipse runtime itself is factored into several bundles:
If your plug-in has a dependency on the org.eclipse.core.runtime bundle, then it will continue to run unchanged. However, if you would like to minimize the number of dependencies, then you are able to pick only the runtime bundles that you use. Dependencies on the runtime bundles may be declared using either the Import-Package or Require-Bundle
If you would like to use Import-Package header (rather than Require-Bundle) then you should be aware that the org.eclipse.core.runtime package is split across several bundles. The bundles that export a portion of the split package org.eclipse.core.runtime use a mandatory directive. The mandatory directive requires importers to specify additional matching attributes in order to successfully wire to the exported package.
For example, to import only the content of the package provided by the org.eclipse.equinox.common bundle, use this line in the manifest file:
Import-Package: org.eclipse.core.runtime; common="split"
To import the content of the package from the org.eclipse.equinox.registry and org.eclipse.equinox.common bundles, use:
Import-Package: org.eclipse.core.runtime; registry="split"
The above examples use the mandatory matching attributes common and registry respectively. This allows the bundle to get resolved to the desired part of the split package. To import the complete package then do not use any matching attributes:
This will resolve to the complete package as exported by the org.eclipse.core.runtime aggregate bundle.