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
    mirrorsURL    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
>

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.