platform-update-home/doc/eclipse_update_packaging.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.17, Thu Jan 23 21:34:37 2003 UTC revision 1.18, Mon Jan 27 13:29:44 2003 UTC
# Line 14  Line 14 
14    
15  <h1> Eclipse Platform<br>  <h1> Eclipse Platform<br>
16               Update Packaging Conventions</h1>               Update Packaging Conventions</h1>
17               <font size="-1">Revision Date: 01/22/2003 9:56AM - Version:                <font size="-1">Revision Date: 01/27/2003 9:00AM - Version:
18  2.0.18</font><br>  2.0.19</font><br>
19              <a href="../../../../../hglegal.htm"><img src="ngibmcpy.gif"               <a href="../../../../../hglegal.htm"><img
20   border="0" height="12" width="195">   src="ngibmcpy.gif" border="0" height="12" width="195">
21              </a>              </a>
22  <p><b>Change History:</b> </p>  <p><b>Change History:</b> </p>
23    
24  <ul>  <ul>
25                   <li><small>2.0.19</small><small><br>
26             </small>
27        <ul>
28          <li><small>added &lt;feature &nbsp;discovery type&gt;</small></li>
29        </ul>
30           </li>
31                <li><small>2.0.18</small></li>                <li><small>2.0.18</small></li>
32    
33    <ul>    <ul>
# Line 132  Line 138 
138    
139    <ul>    <ul>
140               <li> <font size="-1">general text cleanup</font></li>               <li> <font size="-1">general text cleanup</font></li>
141                <li> <font size="-1">&lt;feature&gt;&lt;group&gt; support removed                 <li> <font size="-1">&lt;feature&gt;&lt;group&gt; support
142     (will   not be in Eclipse 2.0)</font></li>  removed     (will   not be in Eclipse 2.0)</font></li>
143                <li> <font size="-1">arch= support added to &lt;feature&gt;                <li> <font size="-1">arch= support added to &lt;feature&gt;
144  and   &lt;feature&gt;&lt;plugin&gt;</font></li>  and   &lt;feature&gt;&lt;plugin&gt;</font></li>
145                <li> <font size="-1">os=/ arch=/ ws=/ nl= added to &lt;fetaure&gt;&lt;data&gt;</font></li>                <li> <font size="-1">os=/ arch=/ ws=/ nl= added to &lt;fetaure&gt;&lt;data&gt;</font></li>
146                <li> <font size="-1">&lt;site url=""&gt; new semantics</font></li>                <li> <font size="-1">&lt;site url=""&gt; new semantics</font></li>
147                <li> <font size="-1">corrected errors in native installer link                 <li> <font size="-1">corrected errors in native installer
148    support</font></li>  link   support</font></li>
149                <li> <font size="-1">defined callback query strings for browser-triggered                <li> <font size="-1">defined callback query strings for browser-triggered
150        processing</font></li>        processing</font></li>
151    
# Line 155  Line 161 
161       <br>       <br>
162              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Framework">Framework</a>              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Framework">Framework</a>
163        <br>        <br>
164              <a href="#Packaging_Conventions">Packaging Conventions</a>  <br>               <a href="#Packaging_Conventions">Packaging Conventions</a>
165    <br>
166              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
167   href="#Feature_Archive">Feature     Archive</a>  <br>   href="#Feature_Archive">Feature     Archive</a>  <br>
168              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
169   href="#Plug-In_Archive">Plug-In     Archive</a>  <br>   href="#Plug-In_Archive">Plug-In     Archive</a>  <br>
170              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#Packaging_NL">Packaging               &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
171       NL</a>   <br>   href="#Packaging_NL">Packaging      NL</a>   <br>
172              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
173  <a href="#Translated_Feature_Information"> Translated Feature Information</a>  <a href="#Translated_Feature_Information"> Translated Feature Information</a>
174         <br>         <br>
# Line 201  Line 208 
208               This document outlines the support for managing the delivery               This document outlines the support for managing the delivery
209  of  function     within the Eclipse platform. Also refer to the "<a  of  function     within the Eclipse platform. Also refer to the "<a
210   href="http://www.eclipse.org/legal/updatemanager.html"> Eclipse.org Update   href="http://www.eclipse.org/legal/updatemanager.html"> Eclipse.org Update
211       Manager Agreement</a> " for additional legal information governing the        Manager Agreement</a> " for additional legal information governing
212    use   of the Eclipse update manager function.  the    use   of the Eclipse update manager function.
213  <h3> <a name="Changes_from_R1.0"></a> Changes from R1.0</h3>  <h3> <a name="Changes_from_R1.0"></a> Changes from R1.0</h3>
214               This section describes the major design changes from the R1.0               This section describes the major design changes from the R1.0
215   Installation      and Update support and supplies rationale for each design   Installation      and Update support and supplies rationale for each design
# Line 219  Line 226 
226     is  merged  into <i>feature</i>. Features define the packaging structure     is  merged  into <i>feature</i>. Features define the packaging structure
227    for a group of related plug-ins, plug-in fragments, and optionally non-plug-in    for a group of related plug-ins, plug-in fragments, and optionally non-plug-in
228     files. Features are treated purely as an installation and packaging construct.     files. Features are treated purely as an installation and packaging construct.
229     They do not play a role during Eclipse plug-in execution. Features do not      They do not play a role during Eclipse plug-in execution. Features do
230     nest. They are simply an inclusive "manifest" of the plug-ins, fragments  not    nest. They are simply an inclusive "manifest" of the plug-ins, fragments
231    and other files that make up that feature. If features are logically made    and other files that make up that feature. If features are logically made
232    up of plug-ins from "sub-features", the top-level feature "manifest" must    up of plug-ins from "sub-features", the top-level feature "manifest" must
233    be fully resolved at packaging time. <li> <b>default feature archive format</b></li>    be fully resolved at packaging time. <li> <b>default feature archive format</b></li>
# Line 228  Line 235 
235              R1.0 components were packaged as a single Java .jar containing              R1.0 components were packaged as a single Java .jar containing
236   the   component    manifest as well as the actual plug-in files. The problem   the   component    manifest as well as the actual plug-in files. The problem
237   with   this approach    is lack of granularity at download time. In R2.0,   with   this approach    is lack of granularity at download time. In R2.0,
238   the feature   archive consists    of multiple separate .jars - one .jar   the feature   archive consists    of multiple separate .jars - one .jar per
239  per  plug-in and   fragment, plus one   .jar for the actual feature information.   plug-in and   fragment, plus one   .jar for the actual feature information.
240   The Installation   and Update support   selectively downloads only those   The Installation   and Update support   selectively downloads only those
241  jars required for the  installation. <li>    <b>site map</b></li>  jars required for the  installation. <li>    <b>site map</b></li>
242                <br>                <br>
243              Default Eclipse update server must contain a <i>site map</i>              Default Eclipse update server must contain a <i>site map</i>
244  file   (site.xml).     This is an evolution of the R1.0 install.index support.  file   (site.xml).     This is an evolution of the R1.0 install.index support.
245  The  rationale for    using a structured site defined by the map rather than   The  rationale for    using a structured site defined by the map rather
246  a  "free form" web   site, is the ability to present a consistent installation  than  a  "free form" web   site, is the ability to present a consistent installation
247    experience for  the user. Also, this provides the necessary structure for     experience for  the user. Also, this provides the necessary structure
248    discovery of available   updates. Additional support for "free form" browsing  for    discovery of available   updates. Additional support for "free form"
249    may be considered in   future work.    <li> <b>using native install/ uninstall</b></li>  browsing    may be considered in   future work.    <li> <b>using native install/
250    uninstall</b></li>
251                <br>                <br>
252              The primary mechanism for installing and updating Eclipse features              The primary mechanism for installing and updating Eclipse features
253     is  the  built-in installation and update support. Some products may instead     is  the  built-in installation and update support. Some products may instead
# Line 247  Line 255 
255     Eclipse  features. However, native installers do not implement the required     Eclipse  features. However, native installers do not implement the required
256     support  for understanding the Eclipse installation structure. In particular,     support  for understanding the Eclipse installation structure. In particular,
257     the native uninstallers will, by default, remove plug-in files that were     the native uninstallers will, by default, remove plug-in files that were
258    installed using the native installer without regard to these plug-ins being     installed using the native installer without regard to these plug-ins
259    needed by other features. As a result, features installed using native installers  being    needed by other features. As a result, features installed using
260      must be written into private product-specific installation location and  native installers     must be written into private product-specific installation
261    not  the shared Eclipse installation location. The shared Eclipse is made  location and   not  the shared Eclipse installation location. The shared
262    aware  of the produce-specific location via an installed "link file". <li>  Eclipse is made   aware  of the produce-specific location via an installed
263            <b>custom  install handling</b></li>  "link file". <li>           <b>custom  install handling</b></li>
264                <br>                <br>
265              In many cases the standard installation handling supplied by              In many cases the standard installation handling supplied by
266  Eclipse     is  not be sufficient to handle various custom requirements.  Eclipse     is  not be sufficient to handle various custom requirements. To
267  To accommodate     this,  R2.0 Eclipse supports custom install handlers packaged  accommodate     this,  R2.0 Eclipse supports custom install handlers packaged
268  as part of   the feature  and executed during the feature installation. <li>  as part of   the feature  and executed during the feature installation. <li>
269      <b>path  naming   conventions</b></li>      <b>path  naming   conventions</b></li>
270                <br>                <br>
271              R1.0 mandated the use of the various identifiers and versions              R1.0 mandated the use of the various identifiers and versions
272  inside    the   packaged archives (eg. directory path names for plug-ins).  inside    the   packaged archives (eg. directory path names for plug-ins).
273  This approach     has proven to be ackward and error prone. In 2.0, the packaging   This approach     has proven to be ackward and error prone. In 2.0, the
274   requirements     no longer mandate that path names of packaged files precisely  packaging  requirements     no longer mandate that path names of packaged
275   reflect the    contained identifiers and versions. The properly identified  files precisely  reflect the    contained identifiers and versions. The properly
276   install subdirectories    are created by the Eclipse support during the  identified  install subdirectories    are created by the Eclipse support
277  installation  and update process     based on the archive content (rather  during the installation  and update process     based on the archive content
278  than explicit  jar path structure set    up at packaging time)  (rather than explicit  jar path structure set    up at packaging time)
279    
280  </ul>  </ul>
281    
# Line 277  Line 285 
285   of  execution     recognized by the Eclipse runtime environment. In general,   of  execution     recognized by the Eclipse runtime environment. In general,
286   plug-ins are   not exposed to users that select function during installation   plug-ins are   not exposed to users that select function during installation
287   or update.  The reason is that plug-in boundaries are established by developers   or update.  The reason is that plug-in boundaries are established by developers
288   for development    reasons (like function reuse) and present the wrong level    for development    reasons (like function reuse) and present the wrong
289   of granularity   in terms of what the user sees as the unit of function.  level   of granularity   in terms of what the user sees as the unit of function.
290    
291  <p>While plug-ins are being developed (ie. are frequently being changed),  <p>While plug-ins are being developed (ie. are frequently being changed),
292        their internal file structure will reflect what is convenient to the        their internal file structure will reflect what is convenient to the
293   developer.     This will generally depend on the particular development tool    developer.     This will generally depend on the particular development
294   being used.     Typically, however, the developer will likely setup the  tool  being used.     Typically, however, the developer will likely setup
295  plug-in  to execute     from a directory tree containing exposed .class files,  the plug-in  to execute     from a directory tree containing exposed .class
296  rather  than executing     from a .jar (requires an extra step to create  files, rather  than executing     from a .jar (requires an extra step to
297  the .jar  and we all know  developers  hate extra steps). Also, at this stage  create the .jar  and we all know  developers  hate extra steps). Also, at
298  the developer  does not  pay particular  attention to plug-in versioning  this stage the developer  does not  pay particular  attention to plug-in
299  information, because  the plug-in is continually  changing. </p>  versioning information, because  the plug-in is continually  changing. </p>
300    
301  <p>However, when the plug-in is ready to be packaged, it needs to be converted  <p>However, when the plug-in is ready to be packaged, it needs to be converted
302        to a form suitable for packaging and installation. Typically it means        to a form suitable for packaging and installation. Typically it means
# Line 300  Line 308 
308    
309  <p><b>Plug-in Fragment</b> <br>  <p><b>Plug-in Fragment</b> <br>
310              Plug-in Fragments (or simply Fragments) allow independent packaging              Plug-in Fragments (or simply Fragments) allow independent packaging
311     of  certain  aspects of the base plug-in. This includes (but may not be      of  certain  aspects of the base plug-in. This includes (but may not
312   limited   to) translated  resources for the plug-in, OS-specific or windowing-system-specific  be   limited   to) translated  resources for the plug-in, OS-specific or
313       code.  At runtime, fragments are logically merged into the base plug-in.  windowing-system-specific      code.  At runtime, fragments are logically
314      From a packaging point of view, the install and update support does not  merged into the base plug-in.     From a packaging point of view, the install
315    really   differentiate  between plug-ins and their related fragments. </p>  and update support does not   really   differentiate  between plug-ins and
316    their related fragments. </p>
317    
318  <p><b>Feature</b> <br>  <p><b>Feature</b> <br>
319              A feature is an installation packaging mechanism used to define              A feature is an installation packaging mechanism used to define
320   a  group    of versioned plug-ins and/or plug-in fragments plus non-plug-in   a  group    of versioned plug-ins and/or plug-in fragments plus non-plug-in
321   files that    is used to deliver some user function. A feature can also include    files that    is used to deliver some user function. A feature can also
322    other  features.  Features are exposed to users as part of the packaging  include   other  features.  Features are exposed to users as part of the
323   and installation   process,  because they represent a unit of function selection.  packaging  and installation   process,  because they represent a unit of
324    Features also  represent  a unit of installation. Features carry a version  function selection.   Features also  represent  a unit of installation. Features
325    identifier.</p>  carry a version   identifier.</p>
326    
327  <p>Features are packaged as a feature archive, referencing the required plug-ins,  <p>Features are packaged as a feature archive, referencing the required plug-ins,
328        plug-in fragments and optional non-plug-in files. The feature archives        plug-in fragments and optional non-plug-in files. The feature archives
329     are   placed on an update server for download and installation by the     are   placed on an update server for download and installation by the Eclipse
330  Eclipse     update  manager, or they can be used as the input into a formal      update  manager, or they can be used as the input into a formal packaging
331  packaging     process  using one of the "traditional" installer technologies.      process  using one of the "traditional" installer technologies. The format
332  The format     of the feature archive is described later. </p>      of the feature archive is described later. </p>
333    
334  <h3> <a name="Framework"></a> Framework</h3>  <h3> <a name="Framework"></a> Framework</h3>
335               The 2.0 installation and update support is provided as a framework               The 2.0 installation and update support is provided as a framework
# Line 332  Line 341 
341   feature   types   are  registere via the "org.eclipse.update.featureTypes"   feature   types   are  registere via the "org.eclipse.update.featureTypes"
342   extension   point.</li>   extension   point.</li>
343                <li> concrete implementations of site (ISite interface) that                <li> concrete implementations of site (ISite interface) that
344   can   be  used  to support alternate site layout, or site behavior. New   can   be  used  to support alternate site layout, or site behavior. New concrete
345  concrete    site  types   are registered via the "org.eclipse.update.siteTypes"     site  types   are registered via the "org.eclipse.update.siteTypes" extension
346  extension    point.</li>     point.</li>
347                <li> each feature can specify a custom install handler as part                 <li> each feature can specify a custom install handler as
348    of  its   feature  manifest. Install handlers (IInstallHandler interface)  part   of  its   feature  manifest. Install handlers (IInstallHandler interface)
349    are  dynamically   invoked as part of the installation process to handle    are  dynamically   invoked as part of the installation process to handle
350   non-plugin  data, plus   perform other custom processing allowed by the   non-plugin  data, plus   perform other custom processing allowed by the framework.</li>
 framework.</li>  
