Update server site map

The default Eclipse update server is any URL-accessible server. The default implementation assumes a fixed-layout server. The content of the server (in terms of available features and plug-ins) is described in a site map file, site.xml. This file can be manually maintained, or can be dynamically computed by the server.

Site Map

The update server URL can be specified as a full URL to the site map file, or a URL of a directory path containing the site map file (similar to index.html processing). The site map site.xml format is defined by the following dtd:

<?xml encoding="ISO-8859-1"?>

<!ELEMENT site (description?, feature*, archive*, category-def*)>
<!ATTLIST site
    type                CDATA #IMPLIED
    url                 CDATA #IMPLIED
    mirrorURL           CDATA #IMPLIED
    availableLocales    CDATA #IMPLIED
    digestURL           CDATA #IMPLIED
    associateSitesURL   CDATA #IMPLIED
    pack200             CDATA #IMPLIED
>

<!ELEMENT description (#PCDATA)>
<!ATTLIST description
    url           CDATA #IMPLIED
>

<!ELEMENT feature (category*)>
<!ATTLIST feature
    type          CDATA #IMPLIED
    id            CDATA #IMPLIED
    version       CDATA #IMPLIED
    url           CDATA #REQUIRED    
    patch         (false | true) false  

    os            CDATA #IMPLIED
    nl            CDATA #IMPLIED
    arch          CDATA #IMPLIED
    ws            CDATA #REQUIRED
>

<!ELEMENT archive EMPTY>
<!ATTLIST archive
    path          CDATA #REQUIRED
    url           CDATA #REQUIRED
>

<!ELEMENT category EMPTY>
<!ATTLIST category
    name          CDATA #REQUIRED
>

<!ELEMENT category-def (description?)>
<!ATTLIST category-def
    name          CDATA #REQUIRED
    label         CDATA #REQUIRED
>

The element and attribute definitions are as follows:

Note, that in general the feature.xml manifest documents should specify UTF-8 encoding. For example:

<?xml version="1.0" encoding="UTF-8"?>

Translatable text contained in the site.xml can be separated into site<_locale>.properties files using Java property bundle conventions. Note that the translated strings are used at installation time (ie. do not employ the plug-in fragment runtime mechanism). The property bundles are located relative to the site.xml location.

Default Site Layout

<site root>/
    site.xml
    features/
        feature archives   (eg. org.eclipse.javatools_1.0.1.jar)
        <featureId>_<featureVersion>/    (optional)
            non-plug-in files for feature
    plugins/
        plug-in archives    (eg. org.eclipse.ui_1.0.3.jar)

Mirrors File

The update mirrors file (the one pointed at by the mirrorsURL attribute of <site>) contains definition for update site mirrors. It format is defined by the following dtd:

<?xml encoding="ISO-8859-1"?>

<!ELEMENT mirrors (mirror*))>
 

<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
    url           CDATA #REQUIRED    
    label         CDATA #REQUIRED
>

Digest File

Digest files (the ones pointed by the digestURL attribute of <site>)are zipped xml file with following DDT:

<?xml encoding="ISO-8859-1"?>

<!ELEMENT digest (feature*)>

Where feature definition is the same as in feature manifest.

Associate Sites File

The associate sites file (the one pointed at by the associateSitesURL attribute of <site>) contains definition of associated sites. Its format is defined by the following dtd:

<?xml encoding="ISO-8859-1"?>

<!ELEMENT associateSites (associateSite*)>
 

<!ELEMENT associateSites EMPTY>
<!ATTLIST associateSite
    url           CDATA #REQUIRED    
    label         CDATA #REQUIRED
>

Controlling Access

The default Eclipse site implementation provides support for http access with basic user authentication (userid and password).

Custom access control mechanisms can be added to base Eclipse in one of 2 ways:

Eclipse provides an example demonstrating an implementation of an access mechanism based on feature key files.