Манифест комплекта платформы Eclipse
Версия 3.0 - Последнее исправление: 22 июня 2004 г.
Формат манифеста комплекта определяется следующим определением типа документа:
<?xml encoding="UTF-8"?>
<!ELEMENT feature (install-handler? | description? | copyright? |
license? | url? | includes* | requires? | plugin* | data*)>
<!ATTLIST feature
id
CDATA #REQUIRED
version
CDATA #REQUIRED
label
CDATA #IMPLIED
provider-name CDATA #IMPLIED
image
CDATA #IMPLIED
os
CDATA #IMPLIED
arch
CDATA #IMPLIED
ws
CDATA #IMPLIED
nl
CDATA #IMPLIED
colocation-affinity
CDATA #IMPLIED
primary
(true | false) "false"
exclusive (true | false)
"false"
plugin CDATA
#IMPLIED
application CDATA #IMPLIED
>
<!ELEMENT install-handler EMPTY>
<!ATTLIST install-handler
library
CDATA #IMPLIED
handler
CDATA #IMPLIED
>
<!ELEMENT description (#PCDATA)>
<!ATTLIST description
url
CDATA #IMPLIED
>
<!ELEMENT copyright (#PCDATA)>
<!ATTLIST copyright
url
CDATA #IMPLIED
>
<!ELEMENT license (#PCDATA)>
<!ATTLIST license
url
CDATA #IMPLIED
>
<!ELEMENT url (update?, discovery*)>
<!ELEMENT update EMPTY>
<!ATTLIST update
url
CDATA #REQUIRED
label
CDATA #IMPLIED
>
<!ELEMENT discovery EMPTY>
<!ATTLIST discovery
type
(web | update) "update"
url
CDATA #REQUIRED
label
CDATA #IMPLIED
>
<!ELEMENT includes EMPTY>
<!ATTLIST includes
id
CDATA #REQUIRED
version
CDATA #REQUIRED
name
CDATA #IMPLIED
optional (true | false)
"false"
search-location (root | self | both)
"root"
os CDATA #IMPLIED
arch CDATA #IMPLIED
ws CDATA #IMPLIED
nl CDATA #IMPLIED
>
<!ELEMENT requires (import+)>
<!ELEMENT import EMPTY>
<!ATTLIST import
plugin
CDATA #IMPLIED
feature CDATA #IMPLIED
version
CDATA #IMPLIED
match
(perfect | equivalent | compatible | greaterOrEqual) "compatible"
patch (true |
false) "false"
>
<!ELEMENT plugin EMPTY>
<!ATTLIST plugin
id
CDATA #REQUIRED
version
CDATA #REQUIRED
fragment (true
| false) "false"
os
CDATA #IMPLIED
arch
CDATA #IMPLIED
ws
CDATA #IMPLIED
nl
CDATA #IMPLIED
download-size CDATA #IMPLIED
install-size CDATA #IMPLIED
unpack (true |
false) "true"
>
<!ELEMENT data EMPTY>
<!ATTLIST data
id
CDATA #REQUIRED
os
CDATA #IMPLIED
arch
CDATA #IMPLIED
ws
CDATA #IMPLIED
nl
CDATA #IMPLIED
download-size CDATA #IMPLIED
install-size CDATA #IMPLIED
>
Ниже приведены определения элементов и атрибутов:
- <feature> - задает комплект
- id - обязательный идентификатор комплекта (например, com.xyz.myfeature)
- version - обязательная версия компонента (например, 1.0.3)
- label - необязательная метка (имя). Предназначена для перевода.
- provider-name - необязательная метка, указывающая на организацию, предоставившую
данных компонент. Предназначена для перевода.
- image - необязательное изображение, применяемое для отображения информации о комплекте. Указывается
относительно feature.xml.
- 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). Если этот
атрибут не задан, комплект допускает установку во всех системах (реализация,
независимая от языка). В процессе установки или обновления данная информация
рассматривается в качестве подсказки (т.е. пользователь может принудительно выполнить
установку, независимо от значения этого атрибута).
- colocation-affinity - необязательная ссылка на идентификатор другого комплекта,
применяемый для выбора установочного каталога по умолчанию. Если данный комплект
устанавливается в первый раз (другие версии не установлены), выполняется
попытка установки в установочный каталог упомянутого комплекта.
- primary - необязательный атрибут, указывающий на возможность применения этого
комплекта в качестве основного комплекта. Значение по умолчанию - false (не
является основным комплектом).
- application - необязательный идентификатор приложения Eclipse, применяемого в ходе
запуска, если комплект указан в качестве основного комплекта. Идентификатор приложения
должен указывать на допустимое приложение, зарегистрированное в точке расширения
org.eclipse.core.runtime.applications. Значение по умолчанию - org.eclipse.ui.ide.workbench.
- plugin - необязательный идентификатор, представляющий ИД модуля, который входит
в состав комплекта. В этом модуле содержится информация о торговых знаках комплекта
(изображения, переводы, заставки в случае основного комплекта и т.д.). Если идентификатор не задан, предполагается, что ИД модуля атрибутов
совпадает с ИД комплекта.
- exclusive - необязательный флаг, значение "true" которого запрещает
установку комплекта в группе с другими комплектами.
- <install-handler>
- library - необязательная библиотека .jar, содержащая классы обработчика установки.
Если этот атрибут указан, связанный файл .jar должен входить в состав архива комплекта.
Он задается в виде пути в пределах архива комплекта относительно записи feature.xml. В
противном случае, для загрузки классов обработчика установки применяется сам модуль
комплекта. Этот атрибут обрабатывается только в том случае, если указан атрибут class.
- handler - необязательный идентификатор обработчика установки. Его значение обрабатывается
в соответствии со значением атрибута library. Если атрибут library
указан, значение представляет собой полное имя класса, содержащегося в указанной
библиотеке. В противном случае, значение представляет собой идентификатор
расширения, зарегистрированного в точке расширения
org.eclipse.update.installHandlers. В обоих случаях указанный класс должен
применять интерфейс IInstallHandler. Этот класс динамически загружается и
вызывается на конкретных этапах процесса обработки комплекта. Если обработчик указан в
виде класса, он доступен классам API, определенным в модуле org.eclipse.update.core, а
также связанным с ним модулям Eclipse. В противном случае, если обработчик указан в виде
расширения, он обладает доступом ко всем классам этого расширения.
- <description> - краткое текстовое описание компонента. Предназначено для перевода.
- url - необязательный URL полного описания в формате HTML. Можно указать как абсолютный,
так и относительный URL. В последнем случае предполагается, что он указан относительно
архива комплекта и входит в его состав. Обратите внимание, что обработка национальных
языков предусматривает разделение URL. Такой подход позволяет указать альтернативные URL
для каждого национального языка.
- <copyright> - заявление об авторских правах для комплекта. Предназначено для перевода.
- url - необязательный URL полного описания в формате HTML. Можно указать как абсолютный,
так и относительный URL. В последнем случае предполагается, что он указан относительно
архива комплекта и входит в его состав. Обратите внимание, что обработка национальных
языков предусматривает разделение URL. Такой подход позволяет указать альтернативные URL
для каждого национального языка.
- <license> - текст лицензионного соглашения комплекта.Предназначено для перевода. Оно отображается в стандартном окне диалога с действиями [Принять] и
[Отклонить] в ходе загрузки или установки. Обратите внимание, что такая лицензия
требуется для всех комплектов, устанавливаемых и обновляемых с помощью администратора
обновлений Eclipse. В случае вложенных комплектов текст
лицензии должен быть указан только для родительского комплекта (т.е.
комплекта, выбранного для установки или обновления). Текст лицензии требуется даже в том
случае, если указан необязательный атрибут url.
- url - необязательный URL полного описания в формате HTML. Можно указать как абсолютный,
так и относительный URL. В последнем случае предполагается, что он указан относительно
архива комплекта и входит в его состав. Обратите внимание, что обработка национальных
языков предусматривает разделение URL. Такой подход позволяет указать альтернативные URL
для каждого национального языка. Обратите внимание, что "содержимое" этого URL
не отображается в качестве лицензионного соглашения в процессе установки. Текст
лицензионного соглашения указан в качестве значения элемента <license> (например,
<license>текст лицензионного соглашения</license>)
- <url> - необязательный URL, указывающий на сайты с обновлениями и новыми комплектами
- <update> - URL для загрузки обновлений этого комплекта
- url - фактический URL
- label - метка (имя) указанного сайта
- <discovery> - URL для загрузки новых комплектов.Как правило в этом элементе
указывается Web-сайт поставщика или его партнеров, предлагающих дополнительные
комплекты. Eclipse применяет этот элемент для передачи URL новых Web-сайтов клиентам. Web-сайты,
относящиеся к корневым комплектам (расположенным на верхнем уровне иерархии), как правило
отображаются в администраторе обновлений в разделе "Web-сайты для просмотра".
- url - фактический URL
- label - метка (имя) указанного сайта
- type (новый элемент в версии 2.1) - по умолчанию сайты поиска рассматриваются в качестве
сайтов обновления "update"). Значение "web" указывает Eclipse, что
URL следует обрабатывать как обычную гиперссылку Internet с возможностью отображения
непосредственно в подходящем Web-браузере.
- <includes> - необязательная ссылка на вложенный комплект, входящий в состав
данного комплекта. Вложенные комплекты должны быть расположены на Web-сайте обновлений родительского комплекта.
- id - обязательный идентификатор вложенного комплекта. Если комплект представляет собой
исправление (см. раздел <requires>), следует указать ИД другого исправления.
- version - обязательная версия вложенного комплекта
- optional - если для этого атрибута указано значение "true", комплект
можно рассматривать как необязательный. Пользователи могут отказаться от установки
необязательных комплектов, запретить их применение, а также установить позже.
Отсутствие необязательного комплекта не является ошибкой.
- name - если необязательный комплект отсутствует, Eclipse не сможет правильным
образом обработать его имя. Этот атрибут применяется в качестве заменителя, позволяющего
Eclipse отображать имя необязательного комплекта в случае его отсутствия.
- search-location - разрешает обновление включенного комплекта с помощью исправлений.
По умолчанию поиск выполняется в "корневом каталоге", т.е. рассматривается URL,
указанный в элементе "update", который входит в состав элемента "url"
родительского комплекта. Если для включенного комплекта указан собственный элемент
"update", по умолчанию он будет проигнорирован.
Для того чтобы разрешить обновление дочернего комплекта из собственного расположения в
этом атрибуте родительского комплекта следует вместо значения "both" указать
"self".
- 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). Если этот атрибут не
задан, запись допускает установку во всех системах (реализация, независимая от языка). В
процессе установки или обновления данная информация рассматривается в качестве подсказки
(т.е. пользователь может принудительно выполнить установку, независимо от значения этого
атрибута).
- <requires> - необязательные сведения о зависимостях комплекта. Значение выражается в
терминах зависимостей модулей. Если этот атрибут указан, сведения о зависимостях
принудительно применяются в процессе установки
- <import> - запись зависимости. Спецификация и способ обработки задаются
подмножеством элемента <import> в файле plugin.xml
- plugin - идентификатор зависимого модуля, если для выражения зависимости применяется модуль
- feature (новый элемент в версии 2.1) - идентификатор зависимого комплекта, если для выражения
зависимости применяется комплект. Следует указать только один из атрибутов модуля и
комплекта. Если для атрибута "patch" указано значение "true",
необходимо использовать атрибут комплекта.
- version - необязательная спецификация версии модуля. Если для атрибута
"patch" указано значение "true", версия должна быть указана
обязательно.
- match - необязательное правило сравнения. Ниже перечислены допустимые значения и способы обработки:
- если атрибут версии не указан, атрибут сравнения игнорируется.
- perfect - версия зависимого модуля должна в точности совпадать с
указанной версией. Если для атрибута "patch" указано значение "true",
значение "perfect" применяется по умолчанию. Применение прочих значений
недопустимо.
- equivalent - версия зависимого модуля должна быть не ниже указанной
версии, либо соответствовать более высокому уровню обслуживания (главный и
вспомогательный уровни версии должны совпадать с указанной версией).
- compatible - версия зависимого модуля должна быть не ниже указанной версии,
либо соответствовать более высокому уровню обслуживания или промежуточному уровню
(главный уровень должен совпадать с указанной версией).
- greaterOrEqual - версия зависимого модуля должна быть не менее
указанной версии, либо соответствовать более высокому служебному, главному или
промежуточному уровню.
- patch - значение "true" объявляет родительский комплект в
качестве исправления связанного комплекта. Задание этого атрибута предусматривает
выполнение следующих правил:
- атрибут комплекта следует применять в качестве идентификатора исправляемого комплекта
- должен быть задан атрибут версии
- атрибут сравнения не должен быть задан; по умолчанию применяется значение "perfect".
- прочие включенные комплекты должны быть также указаны в качестве исправлений.
Исправление представляет собой специальный комплект, применяемый для
распространения новых версий модулей целевого комплекта. Целевой комплект при этом не
заменяется. Кроме того, исправление может включать в себя другие исправления.
- <plugin> - указывает на связанный модуль
- id - обязательный идентификатор модуля (из файла plugin.xml)
- version - обязательная версия модуля (из файла plugin.xml)
- fragment - необязательная спецификация, позволяющая указать, что данная запись представляет
собой фрагмент модуля. Значение по умолчанию - "false"
- 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). Если этот атрибут не
задан, запись допускает установку во всех системах (реализация, независимая от языка). В
процессе установки или обновления данная информация рассматривается в качестве подсказки
(т.е. пользователь может принудительно выполнить установку, независимо от значения этого
атрибута).
- download-size - необязательная подсказка, предоставляемая упаковщиком комплектов,
в которой указан загружаемый размер связанного архива модулей в килобайтах. Если этот атрибут не указан,
объем загружаемой информации неизвестен (Примечание, связанное с реализацией:
реализация предусматривает различие между нулевым размером и неизвестным значением)
- install-size - необязательная подсказка, предоставляемая упаковщиком комплектов, в
которой указан устанавливаемый размер связанного архива модулей в килобайтах. Если этот атрибут не указан,
объем устанавливаемой информации неизвестен (Примечание, связанное с реализацией:
реализация предусматривает различие между нулевым размером и неизвестным значением)
- unpack (новый элемент в версии 3.0) - необязательная спецификация, предоставляемая
упаковщиком комплектов. Указывает, что модуль поддерживает запуск из файла jar и
распаковка содержимого файла jar в установочный каталог не требуется. Значение по
умолчанию - "true". (Примечание, связанное с реализацией:
при работе с неполными модулями, поставляемыми в комплекте с обработчиком установки
org.eclipse.update.core.DeltaInstallHandler, для атрибута unpack не
следует указывать значение "false")
- <data> - указывает на данные, входящие в состав комплекта, которые не связаны с модулями
- id - обязательный идентификатор данных, указанный в виде относительного пути.
- 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). Если этот атрибут не
задан, запись допускает установку во всех системах (реализация, независимая от языка). В
процессе установки или обновления данная информация рассматривается в качестве подсказки
(т.е. пользователь может принудительно выполнить установку, независимо от значения этого
атрибута).
- download-size - необязательная подсказка, предоставляемая упаковщиком комплектов, в
которой указан загружаемый размер связанного архива данных в килобайтах. Если этот атрибут не указан,
объем загружаемой информации неизвестен (Примечание, связанное с реализацией:
реализация предусматривает различие между нулевым размером и неизвестным значением)
- install-size - необязательная подсказка, предоставляемая упаковщиком комплектов, в
которой указан устанавливаемый размер связанного архива данных в килобайтах. Если этот атрибут не указан,
объем устанавливаемой информации неизвестен (Примечание, связанное с реализацией:
реализация предусматривает различие между нулевым размером и неизвестным значением)
При взаимодействии с сайтом обновления реализация комплекта преобразует
элементы <plugin> и <data> в идентификаторы пути, с
помощью которых сайт определяет конкретные файлы для загрузки и установки. Реализация комплекта по умолчанию, предоставляемая Eclipse, составляет идентификаторы путей следующим образом:
-
элемент <plugin> соответствует записи пути в формате
"plugins/<ИД-модуля>_<версия-модуля>.jar"
(например, "plugins/org.eclipse.core.boot_2.0.0.jar")
-
элемент <data> соответствует записи пути в формате
"features/<ИД-комплекта>_<версия-комплекта>/<ИД-данных>"
(например, "features/com.xyz.tools_1.0.3/examples.zip")
Обратите внимание, что в документах манифеста feature.xml следует применять кодировку
UTF-8. Пример:
<?xml version="1.0" encoding="UTF-8"?>
Переводимый текст, содержащийся в файле feature.xml, можно распределить по файлам
feature<_локаль>.properties в соответствии с соглашениями комплектов свойств Java.
Обратите внимание, что переведенные строки применяются в ходе установки (без помощи
механизма выполнения фрагментов модулей).