Карта сайта сервера обновления
В качестве сервера обновления Eclipse по умолчанию допустим любой сервер, к которому
можно обратиться с помощью URL. Реализация по умолчанию предполагает сервер с фиксированным
размещением файлов. Содержимое сервера (список доступных комплектов и модулей)
описывается в файле карты сайта site.xml. Этот файл настраивается вручную, либо
создается сервером в динамическом режиме.
Карта сайта
URL сервера обновления можно указать в качестве полного URL файла карты сайта, либо URL
каталога, содержащего файл карты сайта (аналогично принципу обработки файла index.html). Формат
файла site.xml описывается в следующем определении типа документа:
<?xml encoding="UTF-8"?>
<!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
>
Ниже приведены определения элементов и атрибутов:
- <site> - задает карту сайта
- type - необязательная спецификация типа сайта. Значение указывает на тип,
зарегистрированный с помощью точки расширения среды установки. Если значение не
указано, применяется тип сайта Eclipse по умолчанию (указанный в этом документе).
- url - необязательный URL, определяющий базовый URL сайта обновления (применяется для
определения расположения отдельных <комплектов> и <архивов>). URL может быть как
полным, так и относительным. В последнем случае URL указывается относительно
файла site.xml. Если значение не указано, по умолчанию применяется URL файла site.xml.
- mirrorsURL - необязательный URL, определяющий файл с адресами зеркальных сайтов
обновления. URL может быть как абсолютным, так и относительным. Файл с адресами зеркальных сайтов описан
в этом документе далее.
- <description> - краткое текстовое описание. Предназначено для перевода.
- url - необязательный URL полного описания в формате HTML. Можно указать как абсолютный,
так и относительный URL. В последнем случае URL указывается относительно
файла site.xml.
Обратите внимание, что обработка национальных языков предусматривает разделение URL.
Такой подход позволяет указать альтернативные URL для каждого национального языка.
- <feature> - задает архив комплекта
- type - необязательная спецификация типа комплекта. Значение указывает на тип,
зарегистрированный с помощью точки расширения среды установки. Если значение не указано,
применяется тип комплекта по умолчанию. Если указан тип сайта Eclipse по умолчанию, то в
качестве типа комплекта по умолчанию применяется тип упакованного комплекта (указанный в
этом документе).
- id - необязательный идентификатор комплекта. Данная информация позволяет повысить
эффективность поиска комплектов. Идентификатор должен совпадать со значением,
указанным в файле feature.xml связанного архива (атрибут url).
Этот атрибут указывается совместно с атрибутом version.
- version - необязательная версия комплекта. Данная информация позволяет повысить
эффективность поиска комплектов. Версия должна совпадать со значением,
указанным в файле feature.xml связанного архива (атрибут url).
Этот атрибут указывается совместно с атрибутом id.
- url - обязательный URL, указывающий на расположение архива комплекта. URL может быть как
полным, так и относительным. В последнем случае URL указывается относительно расположения файла site.xml.
Примечание: реализация сайта по умолчанию позволяет обращаться к комплектам без
явного объявления с помощью записи <feature>. По умолчанию необъявленная ссылка на комплекты интерпретируется как "features/<ИД>_<версия>.jar". Примечание: для повышения эффективности поиска рекомендуется всегда указывать атрибуты id и version.
- patch - необязательный атрибут, объявляющий исправление (специальный тип комплекта).
Примечание: для повышения эффективности поиска рекомендуется всегда указывать
этот атрибут.
- os - необязательная спецификация операционной системы. Представляет собой список обозначений операционных систем, поддерживаемых Eclipse (см. документацию по Java для org.eclipse.core.runtime.Platform). В качестве разделителя применяется запятая.
Указывает, что комплект предназначен для установки только в перечисленных операционных системах. Если этот атрибут не задан, комплект допускает установку во всех системах (переносимая реализация). В процессе установки или обновления
данная информация рассматривается в качестве подсказки (т.е. пользователь может
принудительно выполнить установку, независимо от значения этого атрибута).
- arch - необязательная спецификация архитектуры системы. Список
обозначений архитектур, поддерживаемых Eclipse (см. документацию по Java для
org.eclipse.core.runtime.Platform). В качестве разделителя применяется запятая.
Указывает, что комплект предназначен для установки только в перечисленных системах. Если этот атрибут не задан, комплект допускает установку во всех
системах (переносимая реализация). В процессе установки или обновления
данная информация рассматривается в качестве подсказки (т.е. пользователь может
принудительно выполнить установку, независимо от значения этого атрибута).
- ws - необязательная спецификация системы организации окон. Представляет собой список обозначений оконных систем, поддерживаемых Eclipse (см. документацию по Java для org.eclipse.core.runtime.Platform). В качестве разделителя применяется запятая.
Указывает, что комплект предназначен для установки только в перечисленных системах организации окон. Если этот атрибут не задан, комплект допускает установку во всех системах (переносимая реализация). В процессе установки или обновления
данная информация рассматривается в качестве подсказки (т.е. пользователь может
принудительно выполнить установку, независимо от значения этого атрибута).
- nl - необязательная спецификация локали. Список обозначений локалей Java, разделенный
запятыми. Указывает, что комплект предназначен для установки в системе, поддерживающей
совместимую локаль (применяются правила сравнения локалей Java). Если этот атрибут не
задан, комплект допускает установку во всех системах (реализация, независимая от языка).
В процессе установки или обновления данная информация рассматривается в качестве
подсказки (т.е. пользователь может принудительно выполнить установку, независимо от
значения этого атрибута).
- <archive> - задает связанный архив данных (фактические файлы,
представленные в манифесте комплекта с помощью элементов <plugin> и <data>). Сайт управляет архивами путем преобразования путей в URL. Реализация
сайта Eclipse по умолчанию не требует добавления раздела <archive> в карту сайта
(site.xml). Все ссылки на архивы, которые явным образом не указаны в разделе
<archive>, преобразуются в URL формата "<archivePath>" относительно
расположения файла site.xml.
- path - обязательный идентификатор пути к архиву. Значение определяется комплектом при
обращении к архиву и используется сайтом только в качестве маркера поиска.
- url - обязательный URL, указывающий на расположение архива. URL может быть как
полным, так и относительным. В последнем случае URL указывается относительно расположения
файла site.xml.
- <category-def> - необязательное определение категории, позволяющей в ходе установки
или обновления организовать комплекты в иерархическую структуру
- name - имя категории. Указывается в качестве пути, состоящего из маркеров имени, разделенных символом '/'
- label - отображаемая метка. Предназначена для перевода.
- <category> - спецификация фактической категории, связанной с записью комплекта
Обратите внимание на то, что в документах манифеста feature.xml следует применять кодировку UTF-8. Пример:
<?xml version="1.0" encoding="UTF-8"?>
Переводимый текст, содержащийся в файле site.xml, можно распределить по файлам
site<_локаль>.properties в соответствии с соглашениями о комплектах свойств Java.
Обратите внимание, что переведенные строки применяются в ходе установки (без помощи
динамического механизма фрагментов модулей). Комплекты свойств расположены относительно файла site.xml.
Размещение файлов по умолчанию
<корневой каталог сайта>/
site.xml
features/
архивы комплектов
(например, org.eclipse.javatools_1.0.1.jar)
<ИД-комплекта>_<версия-комплекта>/ (необязательно)
файлы комплекта, не относящиеся к модулю
plugins/
plug-in archives
(например, org.eclipse.ui_1.0.3.jar)
Файл зеркальных сайтов
Файл зеркальных сайтов обновления (определяется элементом mirrorsURL атрибута
<site>) определяет зеркальные сайты обновления. Формат файла:
<?xml encoding="UTF-8"?>
<!ELEMENT mirrors (mirror*))>
<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url
CDATA #REQUIRED
label
CDATA #REQUIRED
>
- <mirrors> - определяет доступные зеркальные сайты обновлений
- <mirror> - определяет зеркальный сайт
- url - URL зеркального сайта
- label - отображаемая метка. Предназначена для перевода.
Управление доступом
В реализации сайта Eclipse по умолчанию предусмотрена поддержка доступа по протоколу HTTP с простой идентификацией пользователей (ИД пользователя и пароль).
Дополнительные функции управления доступом можно добавить в Eclipse одним из приведенных ниже способов:
-
установив на сервере обновлений соответствующую логику (например, реализовав сервлеты,
вычисляющие карту site.xml и управляющие доступом к отдельным архивам в соответствии с
заданными критериями пользователей)
-
указав настроенную реализацию объекта сайта (устанавливается в системе клиента;
сервер обновления указывается как <site type="">).
Совместное применение настроенной пользовательской реализации сайта и логики сервера
позволяет реализовать поддержку необходимых функций управления доступом.
Вместе с платформой Eclipse поставляется пример, демонстрирующий реализацию
функции управления доступом на основе файлов ключей комплектов.