platform-update-home/doc/products-and-extension.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download) (as text)

1 : vlad 1.1 <html>
2 :    
3 :     <head>
4 :     <meta http-equiv="Content-Language" content="en-us">
5 :     <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
6 :     <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
7 :     <meta name="ProgId" content="FrontPage.Editor.Document">
8 :     <title>Eclipse-based Products and Extensions</title>
9 :     </head>
10 :    
11 :     <body>
12 :    
13 :     <h1> Eclipse-based Products and Extensions</h1>
14 :     <p>Last modified 22:30 Sunday April 28, 2002</p>
15 :     <p>Eclipse technology is the foundation of, and provides building blocks for,
16 :     products aimed at the software development tools market. Commercial software
17 :     vendors are expected to build, brand, and package products using the Eclipse
18 :     platform as the nucleus, to sell these products into the development tools
19 :     marketplace, and to support them once in the field.</p>
20 :     <p>The Eclipse platform itself is not a &quot;product&quot; in any of these
21 :     senses. Eclipse is an open source project that provides raw ingredients without
22 :     box, label, or price tag. The closest that the Eclipse project gets to a
23 :     packaged form is the Eclipse SDK, which can be downloaded from <a href="http://www.eclipse.org">eclipse.org</a>,
24 :     installed, and used as a full-service Java IDE which also happens to include
25 :     special support for developing Eclipse plug-ins.</p>
26 :     <p>This note describes how the Eclipse platform is designed to be turned into products.
27 :     The license governing the Eclipse platform gives a software vendor almost
28 :     complete freedom over how to built a product. So anyone building a product is
29 :     free to ignore this advice. However, as is often the case with standards,
30 :     adhering to the same rules as everyone else has its rewards: it fosters greater
31 :     interoperability between products, and makes it easier for the end user because
32 :     different products behave in similar ways.</p>
33 :     <p>Eclipse plug-ins are intended to packaged and delivered to the customer into
34 :     one of two forms: either as self-contained Eclipse-based products, or as add-on
35 :     extensions to Eclipse-based products. We'll first explain what we mean by
36 :     Eclipse-based product since it is the more basic notion.</p>
37 :     <h2>Eclipse-based products</h2>
38 :     <p>An Eclipse-based <b>product</b> is a stand-alone program build with Eclipse.
39 :     Products are self-contained in that all code and plug-ins needed to get up and
40 :     running are included; this includes a Java runtime environment (JRE), and the
41 :     code for the Eclipse platform itself. After installing a product on a computer
42 :     with a conventional native installer, the user launches the product (via its
43 :     product executable) and is presented with an Eclipse workbench configured
44 :     appropriately for the purposes that product was designed to support (be it
45 :     developing enterprise web servers, developing C++ programs, or developing
46 :     whatever). Products are intended to be updated, either with a conventional
47 :     native installer, or with the build-in Eclipse update manager, which is always
48 :     available to the user from the Eclipse workbench (&quot;Update Manager&quot; on
49 :     the &quot;Help&quot; menu).</p>
50 :     <p>If we looked more closely at how the Eclipse parts of the product are
51 :     organized, we would see that all plug-ins that go into a product are grouped
52 :     into <b>features</b>. &quot;Feature&quot; is an Eclipse update manager notion: a
53 :     feature is the smallest unit of separately downloadable and installable
54 :     functionality. Features also play a secondary role in how the Eclipse platform
55 :     runs.</p>
56 :     <p>To make things a bit more concrete, the top level structure of an installed
57 :     Eclipse-based product looks like this (italics indicate product-specific file
58 :     names):&nbsp;</p>
59 :     <p><code>&lt;<i>install</i>&gt;/<br>
60 :     &nbsp; <i>acmeproduct</i>.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code>product
61 :     executable<code><br>
62 :     &nbsp;
63 :     eclipse/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
64 :     </code>container for installed Eclipse files<code><br>
65 :     &nbsp;&nbsp;&nbsp; .eclipseproduct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code>marker
66 :     for Eclipse product install<code><br>
67 :     &nbsp;&nbsp;&nbsp; eclipse.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
68 :     </code>Eclipse executable launcher<code><br>
69 :     &nbsp;&nbsp;&nbsp; startup.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
70 :     </code>Eclipse Java launcher<code><br>
71 :     &nbsp;&nbsp;&nbsp; install.ini&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
72 :     </code>install info<code><br>
73 :     &nbsp;&nbsp;&nbsp; platform.cfg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
74 :     </code>install info (computed at install time)<code><br>
75 :     &nbsp;&nbsp;&nbsp; jre/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
76 :     </code>Java runtime environment (JRE)<code><br>
77 :     &nbsp;&nbsp;&nbsp;
78 :     features/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
79 :     </code>installed feature versions<code><br>
80 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.acmefeature</i>_<i>1.0.0</i>/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
81 :     </code>primary feature for product<code><br>
82 :     &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; feature.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
83 :     </code>feature manifest file<code><br>
84 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
85 :     </code>feature for Eclipse platform<code><br>
86 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform.win32_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
87 :     </code>feature for Eclipse platform<code><br>
88 :     &nbsp;&nbsp;&nbsp; plugins/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
89 :     </code>installed plug-ins and fragment versions<code><br>
90 :     </code>&nbsp;<code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.acmefeature</i>_<i>1.0.0</i>/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
91 :     </code>product-specific plug-in<code><br>
92 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
93 :     </code>plug-in manifest file<code><br>
94 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.ini&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
95 :     </code>about info for product<code><br>
96 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>acme</i>.gif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
97 :     </code>window icon for product<code><br>
98 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin_customization.ini&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
99 :     </code>about info for product<code><br>
100 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; splash.png&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
101 :     </code>product splash screen<code><br>
102 :     </code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.myplugin</i>_<i>1.0.0</i>/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
103 :     </code>product-specific plug-in <code><br>
104 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
105 :     </code>plug-in manifest file <code><br>
106 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>myplugin</i>.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
107 :     </code>code for product-specific plug-in<code><br>
108 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
109 :     </code>Eclipse platform plug-in<code><br>
110 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform.win32_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
111 :     </code>Eclipse platform plug-in<code><br>
112 :     &nbsp;&nbsp;&nbsp; &nbsp; org.eclipse.core.boot_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
113 :     </code>Eclipse platform plug-in<code><br>
114 :     &nbsp; &nbsp;&nbsp;&nbsp; org.eclipse.core.runtime_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
115 :     </code>Eclipse platform plug-in<code><br>
116 :     &nbsp; &nbsp;&nbsp;&nbsp; org.eclipse.core.resources_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
117 :     </code>Eclipse platform plug-in<code><br>
118 :     &nbsp;&nbsp;&nbsp; &nbsp; org.eclipse.ui_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
119 :     </code>Eclipse platform plug-in<code><br>
120 :     &nbsp; &nbsp;&nbsp;&nbsp; (more org.eclipse.* plug-in directories)<br>
121 :     &nbsp;&nbsp;&nbsp;
122 :     links/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
123 :     </code>links to extensions (see next section)<code><br>
124 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.anvilfeature</i>.link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
125 :     </code>link to separately-installed extension<code><br>
126 :     </code></p>
127 :     <p>Each product should partition its own plug-ins into one or more features. The
128 :     Eclipse platform itself is partitioned into three major features, Platform, JDT,
129 :     and PDE. There are also a bunch of lesser features, including documentation,
130 :     examples, and OS-dependent portions of Platform. The binary distribution of the
131 :     Eclipse 2.0 release makes each of these features available as a separate zip.
132 :     This allow a product packager to download and unzip just the pieces needed for a
133 :     particular product offering.</p>
134 :     <p>To the user, an installed product usually shows up on the desktop as a
135 :     shortcut. Opening the shortcut starts the product. For a simple product that
136 :     does nothing other than run an Eclipse workbench, the shortcut target is the
137 :     Eclipse executable launcher (<code>&lt;<i>install</i>&gt;/eclipse/eclipse.exe</code>).
138 :     For products that have other things to do as well, the shortcut targets the
139 :     product's own executable (<code>&lt;<i>install</i>&gt;/<i>acmeproduct</i>.exe</code>),
140 :     which invokes <code>eclipse.exe</code> at some point.</p>
141 :     <p>Whenever the Eclipse platform is run, exactly one feature gets to control the
142 :     overall personality of the Eclipse platform. This is the called the product's <b>primary
143 :     feature</b>, and it controls highly visible things including the splash screen,
144 :     window branding images, the about box, the welcome page, the default
145 :     perspective, and customization of the default settings of plug-in preferences.
146 :     Strictly speaking, a product could have more than one primary feature; the
147 :     selection of which primary feature gets control is done via the <code>-feature</code>
148 :     command line option to&nbsp; <code>eclipse.exe</code>. A typical product has
149 :     just one eligible primary feature.</p>
150 :     <p>Summary of characteristics of products:</p>
151 :     <ul>
152 :     <li>a product is installed in a single directory tree</li>
153 :     <li>a product includes copies of the org.eclipse.* plug-ins that it needs</li>
154 :     <li>OS-dependent code for multiple operating environment can sit side-by-side
155 :     in a product install</li>
156 :     <li>a products is installed and uninstalled by a native installer only</li>
157 :     <li>more than one product may be installed on the same computer</li>
158 :     <li>a product is installed, updated, and uninstalled independently of other
159 :     Eclipse-based products</li>
160 :     <li>a product is updated by a native installer or by the Eclipse update
161 :     manager</li>
162 :     <li>a product can have one or more primary features, and any number of other
163 :     features</li>
164 :     <li>a primary feature determines the Eclipse workbench overall appearance and
165 :     personality</li>
166 :     <li>a dominant primary feature must be selected for each run</li>
167 :     <li>the update manager can update the features and plug-ins installed with the
168 :     product</li>
169 :     <li>the update manager can install and configure additional features and
170 :     plug-ins into the product</li>
171 :     </ul>
172 :     <h2>Extensions to Eclipse-based products</h2>
173 :     <p>An <b>extension</b> is bundle of Eclipse-based features designed to be
174 :     installed separately and used with any Eclipse-based product. In contrast to a product,
175 :     an extension includes neither
176 :     primary features, nor a copy of the Eclipse platform, n or its own JRE.</p>
177 :     <p>The same installed base of files for an extension can be used from several
178 :     Eclipse-based products. This means an extension only needs to be updated in one
179 :     place, while having the effects felt in all products linked to that extension.</p>
180 :     <p>To keep things concrete, the top level structure of an installed
181 :     Eclipse-based extension looks like this:&nbsp;</p>
182 :     <p><code>&lt;<i>extension install</i>&gt;/<br>
183 :     &nbsp;
184 :     eclipse/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
185 :     </code>container for installed Eclipse files<code><br>
186 :     &nbsp;&nbsp;&nbsp; .eclipseextension&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code>marker
187 :     for Eclipse extension install<code><br>
188 :     &nbsp;&nbsp;&nbsp;
189 :     features/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
190 :     </code>installed feature versions<code><br>
191 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.anvilfeature</i>_<i>1.0.0</i>/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
192 :     </code>feature for extension<code><br>
193 :     &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; feature.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
194 :     </code>feature manifest file<code><br>
195 :     &nbsp;&nbsp;&nbsp; plugins/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
196 :     </code>installed plug-ins and fragment versions<code><br>
197 :     </code>&nbsp;<code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.anvilfeature</i>_<i>1.0.0</i>/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
198 :     </code>extension-specific plug-in<code><br>
199 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
200 :     </code>plug-in manifest file<code><br>
201 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; about.ini&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
202 :     </code>about info for feature<code><br>
203 :     </code>&nbsp; <code>&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.otherplugin</i>_<i>1.0.0</i>/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
204 :     </code>extension-specific plug-in <code><br>
205 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plugin.xml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
206 :     </code>plug-in manifest file <code><br>
207 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>otherplugin</i>.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
208 :     </code>code for extension-specific plug-in</p>
209 :     <p>Characteristics of extensions:</p>
210 :     <ul>
211 :     <li>an extension is installed in a single directory tree (separate from
212 :     products or other extensions)</li>
213 :     <li>an extension does not include a copy of the Eclipse platform plug-ins, a
214 :     JRE, or an executable</li>
215 :     <li>OS-dependent code for multiple operating environment can sit side-by-side
216 :     in an extension install</li>
217 :     <li>an extension is installed and uninstalled by a native installer only</li>
218 :     <li>more than one extension may be installed on the same computer</li>
219 :     <li>an extension is installed, updated, and uninstalled independently of other
220 :     Eclipse-based products</li>
221 :     <li>an extension is updated by a native installer or by the Eclipse update
222 :     manager</li>
223 :     <li>a product can have one or more features</li>
224 :     <li>an extension does not define primary features</li>
225 :     <li>to be useful, an extension must be associated with an Eclipse-based
226 :     product</li>
227 :     <li>an extension can be associated with one or more products at the time the
228 :     extension is installed</li>
229 :     <li>an extension can be associated with a product via the update manager</li>
230 :     <li>the update manager can update the features and plug-ins installed with the
231 :     extension</li>
232 :     <li>the update manager can install and configure additional features and
233 :     plug-ins into the extension</li>
234 :     </ul>
235 :    
236 :     </body>
237 :    
238 :     </html>