blob: 3444fdfe7116437bdeed0b30dc473a53905bb85f [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html lang="en">
<HEAD>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2006, 2009. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<TITLE>Runtime components</TITLE>
<link rel="stylesheet" type="text/css" HREF="../book.css">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>
Runtime components</H2>
<p> The Eclipse runtime itself is factored into several bundles:
</p><ul>
<li><b>org.eclipse.core.contenttype</b> - <a href="runtime_content.htm">Content type mechanism</a></li>
<li><b>org.eclipse.core.jobs</b> - <a href="runtime_jobs.htm">Concurrency infrastructure</a></li>
<li><b>org.eclipse.core.net</b> - <a href="network.htm">Network and proxy management infrastructure</a></li>
<li><b>org.eclipse.equinox.app</b> - <a href="runtime_app_model.htm">Application Model</a></li>
<li><b>org.eclipse.equinox.common</b> - Common basic functionality</li>
<li><b>org.eclipse.equinox.preferences</b> - <a href="runtime_preferences.htm">Runtime preferences</a></li>
<li><b>org.eclipse.equinox.registry</b> - <a href="runtime_registry.htm">Extension registry</a></li>
<li><b>org.eclipse.equinox.security</b> - <a href="runtime_registry.htm">Security infrastructure</a></li>
<li><b>org.eclipse.core.runtime</b> - Aggregates the Eclipse runtime bundles into a single capability that can be depended on</li>
</ul>
<p> If your plug-in has a dependency on the <b>org.eclipse.core.runtime</b> 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 <a href="https://osgi.org/javadoc/r6/core/org/osgi/framework/Constants.html#IMPORT_PACKAGE">Import-Package</a>
or <a href="https://osgi.org/javadoc/r6/core/org/osgi/framework/Constants.html#REQUIRE_BUNDLE">Require-Bundle</a></p>
<p> If you would like to use Import-Package header (rather than Require-Bundle) then you should be
aware that the <b><a href="../reference/api/org/eclipse/core/runtime/package-summary.html">org.eclipse.core.runtime</a></b>
package is split across several bundles. The bundles that export a portion of the split package <b>org.eclipse.core.runtime</b>
use a <a href="https://osgi.org/javadoc/r6/core/org/osgi/framework/Constants.html#MANDATORY_DIRECTIVE">mandatory</a>
directive. The <b>mandatory</b> directive requires importers to specify additional matching attributes in order to
successfully wire to the exported package.</p>
<p>For example, to import only the content of the package provided by
the <b>org.eclipse.equinox.common</b> bundle, use this line in the manifest file:</p>
<pre>
Import-Package: org.eclipse.core.runtime; common="split"
</pre>
<p>To import the content of the package from the <b>org.eclipse.equinox.registry</b> and
<b>org.eclipse.equinox.common</b> bundles, use:</p>
<pre>
Import-Package: org.eclipse.core.runtime; registry="split"
</pre>
<p>The above examples use the mandatory matching attributes <b>common</b> and <b>registry</b> 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:</p>
<pre>
Import-Package: org.eclipse.core.runtime
</pre>
<p>This will resolve to the complete package as exported by the <b>org.eclipse.core.runtime</b> aggregate bundle.</p>
</BODY>
</HTML>