351    
352  </ul>  </ul>
353               Eclipse provides default implementations of feature and site.               Eclipse provides default implementations of feature and site.
# Line 350  Line 358 
358                  <tr>                  <tr>
359               <td><b>Note: <i>The reminder of this document describes the               <td><b>Note: <i>The reminder of this document describes the
360  default     concrete   implementation of the framework delivered with Eclipse.  default     concrete   implementation of the framework delivered with Eclipse.
361  It specifies    the  structure of the default feature implementation, as  It specifies    the  structure of the default feature implementation, as well
362  well as the default    site  implementation, plus the corresponding xml files  as the default    site  implementation, plus the corresponding xml files (feature.xml
363  (feature.xml and  site.xml).   Providers of alternate concrete implementations  and  site.xml).   Providers of alternate concrete implementations can extend&nbsp;
364  can extend&nbsp;  parts or   all of the default Eclipse implementation. This   parts or   all of the default Eclipse implementation. This includes providing
365  includes providing  a mechanism   for dynamic computation of the site map   a mechanism   for dynamic computation of the site map (site.xml)</i></b></td>
 (site.xml)</i></b></td>  
366               </tr>               </tr>
367    
368    </tbody>    </tbody>
# Line 382  Line 389 
389  (see next    section) and non-plug-in files.  (see next    section) and non-plug-in files.
390  <p>Features are identified using a structured identifier based on the provider  <p>Features are identified using a structured identifier based on the provider
391        internet domain name. For example, organization eclipse.org may produce        internet domain name. For example, organization eclipse.org may produce
392      feature org.eclipse.javatooling. The character set used for feature identifiers       feature org.eclipse.javatooling. The character set used for feature
393      is as specified for plug-in identifiers (see reference information describing  identifiers      is as specified for plug-in identifiers (see reference information
394        the plug-in manifest). </p>  describing        the plug-in manifest). </p>
395    
396  <p>The recommended convention for naming the feature archives is <br>  <p>The recommended convention for naming the feature archives is <br>
397              <tt>&lt;id&gt;_&lt;version&gt;.jar</tt> </p>              <tt>&lt;id&gt;_&lt;version&gt;.jar</tt> </p>
398    
399  <p>Where <tt>&lt;id&gt;</tt> is the feature identifier and <tt>&lt;version&gt;</tt>  <p>Where <tt>&lt;id&gt;</tt> is the feature identifier and <tt>&lt;version&gt;</tt>
400         is the full version identifier contained in the respective feature.xml.         is the full version identifier contained in the respective feature.xml.
401       Note that this is a recommended convention that minimizes chance of collisions,        Note that this is a recommended convention that minimizes chance of
402        but is not required by the Eclipse architecture. For example, the following  collisions,       but is not required by the Eclipse architecture. For example,
403        are valid feature archive names </p>  the following       are valid feature archive names </p>
404    
405  <p><tt>org.eclipse.javatooling_1.0.3.jar</tt> <br>  <p><tt>org.eclipse.javatooling_1.0.3.jar</tt> <br>
406              <tt>org.eclipse.pde_2.0.jar</tt> <br>              <tt>org.eclipse.pde_2.0.jar</tt> <br>
# Line 415  Line 422 
422    
423  <p><tt>&lt;?xml encoding="ISO-8859-1"?&gt;</tt> </p>  <p><tt>&lt;?xml encoding="ISO-8859-1"?&gt;</tt> </p>
424    
425  <p><tt>&lt;!ELEMENT feature (install-handler?, description?, copyright?, license?,  <p><tt>&lt;!ELEMENT feature (install-handler?, description?, copyright?,
426  url?, includes*, requires?, plugin*, data*)&gt;</tt> <br>  license?, url?, includes*, requires?, plugin*, data*)&gt;</tt> <br>
427              <tt>&lt;!ATTLIST feature</tt> <br>              <tt>&lt;!ATTLIST feature</tt> <br>
428              <tt>&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;              <tt>&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
429        CDATA #REQUIRED</tt> <br>        CDATA #REQUIRED</tt> <br>
# Line 487  Line 494 
494        CDATA #REQUIRED</tt> <br>        CDATA #REQUIRED</tt> <br>
495              <tt>&nbsp;&nbsp;&nbsp; label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;              <tt>&nbsp;&nbsp;&nbsp; label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
496        CDATA #IMPLIED</tt> <br>        CDATA #IMPLIED</tt> <br>
497              <tt>&gt;</tt> </p>    <tt>&nbsp;&nbsp;&nbsp; type &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
498       &nbsp;(update|web) "update"</tt><tt><br>
499      &gt;</tt> </p>
500    <p> </p>
501    
502  <p><tt>&lt;!ELEMENT includes EMPTY&gt;</tt> <br>  <p><tt>&lt;!ELEMENT includes EMPTY&gt;</tt> <br>
503              <tt>&lt;!ATTLIST includes</tt> <br>              <tt>&lt;!ATTLIST includes</tt> <br>
# Line 578  Line 588 
588                <li> os - optional operating system specification. A comma-separated                <li> os - optional operating system specification. A comma-separated
589       list  of os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>       list  of os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>
590        . Indicates this feature should only be installed on one of the specified        . Indicates this feature should only be installed on one of the specified
591        os systems. If this attribute is not specified, the feature can be installed         os systems. If this attribute is not specified, the feature can be
592        on all systems (portable implementation). This information is used  installed       on all systems (portable implementation). This information
593  as   a  hint by the installation and update support (user can force installation  is used as   a  hint by the installation and update support (user can force
594     of feature regardless of this setting).</li>  installation    of feature regardless of this setting).</li>
595                <li> arch - optional machine architecture specification. A                <li> arch - optional machine architecture specification. A
596  comma-separated       list of architecture designators defined by Eclipse  comma-separated       list of architecture designators defined by Eclipse
597  (see Javadoc for        <tt>     org.eclipse.core.boot.BootLoader)</tt>.  (see Javadoc for        <tt>     org.eclipse.core.boot.BootLoader)</tt>. Indicates
598  Indicates this feature   should only    be installed on one of the specified  this feature   should only    be installed on one of the specified systems.
599  systems. If this attribute   is not specified,   the feature can be installed  If this attribute   is not specified,   the feature can be installed on all
600  on all systems (portable   implementation).  This   information is used as  systems (portable   implementation).  This   information is used as a hint
601  a hint by the installation   and update support  (user   can force installation  by the installation   and update support  (user   can force installation of
602  of feature regardless  of this setting).</li>  feature regardless  of this setting).</li>
603                <li> ws - optional windowing system specification. A comma-separated                <li> ws - optional windowing system specification. A comma-separated
604       list  of ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>       list  of ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>
605        . Indicates this feature should only be installed on one of the specified        . Indicates this feature should only be installed on one of the specified
606        ws systems. If this attribute is not specified, the feature can be installed         ws systems. If this attribute is not specified, the feature can be
607        on all systems (portable implementation). This information is used  installed       on all systems (portable implementation). This information
608  as   a  hint by the installation and update support (user can force installation  is used as   a  hint by the installation and update support (user can force
609     of feature regardless of this setting).</li>  installation    of feature regardless of this setting).</li>
610                <li> nl - optional locale specification. A comma-separated                <li> nl - optional locale specification. A comma-separated
611  list   of  locale   designators defined by Java. Indicates this feature should  list   of  locale   designators defined by Java. Indicates this feature should
612  only  be installed   on a system running with a compatible locale (using Java   only  be installed   on a system running with a compatible locale (using
613  locale-matching    rules). If this attribute is not specified, the feature  Java locale-matching    rules). If this attribute is not specified, the feature
614    can be installed   on all systems (language-neutral implementation). This    can be installed   on all systems (language-neutral implementation). This
615    information is used   as a hint by the installation and update support    information is used   as a hint by the installation and update support (user
616  (user   can force installation    of feature regardless of this setting).</li>    can force installation    of feature regardless of this setting).</li>
617                <li> colocation-affinity - optional reference to another feature                <li> colocation-affinity - optional reference to another feature
618     identifier    used to select the default installation location for this     identifier    used to select the default installation location for this
619   feature.  When  this feature is being installed as a new feature (no other   feature.  When  this feature is being installed as a new feature (no other
# Line 614  Line 624 
624  . Default     if        <i>false</i> (not a primary feature).</li>  . Default     if        <i>false</i> (not a primary feature).</li>
625                <li> application - optional identifier of the Eclipse application                <li> application - optional identifier of the Eclipse application
626     that   is to be used during startup when the declaring feature is the     that   is to be used during startup when the declaring feature is the
627       <a href="#Dominant_Feature"> primary feature</a> . The application identifier        <a href="#Dominant_Feature"> primary feature</a> . The application
628       must represent a valid application registered in the <tt>org.eclipse.core.runtime.applications</tt>  identifier      must represent a valid application registered in the <tt>org.eclipse.core.runtime.applications</tt>
629       extension point. Default is <tt>org.eclipse.ui.workbench</tt>.</li>       extension point. Default is <tt>org.eclipse.ui.workbench</tt>.</li>
630        <li> plugin- optional identifier of the primary plugin associated with         <li> plugin- optional identifier of the primary plugin associated
631   this <a  with  this <a
632   href="file:///C:/OTI/workspace/plugins/platform-update-home/doc/eclipse_update_packaging.html#Dominant_Feature">primary   href="file:///C:/OTI/workspace/plugins/platform-update-home/doc/eclipse_update_packaging.html#Dominant_Feature">primary
633   feature</a>. The primary plugin carries branding information. If the plugin   feature</a>. The primary plugin carries branding information. If the plugin
634   attribute is not declared, the primary plugin identifier used will be the   attribute is not declared, the primary plugin identifier used will be the
# Line 640  Line 650 
650  interpreted  as  a fully qualified  name of a class contained in the specified  interpreted  as  a fully qualified  name of a class contained in the specified
651        <i>library</i>.     If       <i>library</i>   is not specified, the        <i>library</i>.     If       <i>library</i>   is not specified, the
652  value is is interpreted   as  an extension identifier  of an extension registered  value is is interpreted   as  an extension identifier  of an extension registered
653  in the <i>org.eclipse.update.installHandlers</i>        extension point.  in the <i>org.eclipse.update.installHandlers</i>        extension point. In
654  In either case, the resulting class must implement  the          <i> IInstallHandler</i>  either case, the resulting class must implement  the          <i> IInstallHandler</i>
655  interface. The class is dynamically loaded   and called at specific points  interface. The class is dynamically loaded   and called at specific points
656  during feature processing. The handler has  visibility to the API classes  during feature processing. The handler has  visibility to the API classes
657  from the update plug-in, and Eclipse plug-ins    required by the update plugin.</li>  from the update plug-in, and Eclipse plug-ins    required by the update plugin.</li>
658    
659    </ul>    </ul>
660                <li> &lt;description&gt; - brief component description as simple                 <li> &lt;description&gt; - brief component description as
661     text.    Intended to be translated.</li>  simple    text.    Intended to be translated.</li>
662    
663    <ul>    <ul>
664               <li> url - optional URL for the full description as HTML. The               <li> url - optional URL for the full description as HTML. The
665   URL   can   be  specified as absolute of relative. If relative, it is assumed   URL   can   be  specified as absolute of relative. If relative, it is assumed
666   to  be relative   to (and packaged in) the feature archive. Note, that for   to  be relative   to (and packaged in) the feature archive. Note, that for
667   NL  handling the  URL value should be separated to allow alternate URLs   NL  handling the  URL value should be separated to allow alternate URLs to
668  to  be  specified for  each national language. &nbsp;URL support keywords   be  specified for  each national language. &nbsp;URL support keywords $os$,$ws$,$arch$
669  $os$,$ws$,$arch$  and $nl$ that will be replaced by the appropriate operating   and $nl$ that will be replaced by the appropriate operating system, windowing
670  system, windowing  system, operating architecture or national language value.</li>   system, operating architecture or national language value.</li>
671    
672    </ul>    </ul>
673                <li> &lt;copyright&gt; - feature copyright as simple text.                <li> &lt;copyright&gt; - feature copyright as simple text.
# Line 667  Line 677 
677               <li> url - optional URL for the full description as HTML. The               <li> url - optional URL for the full description as HTML. The
678   URL   can   be  specified as absolute of relative. If relative, it is assumed   URL   can   be  specified as absolute of relative. If relative, it is assumed
679   to  be relative   to (and packaged in) the feature archive. Note, that for   to  be relative   to (and packaged in) the feature archive. Note, that for
680   NL  handling the  URL value should be separated to allow alternate URLs   NL  handling the  URL value should be separated to allow alternate URLs to
681  to  be  specified for  each national language. URL support keywords $os$,$ws$,$arch$   be  specified for  each national language. URL support keywords $os$,$ws$,$arch$
682   and $nl$ that will be replaced by the appropriate operating system, windowing   and $nl$ that will be replaced by the appropriate operating system, windowing
683   system, operating architecture or national language value.</li>   system, operating architecture or national language value.</li>
684    
685    </ul>    </ul>
686                <li> &lt;license&gt; - feature "click-through" license as simple                 <li> &lt;license&gt; - feature "click-through" license as
687     text.    Intended to be translated. It is displayed in a standard dialog  simple    text.    Intended to be translated. It is displayed in a standard
688    with [Accept]    [Reject] actions during the download/ installation process.  dialog   with [Accept]    [Reject] actions during the download/ installation
689    Note, that click-through   license must be specified for any feature that  process.   Note, that click-through   license must be specified for any feature
690    will be selected for installation   or update using the Eclipse update  that   will be selected for installation   or update using the Eclipse update
691  manager.    When using nested features, only the nesting parent (ie. the  manager.    When using nested features, only the nesting parent (ie. the feature
692  feature selected    for installation or update) must have click-through license  selected    for installation or update) must have click-through license text
693  text defined.    The license text is required even if the optional <i>url</i>  defined.    The license text is required even if the optional <i>url</i> attribute
694  attribute is   specified.</li>  is   specified.</li>
695    
696    <ul>    <ul>
697               <li> url - optional URL for the full description as HTML. The               <li> url - optional URL for the full description as HTML. The
698   URL   can   be  specified as absolute of relative. If relative, it is assumed   URL   can   be  specified as absolute of relative. If relative, it is assumed
699   to  be relative   to (and packaged in) the feature archive. Note, that for   to  be relative   to (and packaged in) the feature archive. Note, that for
700   NL  handling the  URL value should be separated to allow alternate URLs   NL  handling the  URL value should be separated to allow alternate URLs to
701  to  be  specified for  each national language. Note, that the "content" of   be  specified for  each national language. Note, that the "content" of this
702  this  URL  is <b>not</b>    what is presented as the click-through license   URL  is <b>not</b>    what is presented as the click-through license during
703  during  installation  processing.    The click-through license is the actual   installation  processing.    The click-through license is the actual value
704  value  of the <i>&lt;license&gt;</i>      element (eg. <tt>&lt;license&gt;click   of the <i>&lt;license&gt;</i>      element (eg. <tt>&lt;license&gt;click
705  through text&lt;/license&gt;</tt>).&nbsp;URL support keywords $os$,$ws$,$arch$  through text&lt;/license&gt;</tt>).&nbsp;URL support keywords $os$,$ws$,$arch$
706  and $nl$ that will be replaced by the appropriate operating system, windowing  and $nl$ that will be replaced by the appropriate operating system, windowing
707   system, operating architecture or national language value.</li>   system, operating architecture or national language value.</li>
# Line 708  Line 718 
718               <li> url - actual URL</li>               <li> url - actual URL</li>
719                <li> label - displayable label (name) for the referenced site</li>                <li> label - displayable label (name) for the referenced site</li>
720    
721    
722      </ul>      </ul>
723                <li> &lt;discovery&gt; - URL to go to for new features. In                <li> &lt;discovery&gt; - URL to go to for new features. In
724  general,     a  provider  can use this element to reference its own site(s),  general,     a  provider  can use this element to reference its own site(s),
# Line 718  Line 729 
729      <ul>      <ul>
730               <li> url - actual URL</li>               <li> url - actual URL</li>
731                <li> label - displayable label (name) for the referenced site</li>                <li> label - displayable label (name) for the referenced site</li>
732          <li>type - whether the site is an regular update site or a web site.
733     The web site may be a web-triggered-install web site. (<tt>update</tt> is
734    the default)<br>
735          </li>
736    
737    
738      </ul>      </ul>
739    
740    </ul>    </ul>
741                <li> &lt;includes&gt; - optional reference to a nested feature                <li> &lt;includes&gt; - optional reference to a nested feature
742    that   is  considered to be part of this feature. Nested features must    that   is  considered to be part of this feature. Nested features must be
743  be   located   on  the same update site as this feature</li>    located   on  the same update site as this feature</li>
744    
745    <ul>    <ul>
746               <li> id - required nested feature identifier</li>               <li> id - required nested feature identifier</li>
# Line 735  Line 751 
751  included     feature  can be optionally installed. Default is "false"<br>  included     feature  can be optionally installed. Default is "false"<br>
752                  </li>                  </li>
753                  <li>match&nbsp; - optional rule that will be applied when                  <li>match&nbsp; - optional rule that will be applied when
754  resolving      the feature reference. A <samp>perfect</samp> match (the default   resolving      the feature reference. A <samp>perfect</samp> match (the
755  that  matches    the 2.0.1 behavior) requires that the feature has exactly  default  that  matches    the 2.0.1 behavior) requires that the feature has
756  the version specified    by the version attribute. Other choices progressively  exactly  the version specified    by the version attribute. Other choices
757  relax the rule (<samp>    equivalent</samp> allows only service part of the  progressively  relax the rule (<samp>    equivalent</samp> allows only service
758  version to be more recent,          <samp>compatible</samp> also allows minor  part of the  version to be more recent,          <samp>compatible</samp>
759  part to be included in the   consideration, while <samp>greaterOrEqual</samp>  also allows minor  part to be included in the   consideration, while <samp>greaterOrEqual</samp>
760     simply allows any version   that is more recent or identical to the one     simply allows any version   that is more recent or identical to the one
761   specified).</li>   specified).</li>
762                  <li>search-location&nbsp; - optional. Indicates whether the                   <li>search-location&nbsp; - optional. Indicates whether
763   "New   Updates"   action should search the update location determined by  the   "New   Updates"   action should search the update location determined
764  the nesting   root feature  (<tt>root</tt>, is the default), or the location  by  the nesting   root feature  (<tt>root</tt>, is the default), or the location
765  defined by   the nested feature  (<tt>self</tt>), or search both (<tt>both</tt>)  defined by   the nested feature  (<tt>self</tt>), or search both (<tt>both</tt>)
766    in that   order (root first,  self if nothing is found).</li>    in that   order (root first,  self if nothing is found).</li>
767    
# Line 765  Line 781 
781   and   feature   are specified, plugin takes precedence upon feature. Feature   and   feature   are specified, plugin takes precedence upon feature. Feature
782   or   plugin must   be specified.</li>   or   plugin must   be specified.</li>
783                <li> version - optional plug-in/feature version specification</li>                <li> version - optional plug-in/feature version specification</li>
784                    <li>patch - optional specification indicating if this feature                     <li>patch - optional specification indicating if this
785     is  a  patch of the dependant feature. Default is "false". If patch is  feature     is  a  patch of the dependant feature. Default is "false". If
786  true,   version  must be specified. If patch is true, only feature must be  patch is  true,   version  must be specified. If patch is true, only feature
787  specified.   If patch  is true, and match is specified, it must be 'perfect'.<br>  must be  specified.   If patch  is true, and match is specified, it must
788    be 'perfect'.<br>
789                    </li>                    </li>
790                <li> match - optional matching rule. Valid values and processing                <li> match - optional matching rule. Valid values and processing
791     are   as  follows:</li>     are   as  follows:</li>
# Line 784  Line 801 
801                      </li>                      </li>
802                <li> <b><i>perfect</i></b> - dependent plug-in version must                <li> <b><i>perfect</i></b> - dependent plug-in version must
803  match    exactly   the specified version.</li>  match    exactly   the specified version.</li>
804                <li> <b><i>equivalent</i></b> - dependent plug-in version must                 <li> <b><i>equivalent</i></b> - dependent plug-in version
805    be  at  least  at the version specified, or at a higher service level (major  must   be  at  least  at the version specified, or at a higher service level
806    and minor version  levels must equal the specified version).</li>  (major    and minor version  levels must equal the specified version).</li>
807                <li> <b><i>compatible</i></b> - dependent plug-in version must                 <li> <b><i>compatible</i></b> - dependent plug-in version
808    be  at  least  at the version specified, or at a higher service level or  must   be  at  least  at the version specified, or at a higher service level
809   minor  level  (major  version level must equal the specified version).</li>  or  minor  level  (major  version level must equal the specified version).</li>
810                <li> <b><i>greaterOrEqual</i></b> - dependent plug-in version                <li> <b><i>greaterOrEqual</i></b> - dependent plug-in version
811   must   be  at least at the version specified, or at a higher service, minor   must   be  at least at the version specified, or at a higher service, minor
812   or major   level.</li>   or major   level.</li>
# Line 797  Line 814 
814    
815        </ul>        </ul>
816    
817    
818      </ul>      </ul>
819    
820    </ul>    </ul>
# Line 805  Line 823 
823    <ul>    <ul>
824               <li> id - required plug-in identifier (from plugin.xml)</li>               <li> id - required plug-in identifier (from plugin.xml)</li>
825                <li> version - required plug-in version (from plugin.xml)</li>                <li> version - required plug-in version (from plugin.xml)</li>
826                <li> fragment - optional specification indicating if this entry                 <li> fragment - optional specification indicating if this
827    is  a  plug-in  fragment. Default is "false"</li>  entry    is  a  plug-in  fragment. Default is "false"</li>
828                <li> os - optional operating system specification. A comma-separated                <li> os - optional operating system specification. A comma-separated
829       list  of os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>       list  of os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>
830        . Indicates this entry should only be installed on one of the specified        . Indicates this entry should only be installed on one of the specified
831      os  systems. If this attribute is not specified, the entry can be installed      os  systems. If this attribute is not specified, the entry can be installed
832       on all systems (portable implementation). This information is used as        on all systems (portable implementation). This information is used
833   a  hint  by the installation and update support (user can force installation  as   a  hint  by the installation and update support (user can force installation
834     of entry  regardless of this setting).</li>     of entry  regardless of this setting).</li>
835                <li> arch - optional machine architecture specification. A                <li> arch - optional machine architecture specification. A
836  comma-separated       list of architecture designators defined by Eclipse  comma-separated       list of architecture designators defined by Eclipse
837  (see Javadoc for        <tt>     org.eclipse.core.boot.BootLoader)</tt>.  (see Javadoc for        <tt>     org.eclipse.core.boot.BootLoader)</tt>. Indicates
838  Indicates this feature   should only    be installed on one of the specified  this feature   should only    be installed on one of the specified systems.
839  systems. If this attribute   is not specified,   the feature can be installed  If this attribute   is not specified,   the feature can be installed on all
840  on all systems (portable   implementation).  This   information is used as  systems (portable   implementation).  This   information is used as a hint
841  a hint by the installation   and update support  (user   can force installation  by the installation   and update support  (user   can force installation of
842  of feature regardless  of this setting).</li>  feature regardless  of this setting).</li>
843                <li> ws - optional windowing system specification. A comma-separated                <li> ws - optional windowing system specification. A comma-separated
844       list  of ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>       list  of ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>
845        . Indicates this entry should only be installed on one of the specified        . Indicates this entry should only be installed on one of the specified
846      ws  systems. If this attribute is not specified, the entry can be installed      ws  systems. If this attribute is not specified, the entry can be installed
847       on all systems (portable implementation). This information is used as        on all systems (portable implementation). This information is used
848   a  hint  by the installation and update support (user can force installation  as   a  hint  by the installation and update support (user can force installation
849     of entry  regardless of this setting).</li>     of entry  regardless of this setting).</li>
850                <li> nl - optional locale specification. A comma-separated                <li> nl - optional locale specification. A comma-separated
851  list   of  locale   designators defined by Java. Indicates this entry should  list   of  locale   designators defined by Java. Indicates this entry should
# Line 837  Line 855 
855  information  is used as  a hint by the installation and update support (user  information  is used as  a hint by the installation and update support (user
856  can force  installation   of entry regardless of this setting).</li>  can force  installation   of entry regardless of this setting).</li>
857                <li> download-size - optional hint supplied by the feature                <li> download-size - optional hint supplied by the feature
858  packager,      indicating  the download size in KBytes of the referenced  packager,      indicating  the download size in KBytes of the referenced plug-in
859    archive.The size should not contain decimal.     If not specified,  the download
860    size is not known (<b>Implementation Note:</b>     the implementation  needs
861    to distinguish between "not known" and 0 size)</li>
862                   <li> install-size - optional hint supplied by the feature
863    packager,      indicating   the install size in KBytes of the referenced
864  plug-in archive.The size should not contain decimal.     If not specified,  plug-in archive.The size should not contain decimal.     If not specified,
865   the download size is not known (<b>Implementation Note:</b>     the implementation    the install size is not known (<b>Implementation Note:</b>     the implementation
866   needs to distinguish between "not known" and 0 size)</li>   needs to distinguish between "not known" and 0 size)</li>
               <li> install-size - optional hint supplied by the feature packager,  
     indicating   the install size in KBytes of the referenced plug-in archive.  
     The size should not contain decimal. If not specified,   the install size  
 is not known (<b>Implementation Note:</b>     the implementation   needs to  
 distinguish between "not known" and 0 size)</li>  
867    
868    </ul>    </ul>
869                <li> &lt;data&gt; - identifies non-plugin and non-feature data                 <li> &lt;data&gt; - identifies non-plugin and non-feature
870    that  is part of the feature. Generally, data are post-install processed  data   that  is part of the feature. Generally, data are post-install processed
871   using feature Install handler. Feature files like feature.properties are   using feature Install handler. Feature files like feature.properties are
872  not considered  data.</li>  not considered  data.</li>
873    
# Line 860  Line 878 
878       list  of os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>       list  of os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>
879        . Indicates this entry should only be installed on one of the specified        . Indicates this entry should only be installed on one of the specified
880      os  systems. If this attribute is not specified, the entry can be installed      os  systems. If this attribute is not specified, the entry can be installed
881       on all systems (portable implementation). This information is used as        on all systems (portable implementation). This information is used
882   a  hint  by the installation and update support (user can force installation  as   a  hint  by the installation and update support (user can force installation
883     of entry  regardless of this setting).</li>     of entry  regardless of this setting).</li>
884                <li> arch - optional machine architecture specification. A                <li> arch - optional machine architecture specification. A
885  comma-separated       list of architecture designators defined by Eclipse  comma-separated       list of architecture designators defined by Eclipse
886  (see Javadoc for        <tt>     org.eclipse.core.boot.BootLoader)</tt>.  (see Javadoc for        <tt>     org.eclipse.core.boot.BootLoader)</tt>. Indicates
887  Indicates this feature   should only    be installed on one of the specified  this feature   should only    be installed on one of the specified systems.
888  systems. If this attribute   is not specified,   the feature can be installed  If this attribute   is not specified,   the feature can be installed on all
889  on all systems (portable   implementation).  This   information is used as  systems (portable   implementation).  This   information is used as a hint
890  a hint by the installation   and update support  (user   can force installation  by the installation   and update support  (user   can force installation of
891  of feature regardless  of this setting).</li>  feature regardless  of this setting).</li>
892                <li> ws - optional windowing system specification. A comma-separated                <li> ws - optional windowing system specification. A comma-separated
893       list  of ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>       list  of ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>
894        . Indicates this entry should only be installed on one of the specified        . Indicates this entry should only be installed on one of the specified
895      ws  systems. If this attribute is not specified, the entry can be installed      ws  systems. If this attribute is not specified, the entry can be installed
896       on all systems (portable implementation). This information is used as        on all systems (portable implementation). This information is used
897   a  hint  by the installation and update support (user can force installation  as   a  hint  by the installation and update support (user can force installation
898     of entry  regardless of this setting).</li>     of entry  regardless of this setting).</li>
899                <li> nl - optional locale specification. A comma-separated                <li> nl - optional locale specification. A comma-separated
900  list   of  locale   designators defined by Java. Indicates this entry should  list   of  locale   designators defined by Java. Indicates this entry should
# Line 886  Line 904 
904  information  is used as  a hint by the installation and update support (user  information  is used as  a hint by the installation and update support (user
905  can force  installation   of entry regardless of this setting).</li>  can force  installation   of entry regardless of this setting).</li>
906                <li> download-size - optional hint supplied by the feature                <li> download-size - optional hint supplied by the feature
907  packager,      indicating  the download size in KBytes of the referenced  packager,      indicating  the download size in KBytes of the referenced data
908  data archive.    If  not specified,  the download size is not known (<b>Implementation  archive.    If  not specified,  the download size is not known (<b>Implementation
909    Note:</b>      the implementation  needs to distinguish between "not known"
910    and 0 size)</li>
911                   <li> install-size - optional hint supplied by the feature
912    packager,      indicating   the install size in KBytes of the referenced
913    data archive.    If  not specified,   the install size is not known (<b>Implementation
914  Note:</b>      the implementation  needs to distinguish between "not known"  Note:</b>      the implementation  needs to distinguish between "not known"
915  and 0 size)</li>  and 0 size)</li>
               <li> install-size - optional hint supplied by the feature packager,  
     indicating   the install size in KBytes of the referenced data archive.  
   If  not specified,   the install size is not known (<b>Implementation Note:</b>  
     the implementation   needs to distinguish between "not known" and 0 size)</li>  
916    
917    </ul>    </ul>
918    
# Line 942  Line 961 
961              <tt>org.eclipse.ui.nl_2.0.jar</tt> <br>              <tt>org.eclipse.ui.nl_2.0.jar</tt> <br>
962              <tt>my_plugin.jar</tt> </p>              <tt>my_plugin.jar</tt> </p>
963    
964  <p>Internally, each plug-in archive packages all the relevant plug-in or fragment  <p>Internally, each plug-in archive packages all the relevant plug-in or
965  files relative to its plug-in or fragment directory (but not including the  fragment files relative to its plug-in or fragment directory (but not including
966  directory path element). The archive has the following structure </p>  the directory path element). The archive has the following structure </p>
967    
968  <p><tt>plugin.xml *OR* fragment.xml</tt> <br>  <p><tt>plugin.xml *OR* fragment.xml</tt> <br>
969              <tt>other plug-in or feature files and subdirectories</tt> <br>              <tt>other plug-in or feature files and subdirectories</tt> <br>
# Line 956  Line 975 
975               In Eclipse, translated plug-in information is packaged either               In Eclipse, translated plug-in information is packaged either
976   together     with the base plug-in, or as a plug-in fragment. At runtime,   together     with the base plug-in, or as a plug-in fragment. At runtime,
977   Eclipse locates     the translations for the required locale. The use of   Eclipse locates     the translations for the required locale. The use of
978  fragments allows translations     to be added to the runtime without the  fragments allows translations     to be added to the runtime without the need
979  need to repackage the base plug-ins.  to repackage the base plug-ins.
980  <p>This mechanism cannot be used for translating the actual packaging information  <p>This mechanism cannot be used for translating the actual packaging information
981        that is part of the installation xml files. Consequently the standard        that is part of the installation xml files. Consequently the standard
982    Java    translation conventions are used for the packaging information,    Java    translation conventions are used for the packaging information,
# Line 966  Line 985 
985    
986  <h4> <a name="Translated_Feature_Information"></a> Translated Feature Information</h4>  <h4> <a name="Translated_Feature_Information"></a> Translated Feature Information</h4>
987               <b>Note:</b> This section describes the conventions used for               <b>Note:</b> This section describes the conventions used for
988  translating       the information contained within the feature manifest. It   translating       the information contained within the feature manifest.
989  allows for  the    update client to select the correctly localized strings  It allows for  the    update client to select the correctly localized strings
990  from the update    server.  This section specifically does not describe localization   from the update    server.  This section specifically does not describe
991  of individual    plug-ins.  localization  of individual    plug-ins.
992  <p>Several of the attributes within the feature manifest are strings intended  <p>Several of the attributes within the feature manifest are strings intended
993        for display through user interfaces. To facilitate translation, these        for display through user interfaces. To facilitate translation, these
994    attribute    values use the convention defined for translatable attributes    attribute    values use the convention defined for translatable attributes
# Line 1001  Line 1020 
1020       </p>       </p>
1021    
1022  <p>The resulting resource bundle can be used in <tt>IPluginDescriptor.getResourceString(String,ResourceBundle)</tt>  <p>The resulting resource bundle can be used in <tt>IPluginDescriptor.getResourceString(String,ResourceBundle)</tt>
1023         to actually return the correct translated string for the manifest         to actually return the correct translated string for the manifest attribute.
1024  attribute.       </p>        </p>
1025    
1026  <h4> <a name="Translated_Plug-In_Information"></a> Translated Plug-In Information</h4>  <h4> <a name="Translated_Plug-In_Information"></a> Translated Plug-In Information</h4>
1027               No change from 1.0. Translated plug-in information should be               No change from 1.0. Translated plug-in information should be
# Line 1017  Line 1036 
1036  eclipse.org       development resources page of the Update component.  eclipse.org       development resources page of the Update component.
1037    
1038  <h3> <a name="Packaging_Non_Plug_In_Files"></a> Packaging Non-Plug-In Files</h3>  <h3> <a name="Packaging_Non_Plug_In_Files"></a> Packaging Non-Plug-In Files</h3>
1039               Arbitrary non-plug-in files can be included as part of the feature                Arbitrary non-plug-in files can be included as part of the
1040     definition    using the <tt>&lt;data&gt;</tt> elements. Non-plug-in files  feature     definition    using the <tt>&lt;data&gt;</tt> elements. Non-plug-in
1041     typically also    requires specification of a custom install handler. In  files     typically also    requires specification of a custom install handler.
1042    general, the Eclipse    support only downloads the referenced non-plug-in  In   general, the Eclipse    support only downloads the referenced non-plug-in
1043    files and calls the custom    install handler to perform any actual installation    files and calls the custom    install handler to perform any actual installation
1044    steps.    steps.
1045  <p>Eclipse does not specify the format of the non-plug-in files. </p>  <p>Eclipse does not specify the format of the non-plug-in files. </p>
# Line 1030  Line 1049 
1049  packaged     as  part of the <a href="#Feature_Archive">feature archive</a>  packaged     as  part of the <a href="#Feature_Archive">feature archive</a>
1050  . The installer      must implement the <tt>IInstallHandler</tt> interface  . The installer      must implement the <tt>IInstallHandler</tt> interface
1051  (in most cases will     extend the <tt>BaseInstallHandler</tt> abstract helper  (in most cases will     extend the <tt>BaseInstallHandler</tt> abstract helper
1052  class which implements     <tt>IInstallHandler</tt>). When required, the install   class which implements     <tt>IInstallHandler</tt>). When required, the
1053  handler is dynamically     loaded by the installation and update code, and  install handler is dynamically     loaded by the installation and update
1054  is called at specific points    during its processing. The install handler  code, and is called at specific points    during its processing. The install
1055  code has visibility to classes    from the installation and update support  handler code has visibility to classes    from the installation and update
1056  plug-in, and its prerequisite  plug-ins.  support plug-in, and its prerequisite  plug-ins.
1057  <p><b>Implementation Note:</b> the detailed list of visible prerequisite plug-ins  <p><b>Implementation Note:</b> the detailed list of visible prerequisite
1058  is still evolving. It is expected to include <tt>org.eclipse.core.boot </tt>  plug-ins is still evolving. It is expected to include <tt>org.eclipse.core.boot
1059  and <tt>org.eclipse.core.runtime</tt> in all cases, plus <tt>org.eclipse.ui</tt>  </tt> and <tt>org.eclipse.core.runtime</tt> in all cases, plus <tt>org.eclipse.ui</tt>
1060         and <tt>org.eclipse.swt</tt> when running with full workbench (ie.         and <tt>org.eclipse.swt</tt> when running with full workbench (ie.
1061  not    "headless  mode"). Also, it would be useful to always expose <tt>org.eclipse.core.ant</tt>  not    "headless  mode"). Also, it would be useful to always expose <tt>org.eclipse.core.ant</tt>
1062         so that build scripts can be used as part of the install handler implementation.         so that build scripts can be used as part of the install handler implementation.
1063        </p>        </p>
1064    
1065  <p>The IInstallHandler interface supports the following methods [<b>Implementation  <p>The IInstallHandler interface supports the following methods [<b>Implementation
1066        Note:</b> the detailed definition of the IInstallHandler interface is         Note:</b> the detailed definition of the IInstallHandler interface
1067    still    evolving. The description below is not an API specification (simply  is   still    evolving. The description below is not an API specification
1068    a functional    description)]: </p>  (simply   a functional    description)]: </p>
1069    
1070  <ul>  <ul>
1071               <li> install-initiated - the install handler is called after               <li> install-initiated - the install handler is called after
1072  a  feature     was selected for installation, but before any files were downloaded.   a  feature     was selected for installation, but before any files were
1073   It   is  intended  to implement any custom click-through or user registration  downloaded.   It   is  intended  to implement any custom click-through or
1074    dialogs.  The base implementation of this method supplied with the abstract  user registration    dialogs.  The base implementation of this method supplied
1075    class     <tt>BaseInstallHandler       </tt>performs the default click-through  with the abstract    class     <tt>BaseInstallHandler       </tt>performs
1076    processing using the license  text supplied as part of the feature manifest.  the default click-through    processing using the license  text supplied
1077    On return this method indicates  success (installation continues) of failure  as part of the feature manifest.    On return this method indicates  success
1078    (installation is aborted).</li>  (installation continues) of failure    (installation is aborted).</li>
1079                <li> install-downloaded - the install handler is called after                <li> install-downloaded - the install handler is called after
1080   all   the   required  feature files were downloaded (feature, plugins, data)    all   the   required  feature files were downloaded (feature, plugins,
1081   but   before   the actual  installation is performed. The install handler  data)   but   before   the actual  installation is performed. The install
1082   is expected   to   perform verification  of the non-plug-in data files (eg.  handler   is expected   to   perform verification  of the non-plug-in data
1083   security),  or any   other pre-install processing.&nbsp; On return this method  files (eg.   security),  or any   other pre-install processing.&nbsp; On
1084   indicates   success   (installation continues) or failure (installation is  return this method  indicates   success   (installation continues) or failure
1085   aborted).</li>  (installation is  aborted).</li>
1086                <li> install-completion - the install handler is called after                <li> install-completion - the install handler is called after
1087   the   feature   information and the plug-ins were installed. It is expected   the   feature   information and the plug-ins were installed. It is expected
1088   to  complete the  installation of any non-plug-in data that was part of the    to  complete the  installation of any non-plug-in data that was part of
1089   feature.  On return  this method indicates success (returns custom install  the  feature.  On return  this method indicates success (returns custom install
1090   log) or failure (installation  is aborted). On failure, the install handler   log) or failure (installation  is aborted). On failure, the install handler
1091   is expected to perform any required cleanup.</li>   is expected to perform any required cleanup.</li>
1092                <li> uninstall-initiated - the install handler is called when                <li> uninstall-initiated - the install handler is called when
1093   a  feature    is selected for removal, but before any of the standard uninstall   a  feature    is selected for removal, but before any of the standard uninstall
1094    processing    has taken place. It is passed the custom install log created    processing    has taken place. It is passed the custom install log created
1095    by the install    handler install-completion step.</li>    by the install    handler install-completion step.</li>
1096                <li> uninstall-completion - the install handler is called on                 <li> uninstall-completion - the install handler is called
1097   completion      of the standard uninstall steps. It is passed the custom  on  completion      of the standard uninstall steps. It is passed the custom
1098  install log created     by the install handler install-completion step.</li>  install log created     by the install handler install-completion step.</li>
1099    
1100  </ul>  </ul>
1101               Note, that as a general practice, install handlers should be               Note, that as a general practice, install handlers should be
1102  provided     in  their own jars (even though they could be just exposed in   provided     in  their own jars (even though they could be just exposed
1103  the feature     archive  jar). The jar should be signed, and sealed.  in  the feature     archive  jar). The jar should be signed, and sealed.
1104    
1105  <h3> <a name="Security_Considerations"></a> Security Considerations</h3>  <h3> <a name="Security_Considerations"></a> Security Considerations</h3>
1106               The general approach is to use base Java jar signing for the               The general approach is to use base Java jar signing for the
# Line 1196  Line 1215 
1215   to  a  type   string registered via the <a href="#Framework">install framework</a>   to  a  type   string registered via the <a href="#Framework">install framework</a>
1216       extension  point. If not specified, the type is assumed to be the default       extension  point. If not specified, the type is assumed to be the default
1217      Eclipse site  type (as specified in this document).</li>      Eclipse site  type (as specified in this document).</li>
1218                <li> url - optional URL defining the update site baseline URL                 <li> url - optional URL defining the update site baseline
1219   (used    to  determine individual &lt;feature&gt; and &lt;archive&gt; location).&nbsp;  URL   (used    to  determine individual &lt;feature&gt; and &lt;archive&gt;
1220        Can be relative or absolute. If relative, is relative to site.xml.  location).&nbsp;       Can be relative or absolute. If relative, is relative
1221  If   not    specified, the default is the URL location of the site.xml file.</li>  to site.xml. If   not    specified, the default is the URL location of the
1222    site.xml file.</li>
1223    
1224    </ul>    </ul>
1225                <li> &lt;description&gt; - brief description as simple text.                <li> &lt;description&gt; - brief description as simple text.
# Line 1217  Line 1237 
1237                <li> &lt;feature&gt; - identifies referenced feature archive</li>                <li> &lt;feature&gt; - identifies referenced feature archive</li>
1238    
1239    <ul>    <ul>
1240               <li> type - optional feature type specification. The value refers                <li> type - optional feature type specification. The value
1241     to  a  type  string registered via the <a href="#Framework">install framework</a>  refers    to  a  type  string registered via the <a href="#Framework">install
1242         extension point. If not specified, the type is assumed to be the default  framework</a>        extension point. If not specified, the type is assumed
1243        feature type for the site. If the site type is the default Eclipse  to be the default       feature type for the site. If the site type is the
1244  site     type,  the default feature type is the packaged feature type (as  default Eclipse site     type,  the default feature type is the packaged
1245  specified     in this  document).</li>  feature type (as specified     in this  document).</li>
1246                <li> id - optional feature identifier. The information is used                 <li> id - optional feature identifier. The information is
1247    as  a  performance   optimization to speed up searches for features. Must  used   as  a  performance   optimization to speed up searches for features.
1248    match  the identifier   specified in the feature.xml of the referenced  Must   match  the identifier   specified in the feature.xml of the referenced
1249  archive   (the  url attribute).   If specified, the version attribute must  archive   (the  url attribute).   If specified, the version attribute must
1250  also be  specified.</li>  also be  specified.</li>
1251                <li> version - optional feature version. The information is                <li> version - optional feature version. The information is
1252  used   as  a  performance  optimization to speed up searches for features.  used   as  a  performance  optimization to speed up searches for features.
1253  Must  match  the  version specified in the feature.xml of the referenced archive   Must  match  the  version specified in the feature.xml of the referenced
1254   (the url attribute).  If specified, the id attribute must also be specified.</li>  archive  (the url attribute).  If specified, the id attribute must also be
1255                <li> url - required URL reference to the feature archive. Can  specified.</li>
1256   be  relative    or absolute. If relative, it is relative to the location                 <li> url - required URL reference to the feature archive.
1257    Can   be  relative    or absolute. If relative, it is relative to the location
1258  of the  site.xml   file.       <b>Note</b>: the default site implementation  of the  site.xml   file.       <b>Note</b>: the default site implementation
1259    allows  features  to be accessed without being explicitly declared using    allows  features  to be accessed without being explicitly declared using
1260   a &lt;feature&gt;  entry. By default, an undeclared features reference is   a &lt;feature&gt;  entry. By default, an undeclared features reference is
# Line 1246  Line 1267 
1267       list  of os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>       list  of os designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>
1268        . Indicates this feature should only be installed on one of the specified        . Indicates this feature should only be installed on one of the specified
1269        os systems. If this attribute is "*", the feature can be installed        os systems. If this attribute is "*", the feature can be installed
  on   all systems (portable implementation). This information is used as a  
 hint   by the installation and update support (user can force installation  
  of feature   regardless of this setting).</li>  
               <li> arch - optional machine architecture specification. A  
 comma-separated       list of architecture designators defined by Eclipse  
 (see Javadoc for        <tt>     org.eclipse.core.boot.BootLoader)</tt>.  
 Indicates this feature   should only    be installed on one of the specified  
 systems. If this attribute&nbsp;is     "*",  the feature can be installed  
1270  on all systems (portable implementation).     This  information is used as  on all systems (portable implementation).     This  information is used as
1271  a hint by the installation and update support     (user  can force installation  a hint by the installation and update support     (user  can force installation
1272  of feature regardless of this setting).</li>  of feature regardless of this setting).</li>
1273                   <li> arch - optional machine architecture specification. A
1274    comma-separated       list of architecture designators defined by Eclipse
1275    (see Javadoc for        <tt>     org.eclipse.core.boot.BootLoader)</tt>. Indicates
1276    this feature   should only    be installed on one of the specified systems.
1277    If this attribute&nbsp;is     "*",  the feature can be installed on all systems
1278    (portable implementation).     This  information is used as a hint by the
1279    installation and update support     (user  can force installation of feature
1280    regardless of this setting).</li>
1281                <li> ws - optional windowing system specification. A comma-separated                <li> ws - optional windowing system specification. A comma-separated
1282       list  of ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>       list  of ws designators defined by Eclipse (see Javadoc for <tt>org.eclipse.core.boot.BootLoader)</tt>
1283        . Indicates this feature should only be installed on one of the specified        . Indicates this feature should only be installed on one of the specified
1284        ws systems. If this attribute&nbsp;is "*", the feature can be installed        ws systems. If this attribute&nbsp;is "*", the feature can be installed
1285        on all systems (portable implementation). This information is used as         on all systems (portable implementation). This information is used
1286    a  hint by the installation and update support (user can force installation  as   a  hint by the installation and update support (user can force installation
1287     of feature regardless of this setting).</li>     of feature regardless of this setting).</li>
1288                <li> nl - optional locale specification. A comma-separated                <li> nl - optional locale specification. A comma-separated
1289  list   of  locale   designators defined by Java. Indicates this feature should  list   of  locale   designators defined by Java. Indicates this feature should
1290  only  be installed   on a system running with a compatible locale (using Java   only  be installed   on a system running with a compatible locale (using
1291  locale-matching    rules). If this attribute&nbsp;is "*", the feature can  Java locale-matching    rules). If this attribute&nbsp;is "*", the feature
1292  be installed on all  systems (language-neutral implementation). This information  can be installed on all  systems (language-neutral implementation). This
1293  is used as a hint by the installation and update support (user can force  information is used as a hint by the installation and update support (user
1294  installation  of feature regardless of this setting).</li>  can force installation  of feature regardless of this setting).</li>
1295                <li>patch - optional specification indicating if this feature                <li>patch - optional specification indicating if this feature
1296   is  a   patch. Default is "false".&nbsp;</li>   is  a   patch. Default is "false".&nbsp;</li>
1297    
# Line 1287  Line 1308 
1308    <ul>    <ul>
1309               <li> path - required archive path identifier. This is a string               <li> path - required archive path identifier. This is a string
1310   that   is  determined  by the <a   that   is  determined  by the <a
1311   href="#Feature_Archive_Mapping_Id_To_Path">feature</a>      referencing this   href="#Feature_Archive_Mapping_Id_To_Path">feature</a>      referencing
1312  archive and is not otherwise interpreted by the site  (other   than as a  this archive and is not otherwise interpreted by the site  (other   than
1313  lookup token).</li>  as a lookup token).</li>
1314                <li> url - required URL reference to the archive. Can be relative                <li> url - required URL reference to the archive. Can be relative
1315     or  absolute.  If relative, it is relative to the location of the site.xml     or  absolute.  If relative, it is relative to the location of the site.xml
1316     file.</li>     file.</li>
# Line 1305  Line 1326 
1326                <li> label - displayable label. Intended to be translated.</li>                <li> label - displayable label. Intended to be translated.</li>
1327    
1328    </ul>    </ul>
1329                <li> &lt;category&gt; - actual category specification for a                 <li> &lt;category&gt; - actual category specification for
1330  feature     entry</li>  a  feature     entry</li>
1331    
1332    <ul>    <ul>
1333              name - category name              name - category name
# Line 1319  Line 1340 
1340    
1341  <p>Translatable text contained in the site.xml can be separated into site&lt;_locale&gt;.properties  <p>Translatable text contained in the site.xml can be separated into site&lt;_locale&gt;.properties
1342        files using Java property bundle conventions. Note that the translated        files using Java property bundle conventions. Note that the translated
1343     strings  are used at installation time (ie. do not employ the plug-in fragment      strings  are used at installation time (ie. do not employ the plug-in
1344     runtime  mechanism). The property bundles are located relative to the  fragment    runtime  mechanism). The property bundles are located relative
1345  site.xml    location.   </p>  to the site.xml    location.   </p>
1346    
1347  <h3> <a name="Default_Site_Layout"></a> Default Site Layout</h3>  <h3> <a name="Default_Site_Layout"></a> Default Site Layout</h3>
1348               <tt>&lt;site root&gt;/</tt> <br>               <tt>&lt;site root&gt;/</tt> <br>
# Line 1347  Line 1368 
1368               <li> by supplying server-side logic on the update server (eg.               <li> by supplying server-side logic on the update server (eg.
1369   implementing      servlets that compute the site.xml map, and control access   implementing      servlets that compute the site.xml map, and control access
1370   to individual     archives based on some user criteria)</li>   to individual     archives based on some user criteria)</li>
1371                <li> by supplying a custom concrete implementation of the site                 <li> by supplying a custom concrete implementation of the
1372    object    (installed  on the client machine, update server specified <tt>&lt;site  site   object    (installed  on the client machine, update server specified
1373     type=""&gt;</tt>  ). The custom concrete site implementation, together      <tt>&lt;site     type=""&gt;</tt>  ). The custom concrete site implementation,
1374  with   any server-side   logic support the required control mechanisms.</li>  together  with   any server-side   logic support the required control mechanisms.</li>
1375    
1376  </ul>  </ul>
1377               Eclipse provides an example demonstrating an implementation               Eclipse provides an example demonstrating an implementation
# Line 1382  Line 1403 
1403              <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;              <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1404       META_INF/</tt>   </p>       META_INF/</tt>   </p>
1405    
1406  <p><b>Implementation Note:</b> we will go back to the original design of not  <p><b>Implementation Note:</b> we will go back to the original design of
1407  splitting out fragments (ie. plugin and fragments go into the same install  not splitting out fragments (ie. plugin and fragments go into the same install
1408        location) </p>        location) </p>
1409    
1410  <h3> <a name="Unmanaged_Plugins"></a> "Unmanaged" Plug-Ins</h3>  <h3> <a name="Unmanaged_Plugins"></a> "Unmanaged" Plug-Ins</h3>
# Line 1391  Line 1412 
1412   plug-ins     that were directly installed into the Eclipse file tree without   plug-ins     that were directly installed into the Eclipse file tree without
1413   being part    of a feature (eg. developer unzipping plug-in archive directly   being part    of a feature (eg. developer unzipping plug-in archive directly
1414   into the  Eclipse  file tree).   into the  Eclipse  file tree).
1415  <p>Eclipse runtime recognizes these plugins during startup and loads the plug-in  <p>Eclipse runtime recognizes these plugins during startup and loads the
1416  information into the runtime registry following the standard plug-in binding  plug-in information into the runtime registry following the standard plug-in
1417  rules. The update support also recognizes the presence of this new plug-in,  binding rules. The update support also recognizes the presence of this new
1418  but since this plug-in is not part of any feature it cannot be updated using  plug-in, but since this plug-in is not part of any feature it cannot be updated
1419  the update support (hence "unmanaged"). Unmanaged plug-in that become referenced  using the update support (hence "unmanaged"). Unmanaged plug-in that become
1420  by a feature as a result of some future installation or update action become  referenced by a feature as a result of some future installation or update
1421  "managed" (can be updated as part of the feature). </p>  action become "managed" (can be updated as part of the feature). </p>
1422    
1423  <p>Unmanaged plug-ins are not displayed as part of the installation and update  <p>Unmanaged plug-ins are not displayed as part of the installation and update
1424        UI. </p>        UI. </p>
# Line 1405  Line 1426 
1426  <h3> <a name="Using_Native_Platform_Installers"></a> Using Native Platform  <h3> <a name="Using_Native_Platform_Installers"></a> Using Native Platform
1427       Installers</h3>       Installers</h3>
1428               The Eclipse installation contains plugins that can be shared               The Eclipse installation contains plugins that can be shared
1429  across    multiple   features. When installing and uninstalling features using   across    multiple   features. When installing and uninstalling features
1430  the   Eclipse installation   and update support, these relationship are correctly  using the   Eclipse installation   and update support, these relationship
1431    maintained. Only one   copy of any version of a plug-in is used.  are correctly   maintained. Only one   copy of any version of a plug-in is
1432    used.
1433  <p>However, when using native platform installers, performing native uninstall  <p>However, when using native platform installers, performing native uninstall
1434        creates problems because plug-ins would be removed without regard to         creates problems because plug-ins would be removed without regard
1435   any    sharing relationships. As a result, Eclipse <b>does not allow</b>  to   any    sharing relationships. As a result, Eclipse <b>does not allow</b>
1436  plug-ins    to be installed using native installers into the shared installation  plug-ins    to be installed using native installers into the shared installation
1437  tree.    Instead, native installers must establish their own installation  tree.    Instead, native installers must establish their own installation
1438  root directory.    The subdirectory structure is the same as defined for base   root directory.    The subdirectory structure is the same as defined for
1439  Eclipse. The  private  root directory is logically linked into the shared  base Eclipse. The  private  root directory is logically linked into the shared
1440    Eclipse installation   via  a link file installed by the native installer.    Eclipse installation   via  a link file installed by the native installer.
1441    The file path for the   link  file is <tt>&lt;configRoot&gt;/links/</tt>.    The file path for the   link  file is <tt>&lt;configRoot&gt;/links/</tt>.
1442    The <tt>&lt;configRoot&gt;   </tt>  location is computed by Eclipse relative    The <tt>&lt;configRoot&gt;   </tt>  location is computed by Eclipse relative
1443    to the launch <a href="#Multiple%20Launch%20Points"> configuration file</a>    to the launch <a href="#Multiple%20Launch%20Points"> configuration file</a>
1444    . By default,    this is the <tt>install/</tt> directory in the shared Eclipse     . By default,    this is the <tt>install/</tt> directory in the shared
1445    installation    tree. </p>  Eclipse   installation    tree. </p>
1446    
1447  <p>The name of the link file is not specified by Eclipse. The name is determined  <p>The name of the link file is not specified by Eclipse. The name is determined
1448        by the native installer. To minimize the potential for naming collisions,        by the native installer. To minimize the potential for naming collisions,
1449        it is recommended that the file name contain the identifier and version        it is recommended that the file name contain the identifier and version
1450      of the feature being installed by the native installer. For example, <tt>&lt;featureId&gt;_&lt;featureVersion&gt;.properties</tt>       of the feature being installed by the native installer. For example,
1451       . The file content is in the form of a Java properties file, with the  <tt>&lt;featureId&gt;_&lt;featureVersion&gt;.properties</tt>      . The file
1452   following    properties defined: </p>  content is in the form of a Java properties file, with the  following
1453    properties defined: </p>
1454    
1455  <p><tt>path=[r|rw] install-path[,[r|rw] install-path]*</tt> </p>  <p><tt>path=[r|rw] install-path[,[r|rw] install-path]*</tt> </p>
1456    
1457  <p>The property <tt>path</tt> is a comma-separated list of optionally annotated  <p>The property <tt>path</tt> is a comma-separated list of optionally annotated
1458        install paths. The property value <tt>install-path</tt> is a full file         install paths. The property value <tt>install-path</tt> is a full
1459     path  to the installation directory root, specified in local OS format.  file     path  to the installation directory root, specified in local OS
1460   The  optional  annotation <tt>r</tt> or <tt>rw</tt> indicates whether Eclipse  format.   The  optional  annotation <tt>r</tt> or <tt>rw</tt> indicates whether
1461    update support  should allow the specified location to be used for updates.  Eclipse    update support  should allow the specified location to be used
1462    Default is to  allow updates&nbsp; (w). </p>  for updates.    Default is to  allow updates&nbsp; (w). </p>
1463    
1464  <p>Eclipse does not manage the linked directories in any way. It simply detects  <p>Eclipse does not manage the linked directories in any way. It simply detects
1465        their existence by the presence of the link files, and includes the        their existence by the presence of the link files, and includes the
# Line 1455  Line 1477 
1477           <br>           <br>
1478    <br>    <br>
1479   <br>   <br>
1480     <br>
1481  </body>  </body>
1482  </html>  </html>

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18