| 9 |
|
|
| 10 |
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"> |
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"> |
| 11 |
<title>Eclipse Platform: Installation and Update</title> |
<title>Eclipse Platform: Installation and Update</title> |
|
|
|
| 12 |
</head> |
</head> |
| 13 |
<body> |
<body> |
| 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/15/2003 9:33AM - Version: 2.0.17</font><br> |
<font size="-1">Revision Date: 01/22/2003 9:56AM - Version: 2.0.18</font><br> |
| 18 |
<a href="../../../../../hglegal.htm"><img src="ngibmcpy.gif" |
<a href="../../../../../hglegal.htm"><img src="ngibmcpy.gif" |
| 19 |
border="0" height="12" width="195"> |
border="0" height="12" width="195"> |
| 20 |
</a> |
</a> |
| 21 |
<p><b>Change History:</b> </p> |
<p><b>Change History:</b> </p> |
| 22 |
|
|
| 23 |
<ul> |
<ul> |
| 24 |
|
<li><small>2.0.18</small></li> |
| 25 |
|
<ul> |
| 26 |
|
<li><small>added <feature plugin=""></small></li> |
| 27 |
|
</ul> |
| 28 |
<li><small>2.0.17</small></li> |
<li><small>2.0.17</small></li> |
| 29 |
|
|
| 30 |
<ul> |
<ul> |
| 31 |
<li><small>added $os$,$ws$,$arch$ and $nl$ for copyright, description |
<li><small>added $os$,$ws$,$arch$ and $nl$ for copyright, description |
| 32 |
and license URL tag in feature.<br> |
and license URL tag in feature.<br> |
| 33 |
</small></li> |
</small></li> |
| 34 |
|
|
| 35 |
</ul> |
</ul> |
| 36 |
<li><small>2.0.16</small> <small><br> |
<li><small>2.0.16</small> <small><br> |
| 37 |
</small> |
</small> |
| 150 |
<a href="#Framework">Framework</a> |
<a href="#Framework">Framework</a> |
| 151 |
<br> |
<br> |
| 152 |
<a href="#Packaging_Conventions">Packaging Conventions</a> <br> |
<a href="#Packaging_Conventions">Packaging Conventions</a> <br> |
| 153 |
<a href="#Feature_Archive">Feature |
<a |
| 154 |
Archive</a> <br> |
href="#Feature_Archive">Feature Archive</a> <br> |
| 155 |
<a href="#Plug-In_Archive">Plug-In |
<a |
| 156 |
Archive</a> <br> |
href="#Plug-In_Archive">Plug-In Archive</a> <br> |
| 157 |
<a href="#Packaging_NL">Packaging |
<a href="#Packaging_NL">Packaging |
| 158 |
NL</a> <br> |
NL</a> <br> |
| 159 |
<a |
<a |
| 198 |
Manager Agreement</a> " for additional legal information governing the |
Manager Agreement</a> " for additional legal information governing the |
| 199 |
use of the Eclipse update manager function. |
use of the Eclipse update manager function. |
| 200 |
<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> |
| 201 |
This section describes the major design changes from the R1.0 Installation |
This section describes the major design changes from the R1.0 |
| 202 |
and Update support and supplies rationale for each design change. |
Installation and Update support and supplies rationale for each design |
| 203 |
|
change. |
| 204 |
<ul> |
<ul> |
| 205 |
<li> <b>extendable framework</b></li> |
<li> <b>extendable framework</b></li> |
| 206 |
<br> |
<br> |
| 219 |
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 |
| 220 |
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> |
| 221 |
<br> |
<br> |
| 222 |
R1.0 components were packaged as a single Java .jar containing the |
R1.0 components were packaged as a single Java .jar containing |
| 223 |
component manifest as well as the actual plug-in files. The problem with |
the component manifest as well as the actual plug-in files. The problem |
| 224 |
this approach is lack of granularity at download time. In R2.0, the feature |
with this approach is lack of granularity at download time. In R2.0, |
| 225 |
archive consists of multiple separate .jars - one .jar per plug-in and |
the feature archive consists of multiple separate .jars - one .jar per |
| 226 |
fragment, plus one .jar for the actual feature information. The Installation |
plug-in and fragment, plus one .jar for the actual feature information. |
| 227 |
and Update support selectively downloads only those jars required for the |
The Installation and Update support selectively downloads only those |
| 228 |
installation. <li> <b>site map</b></li> |
jars required for the installation. <li> <b>site map</b></li> |
| 229 |
<br> |
<br> |
| 230 |
Default Eclipse update server must contain a <i>site map</i> file |
Default Eclipse update server must contain a <i>site map</i> file |
| 231 |
(site.xml). This is an evolution of the R1.0 install.index support. |
(site.xml). This is an evolution of the R1.0 install.index support. The |
| 232 |
The rationale for using a structured site defined by the map rather than |
rationale for using a structured site defined by the map rather than a |
| 233 |
a "free form" web site, is the ability to present a consistent installation |
"free form" web site, is the ability to present a consistent installation |
| 234 |
experience for the user. Also, this provides the necessary structure for |
experience for the user. Also, this provides the necessary structure for |
| 235 |
discovery of available updates. Additional support for "free form" browsing |
discovery of available updates. Additional support for "free form" browsing |
| 236 |
may be considered in future work. <li> <b>using native install/ uninstall</b></li> |
may be considered in future work. <li> <b>using native install/ uninstall</b></li> |
| 250 |
<br> |
<br> |
| 251 |
In many cases the standard installation handling supplied by Eclipse |
In many cases the standard installation handling supplied by Eclipse |
| 252 |
is not be sufficient to handle various custom requirements. To accommodate |
is not be sufficient to handle various custom requirements. To accommodate |
| 253 |
this, R2.0 Eclipse supports custom install handlers packaged as part |
this, R2.0 Eclipse supports custom install handlers packaged as part of |
| 254 |
of the feature and executed during the feature installation. <li> <b>path |
the feature and executed during the feature installation. <li> <b>path |
| 255 |
naming conventions</b></li> |
naming conventions</b></li> |
| 256 |
<br> |
<br> |
| 257 |
R1.0 mandated the use of the various identifiers and versions inside |
R1.0 mandated the use of the various identifiers and versions inside |
| 258 |
the packaged archives (eg. directory path names for plug-ins). This approach |
the packaged archives (eg. directory path names for plug-ins). This |
| 259 |
has proven to be ackward and error prone. In 2.0, the packaging requirements |
approach has proven to be ackward and error prone. In 2.0, the packaging |
| 260 |
no longer mandate that path names of packaged files precisely reflect |
requirements no longer mandate that path names of packaged files precisely |
| 261 |
the contained identifiers and versions. The properly identified install |
reflect the contained identifiers and versions. The properly identified |
| 262 |
subdirectories are created by the Eclipse support during the installation |
install subdirectories are created by the Eclipse support during the installation |
| 263 |
and update process based on the archive content (rather than explicit |
and update process based on the archive content (rather than explicit |
| 264 |
jar path structure set up at packaging time) |
jar path structure set up at packaging time) |
| 265 |
</ul> |
</ul> |
| 266 |
|
|
| 267 |
<h3> <a name="Concepts"></a> Concepts</h3> |
<h3> <a name="Concepts"></a> Concepts</h3> |
| 268 |
<b>Plug-in</b> <br> |
<b>Plug-in</b> <br> |
| 269 |
Eclipse developers build plug-ins. Plug-ins are the base units of |
Eclipse developers build plug-ins. Plug-ins are the base units |
| 270 |
execution recognized by the Eclipse runtime environment. In general, |
of execution recognized by the Eclipse runtime environment. In general, |
| 271 |
plug-ins are not exposed to users that select function during installation |
plug-ins are not exposed to users that select function during installation |
| 272 |
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 |
| 273 |
for development reasons (like function reuse) and present the wrong level |
for development reasons (like function reuse) and present the wrong level |
| 287 |
to a form suitable for packaging and installation. Typically it means |
to a form suitable for packaging and installation. Typically it means |
| 288 |
creation of the runtime .jar(s) and removing any development-time files |
creation of the runtime .jar(s) and removing any development-time files |
| 289 |
(source, exposed .class files, etc). It also means updating the plugin.xml |
(source, exposed .class files, etc). It also means updating the plugin.xml |
| 290 |
manifest with the formal plug-in version and reflecting the version in |
manifest with the formal plug-in version and reflecting the version in the |
| 291 |
the plug-in directory name (see "Concurrent Plug-In Version Support" for |
plug-in directory name (see "Concurrent Plug-In Version Support" for details). |
| 292 |
details). </p> |
</p> |
| 293 |
|
|
| 294 |
<p><b>Plug-in Fragment</b> <br> |
<p><b>Plug-in Fragment</b> <br> |
| 295 |
Plug-in Fragments (or simply Fragments) allow independent packaging |
Plug-in Fragments (or simply Fragments) allow independent packaging |
| 320 |
that allows custom implementations to be supplied for its key elements. |
that allows custom implementations to be supplied for its key elements. |
| 321 |
In particular, the following can be supplied: |
In particular, the following can be supplied: |
| 322 |
<ul> |
<ul> |
| 323 |
<li> concrete implementations of feature (IFeature interface) that |
<li> concrete implementations of feature (IFeature interface) |
| 324 |
can be used to support alternate packaging schemes. New concrete feature |
that can be used to support alternate packaging schemes. New concrete |
| 325 |
types are registere via the "org.eclipse.update.featureTypes" extension |
feature types are registere via the "org.eclipse.update.featureTypes" |
| 326 |
point.</li> |
extension point.</li> |
| 327 |
<li> concrete implementations of site (ISite interface) that can |
<li> concrete implementations of site (ISite interface) that |
| 328 |
be used to support alternate site layout, or site behavior. New concrete |
can be used to support alternate site layout, or site behavior. New concrete |
| 329 |
site types are registered via the "org.eclipse.update.siteTypes" extension |
site types are registered via the "org.eclipse.update.siteTypes" extension |
| 330 |
point.</li> |
point.</li> |
| 331 |
<li> each feature can specify a custom install handler as part |
<li> each feature can specify a custom install handler as part |
| 332 |
of its feature manifest. Install handlers (IInstallHandler interface) |
of its feature manifest. Install handlers (IInstallHandler interface) |
| 333 |
are dynamically invoked as part of the installation process to handle non-plugin |
are dynamically invoked as part of the installation process to handle |
| 334 |
data, plus perform other custom processing allowed by the framework.</li> |
non-plugin data, plus perform other custom processing allowed by the framework.</li> |
| 335 |
|
|
| 336 |
</ul> |
</ul> |
| 337 |
Eclipse provides default implementations of feature and site. These |
Eclipse provides default implementations of feature and site. |
| 338 |
are described in the rest of this document. <br> |
These are described in the rest of this document. <br> |
| 339 |
|
|
| 340 |
<table border="1" cols="1" width="100%"> |
<table border="1" cols="1" width="100%"> |
| 341 |
<tbody> |
<tbody> |
| 342 |
<tr> |
<tr> |
| 343 |
<td><b>Note: <i>The reminder of this document describes the default |
<td><b>Note: <i>The reminder of this document describes the default |
| 344 |
concrete implementation of the framework delivered with Eclipse. It specifies |
concrete implementation of the framework delivered with Eclipse. It |
| 345 |
the structure of the default feature implementation, as well as the default |
specifies the structure of the default feature implementation, as well |
| 346 |
site implementation, plus the corresponding xml files (feature.xml and |
as the default site implementation, plus the corresponding xml files |
| 347 |
site.xml). Providers of alternate concrete implementations can extend |
(feature.xml and site.xml). Providers of alternate concrete implementations |
| 348 |
parts or all of the default Eclipse implementation. This includes providing |
can extend parts or all of the default Eclipse implementation. This |
| 349 |
a mechanism for dynamic computation of the site map (site.xml)</i></b></td> |
includes providing a mechanism for dynamic computation of the site map |
| 350 |
|
(site.xml)</i></b></td> |
| 351 |
</tr> |
</tr> |
| 352 |
|
|
| 353 |
</tbody> |
</tbody> |
| 362 |
<li> zero or more jars containing the feature plug-ins. These |
<li> zero or more jars containing the feature plug-ins. These |
| 363 |
are refered to as the "<b>plug-in archives</b>"</li> |
are refered to as the "<b>plug-in archives</b>"</li> |
| 364 |
<li> zero or more non-plug-in files associated with the feature. |
<li> zero or more non-plug-in files associated with the feature. |
| 365 |
They are used by feature custom install handlers and contain data not interpreted |
They are used by feature custom install handlers and contain data not |
| 366 |
by Eclipse</li> |
interpreted by Eclipse</li> |
| 367 |
|
|
| 368 |
</ul> |
</ul> |
| 369 |
|
|
| 370 |
<h3> <a name="Feature_Archive"></a> Feature Archive</h3> |
<h3> <a name="Feature_Archive"></a> Feature Archive</h3> |
| 371 |
The feature packaging information is placed into a separate Java |
The feature packaging information is placed into a separate Java |
| 372 |
.jar. Standard Java jar facilities are used for constructing feature |
.jar. Standard Java jar facilities are used for constructing feature archives. |
| 373 |
archives. Feature archives reference separately packaged plug-in archives |
Feature archives reference separately packaged plug-in archives (see next |
| 374 |
(see next section) and non-plug-in files. |
section) and non-plug-in files. |
| 375 |
<p>Features are identified using a structured identifier based on the provider |
<p>Features are identified using a structured identifier based on the provider |
| 376 |
internet domain name. For example, organization eclipse.org may produce |
internet domain name. For example, organization eclipse.org may produce |
| 377 |
feature org.eclipse.javatooling. The character set used for feature identifiers |
feature org.eclipse.javatooling. The character set used for feature identifiers |
| 392 |
<tt>my_feature.jar</tt> </p> |
<tt>my_feature.jar</tt> </p> |
| 393 |
|
|
| 394 |
<p>Internally, each feature archive is packaged relative to its feature directory |
<p>Internally, each feature archive is packaged relative to its feature directory |
| 395 |
(but not including the directory path element). The archive has the following |
(but not including the directory path element). The archive has the |
| 396 |
structure </p> |
following structure </p> |
| 397 |
|
|
| 398 |
<p><tt>feature.xml</tt> <br> |
<p><tt>feature.xml</tt> <br> |
| 399 |
<tt>feature<_locale>.properties (see "Translated Feature Information")</tt> |
<tt>feature<_locale>.properties (see "Translated Feature |
| 400 |
<br> |
Information")</tt> <br> |
| 401 |
<tt>other feature files and subdirectories (TBD)</tt> <br> |
<tt>other feature files and subdirectories (TBD)</tt> <br> |
| 402 |
<tt>META-INF/</tt> <br> |
<tt>META-INF/</tt> <br> |
| 403 |
<tt> Java jar manifest and security files</tt> |
<tt> Java jar manifest and security files</tt> |
| 407 |
|
|
| 408 |
<p><tt><?xml encoding="ISO-8859-1"?></tt> </p> |
<p><tt><?xml encoding="ISO-8859-1"?></tt> </p> |
| 409 |
|
|
| 410 |
<p><tt><!ELEMENT feature (install-handler?, description?, copyright?, |
<p><tt><!ELEMENT feature (install-handler?, description?, copyright?, license?, |
| 411 |
license?, url?, includes*, requires?, plugin*, data*)></tt> <br> |
url?, includes*, requires?, plugin*, data*)></tt> <br> |
| 412 |
<tt><!ATTLIST feature</tt> <br> |
<tt><!ATTLIST feature</tt> <br> |
| 413 |
<tt> id |
<tt> id |
| 414 |
CDATA #REQUIRED</tt> <br> |
CDATA #REQUIRED</tt> <br> |
| 432 |
CDATA #IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 433 |
<tt> primary |
<tt> primary |
| 434 |
(true | false) "false"</tt> <br> |
(true | false) "false"</tt> <br> |
| 435 |
<tt> application CDATA #IMPLIED</tt> |
<tt> application CDATA #IMPLIED<br> |
| 436 |
<br> |
</tt> <tt>plugin |
| 437 |
|
CDATA #IMPLIED</tt><br> |
| 438 |
<tt>></tt> </p> |
<tt>></tt> </p> |
| 439 |
|
|
| 440 |
<p><tt><!ELEMENT install-handler EMPTY></tt> <br> |
<p><tt><!ELEMENT install-handler EMPTY></tt> <br> |
| 578 |
should only be installed on one of the specified systems. If this attribute |
should only be installed on one of the specified systems. If this attribute |
| 579 |
is not specified, the feature can be installed on all systems (portable |
is not specified, the feature can be installed on all systems (portable |
| 580 |
implementation). This information is used as a hint by the installation |
implementation). This information is used as a hint by the installation |
| 581 |
and update support (user can force installation of feature regardless of |
and update support (user can force installation of feature regardless |
| 582 |
this setting).</li> |
of this setting).</li> |
| 583 |
<li> ws - optional windowing system specification. A comma-separated |
<li> ws - optional windowing system specification. A comma-separated |
| 584 |
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> |
| 585 |
. Indicates this feature should only be installed on one of the specified |
. Indicates this feature should only be installed on one of the specified |
| 588 |
a hint by the installation and update support (user can force installation |
a hint by the installation and update support (user can force installation |
| 589 |
of feature regardless of this setting).</li> |
of feature regardless of this setting).</li> |
| 590 |
<li> nl - optional locale specification. A comma-separated list |
<li> nl - optional locale specification. A comma-separated list |
| 591 |
of locale designators defined by Java. Indicates this feature should |
of locale designators defined by Java. Indicates this feature should only |
| 592 |
only be installed on a system running with a compatible locale (using |
be installed on a system running with a compatible locale (using Java |
| 593 |
Java locale-matching rules). If this attribute is not specified, the feature |
locale-matching rules). If this attribute is not specified, the feature |
| 594 |
can be installed on all systems (language-neutral implementation). This |
can be installed on all systems (language-neutral implementation). This |
| 595 |
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 |
| 596 |
can force installation of feature regardless of this setting).</li> |
can force installation of feature regardless of this setting).</li> |
| 597 |
<li> colocation-affinity - optional reference to another feature |
<li> colocation-affinity - optional reference to another feature |
| 598 |
identifier used to select the default installation location for this feature. |
identifier used to select the default installation location for this |
| 599 |
When this feature is being installed as a new feature (no other versions |
feature. When this feature is being installed as a new feature (no other |
| 600 |
of it are installed), an attempt is made to install this feature in the |
versions of it are installed), an attempt is made to install this feature |
| 601 |
same installation location as the referenced feature.</li> |
in the same installation location as the referenced feature.</li> |
| 602 |
<li> primary - optional indication specifying whether this feature |
<li> primary - optional indication specifying whether this feature |
| 603 |
can be used as a <a href="#Dominant_Feature">primary feature</a> . Default |
can be used as a <a href="#Dominant_Feature">primary feature</a> . Default |
| 604 |
if <i>false</i> (not a primary feature).</li> |
if <i>false</i> (not a primary feature).</li> |
| 607 |
href="#Dominant_Feature"> primary feature</a> . The application identifier |
href="#Dominant_Feature"> primary feature</a> . The application identifier |
| 608 |
must represent a valid application registered in the <tt>org.eclipse.core.runtime.applications</tt> |
must represent a valid application registered in the <tt>org.eclipse.core.runtime.applications</tt> |
| 609 |
extension point. Default is <tt>org.eclipse.ui.workbench</tt>.</li> |
extension point. Default is <tt>org.eclipse.ui.workbench</tt>.</li> |
| 610 |
|
<li> plugin- optional identifier of the primary plugin associated with |
| 611 |
|
this <a |
| 612 |
|
href="file:///C:/OTI/workspace/plugins/platform-update-home/doc/eclipse_update_packaging.html#Dominant_Feature">primary |
| 613 |
|
feature</a>. The primary plugin carries branding information. If the plugin |
| 614 |
|
attribute is not declared, the primary plugin identifier used will be the |
| 615 |
|
same as the feature identifier. </li> |
| 616 |
|
|
| 617 |
</ul> |
</ul> |
| 618 |
<li> <install-handler></li> |
<li> <install-handler></li> |
| 619 |
|
|
| 620 |
<ul> |
<ul> |
| 621 |
<li> library - optional .jar library containing the install handler |
<li> library - optional .jar library containing the install handler |
| 622 |
classes. If specified, the referenced .jar must be contained in the feature |
classes. If specified, the referenced .jar must be contained in the |
| 623 |
archive. It is specified as a path within the feature archive, relative |
feature archive. It is specified as a path within the feature archive, |
| 624 |
to the feature.xml entry. If not specified, the feature archive itself |
relative to the feature.xml entry. If not specified, the feature archive |
| 625 |
is used to load the install handler classes. This attribute is only interpreted |
itself is used to load the install handler classes. This attribute is only |
| 626 |
if <i>class</i> attribute is also specified</li> |
interpreted if <i>class</i> attribute is also specified</li> |
| 627 |
<li> handler - optional identifier of the install handler. The |
<li> handler - optional identifier of the install handler. The |
| 628 |
value is interpreted depending on the value of the <i>library</i> attribute. |
value is interpreted depending on the value of the <i>library</i> attribute. |
| 629 |
If <i> library</i> is specified, the value is interpreted as |
If <i> library</i> is specified, the value is interpreted |
| 630 |
a fully qualified name of a class contained in the specified <i>library</i>. |
as a fully qualified name of a class contained in the specified <i>library</i>. |
| 631 |
If <i>library</i> is not specified, the value is is interpreted |
If <i>library</i> is not specified, the value is is interpreted |
| 632 |
as an extension identifier of an extension registered in the <i>org.eclipse.update.installHandlers</i> |
as an extension identifier of an extension registered in the <i>org.eclipse.update.installHandlers</i> |
| 633 |
extension point. In either case, the resulting class must implement the |
extension point. In either case, the resulting class must implement |
| 634 |
<i> IInstallHandler</i> interface. The class is dynamically loaded |
the <i> IInstallHandler</i> interface. The class is dynamically |
| 635 |
and called at specific points during feature processing. The handler has |
loaded and called at specific points during feature processing. The handler |
| 636 |
visibility to the API classes from the update plug-in, and Eclipse plug-ins |
has visibility to the API classes from the update plug-in, and Eclipse plug-ins |
| 637 |
required by the update plugin.</li> |
required by the update plugin.</li> |
| 638 |
|
|
| 639 |
</ul> |
</ul> |
| 641 |
text. Intended to be translated.</li> |
text. Intended to be translated.</li> |
| 642 |
|
|
| 643 |
<ul> |
<ul> |
| 644 |
<li> url - optional URL for the full description as HTML. The URL |
<li> url - optional URL for the full description as HTML. The |
| 645 |
can be specified as absolute of relative. If relative, it is assumed to |
URL can be specified as absolute of relative. If relative, it is assumed |
| 646 |
be relative to (and packaged in) the feature archive. Note, that for NL |
to be relative to (and packaged in) the feature archive. Note, that for |
| 647 |
handling the URL value should be separated to allow alternate URLs to be |
NL handling the URL value should be separated to allow alternate URLs to |
| 648 |
specified for each national language. URL support keywords $os$,$ws$,$arch$ |
be specified for each national language. URL support keywords $os$,$ws$,$arch$ |
| 649 |
and $nl$ that will be replaced by the appropriate operating system, windowing |
and $nl$ that will be replaced by the appropriate operating system, windowing |
| 650 |
system, operating architecture or national language value.</li> |
system, operating architecture or national language value.</li> |
| 651 |
|
|
| 654 |
to be translated.</li> |
to be translated.</li> |
| 655 |
|
|
| 656 |
<ul> |
<ul> |
| 657 |
<li> url - optional URL for the full description as HTML. The URL |
<li> url - optional URL for the full description as HTML. The |
| 658 |
can be specified as absolute of relative. If relative, it is assumed to |
URL can be specified as absolute of relative. If relative, it is assumed |
| 659 |
be relative to (and packaged in) the feature archive. Note, that for NL |
to be relative to (and packaged in) the feature archive. Note, that for |
| 660 |
handling the URL value should be separated to allow alternate URLs to be |
NL handling the URL value should be separated to allow alternate URLs to |
| 661 |
specified for each national language. URL support keywords $os$,$ws$,$arch$ |
be specified for each national language. URL support keywords $os$,$ws$,$arch$ |
| 662 |
and $nl$ that will be replaced by the appropriate operating system, windowing |
and $nl$ that will be replaced by the appropriate operating system, windowing |
| 663 |
system, operating architecture or national language value.</li> |
system, operating architecture or national language value.</li> |
| 664 |
|
|
| 670 |
will be selected for installation or update using the Eclipse update manager. |
will be selected for installation or update using the Eclipse update manager. |
| 671 |
When using nested features, only the nesting parent (ie. the feature selected |
When using nested features, only the nesting parent (ie. the feature selected |
| 672 |
for installation or update) must have click-through license text defined. |
for installation or update) must have click-through license text defined. |
| 673 |
The license text is required even if the optional <i>url</i> attribute is |
The license text is required even if the optional <i>url</i> attribute |
| 674 |
specified.</li> |
is specified.</li> |
| 675 |
|
|
| 676 |
<ul> |
<ul> |
| 677 |
<li> url - optional URL for the full description as HTML. The URL |
<li> url - optional URL for the full description as HTML. The |
| 678 |
can be specified as absolute of relative. If relative, it is assumed to |
URL can be specified as absolute of relative. If relative, it is assumed |
| 679 |
be relative to (and packaged in) the feature archive. Note, that for NL |
to be relative to (and packaged in) the feature archive. Note, that for |
| 680 |
handling the URL value should be separated to allow alternate URLs to be |
NL handling the URL value should be separated to allow alternate URLs to |
| 681 |
specified for each national language. Note, that the "content" of this URL |
be specified for each national language. Note, that the "content" of this |
| 682 |
is <b>not</b> what is presented as the click-through license during installation |
URL is <b>not</b> what is presented as the click-through license during |
| 683 |
processing. The click-through license is the actual value of the <i><license></i> |
installation processing. The click-through license is the actual value |
| 684 |
element (eg. <tt><license>click through text</license></tt>). URL |
of the <i><license></i> element (eg. <tt><license>click |
| 685 |
support keywords $os$,$ws$,$arch$ and $nl$ that will be replaced by the appropriate |
through text</license></tt>). URL support keywords $os$,$ws$,$arch$ |
| 686 |
operating system, windowing system, operating architecture or national language |
and $nl$ that will be replaced by the appropriate operating system, windowing |
| 687 |
value.</li> |
system, operating architecture or national language value.</li> |
| 688 |
|
|
| 689 |
</ul> |
</ul> |
| 690 |
<li> <url> - optional URL specifying site(s) contain feature |
<li> <url> - optional URL specifying site(s) contain feature |
| 724 |
</li> |
</li> |
| 725 |
<li>match - optional rule that will be applied when resolving |
<li>match - optional rule that will be applied when resolving |
| 726 |
the feature reference. A <samp>perfect</samp> match (the default that |
the feature reference. A <samp>perfect</samp> match (the default that |
| 727 |
matches the 2.0.1 behavior) requires that the feature has exactly the |
matches the 2.0.1 behavior) requires that the feature has exactly the version |
| 728 |
version specified by the version attribute. Other choices progressively |
specified by the version attribute. Other choices progressively relax |
| 729 |
relax the rule (<samp> equivalent</samp> allows only service part of the |
the rule (<samp> equivalent</samp> allows only service part of the version |
| 730 |
version to be more recent, <samp>compatible</samp> also allows minor |
to be more recent, <samp>compatible</samp> also allows minor part |
| 731 |
part to be included in the consideration, while <samp>greaterOrEqual</samp> |
to be included in the consideration, while <samp>greaterOrEqual</samp> |
| 732 |
simply allows any version that is more recent or identical to the one specified).</li> |
simply allows any version that is more recent or identical to the one |
| 733 |
|
specified).</li> |
| 734 |
<li>search_location - optional. Indicates whether the |
<li>search_location - optional. Indicates whether the |
| 735 |
"New Updates" action should search the update location determined by |
"New Updates" action should search the update location determined by the |
| 736 |
the nesting root feature (<tt>root</tt>, is the default), or the location |
nesting root feature (<tt>root</tt>, is the default), or the location defined |
| 737 |
defined by the nested feature (<tt>self</tt>), or search both (<tt>both</tt>) |
by the nested feature (<tt>self</tt>), or search both (<tt>both</tt>) |
| 738 |
in that order (root first, self if nothing is found).</li> |
in that order (root first, self if nothing is found).</li> |
| 739 |
|
|
| 740 |
</ul> |
</ul> |
| 753 |
or plugin must be specified.</li> |
or plugin must be specified.</li> |
| 754 |
<li> version - optional plug-in/feature version specification</li> |
<li> version - optional plug-in/feature version specification</li> |
| 755 |
<li>patch - optional specification indicating if this feature |
<li>patch - optional specification indicating if this feature |
| 756 |
is a patch of the dependant feature. Default is "false". If patch is |
is a patch of the dependant feature. Default is "false". If patch is true, |
| 757 |
true, version must be specified. If patch is true, only feature must be |
version must be specified. If patch is true, only feature must be specified. |
| 758 |
specified. If patch is true, and match is specified, it must be 'perfect'.<br> |
If patch is true, and match is specified, it must be 'perfect'.<br> |
| 759 |
</li> |
</li> |
| 760 |
<li> match - optional matching rule. Valid values and processing |
<li> match - optional matching rule. Valid values and processing |
| 761 |
are as follows:</li> |
are as follows:</li> |
| 775 |
be at least at the version specified, or at a higher service level (major |
be at least at the version specified, or at a higher service level (major |
| 776 |
and minor version levels must equal the specified version).</li> |
and minor version levels must equal the specified version).</li> |
| 777 |
<li> <b><i>compatible</i></b> - dependent plug-in version must |
<li> <b><i>compatible</i></b> - dependent plug-in version must |
| 778 |
be at least at the version specified, or at a higher service level or minor |
be at least at the version specified, or at a higher service level or |
| 779 |
level (major version level must equal the specified version).</li> |
minor level (major version level must equal the specified version).</li> |
| 780 |
<li> <b><i>greaterOrEqual</i></b> - dependent plug-in version |
<li> <b><i>greaterOrEqual</i></b> - dependent plug-in version |
| 781 |
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 |
| 782 |
or major level.</li> |
or major level.</li> |
| 783 |
|
|
| 784 |
|
|
| 785 |
</ul> |
</ul> |
| 786 |
|
|
| 787 |
</ul> |
</ul> |
| 807 |
should only be installed on one of the specified systems. If this attribute |
should only be installed on one of the specified systems. If this attribute |
| 808 |
is not specified, the feature can be installed on all systems (portable |
is not specified, the feature can be installed on all systems (portable |
| 809 |
implementation). This information is used as a hint by the installation |
implementation). This information is used as a hint by the installation |
| 810 |
and update support (user can force installation of feature regardless of |
and update support (user can force installation of feature regardless |
| 811 |
this setting).</li> |
of this setting).</li> |
| 812 |
<li> ws - optional windowing system specification. A comma-separated |
<li> ws - optional windowing system specification. A comma-separated |
| 813 |
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> |
| 814 |
. Indicates this entry should only be installed on one of the specified |
. Indicates this entry should only be installed on one of the specified |
| 825 |
installation of entry regardless of this setting).</li> |
installation of entry regardless of this setting).</li> |
| 826 |
<li> download-size - optional hint supplied by the feature packager, |
<li> download-size - optional hint supplied by the feature packager, |
| 827 |
indicating the download size in KBytes of the referenced plug-in archive. |
indicating the download size in KBytes of the referenced plug-in archive. |
| 828 |
If not specified, the download size is not known (<b>Implementation Note:</b> |
If not specified, the download size is not known (<b>Implementation |
| 829 |
the implementation needs to distinguish between "not known" and 0 size)</li> |
Note:</b> the implementation needs to distinguish between "not known" |
| 830 |
|
and 0 size)</li> |
| 831 |
<li> install-size - optional hint supplied by the feature packager, |
<li> install-size - optional hint supplied by the feature packager, |
| 832 |
indicating the install size in KBytes of the referenced plug-in archive. |
indicating the install size in KBytes of the referenced plug-in archive. |
| 833 |
If not specified, the install size is not known (<b>Implementation Note:</b> |
If not specified, the install size is not known (<b>Implementation Note:</b> |
| 835 |
|
|
| 836 |
</ul> |
</ul> |
| 837 |
<li> <data> - identifies non-plugin and non-feature data |
<li> <data> - identifies non-plugin and non-feature data |
| 838 |
that is part of the feature. Generally, data are post-install processed using |
that is part of the feature. Generally, data are post-install processed |
| 839 |
feature Install handler. Feature files like feature.properties are not considered |
using feature Install handler. Feature files like feature.properties are |
| 840 |
data.</li> |
not considered data.</li> |
| 841 |
|
|
| 842 |
<ul> |
<ul> |
| 843 |
<li> id - required data identifier in the form of a relative path.</li> |
<li> id - required data identifier in the form of a relative path.</li> |
| 854 |
should only be installed on one of the specified systems. If this attribute |
should only be installed on one of the specified systems. If this attribute |
| 855 |
is not specified, the feature can be installed on all systems (portable |
is not specified, the feature can be installed on all systems (portable |
| 856 |
implementation). This information is used as a hint by the installation |
implementation). This information is used as a hint by the installation |
| 857 |
and update support (user can force installation of feature regardless of |
and update support (user can force installation of feature regardless |
| 858 |
this setting).</li> |
of this setting).</li> |
| 859 |
<li> ws - optional windowing system specification. A comma-separated |
<li> ws - optional windowing system specification. A comma-separated |
| 860 |
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> |
| 861 |
. Indicates this entry should only be installed on one of the specified |
. Indicates this entry should only be installed on one of the specified |
| 884 |
</ul> |
</ul> |
| 885 |
<a name="Feature_Archive_Mapping_Id_To_Path"></a> When interacting |
<a name="Feature_Archive_Mapping_Id_To_Path"></a> When interacting |
| 886 |
with the update site, the feature implementation maps the <tt><plugin></tt> |
with the update site, the feature implementation maps the <tt><plugin></tt> |
| 887 |
and <tt><data></tt> elements into path identifiers used by the |
and <tt><data></tt> elements into path identifiers used by the site |
| 888 |
site to determine the actual files to download and install. The default |
to determine the actual files to download and install. The default feature |
| 889 |
feature implementation supplied by Eclipse constructs the path identifiers |
implementation supplied by Eclipse constructs the path identifiers as |
| 890 |
as follows: |
follows: |
| 891 |
<ul> |
<ul> |
| 892 |
<li> <tt><plugin></tt> element results in a path entry in |
<li> <tt><plugin></tt> element results in a path entry in |
| 893 |
the form "<tt>plugins/<pluginId>_<pluginVersion>.jar</tt>" |
the form "<tt>plugins/<pluginId>_<pluginVersion>.jar</tt>" |
| 903 |
|
|
| 904 |
<p>Translatable text contained in the feature.xml can be separated into feature<_locale>.properties |
<p>Translatable text contained in the feature.xml can be separated into feature<_locale>.properties |
| 905 |
files using Java property bundle conventions. Note that the translated |
files using Java property bundle conventions. Note that the translated |
| 906 |
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 |
| 907 |
runtime mechanism). </p> |
fragment runtime mechanism). </p> |
| 908 |
|
|
| 909 |
<h3> <a name="Plug-In_Archive"></a> Plug-In Archive</h3> |
<h3> <a name="Plug-In_Archive"></a> Plug-In Archive</h3> |
| 910 |
Plug-ins and plug-in fragments are individually packaged as separate |
Plug-ins and plug-in fragments are individually packaged as separate |
| 915 |
<tt><id>_<version>.jar</tt> </p> |
<tt><id>_<version>.jar</tt> </p> |
| 916 |
|
|
| 917 |
<p>Where <tt><id></tt> is the plug-in or fragment identifier and <tt> |
<p>Where <tt><id></tt> is the plug-in or fragment identifier and <tt> |
| 918 |
<version></tt> is the full version identifier contained in the respective |
<version></tt> is the full version identifier contained in the |
| 919 |
plugin.xml or fragment.xml. Note that this is a recommended convention |
respective plugin.xml or fragment.xml. Note that this is a recommended |
| 920 |
that minimizes chance of collisions, but is not required by the Eclipse |
convention that minimizes chance of collisions, but is not required by |
| 921 |
architecture. For example, the following are valid plug-in archive names |
the Eclipse architecture. For example, the following are valid plug-in |
| 922 |
</p> |
archive names </p> |
| 923 |
|
|
| 924 |
<p><tt>org.eclipse.platform_1.0.3.jar</tt> <br> |
<p><tt>org.eclipse.platform_1.0.3.jar</tt> <br> |
| 925 |
<tt>org.eclipse.ui.nl_2.0.jar</tt> <br> |
<tt>org.eclipse.ui.nl_2.0.jar</tt> <br> |
| 926 |
<tt>my_plugin.jar</tt> </p> |
<tt>my_plugin.jar</tt> </p> |
| 927 |
|
|
| 928 |
<p>Internally, each plug-in archive packages all the relevant plug-in or |
<p>Internally, each plug-in archive packages all the relevant plug-in or fragment |
| 929 |
fragment files relative to its plug-in or fragment directory (but not including |
files relative to its plug-in or fragment directory (but not including the |
| 930 |
the directory path element). The archive has the following structure </p> |
directory path element). The archive has the following structure </p> |
| 931 |
|
|
| 932 |
<p><tt>plugin.xml *OR* fragment.xml</tt> <br> |
<p><tt>plugin.xml *OR* fragment.xml</tt> <br> |
| 933 |
<tt>other plug-in or feature files and subdirectories</tt> <br> |
<tt>other plug-in or feature files and subdirectories</tt> <br> |
| 936 |
</p> |
</p> |
| 937 |
|
|
| 938 |
<h3> <a name="Packaging_NL"></a> Packaging NL</h3> |
<h3> <a name="Packaging_NL"></a> Packaging NL</h3> |
| 939 |
In Eclipse, translated plug-in information is packaged either together |
In Eclipse, translated plug-in information is packaged either |
| 940 |
with the base plug-in, or as a plug-in fragment. At runtime, Eclipse |
together with the base plug-in, or as a plug-in fragment. At runtime, |
| 941 |
locates the translations for the required locale. The use of fragments |
Eclipse locates the translations for the required locale. The use of |
| 942 |
allows translations to be added to the runtime without the need to repackage |
fragments allows translations to be added to the runtime without the |
| 943 |
the base plug-ins. |
need to repackage the base plug-ins. |
| 944 |
<p>This mechanism cannot be used for translating the actual packaging information |
<p>This mechanism cannot be used for translating the actual packaging information |
| 945 |
that is part of the installation xml files. Consequently the standard |
that is part of the installation xml files. Consequently the standard |
| 946 |
Java translation conventions are used for the packaging information, |
Java translation conventions are used for the packaging information, and |
| 947 |
and all necessary translations must be available at the time the feature |
all necessary translations must be available at the time the feature is |
| 948 |
is packaged. </p> |
packaged. </p> |
| 949 |
|
|
| 950 |
<h4> <a name="Translated_Feature_Information"></a> Translated Feature Information</h4> |
<h4> <a name="Translated_Feature_Information"></a> Translated Feature Information</h4> |
| 951 |
<b>Note:</b> This section describes the conventions used for translating |
<b>Note:</b> This section describes the conventions used for translating |
| 973 |
|
|
| 974 |
<p><b>Implementation Note</b>: When accessing the resource bundles the Eclipse |
<p><b>Implementation Note</b>: When accessing the resource bundles the Eclipse |
| 975 |
installation and update code should create a class loader for accessing |
installation and update code should create a class loader for accessing |
| 976 |
the translated string. This way, the standard locale lookup algorithm implemented |
the translated string. This way, the standard locale lookup algorithm |
| 977 |
by Java is automatically used. </p> |
implemented by Java is automatically used. </p> |
| 978 |
|
|
| 979 |
<p><tt>ResourceBundle b;</tt> <br> |
<p><tt>ResourceBundle b;</tt> <br> |
| 980 |
<tt>ClassLoader l;</tt> <br> |
<tt>ClassLoader l;</tt> <br> |
| 1010 |
<h3> <a name="Custom_Install_Handling"></a> Custom Install Handling</h3> |
<h3> <a name="Custom_Install_Handling"></a> Custom Install Handling</h3> |
| 1011 |
Custom install handlers are written as a Java class and are packaged |
Custom install handlers are written as a Java class and are packaged |
| 1012 |
as part of the <a href="#Feature_Archive">feature archive</a> . The installer |
as part of the <a href="#Feature_Archive">feature archive</a> . The installer |
| 1013 |
must implement the <tt>IInstallHandler</tt> interface (in most cases |
must implement the <tt>IInstallHandler</tt> interface (in most cases will |
| 1014 |
will extend the <tt>BaseInstallHandler</tt> abstract helper class which |
extend the <tt>BaseInstallHandler</tt> abstract helper class which implements |
| 1015 |
implements <tt>IInstallHandler</tt>). When required, the install handler |
<tt>IInstallHandler</tt>). When required, the install handler is dynamically |
| 1016 |
is dynamically loaded by the installation and update code, and is called |
loaded by the installation and update code, and is called at specific |
| 1017 |
at specific points during its processing. The install handler code has |
points during its processing. The install handler code has visibility |
| 1018 |
visibility to classes from the installation and update support plug-in, |
to classes from the installation and update support plug-in, and its prerequisite |
| 1019 |
and its prerequisite plug-ins. |
plug-ins. |
| 1020 |
<p><b>Implementation Note:</b> the detailed list of visible prerequisite |
<p><b>Implementation Note:</b> the detailed list of visible prerequisite plug-ins |
| 1021 |
plug-ins is still evolving. It is expected to include <tt>org.eclipse.core.boot |
is still evolving. It is expected to include <tt>org.eclipse.core.boot </tt> |
| 1022 |
</tt> and <tt>org.eclipse.core.runtime</tt> in all cases, plus <tt>org.eclipse.ui</tt> |
and <tt>org.eclipse.core.runtime</tt> in all cases, plus <tt>org.eclipse.ui</tt> |
| 1023 |
and <tt>org.eclipse.swt</tt> when running with full workbench (ie. not |
and <tt>org.eclipse.swt</tt> when running with full workbench (ie. |
| 1024 |
"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> |
| 1025 |
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. |
| 1026 |
</p> |
</p> |
| 1027 |
|
|
| 1056 |
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 |
| 1057 |
processing has taken place. It is passed the custom install log created |
processing has taken place. It is passed the custom install log created |
| 1058 |
by the install handler install-completion step.</li> |
by the install handler install-completion step.</li> |
| 1059 |
<li> uninstall-completion - the install handler is called on completion |
<li> uninstall-completion - the install handler is called on |
| 1060 |
of the standard uninstall steps. It is passed the custom install log created |
completion of the standard uninstall steps. It is passed the custom |
| 1061 |
by the install handler install-completion step.</li> |
install log created by the install handler install-completion step.</li> |
| 1062 |
|
|
| 1063 |
</ul> |
</ul> |
| 1064 |
Note, that as a general practice, install handlers should be provided |
Note, that as a general practice, install handlers should be provided |
| 1089 |
|
|
| 1090 |
</ul> |
</ul> |
| 1091 |
In general, when processing signed jars, the user will be prompted |
In general, when processing signed jars, the user will be prompted |
| 1092 |
for each unrecognized certificate. The response choices will include |
for each unrecognized certificate. The response choices will include aborting |
| 1093 |
aborting the installation (originator is not trusted), continuing the |
the installation (originator is not trusted), continuing the installation |
| 1094 |
installation (originator is trusted for this installation). |
(originator is trusted for this installation). |
| 1095 |
<h2> <a name="Update_Server"></a> Update Server</h2> |
<h2> <a name="Update_Server"></a> Update Server</h2> |
| 1096 |
The default Eclipse update server is any URL-accessible server. |
The default Eclipse update server is any URL-accessible server. |
| 1097 |
The default implementation assumes a fixed-layout server. The content |
The default implementation assumes a fixed-layout server. The content |
| 1100 |
or can be dynamically computed by the server. |
or can be dynamically computed by the server. |
| 1101 |
<h3> <a name="Site_Map"></a> Site Map</h3> |
<h3> <a name="Site_Map"></a> Site Map</h3> |
| 1102 |
The update server URL can be specified as a full URL to the site |
The update server URL can be specified as a full URL to the site |
| 1103 |
map file, or a URL of a directory path containing the site map file |
map file, or a URL of a directory path containing the site map file (similar |
| 1104 |
(similar to index.html processing). The site map site.xml format is |
to index.html processing). The site map site.xml format is defined by |
| 1105 |
defined by the following dtd: |
the following dtd: |
| 1106 |
<p><tt><?xml encoding="ISO-8859-1"?></tt> </p> |
<p><tt><?xml encoding="ISO-8859-1"?></tt> </p> |
| 1107 |
|
|
| 1108 |
<p><tt><!ELEMENT site (description?, feature*, archive*, category-def*)></tt> |
<p><tt><!ELEMENT site (description?, feature*, archive*, category-def*)></tt> |
| 1182 |
not specified, the default is the URL location of the site.xml file.</li> |
not specified, the default is the URL location of the site.xml file.</li> |
| 1183 |
|
|
| 1184 |
</ul> |
</ul> |
| 1185 |
<li> <description> - brief description as simple text. Intended |
<li> <description> - brief description as simple text. |
| 1186 |
to be translated.</li> |
Intended to be translated.</li> |
| 1187 |
|
|
| 1188 |
<ul> |
<ul> |
| 1189 |
<li> url - optional URL for the full description as HTML. The URL |
<li> url - optional URL for the full description as HTML. The |
| 1190 |
can be specified as absolute of relative. If relative, If relative, is |
URL can be specified as absolute of relative. If relative, If relative, |
| 1191 |
relative to site.xml.</li> |
is relative to site.xml.</li> |
| 1192 |
<br> |
<br> |
| 1193 |
Note, that for NL handling the URL value should be separated to |
Note, that for NL handling the URL value should be separated to |
| 1194 |
allow alternate URLs to be specified for each national language. |
allow alternate URLs to be specified for each national language. |
| 1213 |
match the version specified in the feature.xml of the referenced archive |
match the version specified in the feature.xml of the referenced archive |
| 1214 |
(the url attribute). If specified, the id attribute must also be specified.</li> |
(the url attribute). If specified, the id attribute must also be specified.</li> |
| 1215 |
<li> url - required URL reference to the feature archive. Can |
<li> url - required URL reference to the feature archive. Can |
| 1216 |
be relative or absolute. If relative, it is relative to the location |
be relative or absolute. If relative, it is relative to the location of |
| 1217 |
of the site.xml file. <b>Note</b>: the default site implementation |
the site.xml file. <b>Note</b>: the default site implementation |
| 1218 |
allows features to be accessed without being explicitly declared using a |
allows features to be accessed without being explicitly declared using |
| 1219 |
<feature> entry. By default, an undeclared features reference is interpreted |
a <feature> entry. By default, an undeclared features reference is |
| 1220 |
as "features/<id>_<version>.jar"</li> |
interpreted as "features/<id>_<version>.jar"</li> |
| 1221 |
<li>label - optional feature label. The value is used for optimization |
<li>label - optional feature label. The value is used for optimization |
| 1222 |
when browsing the site from the update manager. Intended to be translated.<br> |
when browsing the site from the update manager. Intended to be translated.<br> |
| 1223 |
</li> |
</li> |
| 1225 |
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> |
| 1226 |
. Indicates this feature should only be installed on one of the specified |
. Indicates this feature should only be installed on one of the specified |
| 1227 |
os systems. If this attribute is "*", the feature can be installed |
os systems. If this attribute is "*", the feature can be installed |
| 1228 |
on all systems (portable implementation). This information is used as |
on all systems (portable implementation). This information is used as a |
| 1229 |
a hint by the installation and update support (user can force installation |
hint by the installation and update support (user can force installation |
| 1230 |
of feature regardless of this setting).</li> |
of feature regardless of this setting).</li> |
| 1231 |
<li> arch - optional machine architecture specification. A comma-separated |
<li> arch - optional machine architecture specification. A comma-separated |
| 1232 |
list of architecture designators defined by Eclipse (see Javadoc for |
list of architecture designators defined by Eclipse (see Javadoc for |
| 1243 |
a hint by the installation and update support (user can force installation |
a hint by the installation and update support (user can force installation |
| 1244 |
of feature regardless of this setting).</li> |
of feature regardless of this setting).</li> |
| 1245 |
<li> nl - optional locale specification. A comma-separated list |
<li> nl - optional locale specification. A comma-separated list |
| 1246 |
of locale designators defined by Java. Indicates this feature should |
of locale designators defined by Java. Indicates this feature should only |
| 1247 |
only be installed on a system running with a compatible locale (using |
be installed on a system running with a compatible locale (using Java |
| 1248 |
Java locale-matching rules). If this attribute is "*", the feature |
locale-matching rules). If this attribute is "*", the feature can |
| 1249 |
can be installed on all systems (language-neutral implementation). This |
be installed on all systems (language-neutral implementation). This information |
| 1250 |
information is used as a hint by the installation and update support (user |
is used as a hint by the installation and update support (user can force |
| 1251 |
can force installation of feature regardless of this setting).</li> |
installation of feature regardless of this setting).</li> |
| 1252 |
<li>patch - optional specification indicating if this feature |
<li>patch - optional specification indicating if this feature |
| 1253 |
is a patch. Default is "false". </li> |
is a patch. Default is "false". </li> |
| 1254 |
|
|
| 1255 |
</ul> |
</ul> |
| 1256 |
<li> <archive> - identifies referenced "storage" archive |
<li> <archive> - identifies referenced "storage" archive |
| 1257 |
(the actual files referenced via the <tt><plugin></tt> or <tt><data></tt> |
(the actual files referenced via the <tt><plugin></tt> or <tt><data></tt> |
| 1258 |
elements in the feature manifest). The site simply manages archives as |
elements in the feature manifest). The site simply manages archives |
| 1259 |
a path-to-URL map. The default Eclipse site implementation does not require |
as a path-to-URL map. The default Eclipse site implementation does not |
| 1260 |
the <archive> section to be included in the site map (site.xml). |
require the <archive> section to be included in the site map (site.xml). |
| 1261 |
Any archive reference not explicitly defined as part of an <archive> |
Any archive reference not explicitly defined as part of an <archive> |
| 1262 |
section is assumed to be mapped to a url in the form "<archivePath>" |
section is assumed to be mapped to a url in the form "<archivePath>" |
| 1263 |
relative to the location of the site.xml file.</li> |
relative to the location of the site.xml file.</li> |
| 1265 |
<ul> |
<ul> |
| 1266 |
<li> path - required archive path identifier. This is a string |
<li> path - required archive path identifier. This is a string |
| 1267 |
that is determined by the <a |
that is determined by the <a |
| 1268 |
href="#Feature_Archive_Mapping_Id_To_Path">feature</a> referencing |
href="#Feature_Archive_Mapping_Id_To_Path">feature</a> referencing this |
| 1269 |
this archive and is not otherwise interpreted by the site (other than |
archive and is not otherwise interpreted by the site (other than as a |
| 1270 |
as a lookup token).</li> |
lookup token).</li> |
| 1271 |
<li> url - required URL reference to the archive. Can be relative |
<li> url - required URL reference to the archive. Can be relative |
| 1272 |
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 |
| 1273 |
file.</li> |
file.</li> |
| 1274 |
|
|
| 1275 |
</ul> |
</ul> |
| 1276 |
<li> <category-def> - an optional definition of a category |
<li> <category-def> - an optional definition of a category |
| 1277 |
that can be used by installation and update support to hierarchicaly organize |
that can be used by installation and update support to hierarchicaly |
| 1278 |
features</li> |
organize features</li> |
| 1279 |
|
|
| 1280 |
<ul> |
<ul> |
| 1281 |
<li> name - category name. Is specified as a path of name tokens |
<li> name - category name. Is specified as a path of name tokens |
| 1322 |
2 ways: </p> |
2 ways: </p> |
| 1323 |
|
|
| 1324 |
<ul> |
<ul> |
| 1325 |
<li> by supplying server-side logic on the update server (eg. implementing |
<li> by supplying server-side logic on the update server (eg. |
| 1326 |
servlets that compute the site.xml map, and control access to individual |
implementing servlets that compute the site.xml map, and control access |
| 1327 |
archives based on some user criteria)</li> |
to individual archives based on some user criteria)</li> |
| 1328 |
<li> by supplying a custom concrete implementation of the site |
<li> by supplying a custom concrete implementation of the site |
| 1329 |
object (installed on the client machine, update server specified <tt><site |
object (installed on the client machine, update server specified <tt><site |
| 1330 |
type=""></tt> ). The custom concrete site implementation, together |
type=""></tt> ). The custom concrete site implementation, together with |
| 1331 |
with any server-side logic support the required control mechanisms.</li> |
any server-side logic support the required control mechanisms.</li> |
| 1332 |
|
|
| 1333 |
</ul> |
</ul> |
| 1334 |
Eclipse provides an example demonstrating an implementation of |
Eclipse provides an example demonstrating an implementation of |
| 1359 |
<tt> |
<tt> |
| 1360 |
META_INF/</tt> </p> |
META_INF/</tt> </p> |
| 1361 |
|
|
| 1362 |
<p><b>Implementation Note:</b> we will go back to the original design of |
<p><b>Implementation Note:</b> we will go back to the original design of not |
| 1363 |
not splitting out fragments (ie. plugin and fragments go into the same install |
splitting out fragments (ie. plugin and fragments go into the same install |
| 1364 |
location) </p> |
location) </p> |
| 1365 |
|
|
| 1366 |
<h3> <a name="Unmanaged_Plugins"></a> "Unmanaged" Plug-Ins</h3> |
<h3> <a name="Unmanaged_Plugins"></a> "Unmanaged" Plug-Ins</h3> |
| 1367 |
Eclipse supports a concept of "unmanaged" plug-ins. These are plug-ins |
Eclipse supports a concept of "unmanaged" plug-ins. These are |
| 1368 |
that were directly installed into the Eclipse file tree without being |
plug-ins that were directly installed into the Eclipse file tree without |
| 1369 |
part of a feature (eg. developer unzipping plug-in archive directly into |
being part of a feature (eg. developer unzipping plug-in archive directly |
| 1370 |
the Eclipse file tree). |
into the Eclipse file tree). |
| 1371 |
<p>Eclipse runtime recognizes these plugins during startup and loads the |
<p>Eclipse runtime recognizes these plugins during startup and loads the plug-in |
| 1372 |
plug-in information into the runtime registry following the standard plug-in |
information into the runtime registry following the standard plug-in binding |
| 1373 |
binding rules. The update support also recognizes the presence of this new |
rules. The update support also recognizes the presence of this new plug-in, |
| 1374 |
plug-in, but since this plug-in is not part of any feature it cannot be updated |
but since this plug-in is not part of any feature it cannot be updated using |
| 1375 |
using the update support (hence "unmanaged"). Unmanaged plug-in that become |
the update support (hence "unmanaged"). Unmanaged plug-in that become referenced |
| 1376 |
referenced by a feature as a result of some future installation or update |
by a feature as a result of some future installation or update action become |
| 1377 |
action become "managed" (can be updated as part of the feature). </p> |
"managed" (can be updated as part of the feature). </p> |
| 1378 |
|
|
| 1379 |
<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 |
| 1380 |
UI. </p> |
UI. </p> |
| 1388 |
|
|
| 1389 |
<p>However, when using native platform installers, performing native uninstall |
<p>However, when using native platform installers, performing native uninstall |
| 1390 |
creates problems because plug-ins would be removed without regard to |
creates problems because plug-ins would be removed without regard to |
| 1391 |
any sharing relationships. As a result, Eclipse <b>does not allow</b> |
any sharing relationships. As a result, Eclipse <b>does not allow</b> plug-ins |
| 1392 |
plug-ins to be installed using native installers into the shared installation |
to be installed using native installers into the shared installation tree. |
| 1393 |
tree. Instead, native installers must establish their own installation |
Instead, native installers must establish their own installation root |
| 1394 |
root directory. The subdirectory structure is the same as defined for |
directory. The subdirectory structure is the same as defined for base |
| 1395 |
base Eclipse. The private root directory is logically linked into the shared |
Eclipse. The private root directory is logically linked into the shared |
| 1396 |
Eclipse installation via a link file installed by the native installer. |
Eclipse installation via a link file installed by the native installer. |
| 1397 |
The file path for the link file is <tt><configRoot>/links/</tt>. |
The file path for the link file is <tt><configRoot>/links/</tt>. |
| 1398 |
The <tt><configRoot> </tt> location is computed by Eclipse relative |
The <tt><configRoot> </tt> location is computed by Eclipse relative |
| 1417 |
Default is to allow updates (w). </p> |
Default is to allow updates (w). </p> |
| 1418 |
|
|
| 1419 |
<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 |
| 1420 |
their existence by the presence of the link files, and includes the linked |
their existence by the presence of the link files, and includes the |
| 1421 |
plug-ins during the platform startup. The native installer is responsible |
linked plug-ins during the platform startup. The native installer is |
| 1422 |
for uninstalling the link when the corresponding directory is removed. |
responsible for uninstalling the link when the corresponding directory |
| 1423 |
Eclipse runtime ignores any links that cannot be resolved. <br> |
is removed. Eclipse runtime ignores any links that cannot be resolved. |
| 1424 |
|
<br> |
| 1425 |
</p> |
</p> |
| 1426 |
<br> |
<br> |
| 1427 |
<br> |
<br> |
| 1429 |
<br> |
<br> |
| 1430 |
<br> |
<br> |
| 1431 |
<br> |
<br> |
| 1432 |
|
<br> |
| 1433 |
</body> |
</body> |
| 1434 |
</html> |
</html> |