| 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 |
|
|
| 13 |
</head> |
</head> |
| 14 |
<body> |
<body> |
| 15 |
|
|
| 16 |
<h1> Eclipse Platform<br> |
<h1> Eclipse Platform<br> |
| 17 |
Update Packaging Conventions</h1> |
Update Packaging Conventions</h1> |
| 18 |
<font size="-1">Revision Date: 01/02/2003 9:33AM - Version: 2.0.16</font><br> |
<font size="-1">Revision Date: 01/15/2003 9:33AM - Version: 2.0.17</font><br> |
| 19 |
<a href="../../../../../hglegal.htm"><img src="ngibmcpy.gif" |
<a href="../../../../../hglegal.htm"><img src="ngibmcpy.gif" |
| 20 |
border="0" height="12" width="195"> |
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.17</small></li> |
| 26 |
|
<ul> |
| 27 |
|
<li><small>added $os$,$ws$,$arch$ and $nl$ for copyright, description |
| 28 |
|
and license URL tag in feature.<br> |
| 29 |
|
</small></li> |
| 30 |
|
</ul> |
| 31 |
<li><small>2.0.16</small> <small><br> |
<li><small>2.0.16</small> <small><br> |
| 32 |
</small> |
</small> |
| 33 |
<ul> |
<ul> |
| 51 |
|
|
| 52 |
</ul> |
</ul> |
| 53 |
</li> |
</li> |
| 54 |
<li><font size="-1">2.0.13</font> <small><br> |
<li><small>2.0.13<br> |
| 55 |
</small> |
</small> </li> |
| 56 |
|
|
| 57 |
<ul> |
<ul> |
| 58 |
<li><small>added <includes name,optional,match,search_location</small> |
<li><small>added <includes name,optional,match,search_location</small> |
| 59 |
></li> |
></li> |
| 60 |
<li><small>added <import feature,patch></small></li> |
<li><small>added <import feature,patch></small></li> |
| 61 |
|
|
| 62 |
</ul> |
</ul> |
| 63 |
</li> |
<li><small>2.0.12<br> |
| 64 |
|
</small></li> |
|
</ul> |
|
|
|
|
|
<ul> |
|
|
<li><font size="-1">2.0.12</font></li> |
|
| 65 |
|
|
| 66 |
<ul> |
<ul> |
| 67 |
<li> <font size="-1">added reference to the <a |
<li> <font size="-1">added reference to the <a |
| 89 |
up searches</font></li> |
up searches</font></li> |
| 90 |
<li> <font size="-1">removed obsolete text</font></li> |
<li> <font size="-1">removed obsolete text</font></li> |
| 91 |
<li> <font size="-1">web-triggered update not in 2.0</font></li> |
<li> <font size="-1">web-triggered update not in 2.0</font></li> |
| 92 |
<li> <font size="-1">no assist in 2.0 for license/ "key file" handling |
<li> <font size="-1">no assist in 2.0 for license/ "key file" |
| 93 |
(individual application/ plugin responsibility)</font></li> |
handling (individual application/ plugin responsibility)</font></li> |
| 94 |
|
|
| 95 |
</ul> |
</ul> |
| 96 |
<li> <font size="-1">2.0.8</font></li> |
<li> <font size="-1">2.0.8</font></li> |
| 123 |
<li> <font size="-1">general text cleanup</font></li> |
<li> <font size="-1">general text cleanup</font></li> |
| 124 |
<li> <font size="-1"><feature><group> support removed |
<li> <font size="-1"><feature><group> support removed |
| 125 |
(will not be in Eclipse 2.0)</font></li> |
(will not be in Eclipse 2.0)</font></li> |
| 126 |
<li> <font size="-1">arch= support added to <feature> and <feature><plugin></font></li> |
<li> <font size="-1">arch= support added to <feature> and |
| 127 |
|
<feature><plugin></font></li> |
| 128 |
<li> <font size="-1">os=/ arch=/ ws=/ nl= added to <fetaure><data></font></li> |
<li> <font size="-1">os=/ arch=/ ws=/ nl= added to <fetaure><data></font></li> |
| 129 |
<li> <font size="-1"><site url=""> new semantics</font></li> |
<li> <font size="-1"><site url=""> new semantics</font></li> |
| 130 |
<li> <font size="-1">corrected errors in native installer link support</font></li> |
<li> <font size="-1">corrected errors in native installer link |
| 131 |
|
support</font></li> |
| 132 |
<li> <font size="-1">defined callback query strings for browser-triggered |
<li> <font size="-1">defined callback query strings for browser-triggered |
| 133 |
processing</font></li> |
processing</font></li> |
| 134 |
|
|
| 138 |
|
|
| 139 |
<h3> <font size="+2">Table of Contents</font></h3> |
<h3> <font size="+2">Table of Contents</font></h3> |
| 140 |
<a href="#Introduction">Introduction</a> <br> |
<a href="#Introduction">Introduction</a> <br> |
| 141 |
<a href="#Changes_from_R1.0">Changes |
<a |
| 142 |
from 1.0</a> <br> |
href="#Changes_from_R1.0">Changes from 1.0</a> <br> |
| 143 |
<a href="#Concepts">Concepts</a> |
<a href="#Concepts">Concepts</a> |
| 144 |
<br> |
<br> |
| 145 |
<a href="#Framework">Framework</a> |
<a href="#Framework">Framework</a> |
| 174 |
<a href="#Update_Server">Update Server</a> <br> |
<a href="#Update_Server">Update Server</a> <br> |
| 175 |
<a href="#Site_Map">Site Map</a> |
<a href="#Site_Map">Site Map</a> |
| 176 |
<br> |
<br> |
| 177 |
<a href="#Default_Site_Layout">Default |
<a |
| 178 |
Site Layout</a> <br> |
href="#Default_Site_Layout">Default Site Layout</a> <br> |
| 179 |
<a href="#Controlling_Access">Controlling |
<a |
| 180 |
Access</a> <br> |
href="#Controlling_Access">Controlling Access</a> <br> |
| 181 |
<a href="#Eclipse_Install">Eclipse Install</a> <br> |
<a href="#Eclipse_Install">Eclipse Install</a> <br> |
| 182 |
<a |
<a |
| 183 |
href="#Default_Install_Layout">Default Install Layout</a> <br> |
href="#Default_Install_Layout">Default Install Layout</a> <br> |
| 184 |
<a href="#Unmanaged_Plugins">"Unmanaged" |
<a |
| 185 |
Plug-Ins</a> <br> |
href="#Unmanaged_Plugins">"Unmanaged" Plug-Ins</a> <br> |
| 186 |
<a |
<a |
| 187 |
href="#Using_Native_Platform_Installers"> Using Native Platform Installers</a> |
href="#Using_Native_Platform_Installers"> Using Native Platform Installers</a> |
| 188 |
|
|
| 189 |
<h2> <a name="Introduction"></a> Introduction</h2> |
<h2> <a name="Introduction"></a> Introduction</h2> |
| 190 |
This document outlines the support for managing the delivery of function |
This document outlines the support for managing the delivery of |
| 191 |
within the Eclipse platform. Also refer to the "<a |
function within the Eclipse platform. Also refer to the "<a |
| 192 |
href="http://www.eclipse.org/legal/updatemanager.html"> Eclipse.org Update |
href="http://www.eclipse.org/legal/updatemanager.html"> Eclipse.org Update |
| 193 |
Manager Agreement</a> " for additional legal information governing the |
Manager Agreement</a> " for additional legal information governing the |
| 194 |
use of the Eclipse update manager function. |
use of the Eclipse update manager function. |
| 199 |
<ul> |
<ul> |
| 200 |
<li> <b>extendable framework</b></li> |
<li> <b>extendable framework</b></li> |
| 201 |
<br> |
<br> |
| 202 |
In R2.0 Eclipse defines an extendable framework for installation and |
In R2.0 Eclipse defines an extendable framework for installation |
| 203 |
update, allowing the support for alternate packaging and site management |
and update, allowing the support for alternate packaging and site management |
| 204 |
schemes. R2.0 supplies a default concrete implementation of this framework. |
schemes. R2.0 supplies a default concrete implementation of this framework. |
| 205 |
<li> <b> feature support</b></li> |
<li> <b> feature support</b></li> |
| 206 |
<br> |
<br> |
| 207 |
In R2.0 the concept of a <i>component</i> and <i>configuration</i> is |
In R2.0 the concept of a <i>component</i> and <i>configuration</i> |
| 208 |
merged into <i>feature</i>. Features define the packaging structure for |
is merged into <i>feature</i>. Features define the packaging structure |
| 209 |
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 |
| 210 |
files. Features are treated purely as an installation and packaging construct. |
files. Features are treated purely as an installation and packaging construct. |
| 211 |
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 not |
| 212 |
nest. They are simply an inclusive "manifest" of the plug-ins, fragments |
nest. They are simply an inclusive "manifest" of the plug-ins, fragments |
| 214 |
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 |
| 215 |
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> |
| 216 |
<br> |
<br> |
| 217 |
R1.0 components were packaged as a single Java .jar containing the component |
R1.0 components were packaged as a single Java .jar containing the |
| 218 |
manifest as well as the actual plug-in files. The problem with this approach |
component manifest as well as the actual plug-in files. The problem with |
| 219 |
is lack of granularity at download time. In R2.0, the feature archive consists |
this approach is lack of granularity at download time. In R2.0, the feature |
| 220 |
of multiple separate .jars - one .jar per plug-in and fragment, plus one |
archive consists of multiple separate .jars - one .jar per plug-in and |
| 221 |
.jar for the actual feature information. The Installation and Update support |
fragment, plus one .jar for the actual feature information. The Installation |
| 222 |
selectively downloads only those jars required for the installation. <li> |
and Update support selectively downloads only those jars required for the |
| 223 |
<b>site map</b></li> |
installation. <li> <b>site map</b></li> |
| 224 |
<br> |
<br> |
| 225 |
Default Eclipse update server must contain a <i>site map</i> file (site.xml). |
Default Eclipse update server must contain a <i>site map</i> file |
| 226 |
This is an evolution of the R1.0 install.index support. The rationale |
(site.xml). This is an evolution of the R1.0 install.index support. |
| 227 |
for using a structured site defined by the map rather than a "free form" |
The rationale for using a structured site defined by the map rather than |
| 228 |
web site, is the ability to present a consistent installation experience |
a "free form" web site, is the ability to present a consistent installation |
| 229 |
for the user. Also, this provides the necessary structure for discovery |
experience for the user. Also, this provides the necessary structure for |
| 230 |
of available updates. Additional support for "free form" browsing may be |
discovery of available updates. Additional support for "free form" browsing |
| 231 |
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> |
| 232 |
<br> |
<br> |
| 233 |
The primary mechanism for installing and updating Eclipse features is |
The primary mechanism for installing and updating Eclipse features |
| 234 |
the built-in installation and update support. Some products may instead |
is the built-in installation and update support. Some products may instead |
| 235 |
choose to use native installer technology (eg. MSI, RPM, etc) to deliver |
choose to use native installer technology (eg. MSI, RPM, etc) to deliver |
| 236 |
Eclipse features. However, native installers do not implement the required |
Eclipse features. However, native installers do not implement the required |
| 237 |
support for understanding the Eclipse installation structure. In particular, |
support for understanding the Eclipse installation structure. In particular, |
| 238 |
the native uninstallers will, by default, remove plug-in files that were |
the native uninstallers will, by default, remove plug-in files that were |
| 239 |
installed using the native installer without regard to these plug-ins being |
installed using the native installer without regard to these plug-ins being |
| 240 |
needed by other features. As a result, features installed using native installers |
needed by other features. As a result, features installed using native installers |
| 241 |
must be written into private product-specific installation location and not |
must be written into private product-specific installation location and |
| 242 |
the shared Eclipse installation location. The shared Eclipse is made aware |
not the shared Eclipse installation location. The shared Eclipse is made |
| 243 |
of the produce-specific location via an installed "link file". <li> |
aware of the produce-specific location via an installed "link file". <li> |
| 244 |
<b>custom install handling</b></li> |
<b>custom install handling</b></li> |
| 245 |
<br> |
<br> |
| 246 |
In many cases the standard installation handling supplied by Eclipse |
In many cases the standard installation handling supplied by Eclipse |
| 247 |
is not be sufficient to handle various custom requirements. To accommodate |
is not be sufficient to handle various custom requirements. To accommodate |
| 248 |
this, R2.0 Eclipse supports custom install handlers packaged as part of |
this, R2.0 Eclipse supports custom install handlers packaged as part |
| 249 |
the feature and executed during the feature installation. <li> <b>path naming |
of the feature and executed during the feature installation. <li> <b>path |
| 250 |
conventions</b></li> |
naming conventions</b></li> |
| 251 |
<br> |
<br> |
| 252 |
R1.0 mandated the use of the various identifiers and versions inside |
R1.0 mandated the use of the various identifiers and versions inside |
| 253 |
the packaged archives (eg. directory path names for plug-ins). This approach |
the packaged archives (eg. directory path names for plug-ins). This approach |
| 254 |
has proven to be ackward and error prone. In 2.0, the packaging requirements |
has proven to be ackward and error prone. In 2.0, the packaging requirements |
| 255 |
no longer mandate that path names of packaged files precisely reflect the |
no longer mandate that path names of packaged files precisely reflect |
| 256 |
contained identifiers and versions. The properly identified install subdirectories |
the contained identifiers and versions. The properly identified install |
| 257 |
are created by the Eclipse support during the installation and update process |
subdirectories are created by the Eclipse support during the installation |
| 258 |
based on the archive content (rather than explicit jar path structure |
and update process based on the archive content (rather than explicit |
| 259 |
set up at packaging time) |
jar path structure set up at packaging time) |
| 260 |
</ul> |
</ul> |
| 261 |
|
|
| 262 |
<h3> <a name="Concepts"></a> Concepts</h3> |
<h3> <a name="Concepts"></a> Concepts</h3> |
| 263 |
<b>Plug-in</b> <br> |
<b>Plug-in</b> <br> |
| 264 |
Eclipse developers build plug-ins. Plug-ins are the base units of execution |
Eclipse developers build plug-ins. Plug-ins are the base units of |
| 265 |
recognized by the Eclipse runtime environment. In general, plug-ins are |
execution recognized by the Eclipse runtime environment. In general, |
| 266 |
not exposed to users that select function during installation or update. |
plug-ins are not exposed to users that select function during installation |
| 267 |
The reason is that plug-in boundaries are established by developers for development |
or update. The reason is that plug-in boundaries are established by developers |
| 268 |
reasons (like function reuse) and present the wrong level of granularity |
for development reasons (like function reuse) and present the wrong level |
| 269 |
in terms of what the user sees as the unit of function. |
of granularity in terms of what the user sees as the unit of function. |
| 270 |
|
|
| 271 |
<p>While plug-ins are being developed (ie. are frequently being changed), |
<p>While plug-ins are being developed (ie. are frequently being changed), |
| 272 |
their internal file structure will reflect what is convenient to the developer. |
their internal file structure will reflect what is convenient to the |
| 273 |
This will generally depend on the particular development tool being used. |
developer. This will generally depend on the particular development tool |
| 274 |
Typically, however, the developer will likely setup the plug-in to execute |
being used. Typically, however, the developer will likely setup the plug-in |
| 275 |
from a directory tree containing exposed .class files, rather than executing |
to execute from a directory tree containing exposed .class files, rather |
| 276 |
from a .jar (requires an extra step to create the .jar and we all know |
than executing from a .jar (requires an extra step to create the .jar |
| 277 |
developers hate extra steps). Also, at this stage the developer does not |
and we all know developers hate extra steps). Also, at this stage the developer |
| 278 |
pay particular attention to plug-in versioning information, because the |
does not pay particular attention to plug-in versioning information, because |
| 279 |
plug-in is continually changing. </p> |
the plug-in is continually changing. </p> |
| 280 |
|
|
| 281 |
<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 |
| 282 |
to a form suitable for packaging and installation. Typically it means |
to a form suitable for packaging and installation. Typically it means |
| 283 |
creation of the runtime .jar(s) and removing any development-time files |
creation of the runtime .jar(s) and removing any development-time files |
| 284 |
(source, exposed .class files, etc). It also means updating the plugin.xml |
(source, exposed .class files, etc). It also means updating the plugin.xml |
| 285 |
manifest with the formal plug-in version and reflecting the version in the |
manifest with the formal plug-in version and reflecting the version in |
| 286 |
plug-in directory name (see "Concurrent Plug-In Version Support" for details). |
the plug-in directory name (see "Concurrent Plug-In Version Support" for |
| 287 |
</p> |
details). </p> |
| 288 |
|
|
| 289 |
<p><b>Plug-in Fragment</b> <br> |
<p><b>Plug-in Fragment</b> <br> |
| 290 |
Plug-in Fragments (or simply Fragments) allow independent packaging |
Plug-in Fragments (or simply Fragments) allow independent packaging |
| 291 |
of certain aspects of the base plug-in. This includes (but may not be limited |
of certain aspects of the base plug-in. This includes (but may not be |
| 292 |
to) translated resources for the plug-in, OS-specific or windowing-system-specific |
limited to) translated resources for the plug-in, OS-specific or windowing-system-specific |
| 293 |
code. At runtime, fragments are logically merged into the base plug-in. |
code. At runtime, fragments are logically merged into the base plug-in. |
| 294 |
From a packaging point of view, the install and update support does not really |
From a packaging point of view, the install and update support does not |
| 295 |
differentiate between plug-ins and their related fragments. </p> |
really differentiate between plug-ins and their related fragments. </p> |
| 296 |
|
|
| 297 |
<p><b>Feature</b> <br> |
<p><b>Feature</b> <br> |
| 298 |
A feature is an installation packaging mechanism used to define a group |
A feature is an installation packaging mechanism used to define |
| 299 |
of versioned plug-ins and/or plug-in fragments plus non-plug-in files that |
a group of versioned plug-ins and/or plug-in fragments plus non-plug-in |
| 300 |
is used to deliver some user function. A feature can also include other |
files that is used to deliver some user function. A feature can also include |
| 301 |
features. Features are exposed to users as part of the packaging and installation |
other features. Features are exposed to users as part of the packaging |
| 302 |
process, because they represent a unit of function selection. Features also |
and installation process, because they represent a unit of function selection. |
| 303 |
represent a unit of installation. Features carry a version identifier.</p> |
Features also represent a unit of installation. Features carry a version |
| 304 |
|
identifier.</p> |
| 305 |
|
|
| 306 |
<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, |
| 307 |
plug-in fragments and optional non-plug-in files. The feature archives are |
plug-in fragments and optional non-plug-in files. The feature archives |
| 308 |
placed on an update server for download and installation by the Eclipse |
are placed on an update server for download and installation by the Eclipse |
| 309 |
update manager, or they can be used as the input into a formal packaging |
update manager, or they can be used as the input into a formal packaging |
| 310 |
process using one of the "traditional" installer technologies. The format |
process using one of the "traditional" installer technologies. The format |
| 311 |
of the feature archive is described later. </p> |
of the feature archive is described later. </p> |
| 319 |
can be used to support alternate packaging schemes. New concrete feature |
can be used to support alternate packaging schemes. New concrete feature |
| 320 |
types are registere via the "org.eclipse.update.featureTypes" extension |
types are registere via the "org.eclipse.update.featureTypes" extension |
| 321 |
point.</li> |
point.</li> |
| 322 |
<li> concrete implementations of site (ISite interface) that can be |
<li> concrete implementations of site (ISite interface) that can |
| 323 |
used to support alternate site layout, or site behavior. New concrete site |
be used to support alternate site layout, or site behavior. New concrete |
| 324 |
types are registered via the "org.eclipse.update.siteTypes" extension |
site types are registered via the "org.eclipse.update.siteTypes" extension |
| 325 |
point.</li> |
point.</li> |
| 326 |
<li> each feature can specify a custom install handler as part of |
<li> each feature can specify a custom install handler as part |
| 327 |
its feature manifest. Install handlers (IInstallHandler interface) are |
of its feature manifest. Install handlers (IInstallHandler interface) |
| 328 |
dynamically invoked as part of the installation process to handle non-plugin |
are dynamically invoked as part of the installation process to handle non-plugin |
| 329 |
data, plus perform other custom processing allowed by the framework.</li> |
data, plus perform other custom processing allowed by the framework.</li> |
| 330 |
|
|
| 331 |
</ul> |
</ul> |
| 349 |
|
|
| 350 |
<h2> <a name="Packaging_Conventions"></a> Packaging Conventions</h2> |
<h2> <a name="Packaging_Conventions"></a> Packaging Conventions</h2> |
| 351 |
Default feature packages consist of several related files: |
Default feature packages consist of several related files: |
| 352 |
|
|
| 353 |
<ul> |
<ul> |
| 354 |
<li> exactly one jar containing the feature manifest and related files. |
<li> exactly one jar containing the feature manifest and related |
| 355 |
This one is refered to as the "<b>feature archive</b>"</li> |
files. This one is refered to as the "<b>feature archive</b>"</li> |
| 356 |
<li> zero or more jars containing the feature plug-ins. These are |
<li> zero or more jars containing the feature plug-ins. These |
| 357 |
refered to as the "<b>plug-in archives</b>"</li> |
are refered to as the "<b>plug-in archives</b>"</li> |
| 358 |
<li> zero or more non-plug-in files associated with the feature. They |
<li> zero or more non-plug-in files associated with the feature. |
| 359 |
are used by feature custom install handlers and contain data not interpreted |
They are used by feature custom install handlers and contain data not interpreted |
| 360 |
by Eclipse</li> |
by Eclipse</li> |
| 361 |
|
|
| 362 |
</ul> |
</ul> |
| 363 |
|
|
| 364 |
<h3> <a name="Feature_Archive"></a> Feature Archive</h3> |
<h3> <a name="Feature_Archive"></a> Feature Archive</h3> |
| 365 |
The feature packaging information is placed into a separate Java .jar. |
The feature packaging information is placed into a separate Java |
| 366 |
Standard Java jar facilities are used for constructing feature archives. |
.jar. Standard Java jar facilities are used for constructing feature |
| 367 |
Feature archives reference separately packaged plug-in archives (see next |
archives. Feature archives reference separately packaged plug-in archives |
| 368 |
section) and non-plug-in files. |
(see next section) and non-plug-in files. |
| 369 |
<p>Features are identified using a structured identifier based on the provider |
<p>Features are identified using a structured identifier based on the provider |
| 370 |
internet domain name. For example, organization eclipse.org may produce |
internet domain name. For example, organization eclipse.org may produce |
| 371 |
feature org.eclipse.javatooling. The character set used for feature identifiers |
feature org.eclipse.javatooling. The character set used for feature identifiers |
| 394 |
<br> |
<br> |
| 395 |
<tt>other feature files and subdirectories (TBD)</tt> <br> |
<tt>other feature files and subdirectories (TBD)</tt> <br> |
| 396 |
<tt>META-INF/</tt> <br> |
<tt>META-INF/</tt> <br> |
| 397 |
<tt> Java jar manifest and security files</tt> </p> |
<tt> Java jar manifest and security files</tt> |
| 398 |
|
</p> |
| 399 |
|
|
| 400 |
<p>The feature install.xml format is defined by the following dtd: </p> |
<p>The feature install.xml format is defined by the following dtd: </p> |
| 401 |
|
|
| 406 |
<tt><!ATTLIST feature</tt> <br> |
<tt><!ATTLIST feature</tt> <br> |
| 407 |
<tt> id |
<tt> id |
| 408 |
CDATA #REQUIRED</tt> <br> |
CDATA #REQUIRED</tt> <br> |
| 409 |
<tt> version CDATA |
<tt> version |
| 410 |
#REQUIRED</tt> <br> |
CDATA #REQUIRED</tt> <br> |
| 411 |
<tt> label |
<tt> label |
| 412 |
CDATA #IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 413 |
<tt> provider-name CDATA #IMPLIED</tt> <br> |
<tt> provider-name CDATA #IMPLIED</tt> <br> |
| 424 |
<tt> colocation-affinity</tt> <br> |
<tt> colocation-affinity</tt> <br> |
| 425 |
<tt> |
<tt> |
| 426 |
CDATA #IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 427 |
<tt> primary (true |
<tt> primary |
| 428 |
| false) "false"</tt> <br> |
(true | false) "false"</tt> <br> |
| 429 |
<tt> application CDATA #IMPLIED</tt> <br> |
<tt> application CDATA #IMPLIED</tt> |
| 430 |
|
<br> |
| 431 |
<tt>></tt> </p> |
<tt>></tt> </p> |
| 432 |
|
|
| 433 |
<p><tt><!ELEMENT install-handler EMPTY></tt> <br> |
<p><tt><!ELEMENT install-handler EMPTY></tt> <br> |
| 434 |
<tt><!ATTLIST install-handler</tt> <br> |
<tt><!ATTLIST install-handler</tt> <br> |
| 435 |
<tt> library CDATA |
<tt> library |
| 436 |
#IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 437 |
<tt> handler CDATA |
<tt> handler |
| 438 |
#IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 439 |
<tt>></tt> </p> |
<tt>></tt> </p> |
| 440 |
|
|
| 441 |
<p><tt><!ELEMENT description (#PCDATA)></tt> <br> |
<p><tt><!ELEMENT description (#PCDATA)></tt> <br> |
| 478 |
<tt><!ATTLIST includes</tt> <br> |
<tt><!ATTLIST includes</tt> <br> |
| 479 |
<tt> id |
<tt> id |
| 480 |
CDATA #REQUIRED</tt> <br> |
CDATA #REQUIRED</tt> <br> |
| 481 |
<tt> version |
<tt> version |
| 482 |
CDATA #REQUIRED</tt> <br> |
CDATA #REQUIRED</tt> <br> |
| 483 |
<tt> name |
<tt> name |
| 484 |
CDATA #IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 485 |
<tt> optional </tt><tt> |
<tt> optional </tt><tt> |
| 499 |
CDATA #IMPLIED</tt><br> |
CDATA #IMPLIED</tt><br> |
| 500 |
<tt> feature CDATA |
<tt> feature CDATA |
| 501 |
#IMPLIED</tt><br> |
#IMPLIED</tt><br> |
| 502 |
<tt> version CDATA |
<tt> version |
| 503 |
#IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 504 |
<tt> match |
<tt> match |
| 505 |
(perfect | equivalent | compatible | greaterOrEqual) "compatible"</tt> <br> |
(perfect | equivalent | compatible | greaterOrEqual) "compatible"</tt> <br> |
| 506 |
<tt> patch </tt><tt> |
<tt> patch </tt><tt> |
| 512 |
<tt><!ATTLIST plugin</tt> <br> |
<tt><!ATTLIST plugin</tt> <br> |
| 513 |
<tt> id |
<tt> id |
| 514 |
CDATA #REQUIRED</tt> <br> |
CDATA #REQUIRED</tt> <br> |
| 515 |
<tt> version CDATA |
<tt> version |
| 516 |
#REQUIRED</tt> <br> |
CDATA #REQUIRED</tt> <br> |
| 517 |
<tt> fragment (true |
<tt> fragment (true |
| 518 |
| false) "false"</tt> <br> |
| false) "false"</tt> <br> |
| 519 |
<tt> os |
<tt> os |
| 552 |
<ul> |
<ul> |
| 553 |
<li> id - required feature identifier (eg. com.xyz.myfeature)</li> |
<li> id - required feature identifier (eg. com.xyz.myfeature)</li> |
| 554 |
<li> version - required component version (eg. 1.0.3)</li> |
<li> version - required component version (eg. 1.0.3)</li> |
| 555 |
<li> label - optional displayable label (name). Intended to be translated.</li> |
<li> label - optional displayable label (name). Intended to be |
| 556 |
|
translated.</li> |
| 557 |
<li> provider-name - optional display label identifying the organization |
<li> provider-name - optional display label identifying the organization |
| 558 |
providing this component. Intended to be translated.</li> |
providing this component. Intended to be translated.</li> |
| 559 |
<li> image - optional image to use when displaying information about |
<li> image - optional image to use when displaying information |
| 560 |
the feature. Specified relative to the feature.xml.</li> |
about the feature. Specified relative to the feature.xml.</li> |
| 561 |
<li> os - optional operating system specification. A comma-separated |
<li> os - optional operating system specification. A comma-separated |
| 562 |
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> |
| 563 |
. Indicates this feature should only be installed on one of the specified |
. Indicates this feature should only be installed on one of the specified |
| 566 |
a hint by the installation and update support (user can force installation |
a hint by the installation and update support (user can force installation |
| 567 |
of feature regardless of this setting).</li> |
of feature regardless of this setting).</li> |
| 568 |
<li> arch - optional machine architecture specification. A comma-separated |
<li> arch - optional machine architecture specification. A comma-separated |
| 569 |
list of architecture designators defined by Eclipse (see Javadoc for <tt> |
list of architecture designators defined by Eclipse (see Javadoc for |
| 570 |
org.eclipse.core.boot.BootLoader)</tt>. Indicates this feature should only |
<tt> org.eclipse.core.boot.BootLoader)</tt>. Indicates this feature |
| 571 |
be installed on one of the specified systems. If this attribute is not specified, |
should only be installed on one of the specified systems. If this attribute |
| 572 |
the feature can be installed on all systems (portable implementation). This |
is not specified, the feature can be installed on all systems (portable |
| 573 |
information is used as a hint by the installation and update support (user |
implementation). This information is used as a hint by the installation |
| 574 |
can force installation of feature regardless of this setting).</li> |
and update support (user can force installation of feature regardless of |
| 575 |
|
this setting).</li> |
| 576 |
<li> ws - optional windowing system specification. A comma-separated |
<li> ws - optional windowing system specification. A comma-separated |
| 577 |
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> |
| 578 |
. Indicates this feature should only be installed on one of the specified |
. Indicates this feature should only be installed on one of the specified |
| 580 |
on all systems (portable implementation). This information is used as |
on all systems (portable implementation). This information is used as |
| 581 |
a hint by the installation and update support (user can force installation |
a hint by the installation and update support (user can force installation |
| 582 |
of feature regardless of this setting).</li> |
of feature regardless of this setting).</li> |
| 583 |
<li> nl - optional locale specification. A comma-separated list of |
<li> nl - optional locale specification. A comma-separated list |
| 584 |
locale designators defined by Java. Indicates this feature should only be |
of locale designators defined by Java. Indicates this feature should |
| 585 |
installed on a system running with a compatible locale (using Java locale-matching |
only be installed on a system running with a compatible locale (using |
| 586 |
rules). If this attribute is not specified, the feature can be installed |
Java locale-matching rules). If this attribute is not specified, the feature |
| 587 |
on all systems (language-neutral implementation). This information is used |
can be installed on all systems (language-neutral implementation). This |
| 588 |
as a hint by the installation and update support (user can force installation |
information is used as a hint by the installation and update support (user |
| 589 |
of feature regardless of this setting).</li> |
can force installation of feature regardless of this setting).</li> |
| 590 |
<li> colocation-affinity - optional reference to another feature identifier |
<li> colocation-affinity - optional reference to another feature |
| 591 |
used to select the default installation location for this feature. When |
identifier used to select the default installation location for this feature. |
| 592 |
this feature is being installed as a new feature (no other versions of it |
When this feature is being installed as a new feature (no other versions |
| 593 |
are installed), an attempt is made to install this feature in the same installation |
of it are installed), an attempt is made to install this feature in the |
| 594 |
location as the referenced feature.</li> |
same installation location as the referenced feature.</li> |
| 595 |
<li> primary - optional indication specifying whether this feature |
<li> primary - optional indication specifying whether this feature |
| 596 |
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 |
| 597 |
if <i>false</i> (not a primary feature).</li> |
if <i>false</i> (not a primary feature).</li> |
| 608 |
<li> library - optional .jar library containing the install handler |
<li> library - optional .jar library containing the install handler |
| 609 |
classes. If specified, the referenced .jar must be contained in the feature |
classes. If specified, the referenced .jar must be contained in the feature |
| 610 |
archive. It is specified as a path within the feature archive, relative |
archive. It is specified as a path within the feature archive, relative |
| 611 |
to the feature.xml entry. If not specified, the feature archive itself is |
to the feature.xml entry. If not specified, the feature archive itself |
| 612 |
used to load the install handler classes. This attribute is only interpreted |
is used to load the install handler classes. This attribute is only interpreted |
| 613 |
if <i>class</i> attribute is also specified</li> |
if <i>class</i> attribute is also specified</li> |
| 614 |
<li> handler - optional identifier of the install handler. The value |
<li> handler - optional identifier of the install handler. The |
| 615 |
is interpreted depending on the value of the <i>library</i> attribute. If |
value is interpreted depending on the value of the <i>library</i> attribute. |
| 616 |
<i> library</i> is specified, the value is interpreted as a |
If <i> library</i> is specified, the value is interpreted as |
| 617 |
fully qualified name of a class contained in the specified <i>library</i>. |
a fully qualified name of a class contained in the specified <i>library</i>. |
| 618 |
If <i>library</i> is not specified, the value is is interpreted as |
If <i>library</i> is not specified, the value is is interpreted |
| 619 |
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> |
| 620 |
extension point. In either case, the resulting class must implement the |
extension point. In either case, the resulting class must implement the |
| 621 |
<i> IInstallHandler</i> interface. The class is dynamically loaded |
<i> IInstallHandler</i> interface. The class is dynamically loaded |
| 622 |
and called at specific points during feature processing. The handler has |
and called at specific points during feature processing. The handler has |
| 624 |
required by the update plugin.</li> |
required by the update plugin.</li> |
| 625 |
|
|
| 626 |
</ul> |
</ul> |
| 627 |
<li> <description> - brief component description as simple text. |
<li> <description> - brief component description as simple |
| 628 |
Intended to be translated.</li> |
text. Intended to be translated.</li> |
| 629 |
|
|
| 630 |
<ul> |
<ul> |
| 631 |
<li> url - optional URL for the full description as HTML. The URL can |
<li> url - optional URL for the full description as HTML. The URL |
| 632 |
be specified as absolute of relative. If relative, it is assumed to be relative |
can be specified as absolute of relative. If relative, it is assumed to |
| 633 |
to (and packaged in) the feature archive. Note, that for NL handling the |
be relative to (and packaged in) the feature archive. Note, that for NL |
| 634 |
URL value should be separated to allow alternate URLs to be specified for |
handling the URL value should be separated to allow alternate URLs to be |
| 635 |
each national language.</li> |
specified for each national language. URL support keywords $os$,$ws$,$arch$ |
| 636 |
|
and $nl$ that will be replaced by the appropriate operating system, windowing |
| 637 |
|
system, operating architecture or national language value.</li> |
| 638 |
|
|
| 639 |
</ul> |
</ul> |
| 640 |
<li> <copyright> - feature copyright as simple text. Intended |
<li> <copyright> - feature copyright as simple text. Intended |
| 641 |
to be translated.</li> |
to be translated.</li> |
| 642 |
|
|
| 643 |
<ul> |
<ul> |
| 644 |
<li> url - optional URL for the full description as HTML. The URL can |
<li> url - optional URL for the full description as HTML. The URL |
| 645 |
be specified as absolute of relative. If relative, it is assumed to be relative |
can be specified as absolute of relative. If relative, it is assumed to |
| 646 |
to (and packaged in) the feature archive. Note, that for NL handling the |
be relative to (and packaged in) the feature archive. Note, that for NL |
| 647 |
URL value should be separated to allow alternate URLs to be specified for |
handling the URL value should be separated to allow alternate URLs to be |
| 648 |
each national language.</li> |
specified for each national language. URL support keywords $os$,$ws$,$arch$ |
| 649 |
|
and $nl$ that will be replaced by the appropriate operating system, windowing |
| 650 |
</ul> |
system, operating architecture or national language value.</li> |
| 651 |
<li> <license> - feature "click-through" license as simple text. |
|
| 652 |
Intended to be translated. It is displayed in a standard dialog with [Accept] |
</ul> |
| 653 |
[Reject] actions during the download/ installation process. Note, that click-through |
<li> <license> - feature "click-through" license as simple |
| 654 |
license must be specified for any feature that will be selected for installation |
text. Intended to be translated. It is displayed in a standard dialog |
| 655 |
or update using the Eclipse update manager. When using nested features, |
with [Accept] [Reject] actions during the download/ installation process. |
| 656 |
only the nesting parent (ie. the feature selected for installation or update) |
Note, that click-through license must be specified for any feature that |
| 657 |
must have click-through license text defined. The license text is required |
will be selected for installation or update using the Eclipse update manager. |
| 658 |
even if the optional <i>url</i> attribute is specified.</li> |
When using nested features, only the nesting parent (ie. the feature selected |
| 659 |
|
for installation or update) must have click-through license text defined. |
| 660 |
<ul> |
The license text is required even if the optional <i>url</i> attribute is |
| 661 |
<li> url - optional URL for the full description as HTML. The URL can |
specified.</li> |
| 662 |
be specified as absolute of relative. If relative, it is assumed to be relative |
|
| 663 |
to (and packaged in) the feature archive. Note, that for NL handling the |
<ul> |
| 664 |
URL value should be separated to allow alternate URLs to be specified for |
<li> url - optional URL for the full description as HTML. The URL |
| 665 |
each national language. Note, that the "content" of this URL is <b>not</b> |
can be specified as absolute of relative. If relative, it is assumed to |
| 666 |
what is presented as the click-through license during installation processing. |
be relative to (and packaged in) the feature archive. Note, that for NL |
| 667 |
The click-through license is the actual value of the <i><license></i> |
handling the URL value should be separated to allow alternate URLs to be |
| 668 |
element (eg. <tt><license>click through text</license></tt>)</li> |
specified for each national language. Note, that the "content" of this URL |
| 669 |
|
is <b>not</b> what is presented as the click-through license during installation |
| 670 |
|
processing. The click-through license is the actual value of the <i><license></i> |
| 671 |
|
element (eg. <tt><license>click through text</license></tt>). URL |
| 672 |
|
support keywords $os$,$ws$,$arch$ and $nl$ that will be replaced by the appropriate |
| 673 |
|
operating system, windowing system, operating architecture or national language |
| 674 |
|
value.</li> |
| 675 |
|
|
| 676 |
</ul> |
</ul> |
| 677 |
<li> <url> - optional URL specifying site(s) contain feature |
<li> <url> - optional URL specifying site(s) contain feature |
| 697 |
</ul> |
</ul> |
| 698 |
|
|
| 699 |
</ul> |
</ul> |
| 700 |
<li> <includes> - optional reference to a nested feature that |
<li> <includes> - optional reference to a nested feature |
| 701 |
is considered to be part of this feature. Nested features must be located |
that is considered to be part of this feature. Nested features must be |
| 702 |
on the same update site as this feature</li> |
located on the same update site as this feature</li> |
| 703 |
|
|
| 704 |
<ul> |
<ul> |
| 705 |
<li> id - required nested feature identifier</li> |
<li> id - required nested feature identifier</li> |
| 706 |
<li> version - required nested feature version</li> |
<li> version - required nested feature version</li> |
| 707 |
<li> name- optional displayable label (name). Intended to be translated.</li> |
<li> name- optional displayable label (name). Intended to be |
| 708 |
|
translated.</li> |
| 709 |
<li>optional - optional specification indicating if this included |
<li>optional - optional specification indicating if this included |
| 710 |
feature can be optionally installed. Default is "false"<br> |
feature can be optionally installed. Default is "false"<br> |
| 711 |
</li> |
</li> |
| 712 |
<li>match - optional rule that will be applied when resolving |
<li>match - optional rule that will be applied when resolving |
| 713 |
the feature reference. A <samp>perfect</samp> match (the default that matches |
the feature reference. A <samp>perfect</samp> match (the default that |
| 714 |
the 2.0.1 behavior) requires that the feature has exactly the version specified |
matches the 2.0.1 behavior) requires that the feature has exactly the |
| 715 |
by the version attribute. Other choices progressively relax the rule (<samp> |
version specified by the version attribute. Other choices progressively |
| 716 |
equivalent</samp> allows only service part of the version to be more recent, |
relax the rule (<samp> equivalent</samp> allows only service part of the |
| 717 |
<samp>compatible</samp> also allows minor part to be included in the |
version to be more recent, <samp>compatible</samp> also allows minor |
| 718 |
consideration, while <samp>greaterOrEqual</samp> simply allows any version |
part to be included in the consideration, while <samp>greaterOrEqual</samp> |
| 719 |
that is more recent or identical to the one specified).</li> |
simply allows any version that is more recent or identical to the one specified).</li> |
| 720 |
<li>search_location - optional. Indicates whether the "New |
<li>search_location - optional. Indicates whether the |
| 721 |
Updates" action should search the update location determined by the nesting |
"New Updates" action should search the update location determined by |
| 722 |
root feature (<tt>root</tt>, is the default), or the location defined by |
the nesting root feature (<tt>root</tt>, is the default), or the location |
| 723 |
the nested feature (<tt>self</tt>), or search both (<tt>both</tt>) in that |
defined by the nested feature (<tt>self</tt>), or search both (<tt>both</tt>) |
| 724 |
order (root first, self if nothing is found).</li> |
in that order (root first, self if nothing is found).</li> |
| 725 |
|
|
| 726 |
</ul> |
</ul> |
| 727 |
<li> <requires> - optional feature dependency information. Is |
<li> <requires> - optional feature dependency information. |
| 728 |
expressed in terms of plug-in dependencies. If specified, is enforced by |
Is expressed in terms of plug-in dependencies. If specified, is enforced |
| 729 |
the installation and update support at the time of installation</li> |
by the installation and update support at the time of installation</li> |
| 730 |
|
|
| 731 |
<ul> |
<ul> |
| 732 |
<li> <import> - dependency entry. Specification and processing |
<li> <import> - dependency entry. Specification and processing |
| 734 |
|
|
| 735 |
<ul> |
<ul> |
| 736 |
<li> plugin - identifier of dependent plug-in.</li> |
<li> plugin - identifier of dependent plug-in.</li> |
| 737 |
<li> feature - identifier of dependent feature. If plugin and |
<li> feature - identifier of dependent feature. If plugin |
| 738 |
feature are specified, plugin takes precedence upon feature. Feature or |
and feature are specified, plugin takes precedence upon feature. Feature |
| 739 |
plugin must be specified.</li> |
or plugin must be specified.</li> |
| 740 |
<li> version - optional plug-in/feature version specification</li> |
<li> version - optional plug-in/feature version specification</li> |
| 741 |
<li>patch - optional specification indicating if this feature |
<li>patch - optional specification indicating if this feature |
| 742 |
is a patch of the dependant feature. Default is "false". If patch is true, |
is a patch of the dependant feature. Default is "false". If patch is |
| 743 |
version must be specified. If patch is true, only feature must be specified. |
true, version must be specified. If patch is true, only feature must be |
| 744 |
If patch is true, and match is specified, it must be 'perfect'.<br> |
specified. If patch is true, and match is specified, it must be 'perfect'.<br> |
| 745 |
</li> |
</li> |
| 746 |
<li> match - optional matching rule. Valid values and processing are |
<li> match - optional matching rule. Valid values and processing |
| 747 |
as follows:</li> |
are as follows:</li> |
| 748 |
|
|
| 749 |
|
|
| 750 |
<ul> |
<ul> |
| 751 |
<li> if version attribute is not specified, the match attribute (if |
<li> if version attribute is not specified, the match attribute |
| 752 |
specified) is ignored.</li> |
(if specified) is ignored.</li> |
| 753 |
<li>if version is specified, match defaults to compatible.<br> |
<li>if version is specified, match defaults to compatible.<br> |
| 754 |
</li> |
</li> |
| 755 |
<li>if patch is true, and match is not specified, match defaults |
<li>if patch is true, and match is not specified, match |
| 756 |
to perfect.<br> |
defaults to perfect.<br> |
| 757 |
</li> |
</li> |
| 758 |
<li> <b><i>perfect</i></b> - dependent plug-in version must match |
<li> <b><i>perfect</i></b> - dependent plug-in version must match |
| 759 |
exactly the specified version.</li> |
exactly the specified version.</li> |
| 760 |
<li> <b><i>equivalent</i></b> - dependent plug-in version must be |
<li> <b><i>equivalent</i></b> - dependent plug-in version must |
| 761 |
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 |
| 762 |
and minor version levels must equal the specified version).</li> |
and minor version levels must equal the specified version).</li> |
| 763 |
<li> <b><i>compatible</i></b> - dependent plug-in version must be |
<li> <b><i>compatible</i></b> - dependent plug-in version must |
| 764 |
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 minor |
| 765 |
level (major version level must equal the specified version).</li> |
level (major version level must equal the specified version).</li> |
| 766 |
<li> <b><i>greaterOrEqual</i></b> - dependent plug-in version must |
<li> <b><i>greaterOrEqual</i></b> - dependent plug-in version |
| 767 |
be at least at the version specified, or at a higher service, minor or major |
must be at least at the version specified, or at a higher service, minor |
| 768 |
level.</li> |
or major level.</li> |
| 769 |
|
|
| 770 |
</ul> |
</ul> |
| 771 |
|
|
| 777 |
<ul> |
<ul> |
| 778 |
<li> id - required plug-in identifier (from plugin.xml)</li> |
<li> id - required plug-in identifier (from plugin.xml)</li> |
| 779 |
<li> version - required plug-in version (from plugin.xml)</li> |
<li> version - required plug-in version (from plugin.xml)</li> |
| 780 |
<li> fragment - optional specification indicating if this entry is |
<li> fragment - optional specification indicating if this entry |
| 781 |
a plug-in fragment. Default is "false"</li> |
is a plug-in fragment. Default is "false"</li> |
| 782 |
<li> os - optional operating system specification. A comma-separated |
<li> os - optional operating system specification. A comma-separated |
| 783 |
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> |
| 784 |
. Indicates this entry should only be installed on one of the specified |
. Indicates this entry should only be installed on one of the specified |
| 785 |
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 |
| 786 |
on all systems (portable implementation). This information is used as a |
on all systems (portable implementation). This information is used as |
| 787 |
hint by the installation and update support (user can force installation |
a hint by the installation and update support (user can force installation |
| 788 |
of entry regardless of this setting).</li> |
of entry regardless of this setting).</li> |
| 789 |
<li> arch - optional machine architecture specification. A comma-separated |
<li> arch - optional machine architecture specification. A comma-separated |
| 790 |
list of architecture designators defined by Eclipse (see Javadoc for <tt> |
list of architecture designators defined by Eclipse (see Javadoc for |
| 791 |
org.eclipse.core.boot.BootLoader)</tt>. Indicates this feature should only |
<tt> org.eclipse.core.boot.BootLoader)</tt>. Indicates this feature |
| 792 |
be installed on one of the specified systems. If this attribute is not specified, |
should only be installed on one of the specified systems. If this attribute |
| 793 |
the feature can be installed on all systems (portable implementation). This |
is not specified, the feature can be installed on all systems (portable |
| 794 |
information is used as a hint by the installation and update support (user |
implementation). This information is used as a hint by the installation |
| 795 |
can force installation of feature regardless of this setting).</li> |
and update support (user can force installation of feature regardless of |
| 796 |
|
this setting).</li> |
| 797 |
<li> ws - optional windowing system specification. A comma-separated |
<li> ws - optional windowing system specification. A comma-separated |
| 798 |
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> |
| 799 |
. Indicates this entry should only be installed on one of the specified |
. Indicates this entry should only be installed on one of the specified |
| 800 |
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 |
| 801 |
on all systems (portable implementation). This information is used as a |
on all systems (portable implementation). This information is used as |
|
hint by the installation and update support (user can force installation |
|
|
of entry regardless of this setting).</li> |
|
|
<li> nl - optional locale specification. A comma-separated list of |
|
|
locale designators defined by Java. Indicates this entry should only be |
|
|
installed on a system running with a compatible locale (using Java locale-matching |
|
|
rules). If this attribute is not specified, the entry can be installed on |
|
|
all systems (language-neutral implementation). This information is used as |
|
| 802 |
a hint by the installation and update support (user can force installation |
a hint by the installation and update support (user can force installation |
| 803 |
of entry regardless of this setting).</li> |
of entry regardless of this setting).</li> |
| 804 |
|
<li> nl - optional locale specification. A comma-separated list |
| 805 |
|
of locale designators defined by Java. Indicates this entry should only |
| 806 |
|
be installed on a system running with a compatible locale (using Java |
| 807 |
|
locale-matching rules). If this attribute is not specified, the entry can |
| 808 |
|
be installed on all systems (language-neutral implementation). This information |
| 809 |
|
is used as a hint by the installation and update support (user can force |
| 810 |
|
installation of entry regardless of this setting).</li> |
| 811 |
<li> download-size - optional hint supplied by the feature packager, |
<li> download-size - optional hint supplied by the feature packager, |
| 812 |
indicating the download size in KBytes of the referenced plug-in archive. |
indicating the download size in KBytes of the referenced plug-in archive. |
| 813 |
If not specified, the download size is not known (<b>Implementation Note:</b> |
If not specified, the download size is not known (<b>Implementation Note:</b> |
| 818 |
the implementation needs to distinguish between "not known" and 0 size)</li> |
the implementation needs to distinguish between "not known" and 0 size)</li> |
| 819 |
|
|
| 820 |
</ul> |
</ul> |
| 821 |
<li> <data> - identifies non-plugin and non-feature data that |
<li> <data> - identifies non-plugin and non-feature data |
| 822 |
is part of the feature. Generally, data are post-install processed using |
that is part of the feature. Generally, data are post-install processed using |
| 823 |
feature Install handler. Feature files like feature.properties are not considered |
feature Install handler. Feature files like feature.properties are not considered |
| 824 |
data.</li> |
data.</li> |
| 825 |
|
|
| 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 a |
on all systems (portable implementation). This information is used as |
| 833 |
hint by the installation and update support (user can force installation |
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 comma-separated |
<li> arch - optional machine architecture specification. A comma-separated |
| 836 |
list of architecture designators defined by Eclipse (see Javadoc for <tt> |
list of architecture designators defined by Eclipse (see Javadoc for |
| 837 |
org.eclipse.core.boot.BootLoader)</tt>. Indicates this feature should only |
<tt> org.eclipse.core.boot.BootLoader)</tt>. Indicates this feature |
| 838 |
be installed on one of the specified systems. If this attribute is not specified, |
should only be installed on one of the specified systems. If this attribute |
| 839 |
the feature can be installed on all systems (portable implementation). This |
is not specified, the feature can be installed on all systems (portable |
| 840 |
information is used as a hint by the installation and update support (user |
implementation). This information is used as a hint by the installation |
| 841 |
can force installation of feature regardless of this setting).</li> |
and update support (user can force installation of feature regardless of |
| 842 |
|
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 a |
on all systems (portable implementation). This information is used as |
|
hint by the installation and update support (user can force installation |
|
|
of entry regardless of this setting).</li> |
|
|
<li> nl - optional locale specification. A comma-separated list of |
|
|
locale designators defined by Java. Indicates this entry should only be |
|
|
installed on a system running with a compatible locale (using Java locale-matching |
|
|
rules). If this attribute is not specified, the entry can be installed on |
|
|
all systems (language-neutral implementation). This information is used as |
|
| 848 |
a hint by the installation and update support (user can force installation |
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 list |
| 851 |
|
of locale designators defined by Java. Indicates this entry should only |
| 852 |
|
be installed on a system running with a compatible locale (using Java |
| 853 |
|
locale-matching rules). If this attribute is not specified, the entry can |
| 854 |
|
be installed on all systems (language-neutral implementation). This information |
| 855 |
|
is used as a hint by the installation and update support (user can force |
| 856 |
|
installation of entry regardless of this setting).</li> |
| 857 |
<li> download-size - optional hint supplied by the feature packager, |
<li> download-size - optional hint supplied by the feature packager, |
| 858 |
indicating the download size in KBytes of the referenced data archive. If |
indicating the download size in KBytes of the referenced data archive. |
| 859 |
not specified, the download size is not known (<b>Implementation Note:</b> |
If not specified, the download size is not known (<b>Implementation Note:</b> |
| 860 |
the implementation needs to distinguish between "not known" and 0 size)</li> |
the implementation needs to distinguish between "not known" and 0 size)</li> |
| 861 |
<li> install-size - optional hint supplied by the feature packager, |
<li> install-size - optional hint supplied by the feature packager, |
| 862 |
indicating the install size in KBytes of the referenced data archive. |
indicating the install size in KBytes of the referenced data archive. |
| 868 |
</ul> |
</ul> |
| 869 |
<a name="Feature_Archive_Mapping_Id_To_Path"></a> When interacting |
<a name="Feature_Archive_Mapping_Id_To_Path"></a> When interacting |
| 870 |
with the update site, the feature implementation maps the <tt><plugin></tt> |
with the update site, the feature implementation maps the <tt><plugin></tt> |
| 871 |
and <tt><data></tt> elements into path identifiers used by the site |
and <tt><data></tt> elements into path identifiers used by the |
| 872 |
to determine the actual files to download and install. The default feature |
site to determine the actual files to download and install. The default |
| 873 |
implementation supplied by Eclipse constructs the path identifiers as follows: |
feature implementation supplied by Eclipse constructs the path identifiers |
| 874 |
|
as follows: |
| 875 |
<ul> |
<ul> |
| 876 |
<li> <tt><plugin></tt> element results in a path entry in the |
<li> <tt><plugin></tt> element results in a path entry in |
| 877 |
form "<tt>plugins/<pluginId>_<pluginVersion>.jar</tt>" (for |
the form "<tt>plugins/<pluginId>_<pluginVersion>.jar</tt>" |
| 878 |
example, "<tt>plugins/org.eclipse.core.boot_1.0.3.jar</tt>")</li> |
(for example, "<tt>plugins/org.eclipse.core.boot_1.0.3.jar</tt>")</li> |
| 879 |
<li> <tt><data></tt> element results in a path entry in the |
<li> <tt><data></tt> element results in a path entry in |
| 880 |
form "<tt>features/<featureId>_<featureVersion>/<dataId></tt> |
the form "<tt>features/<featureId>_<featureVersion>/<dataId></tt> |
| 881 |
" (for example, "f<tt>eatures/com.xyz.tools_2.3.1/examples.zip</tt>")</li> |
" (for example, "f<tt>eatures/com.xyz.tools_2.3.1/examples.zip</tt>")</li> |
| 882 |
|
|
| 883 |
</ul> |
</ul> |
| 884 |
Note, that in general the feature.xml manifest documents should |
Note, that in general the feature.xml manifest documents |
| 885 |
specify UTF-8 encoding. For example |
should specify UTF-8 encoding. For example |
| 886 |
<p><tt><?xml version="1.0" encoding="UTF-8"?></tt> </p> |
<p><tt><?xml version="1.0" encoding="UTF-8"?></tt> </p> |
| 887 |
|
|
| 888 |
<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 |
| 889 |
files using Java property bundle conventions. Note that the translated strings |
files using Java property bundle conventions. Note that the translated |
| 890 |
are used at installation time (ie. do not employ the plug-in fragment runtime |
strings are used at installation time (ie. do not employ the plug-in fragment |
| 891 |
mechanism). </p> |
runtime mechanism). </p> |
| 892 |
|
|
| 893 |
<h3> <a name="Plug-In_Archive"></a> Plug-In Archive</h3> |
<h3> <a name="Plug-In_Archive"></a> Plug-In Archive</h3> |
| 894 |
Plug-ins and plug-in fragments are individually packaged as separate |
Plug-ins and plug-in fragments are individually packaged as separate |
| 900 |
|
|
| 901 |
<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> |
| 902 |
<version></tt> is the full version identifier contained in the respective |
<version></tt> is the full version identifier contained in the respective |
| 903 |
plugin.xml or fragment.xml. Note that this is a recommended convention that |
plugin.xml or fragment.xml. Note that this is a recommended convention |
| 904 |
minimizes chance of collisions, but is not required by the Eclipse architecture. |
that minimizes chance of collisions, but is not required by the Eclipse |
| 905 |
For example, the following are valid plug-in archive names </p> |
architecture. For example, the following are valid plug-in archive names |
| 906 |
|
</p> |
| 907 |
|
|
| 908 |
<p><tt>org.eclipse.platform_1.0.3.jar</tt> <br> |
<p><tt>org.eclipse.platform_1.0.3.jar</tt> <br> |
| 909 |
<tt>org.eclipse.ui.nl_2.0.jar</tt> <br> |
<tt>org.eclipse.ui.nl_2.0.jar</tt> <br> |
| 916 |
<p><tt>plugin.xml *OR* fragment.xml</tt> <br> |
<p><tt>plugin.xml *OR* fragment.xml</tt> <br> |
| 917 |
<tt>other plug-in or feature files and subdirectories</tt> <br> |
<tt>other plug-in or feature files and subdirectories</tt> <br> |
| 918 |
<tt>META-INF/</tt> <br> |
<tt>META-INF/</tt> <br> |
| 919 |
<tt> Java jar manifest and security files</tt> </p> |
<tt> Java jar manifest and security files</tt> |
| 920 |
|
</p> |
| 921 |
|
|
| 922 |
<h3> <a name="Packaging_NL"></a> Packaging NL</h3> |
<h3> <a name="Packaging_NL"></a> Packaging NL</h3> |
| 923 |
In Eclipse, translated plug-in information is packaged either together |
In Eclipse, translated plug-in information is packaged either together |
| 924 |
with the base plug-in, or as a plug-in fragment. At runtime, Eclipse locates |
with the base plug-in, or as a plug-in fragment. At runtime, Eclipse |
| 925 |
the translations for the required locale. The use of fragments allows translations |
locates the translations for the required locale. The use of fragments |
| 926 |
to be added to the runtime without the need to repackage the base plug-ins. |
allows translations to be added to the runtime without the need to repackage |
| 927 |
|
the base plug-ins. |
| 928 |
<p>This mechanism cannot be used for translating the actual packaging information |
<p>This mechanism cannot be used for translating the actual packaging information |
| 929 |
that is part of the installation xml files. Consequently the standard |
that is part of the installation xml files. Consequently the standard |
| 930 |
Java translation conventions are used for the packaging information, and |
Java translation conventions are used for the packaging information, |
| 931 |
all necessary translations must be available at the time the feature is |
and all necessary translations must be available at the time the feature |
| 932 |
packaged. </p> |
is packaged. </p> |
| 933 |
|
|
| 934 |
<h4> <a name="Translated_Feature_Information"></a> Translated Feature Information</h4> |
<h4> <a name="Translated_Feature_Information"></a> Translated Feature Information</h4> |
| 935 |
<b>Note:</b> This section describes the conventions used for translating |
<b>Note:</b> This section describes the conventions used for translating |
| 936 |
the information contained within the feature manifest. It allows for the |
the information contained within the feature manifest. It allows for |
| 937 |
update client to select the correctly localized strings from the update |
the update client to select the correctly localized strings from the update |
| 938 |
server. This section specifically does not describe localization of individual |
server. This section specifically does not describe localization of individual |
| 939 |
plug-ins. |
plug-ins. |
| 940 |
<p>Several of the attributes within the feature manifest are strings intended |
<p>Several of the attributes within the feature manifest are strings intended |
| 962 |
|
|
| 963 |
<p><tt>ResourceBundle b;</tt> <br> |
<p><tt>ResourceBundle b;</tt> <br> |
| 964 |
<tt>ClassLoader l;</tt> <br> |
<tt>ClassLoader l;</tt> <br> |
| 965 |
<tt>l = new URLClassLoader(new URL[] {<targetDirectoryURL>}, null);</tt> |
<tt>l = new URLClassLoader(new URL[] {<targetDirectoryURL>}, |
| 966 |
<br> |
null);</tt> <br> |
| 967 |
<tt>b = ResourceBundle.getBundle("feature",Locale.getDefault(),l);</tt> |
<tt>b = ResourceBundle.getBundle("feature",Locale.getDefault(),l);</tt> |
| 968 |
</p> |
</p> |
| 969 |
|
|
| 994 |
<h3> <a name="Custom_Install_Handling"></a> Custom Install Handling</h3> |
<h3> <a name="Custom_Install_Handling"></a> Custom Install Handling</h3> |
| 995 |
Custom install handlers are written as a Java class and are packaged |
Custom install handlers are written as a Java class and are packaged |
| 996 |
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 |
| 997 |
must implement the <tt>IInstallHandler</tt> interface (in most cases will |
must implement the <tt>IInstallHandler</tt> interface (in most cases |
| 998 |
extend the <tt>BaseInstallHandler</tt> abstract helper class which implements |
will extend the <tt>BaseInstallHandler</tt> abstract helper class which |
| 999 |
<tt>IInstallHandler</tt>). When required, the install handler is dynamically |
implements <tt>IInstallHandler</tt>). When required, the install handler |
| 1000 |
loaded by the installation and update code, and is called at specific points |
is dynamically loaded by the installation and update code, and is called |
| 1001 |
during its processing. The install handler code has visibility to classes |
at specific points during its processing. The install handler code has |
| 1002 |
from the installation and update support plug-in, and its prerequisite |
visibility to classes from the installation and update support plug-in, |
| 1003 |
plug-ins. |
and its prerequisite plug-ins. |
| 1004 |
<p><b>Implementation Note:</b> the detailed list of visible prerequisite |
<p><b>Implementation Note:</b> the detailed list of visible prerequisite |
| 1005 |
plug-ins is still evolving. It is expected to include <tt>org.eclipse.core.boot |
plug-ins is still evolving. It is expected to include <tt>org.eclipse.core.boot |
| 1006 |
</tt> 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> |
| 1015 |
a functional description)]: </p> |
a functional description)]: </p> |
| 1016 |
|
|
| 1017 |
<ul> |
<ul> |
| 1018 |
<li> install-initiated - the install handler is called after a feature |
<li> install-initiated - the install handler is called after a |
| 1019 |
was selected for installation, but before any files were downloaded. It |
feature was selected for installation, but before any files were downloaded. |
| 1020 |
is intended to implement any custom click-through or user registration |
It is intended to implement any custom click-through or user registration |
| 1021 |
dialogs. The base implementation of this method supplied with the abstract |
dialogs. The base implementation of this method supplied with the abstract |
| 1022 |
class <tt>BaseInstallHandler </tt>performs the default click-through |
class <tt>BaseInstallHandler </tt>performs the default click-through |
| 1023 |
processing using the license text supplied as part of the feature manifest. |
processing using the license text supplied as part of the feature manifest. |
| 1024 |
On return this method indicates success (installation continues) of failure |
On return this method indicates success (installation continues) of failure |
| 1025 |
(installation is aborted).</li> |
(installation is aborted).</li> |
| 1026 |
<li> install-downloaded - the install handler is called after all |
<li> install-downloaded - the install handler is called after |
| 1027 |
the required feature files were downloaded (feature, plugins, data) but |
all the required feature files were downloaded (feature, plugins, data) |
| 1028 |
before the actual installation is performed. The install handler is expected |
but before the actual installation is performed. The install handler |
| 1029 |
to perform verification of the non-plug-in data files (eg. security), |
is expected to perform verification of the non-plug-in data files (eg. |
| 1030 |
or any other pre-install processing. On return this method indicates |
security), or any other pre-install processing. On return this method |
| 1031 |
success (installation continues) or failure (installation is aborted).</li> |
indicates success (installation continues) or failure (installation is |
| 1032 |
<li> install-completion - the install handler is called after the |
aborted).</li> |
| 1033 |
feature information and the plug-ins were installed. It is expected to |
<li> install-completion - the install handler is called after |
| 1034 |
complete the installation of any non-plug-in data that was part of the feature. |
the feature information and the plug-ins were installed. It is expected |
| 1035 |
On return this method indicates success (returns custom install log) or |
to complete the installation of any non-plug-in data that was part of the |
| 1036 |
failure (installation is aborted). On failure, the install handler is expected |
feature. On return this method indicates success (returns custom install |
| 1037 |
to perform any required cleanup.</li> |
log) or failure (installation is aborted). On failure, the install handler |
| 1038 |
<li> uninstall-initiated - the install handler is called when a feature |
is expected to perform any required cleanup.</li> |
| 1039 |
is selected for removal, but before any of the standard uninstall processing |
<li> uninstall-initiated - the install handler is called when |
| 1040 |
has taken place. It is passed the custom install log created by the install |
a feature is selected for removal, but before any of the standard uninstall |
| 1041 |
handler install-completion step.</li> |
processing has taken place. It is passed the custom install log created |
| 1042 |
|
by the install handler install-completion step.</li> |
| 1043 |
<li> uninstall-completion - the install handler is called on completion |
<li> uninstall-completion - the install handler is called on completion |
| 1044 |
of the standard uninstall steps. It is passed the custom install log created |
of the standard uninstall steps. It is passed the custom install log created |
| 1045 |
by the install handler install-completion step.</li> |
by the install handler install-completion step.</li> |
| 1054 |
<p>Features are verified as follows: </p> |
<p>Features are verified as follows: </p> |
| 1055 |
|
|
| 1056 |
<ul> |
<ul> |
| 1057 |
<li> download and verify the feature archive (use base Java jar verification)</li> |
<li> download and verify the feature archive (use base Java jar |
| 1058 |
|
verification)</li> |
| 1059 |
<li> for each plug-in archive</li> |
<li> for each plug-in archive</li> |
| 1060 |
|
|
| 1061 |
<ul> |
<ul> |
| 1062 |
<li> verify the archive jar content (use base Java jar verification)</li> |
<li> verify the archive jar content (use base Java jar verification)</li> |
| 1063 |
<li> verify plug-in id and version from <tt><plugin></tt> entry |
<li> verify plug-in id and version from <tt><plugin></tt> |
| 1064 |
in feature manifest matches downloaded plugin.xml</li> |
entry in feature manifest matches downloaded plugin.xml</li> |
| 1065 |
|
|
| 1066 |
</ul> |
</ul> |
| 1067 |
<li> for each non-plugin file</li> |
<li> for each non-plugin file</li> |
| 1073 |
|
|
| 1074 |
</ul> |
</ul> |
| 1075 |
In general, when processing signed jars, the user will be prompted |
In general, when processing signed jars, the user will be prompted |
| 1076 |
for each unrecognized certificate. The response choices will include aborting |
for each unrecognized certificate. The response choices will include |
| 1077 |
the installation (originator is not trusted), continuing the installation |
aborting the installation (originator is not trusted), continuing the |
| 1078 |
(originator is trusted for this installation). |
installation (originator is trusted for this installation). |
| 1079 |
<h2> <a name="Update_Server"></a> Update Server</h2> |
<h2> <a name="Update_Server"></a> Update Server</h2> |
| 1080 |
The default Eclipse update server is any URL-accessible server. The |
The default Eclipse update server is any URL-accessible server. |
| 1081 |
default implementation assumes a fixed-layout server. The content of the |
The default implementation assumes a fixed-layout server. The content |
| 1082 |
server (in terms of available features and plug-ins) is described in a site |
of the server (in terms of available features and plug-ins) is described |
| 1083 |
map file, <i>site.xml</i>. This file can be manually maintained, or can be |
in a site map file, <i>site.xml</i>. This file can be manually maintained, |
| 1084 |
dynamically computed by the server. |
or can be dynamically computed by the server. |
| 1085 |
<h3> <a name="Site_Map"></a> Site Map</h3> |
<h3> <a name="Site_Map"></a> Site Map</h3> |
| 1086 |
The update server URL can be specified as a full URL to the site map |
The update server URL can be specified as a full URL to the site |
| 1087 |
file, or a URL of a directory path containing the site map file (similar |
map file, or a URL of a directory path containing the site map file |
| 1088 |
to index.html processing). The site map site.xml format is defined by |
(similar to index.html processing). The site map site.xml format is |
| 1089 |
the following dtd: |
defined by the following dtd: |
| 1090 |
<p><tt><?xml encoding="ISO-8859-1"?></tt> </p> |
<p><tt><?xml encoding="ISO-8859-1"?></tt> </p> |
| 1091 |
|
|
| 1092 |
<p><tt><!ELEMENT site (description?, feature*, archive*, category-def*)></tt> |
<p><tt><!ELEMENT site (description?, feature*, archive*, category-def*)></tt> |
| 1110 |
CDATA #IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 1111 |
<tt> id |
<tt> id |
| 1112 |
CDATA #IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 1113 |
<tt> version CDATA |
<tt> version |
| 1114 |
#IMPLIED</tt> <br> |
CDATA #IMPLIED</tt> <br> |
| 1115 |
<tt> url |
<tt> url |
| 1116 |
CDATA #REQUIRED<br> |
CDATA #REQUIRED<br> |
| 1117 |
label CDATA |
label CDATA |
| 1156 |
<li> <site> - defines the site map</li> |
<li> <site> - defines the site map</li> |
| 1157 |
|
|
| 1158 |
<ul> |
<ul> |
| 1159 |
<li> type - optional site type specification. The value refers to a |
<li> type - optional site type specification. The value refers |
| 1160 |
type string registered via the <a href="#Framework">install framework</a> |
to a type string registered via the <a href="#Framework">install framework</a> |
| 1161 |
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 |
| 1162 |
Eclipse site type (as specified in this document).</li> |
Eclipse site type (as specified in this document).</li> |
| 1163 |
<li> url - optional URL defining the update site baseline URL (used |
<li> url - optional URL defining the update site baseline URL |
| 1164 |
to determine individual <feature> and <archive> location). |
(used to determine individual <feature> and <archive> location). |
| 1165 |
Can be relative or absolute. If relative, is relative to site.xml. If not |
Can be relative or absolute. If relative, is relative to site.xml. If |
| 1166 |
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> |
| 1167 |
|
|
| 1168 |
</ul> |
</ul> |
| 1169 |
<li> <description> - brief description as simple text. Intended |
<li> <description> - brief description as simple text. Intended |
| 1170 |
to be translated.</li> |
to be translated.</li> |
| 1171 |
|
|
| 1172 |
<ul> |
<ul> |
| 1173 |
<li> url - optional URL for the full description as HTML. The URL can |
<li> url - optional URL for the full description as HTML. The URL |
| 1174 |
be specified as absolute of relative. If relative, If relative, is relative |
can be specified as absolute of relative. If relative, If relative, is |
| 1175 |
to site.xml.</li> |
relative to site.xml.</li> |
| 1176 |
<br> |
<br> |
| 1177 |
Note, that for NL handling the URL value should be separated to allow |
Note, that for NL handling the URL value should be separated to |
| 1178 |
alternate URLs to be specified for each national language. |
allow alternate URLs to be specified for each national language. |
| 1179 |
|
|
| 1180 |
</ul> |
</ul> |
| 1181 |
<li> <feature> - identifies referenced feature archive</li> |
<li> <feature> - identifies referenced feature archive</li> |
| 1182 |
|
|
| 1183 |
<ul> |
<ul> |
| 1184 |
<li> type - optional feature type specification. The value refers to |
<li> type - optional feature type specification. The value refers |
| 1185 |
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> |
| 1186 |
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 |
| 1187 |
feature type for the site. If the site type is the default Eclipse site |
feature type for the site. If the site type is the default Eclipse site |
| 1188 |
type, the default feature type is the packaged feature type (as specified |
type, the default feature type is the packaged feature type (as specified |
| 1189 |
in this document).</li> |
in this document).</li> |
| 1190 |
<li> id - optional feature identifier. The information is used as |
<li> id - optional feature identifier. The information is used |
| 1191 |
a performance optimization to speed up searches for features. Must match |
as a performance optimization to speed up searches for features. Must |
| 1192 |
the identifier specified in the feature.xml of the referenced archive (the |
match the identifier specified in the feature.xml of the referenced archive |
| 1193 |
url attribute). If specified, the version attribute must also be specified.</li> |
(the url attribute). If specified, the version attribute must also be |
| 1194 |
<li> version - optional feature version. The information is used as |
specified.</li> |
| 1195 |
a performance optimization to speed up searches for features. Must match |
<li> version - optional feature version. The information is used |
| 1196 |
the version specified in the feature.xml of the referenced archive (the |
as a performance optimization to speed up searches for features. Must |
| 1197 |
url attribute). If specified, the id attribute must also be specified.</li> |
match the version specified in the feature.xml of the referenced archive |
| 1198 |
<li> url - required URL reference to the feature archive. Can be relative |
(the url attribute). If specified, the id attribute must also be specified.</li> |
| 1199 |
or absolute. If relative, it is relative to the location of the site.xml |
<li> url - required URL reference to the feature archive. Can |
| 1200 |
file. <b>Note</b>: the default site implementation allows features |
be relative or absolute. If relative, it is relative to the location |
| 1201 |
to be accessed without being explicitly declared using a <feature> entry. |
of the site.xml file. <b>Note</b>: the default site implementation |
| 1202 |
By default, an undeclared features reference is interpreted as "features/<id>_<version>.jar"</li> |
allows features to be accessed without being explicitly declared using a |
| 1203 |
|
<feature> entry. By default, an undeclared features reference is interpreted |
| 1204 |
|
as "features/<id>_<version>.jar"</li> |
| 1205 |
<li>label - optional feature label. The value is used for optimization |
<li>label - optional feature label. The value is used for optimization |
| 1206 |
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> |
| 1207 |
</li> |
</li> |
| 1208 |
<li> os - optional operating system specification. A comma-separated |
<li> os - optional operating system specification. A comma-separated |
| 1209 |
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> |
| 1210 |
. Indicates this feature should only be installed on one of the specified |
. Indicates this feature should only be installed on one of the specified |
| 1211 |
os systems. If this attribute is "*", the feature can be installed on |
os systems. If this attribute is "*", the feature can be installed |
| 1212 |
all systems (portable implementation). This information is used as a hint |
on all systems (portable implementation). This information is used as |
| 1213 |
by the installation and update support (user can force installation of feature |
a hint by the installation and update support (user can force installation |
| 1214 |
regardless of this setting).</li> |
of feature regardless of this setting).</li> |
| 1215 |
<li> arch - optional machine architecture specification. A comma-separated |
<li> arch - optional machine architecture specification. A comma-separated |
| 1216 |
list of architecture designators defined by Eclipse (see Javadoc for <tt> |
list of architecture designators defined by Eclipse (see Javadoc for |
| 1217 |
org.eclipse.core.boot.BootLoader)</tt>. Indicates this feature should only |
<tt> org.eclipse.core.boot.BootLoader)</tt>. Indicates this feature |
| 1218 |
be installed on one of the specified systems. If this attribute is |
should only be installed on one of the specified systems. If this attribute is |
| 1219 |
"*", the feature can be installed on all systems (portable implementation). |
"*", the feature can be installed on all systems (portable implementation). |
| 1220 |
This information is used as a hint by the installation and update support |
This information is used as a hint by the installation and update support |
| 1221 |
(user can force installation of feature regardless of this setting).</li> |
(user can force installation of feature regardless of this setting).</li> |
| 1226 |
on all systems (portable implementation). This information is used as |
on all systems (portable implementation). This information is used as |
| 1227 |
a hint by the installation and update support (user can force installation |
a hint by the installation and update support (user can force installation |
| 1228 |
of feature regardless of this setting).</li> |
of feature regardless of this setting).</li> |
| 1229 |
<li> nl - optional locale specification. A comma-separated list of |
<li> nl - optional locale specification. A comma-separated list |
| 1230 |
locale designators defined by Java. Indicates this feature should only be |
of locale designators defined by Java. Indicates this feature should |
| 1231 |
installed on a system running with a compatible locale (using Java locale-matching |
only be installed on a system running with a compatible locale (using |
| 1232 |
rules). If this attribute is "*", the feature can be installed on all |
Java locale-matching rules). If this attribute is "*", the feature |
| 1233 |
systems (language-neutral implementation). This information is used as a |
can be installed on all systems (language-neutral implementation). This |
| 1234 |
hint by the installation and update support (user can force installation |
information is used as a hint by the installation and update support (user |
| 1235 |
of feature regardless of this setting).</li> |
can force installation of feature regardless of this setting).</li> |
| 1236 |
<li>patch - optional specification indicating if this feature is a |
<li>patch - optional specification indicating if this feature |
| 1237 |
patch. Default is "false". </li> |
is a patch. Default is "false". </li> |
| 1238 |
|
|
| 1239 |
</ul> |
</ul> |
| 1240 |
<li> <archive> - identifies referenced "storage" archive (the |
<li> <archive> - identifies referenced "storage" archive |
| 1241 |
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> |
| 1242 |
elements in the feature manifest). The site simply manages archives as |
elements in the feature manifest). The site simply manages archives as |
| 1243 |
a path-to-URL map. The default Eclipse site implementation does not require |
a path-to-URL map. The default Eclipse site implementation does not require |
| 1244 |
the <archive> section to be included in the site map (site.xml). Any |
the <archive> section to be included in the site map (site.xml). |
| 1245 |
archive reference not explicitly defined as part of an <archive> section |
Any archive reference not explicitly defined as part of an <archive> |
| 1246 |
is assumed to be mapped to a url in the form "<archivePath>" relative |
section is assumed to be mapped to a url in the form "<archivePath>" |
| 1247 |
to the location of the site.xml file.</li> |
relative to the location of the site.xml file.</li> |
| 1248 |
|
|
| 1249 |
<ul> |
<ul> |
| 1250 |
<li> path - required archive path identifier. This is a string that |
<li> path - required archive path identifier. This is a string |
| 1251 |
is determined by the <a href="#Feature_Archive_Mapping_Id_To_Path">feature</a> |
that is determined by the <a |
| 1252 |
referencing this archive and is not otherwise interpreted by the site (other |
href="#Feature_Archive_Mapping_Id_To_Path">feature</a> referencing |
| 1253 |
than as a lookup token).</li> |
this archive and is not otherwise interpreted by the site (other than |
| 1254 |
|
as a lookup token).</li> |
| 1255 |
<li> url - required URL reference to the archive. Can be relative |
<li> url - required URL reference to the archive. Can be relative |
| 1256 |
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 |
| 1257 |
file.</li> |
file.</li> |
| 1258 |
|
|
| 1259 |
</ul> |
</ul> |
| 1260 |
<li> <category-def> - an optional definition of a category that |
<li> <category-def> - an optional definition of a category |
| 1261 |
can be used by installation and update support to hierarchicaly organize |
that can be used by installation and update support to hierarchicaly organize |
| 1262 |
features</li> |
features</li> |
| 1263 |
|
|
| 1264 |
<ul> |
<ul> |
| 1265 |
<li> name - category name. Is specified as a path of name tokens separated |
<li> name - category name. Is specified as a path of name tokens |
| 1266 |
by /</li> |
separated by /</li> |
| 1267 |
<li> label - displayable label. Intended to be translated.</li> |
<li> label - displayable label. Intended to be translated.</li> |
| 1268 |
|
|
| 1269 |
</ul> |
</ul> |
| 1275 |
</ul> |
</ul> |
| 1276 |
|
|
| 1277 |
</ul> |
</ul> |
| 1278 |
Note, that in general the feature.xml manifest documents should |
Note, that in general the feature.xml manifest documents |
| 1279 |
specify UTF-8 encoding. For example |
should specify UTF-8 encoding. For example |
| 1280 |
<p><tt><?xml version="1.0" encoding="UTF-8"?></tt> </p> |
<p><tt><?xml version="1.0" encoding="UTF-8"?></tt> </p> |
| 1281 |
|
|
| 1282 |
<p>Translatable text contained in the site.xml can be separated into site<_locale>.properties |
<p>Translatable text contained in the site.xml can be separated into site<_locale>.properties |
| 1299 |
<tt> plug-in argives |
<tt> plug-in argives |
| 1300 |
(eg. org.eclipse.ui_1.0.3.jar)</tt> |
(eg. org.eclipse.ui_1.0.3.jar)</tt> |
| 1301 |
<h3> <a name="Controlling_Access"></a> Controlling Access</h3> |
<h3> <a name="Controlling_Access"></a> Controlling Access</h3> |
| 1302 |
The default Eclipse site implementation provides support for http access |
The default Eclipse site implementation provides support for http |
| 1303 |
with basic user authentication (userid and password). |
access with basic user authentication (userid and password). |
| 1304 |
|
|
| 1305 |
<p>Custom access control mechanisms can be added to base Eclipse in one of |
<p>Custom access control mechanisms can be added to base Eclipse in one of |
| 1306 |
2 ways: </p> |
2 ways: </p> |
| 1307 |
|
|
| 1309 |
<li> by supplying server-side logic on the update server (eg. implementing |
<li> by supplying server-side logic on the update server (eg. implementing |
| 1310 |
servlets that compute the site.xml map, and control access to individual |
servlets that compute the site.xml map, and control access to individual |
| 1311 |
archives based on some user criteria)</li> |
archives based on some user criteria)</li> |
| 1312 |
<li> by supplying a custom concrete implementation of the site object |
<li> by supplying a custom concrete implementation of the site |
| 1313 |
(installed on the client machine, update server specified <tt><site |
object (installed on the client machine, update server specified <tt><site |
| 1314 |
type=""></tt> ). The custom concrete site implementation, together with |
type=""></tt> ). The custom concrete site implementation, together |
| 1315 |
any server-side logic support the required control mechanisms.</li> |
with any server-side logic support the required control mechanisms.</li> |
| 1316 |
|
|
| 1317 |
</ul> |
</ul> |
| 1318 |
Eclipse provides an example demonstrating an implementation of an access |
Eclipse provides an example demonstrating an implementation of |
| 1319 |
mechanism based on feature key files. |
an access mechanism based on feature key files. |
| 1320 |
<h2> <a name="Eclipse_Install"></a> Eclipse Install</h2> |
<h2> <a name="Eclipse_Install"></a> Eclipse Install</h2> |
| 1321 |
|
|
| 1322 |
<h3> <a name="Default_Install_Layout"></a> Default Install Layout</h3> |
<h3> <a name="Default_Install_Layout"></a> Default Install Layout</h3> |
| 1349 |
|
|
| 1350 |
<h3> <a name="Unmanaged_Plugins"></a> "Unmanaged" Plug-Ins</h3> |
<h3> <a name="Unmanaged_Plugins"></a> "Unmanaged" Plug-Ins</h3> |
| 1351 |
Eclipse supports a concept of "unmanaged" plug-ins. These are plug-ins |
Eclipse supports a concept of "unmanaged" plug-ins. These are plug-ins |
| 1352 |
that were directly installed into the Eclipse file tree without being part |
that were directly installed into the Eclipse file tree without being |
| 1353 |
of a feature (eg. developer unzipping plug-in archive directly into the |
part of a feature (eg. developer unzipping plug-in archive directly into |
| 1354 |
Eclipse file tree). |
the Eclipse file tree). |
| 1355 |
<p>Eclipse runtime recognizes these plugins during startup and loads the |
<p>Eclipse runtime recognizes these plugins during startup and loads the |
| 1356 |
plug-in information into the runtime registry following the standard plug-in |
plug-in information into the runtime registry following the standard plug-in |
| 1357 |
binding rules. The update support also recognizes the presence of this new |
binding rules. The update support also recognizes the presence of this new |
| 1366 |
<h3> <a name="Using_Native_Platform_Installers"></a> Using Native Platform |
<h3> <a name="Using_Native_Platform_Installers"></a> Using Native Platform |
| 1367 |
Installers</h3> |
Installers</h3> |
| 1368 |
The Eclipse installation contains plugins that can be shared across |
The Eclipse installation contains plugins that can be shared across |
| 1369 |
multiple features. When installing and uninstalling features using the Eclipse |
multiple features. When installing and uninstalling features using the |
| 1370 |
installation and update support, these relationship are correctly maintained. |
Eclipse installation and update support, these relationship are correctly |
| 1371 |
Only one copy of any version of a plug-in is used. |
maintained. Only one copy of any version of a plug-in is used. |
| 1372 |
|
|
| 1373 |
<p>However, when using native platform installers, performing native uninstall |
<p>However, when using native platform installers, performing native uninstall |
| 1374 |
creates problems because plug-ins would be removed without regard to any |
creates problems because plug-ins would be removed without regard to |
| 1375 |
sharing relationships. As a result, Eclipse <b>does not allow</b> plug-ins |
any sharing relationships. As a result, Eclipse <b>does not allow</b> |
| 1376 |
to be installed using native installers into the shared installation tree. |
plug-ins to be installed using native installers into the shared installation |
| 1377 |
Instead, native installers must establish their own installation root directory. |
tree. Instead, native installers must establish their own installation |
| 1378 |
The subdirectory structure is the same as defined for base Eclipse. The |
root directory. The subdirectory structure is the same as defined for |
| 1379 |
private root directory is logically linked into the shared Eclipse installation |
base Eclipse. The private root directory is logically linked into the shared |
| 1380 |
via a link file installed by the native installer. The file path for the |
Eclipse installation via a link file installed by the native installer. |
| 1381 |
link file is <tt><configRoot>/links/</tt>. The <tt><configRoot> |
The file path for the link file is <tt><configRoot>/links/</tt>. |
| 1382 |
</tt> location is computed by Eclipse relative to the launch <a |
The <tt><configRoot> </tt> location is computed by Eclipse relative |
| 1383 |
href="#Multiple%20Launch%20Points"> configuration file</a> . By default, |
to the launch <a href="#Multiple%20Launch%20Points"> configuration file</a> |
| 1384 |
this is the <tt>install/</tt> directory in the shared Eclipse installation |
. By default, this is the <tt>install/</tt> directory in the shared Eclipse |
| 1385 |
tree. </p> |
installation tree. </p> |
| 1386 |
|
|
| 1387 |
<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 |
| 1388 |
by the native installer. To minimize the potential for naming collisions, |
by the native installer. To minimize the potential for naming collisions, |
| 1389 |
it is recommended that the file name contain the identifier and version |
it is recommended that the file name contain the identifier and version |
| 1390 |
of the feature being installed by the native installer. For example, <tt><featureId>_<featureVersion>.properties</tt> |
of the feature being installed by the native installer. For example, <tt><featureId>_<featureVersion>.properties</tt> |
| 1391 |
. The file content is in the form of a Java properties file, with the following |
. The file content is in the form of a Java properties file, with the |
| 1392 |
properties defined: </p> |
following properties defined: </p> |
| 1393 |
|
|
| 1394 |
<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> |
| 1395 |
|
|
| 1396 |
<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 |
| 1397 |
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 file |
| 1398 |
path to the installation directory root, specified in local OS format. The |
path to the installation directory root, specified in local OS format. |
| 1399 |
optional annotation <tt>r</tt> or <tt>rw</tt> indicates whether Eclipse |
The optional annotation <tt>r</tt> or <tt>rw</tt> indicates whether Eclipse |
| 1400 |
update support should allow the specified location to be used for updates. |
update support should allow the specified location to be used for updates. |
| 1401 |
Default is to allow updates (w). </p> |
Default is to allow updates (w). </p> |
| 1402 |
|
|
| 1403 |
<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 |
| 1404 |
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 linked |
| 1405 |
plug-ins during the platform startup. The native installer is responsible |
plug-ins during the platform startup. The native installer is responsible |
| 1406 |
for uninstalling the link when the corresponding directory is removed. Eclipse |
for uninstalling the link when the corresponding directory is removed. |
| 1407 |
runtime ignores any links that cannot be resolved. <br> |
Eclipse runtime ignores any links that cannot be resolved. <br> |
| 1408 |
</p> |
</p> |
| 1409 |
<br> |
<br> |
| 1410 |
<br> |
<br> |
| 1411 |
<br> |
<br> |
| 1412 |
<br> |
<br> |
| 1413 |
<br> |
<br> |
| 1414 |
|
<br> |
| 1415 |
|
|
| 1416 |
</body> |
</body> |
| 1417 |
</html> |
</html> |