blob: d41e49659d36bd8ddf45e4ce48ddd83dc4c094ec [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 2000, 2005. 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>The runtime plug-in model</TITLE>
<link rel="stylesheet" type="text/css" HREF="../book.css">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>
The runtime plug-in model</H2>
<P >
The platform runtime engine is started when a user starts an application developed with Eclipse.
The runtime implements the basic <b>plug-in</b> model and infrastructure used by the platform.
It keeps track of all installed plug-ins and the functionality that they provide.
</p>
<p>A plug-in is a structured component that contributes code (or documentation or both) to the system and describes
it in a structured way. Plug-ins can define <b>extension points</b>, well-defined
function points that can be extended by other plug-ins. When a plug-in contributes an implementation for an
extension point, we say that it adds an <b>extension</b> to the platform. These extensions and extension points
are declared in the plug-ins's manifest (<b>plugin.xml</b>) file.
</p>
<P >
Using a common extension model provides a structured way for plug-ins to describe the ways they can be extended, and
for client plug-ins to describe the extensions they supply. Defining an extension point is much like defining
any other API. The only difference is that the extension point is declared using XML instead of a code signature.
Likewise, a client plug-in uses XML to describe its specific extension to the system.
</p>
<p>A general goal of the runtime is that the end user should not pay a memory
or performance penalty for plug-ins that are installed, but not used. The declarative
nature of the platform extension model allows the runtime engine to determine
what extension points and extensions are supplied by a plug-in without ever
running it. Thus, many plug-ins can be installed, but none will be activated
until a function provided by a plug-in has been requested according to the user's
activity. This is an important feature in providing a scalable, robust platform.
</p>
</BODY>
</HTML>