The runtime plug-in model
The platform runtime engine is started when a user starts an application developed with Eclipse.
The runtime implements the basic plug-in model and infrastructure used by the platform.
It keeps track of all of the installed plug-ins and the function that they provide.
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 extension points, 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 extension to the platform. These extensions and extension points
are declared in the plug-ins's manifest (plugin.xml) file.
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.
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.