| <!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> |