Управление обновлениями Eclipse

Программа обновления Eclipse предназначена для поиска обновлений для установленных комплектов. Для каждого такого комплекта ищется встроенный URL, который служит для подключения к серверу и поиска на нем новых версий. Если найдены обновления, Eclipse предлагает их установить. После того как новая версия комплекта будет загружена и установлена, а платформа - перезапущена, с новой версией можно будет работать.

В компаниях, где один и тот же продукт, основанный на Eclipse, используется на многих рабочих местах (как правило, в коммерческой версии), в этой модели могут возникать различные проблемы:

  1. Обновления для очень больших продуктов (более 500 модулей) также очень велики по размеру. Администраторы сети вряд ли одобрят идею загрузки 500 Мб обновлений отдельно на каждую машину сотнями разработчиков. Помимо больших требований к трафику, такой большой запрос на загрузку может приводить к сбоям, и время простоя разработчиков будет большим.
  2. В некоторых компаниях непосредственная загрузка обновлений из Internet может быть нежелательна. Например, обновлениями с сайта поставщика может заниматься локальная группа технической поддержки. Обновления и исправления могут быть доступны только локально после того, как они будут проверены этой группой. В идеале для этого нужно настроить в локальной сети 'proxy' сайт обновления.
  3. Как только обновления будут помещены на такой proxy-сайт, администраторы должны известить пользователей о том, какие обновления доступны.

2. Стратегия обновления

2.1 Создание локальных (proxy) сайтов обновления

Прежде всего администратор должен создать локальный сайт обновления Eclipse на сервере в локальной сети организации (не за брандмауэром). Этот сайт обновления будет частично отражать сайт обновления в Internet, поскольку он будет хранить обновления только тех модулей и комплектов, которые компания считает нужным применить в данный момент. Фактически этот сайт - это тот же сайт обновления Eclipse, с файлом site.xml и архивами комплектов и модулей.

Администраторы могут создать такой сайт двумя способами:

  1. Служба поддержки продукта может опубликовать файл zip с нужными данными для данного сайта обновления. Администратор должен будет загрузить файл zip с Web-страницы службы поддержки и распаковать его на локальном сервере. Этот способ полезен для очень больших файлов zip, для которых рекомендуется применять диспетчер загрузки, который способен возобновлять ранее приостановленные загрузки.
  2. Программа обновления Eclipse позволяет создавать полное зеркало удаленного сайта обновления или выбирать обновления и исправления, которые требуется загрузить. Такое зеркалирование будет выполняться полностью автоматически и заметно упростит задачу администратора, но оно возможно только при наличии постоянного подключения к сети.

2.2 Общие принципы управления обновлениями

Поскольку URL сайта обновления встроен в манифест комплекта, комплекты не знают о том, что администратор настроил локальный сайт обновления. Поэтому важно включить функцию перенаправления. Эта и прочие опции стратегии обновления задаются в любом продукте Eclipse в файле стратегии обновления. Администратор обновлений должен быть настроен на работу с этим файлом при поиске.

Файл задается в формате XML и может иметь любое имя. Для этого служит поле Параметры > Установка и обновление Стратегия обновления. По умолчанию это поле пусто; в нем можно задать URL файла стратегии обновления. Этот файл настраивается администратором сразу для всех установок продукта. Совместное использование этого файла можно обеспечить двумя способами:

Формат файла стратегии должен соответствовать следующему DTD:

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

<!ELEMENT update-policy (url-map)*>
<!ATTLIST update-policy
>

<!ELEMENT url-map EMPTY>
<!ATTLIST url-map
    pattern    CDATA #REQUIRED
    url        CDATA #REQUIRED
>

url-map

Это элемент служит для того, чтобы переопределить URL обновления, встроенные в манифесты комплектов. При поиске новых обновлений Eclipse проверяет стратегию обновления (если она указана) и значение url-map, если в нем задан префикс комплекта. При совпадении с префиксом заданный URL будет использован вместо встроенного. Таким способом администратор может направить поиск обновлений продуктами Eclipse на локальный сервер не за брандмауэром. В то же время сторонние комплекты, установленные программой обновления Eclipse, будут по-прежнему обновляться с помощью механизма по умолчанию, потому что для них не будет найдено совпадение в стратегии.

В файле может быть указано несколько элементов url-map. Префиксы для комплектов можно указывать с большей или меньшей степенью детализации. Например, чтобы перенаправить все обновления Eclipse, атрибут pattern можно задать как "org.eclipse". Точно так же возможно задать pattern равным полному ИД комплекта, если перенаправление требуется осуществлять для отдельных комплектов.

Шаблоны в файле можно задавать так, чтобы постепенно сужать область возможных совпадений. При этом для одного и того же комплекта может встретиться несколько совпадений. Из них будет использовано наиболее точное совпадение. Пример:

<?xml version="1.0" encoding="UTF-8"?>
<update-policy>
	<url-map pattern="org.eclipse" url="URL1"/>
	<url-map pattern="org.eclipse.jdt" url="URL2"/>
</update-policy>

В этом примере все комплекты Eclipse будут обновлены с помощью URL1, кроме org.eclipse.jdt, который будет обновлен с URL2.

Файлы стратегий обновления не содержат строк, которые необходимо переводить, поэтому никакая особая локализация для них не требуется. Рекомендуется использовать в этих файлах кодировку UTF-8.

2.3 Автоматический поиск обновлений

Третья часть всего механизма описана в другом разделе, но упоминается и здесь, поскольку является неотъемлемым его компонентом. Eclipse может осуществлять поиск автоматических обновлений по расписанию, например, при каждом запуске (значение по умолчанию), ежедневно, еженедельно и пр. .

3. Краткая сводка

Ниже приведена полная последовательность шагов, которые составляют механизм обновления:

  1. Администратор настраивает сервер в локальной сети организации для локального размещения обновлений продукта. Первоначально на нем нет ни одного сайта обновления, но должен быть запущен сервер HTTP.
  2. Администратор настраивает файл стратегии обновления на этом сервере и предлагает всем пользователям обновить параметры стратегии обновления по указанному URL.
  3. По мере выхода обновлений и исправлений продукта и публикации их на сайтах обновления поставщиков администратор загружает требуемые обновления на локальный сервер.
  4. Обновления, выполняемые по заданному расписанию, загружаются клиентами по локальной сети. При этом пользователь уведомляется о наличии обновлений.
  5. Пользователь принимает решение об установке найденных обновлений.

Связанные задачи
Планировщик автоматических обновлений