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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (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 : droberts 1.3 <p>Last modified 14:00 Friday June 21, 2002</p>
15 : vlad 1.1 <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 : jeem 1.2 special support for developing Eclipse plug-ins (PDE).</p>
26 : vlad 1.1 <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 : jeem 1.2 &nbsp;&nbsp;&nbsp; .config/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
74 :     </code>install info (computed at install time with -initialize option)<code><br>
75 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; platform.cfg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
76 :     </code>default platform configuration<code><br>
77 : vlad 1.1 &nbsp;&nbsp;&nbsp; jre/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
78 :     </code>Java runtime environment (JRE)<code><br>
79 :     &nbsp;&nbsp;&nbsp;
80 :     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;
81 :     </code>installed feature versions<code><br>
82 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.acme.acmefeature</i>_<i>1.0.0</i>/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
83 :     </code>primary feature for product<code><br>
84 :     &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;
85 :     </code>feature manifest file<code><br>
86 :     &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;
87 :     </code>feature for Eclipse platform<code><br>
88 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform.win32_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
89 :     </code>feature for Eclipse platform<code><br>
90 :     &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;
91 :     </code>installed plug-ins and fragment versions<code><br>
92 :     </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;
93 :     </code>product-specific plug-in<code><br>
94 :     &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;
95 :     </code>plug-in manifest file<code><br>
96 :     &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;
97 :     </code>about info for product<code><br>
98 :     &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;
99 :     </code>window icon for product<code><br>
100 :     &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;
101 :     </code>about info for product<code><br>
102 :     &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;
103 :     </code>product splash screen<code><br>
104 :     </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;
105 :     </code>product-specific plug-in <code><br>
106 :     &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;
107 :     </code>plug-in manifest file <code><br>
108 :     &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;
109 :     </code>code for product-specific plug-in<code><br>
110 :     &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;
111 :     </code>Eclipse platform plug-in<code><br>
112 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.eclipse.platform.win32_2.0.0/&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.boot_2.0.0/&nbsp;&nbsp;&nbsp;&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.runtime_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
117 :     </code>Eclipse platform plug-in<code><br>
118 :     &nbsp; &nbsp;&nbsp;&nbsp; org.eclipse.core.resources_2.0.0/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
119 :     </code>Eclipse platform plug-in<code><br>
120 :     &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;
121 :     </code>Eclipse platform plug-in<code><br>
122 :     &nbsp; &nbsp;&nbsp;&nbsp; (more org.eclipse.* plug-in directories)<br>
123 :     &nbsp;&nbsp;&nbsp;
124 :     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;
125 :     </code>links to extensions (see next section)<code><br>
126 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.anvilfeature</i>.link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
127 :     </code>link to separately-installed extension<code><br>
128 :     </code></p>
129 :     <p>Each product should partition its own plug-ins into one or more features. The
130 :     Eclipse platform itself is partitioned into three major features, Platform, JDT,
131 :     and PDE. There are also a bunch of lesser features, including documentation,
132 :     examples, and OS-dependent portions of Platform. The binary distribution of the
133 :     Eclipse 2.0 release makes each of these features available as a separate zip.
134 :     This allow a product packager to download and unzip just the pieces needed for a
135 :     particular product offering.</p>
136 :     <p>To the user, an installed product usually shows up on the desktop as a
137 :     shortcut. Opening the shortcut starts the product. For a simple product that
138 :     does nothing other than run an Eclipse workbench, the shortcut target is the
139 :     Eclipse executable launcher (<code>&lt;<i>install</i>&gt;/eclipse/eclipse.exe</code>).
140 :     For products that have other things to do as well, the shortcut targets the
141 :     product's own executable (<code>&lt;<i>install</i>&gt;/<i>acmeproduct</i>.exe</code>),
142 :     which invokes <code>eclipse.exe</code> at some point.</p>
143 :     <p>Whenever the Eclipse platform is run, exactly one feature gets to control the
144 :     overall personality of the Eclipse platform. This is the called the product's <b>primary
145 :     feature</b>, and it controls highly visible things including the splash screen,
146 :     window branding images, the about box, the welcome page, the default
147 : droberts 1.3 perspective, and customization of the default settings of plug-in preferences. The typical product has
148 :     just one eligible primary feature, and it is determined by the &quot;<code>feature.default.id</code>&quot;
149 :     property of the product's <code>install.ini</code> file. If there are multiple
150 :     eligible primary features, the <code>-feature</code>
151 :     command line option to <code>eclipse.exe</code> overrides the choice made in the
152 :     <code>install.ini</code>.&nbsp;</p>
153 : vlad 1.1 <p>Summary of characteristics of products:</p>
154 :     <ul>
155 :     <li>a product is installed in a single directory tree</li>
156 :     <li>a product includes copies of the org.eclipse.* plug-ins that it needs</li>
157 :     <li>OS-dependent code for multiple operating environment can sit side-by-side
158 :     in a product install</li>
159 :     <li>a products is installed and uninstalled by a native installer only</li>
160 :     <li>more than one product may be installed on the same computer</li>
161 :     <li>a product is installed, updated, and uninstalled independently of other
162 :     Eclipse-based products</li>
163 :     <li>a product is updated by a native installer or by the Eclipse update
164 :     manager</li>
165 :     <li>a product can have one or more primary features, and any number of other
166 :     features</li>
167 :     <li>a primary feature determines the Eclipse workbench overall appearance and
168 :     personality</li>
169 : droberts 1.3 <li>the default primary feature is specified in the product-specific
170 :     install.ini file</li>
171 : vlad 1.1 <li>the update manager can update the features and plug-ins installed with the
172 :     product</li>
173 :     <li>the update manager can install and configure additional features and
174 :     plug-ins into the product</li>
175 :     </ul>
176 :     <h2>Extensions to Eclipse-based products</h2>
177 :     <p>An <b>extension</b> is bundle of Eclipse-based features designed to be
178 :     installed separately and used with any Eclipse-based product. In contrast to a product,
179 : jeem 1.2 an extension includes neither eligible primary features, nor a copy of the Eclipse platform, nor its own JRE.</p>
180 : vlad 1.1 <p>The same installed base of files for an extension can be used from several
181 :     Eclipse-based products. This means an extension only needs to be updated in one
182 : jeem 1.2 place, while having the updated features available to all products linked to that extension.</p>
183 : vlad 1.1 <p>To keep things concrete, the top level structure of an installed
184 :     Eclipse-based extension looks like this:&nbsp;</p>
185 :     <p><code>&lt;<i>extension install</i>&gt;/<br>
186 :     &nbsp;
187 :     eclipse/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
188 :     </code>container for installed Eclipse files<code><br>
189 :     &nbsp;&nbsp;&nbsp; .eclipseextension&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code>marker
190 :     for Eclipse extension install<code><br>
191 :     &nbsp;&nbsp;&nbsp;
192 :     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;
193 :     </code>installed feature versions<code><br>
194 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>com.example.wiley.anvilfeature</i>_<i>1.0.0</i>/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
195 :     </code>feature for extension<code><br>
196 :     &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;
197 :     </code>feature manifest file<code><br>
198 :     &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;
199 :     </code>installed plug-ins and fragment versions<code><br>
200 :     </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;
201 :     </code>extension-specific plug-in<code><br>
202 :     &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;
203 :     </code>plug-in manifest file<code><br>
204 :     &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;
205 :     </code>about info for feature<code><br>
206 :     </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;
207 :     </code>extension-specific plug-in <code><br>
208 :     &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;
209 :     </code>plug-in manifest file <code><br>
210 :     &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;
211 :     </code>code for extension-specific plug-in</p>
212 :     <p>Characteristics of extensions:</p>
213 :     <ul>
214 :     <li>an extension is installed in a single directory tree (separate from
215 :     products or other extensions)</li>
216 :     <li>an extension does not include a copy of the Eclipse platform plug-ins, a
217 :     JRE, or an executable</li>
218 :     <li>OS-dependent code for multiple operating environment can sit side-by-side
219 :     in an extension install</li>
220 :     <li>an extension is installed and uninstalled by a native installer only</li>
221 :     <li>more than one extension may be installed on the same computer</li>
222 :     <li>an extension is installed, updated, and uninstalled independently of other
223 :     Eclipse-based products</li>
224 :     <li>an extension is updated by a native installer or by the Eclipse update
225 :     manager</li>
226 :     <li>a product can have one or more features</li>
227 :     <li>an extension does not define primary features</li>
228 :     <li>to be useful, an extension must be associated with an Eclipse-based
229 :     product</li>
230 :     <li>an extension can be associated with one or more products at the time the
231 :     extension is installed</li>
232 :     <li>an extension can be associated with a product via the update manager</li>
233 :     <li>the update manager can update the features and plug-ins installed with the
234 :     extension</li>
235 :     <li>the update manager can install and configure additional features and
236 :     plug-ins into the extension</li>
237 :     </ul>
238 :    
239 :     </body>
240 :    
241 :     </html>