RUS | UKR | ENG | ДонНТУ> Портал магистров ДонНТУ
  Главная Реферат Библиотека Ссылки Отчет о поиске Тест по Java  

 

Технический обзор платформы Eclipse

Источник: khpi-iip.mipk.kharkiv.edu

 

Платформа Eclipse (или просто "Платформа", когда нет риска неоднозначности) разработана и построена для выполнения следующих требований:

  • Поддержка конструирования разнообразных инструментов для разработки приложений.
  • Поддержка неограниченного ряда поставщиков инструментария, включая независимых поставщиков программного обеспечения (ISV).
  • Поддержка инструментов в манипулировании произвольным типом содержимого (т.е., HTML, Java, C, JSP, EJB, XML и GIF).
  • Обеспечение "бесшовной" интеграции инструментов c различными типами содержимого и разными поставщиками инструментария.
  • Поддержка сред разработки приложений как с графическим интерфейсом пользователя (GUI), так и без GUI.
  • Выполнение на широком спектре операционных систем, включая Windows и Linux.
  • Использование популярности языка программирования Java для написания инструментария.

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

Рисунок 1 показывает главные компоненты и API Платформы Eclipse.


Рисунок 1. Архитектура Платформы Eclipse.

Архитектура Среды Выполнения Платформы и подключений

Подключение (plug-in) - наименьшая единица функциональности Платформы Eclipse, которая может быть разработана и поставлена отдельно. Обычно небольшой инструмент пишется как одно подключение, тогда как функциональность сложного инструмента разносится по нескольким подключениям. За исключением небольшого ядра, называемого Средой Выполнения Платформы (Platform Runtime Environment), вся функциональность Платформы Eclipse находится в подключениях.

Подключения кодируются на языке Java. Типовое подключение состоит из кода Java в библиотеке JAR, нескольких доступных только для чтения файлов и других ресурсов, таких, как изображения, web-шаблоны, каталоги сообщений, библиотеки в кодах аппаратной платформы и т.д.. Некоторые подключения вообще не содержат кода. Одним из примеров такого подключения является подключение, которое предоставляет онлайновую помощь в форме страниц HTML. Библиотеки кодов одного подключения и информация, доступная только для чтения, располагаются вместе в каталоге файловой системы или по базовому URL на сервере. Этот механизм также предохраняет подключение от составления его из нескольких разных фрагментов, каждый из которых находится в собственном каталоге или по собственному URL. Это также и механизм для поставки раздельных языковых пакетов для интернационализированных подключений.

Каждое подключение имеет файл манифеста (manifest), объявляющий его соединение с другими подключениями. Модель соединения простая: подключение объявляет любое количество именованных точек расширения (extension point), и любое количество расширений (extension) к одной или более точкам других подключений.

Точка расширения подключения может быть расширена другими подключениями. Например, подключение рабочего места объявляет точку расширения для пользовательских настроек. Любое подключение может внести свои пользовательские настройки, определив расширение для этой точки расширения.

Точка расширения может иметь связанный с ней интерфейс API. Другие подключения вносят реализации этого интерфейса через расширения для этой точки расширения. Любое подключение свободно может определить новую точку расширения и обеспечить новые API для использования другими подключениями.

При запуске Среда Выполнения Платформы определяет набор доступных подключений, читает их файлы манифеста и строит в памяти реестр подключений. Платформа проверяет соответствия по именам объявлений расширений соответствующим им объявлениям точек расширения. Любые проблемы, такие, как расширение несуществующей точки расширения, обнаруживаются и протоколируются. Результирующий реестр подключений доступен через API Платформы. После запуска подключения добавляться уже не могут.

Файлы манифеста подключений сдержат XML. Точка подключения может объявлять дополнительные специфические типы элементов XML для использования в подключениях. Это позволяет подключению дать возможность расширению обмениваться произвольной информацией с подключением, объявляющим соответствующую точку расширения. Более того, информация манифеста доступна из реестра без активизации внесшего его подключения или загрузки какого-либо его кода. Это свойство является ключевым для поддержки большой базы инсталлированных подключений, из которых только несколько необходимы в каждом данном сеансе пользователя. Пока код подключения не загружен, оно занимает незначительную память и не влияет на время запуска. Использование манифеста подключений на основе XML также облегчает написание инструментов, которые поддерживают создание подключений. Среда Разработки Подключений (Plug-in Development Environment - PDE), которая включена в Eclipse SDK, является таким инструментом.

Подключения активизируются, когда код действительно нужно выполнять. Активизировавшись, подключение обнаруживает в реестре подключений расширения, привнесенные для его точек расширения, и обращается к ним. Например, подключение, объявляющее точку расширения для пользовательских настроек, может обнаружить все привнесенные пользовательские настройки и обращаться к их отображаемым именам при конструировании диалога настроек. Это может быть сделано только по информации из реестра, без необходимости активизировать любые привнесенные подключения. Привнесенные подключения будут активизироваться, когда пользователь выберет настройку из списка. Активизация подключений таким способом не происходит автоматически, есть несколько методов API для явной активизации подключений. Активизировавшись, подключения остаются активными до выключения Платформы. Каждое подключение имеет подкаталог, в котором оно сохраняет специфичные для себя данные; этот механизм позволяет подключению сохранять информацию о состоянии между выполнениями.

Среда Выполнения Платформы объявляет специальные точки подключений для приложений. Когда загружается экземпляр Платформы, имя приложения задается в командной строке; только подключение, которое активизируется изначально, может быть объявлено приложением.

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

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

Механизм подключений применяется для разделения и самой Платформы Eclipse. На самом деле, рабочее место, рабочее пространство и проч. обеспечивают отдельные подключения. Даже сама Среда Выполнения Платформы имеет свои подключения. Конфигурации Платформы без GUI могут просто обходить подключение рабочего места и другие подключения, зависящие от него.

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

Среда Выполнения Платформы Eclipse также обеспечивает механизм для динамического расширения объектов. Класс, который использует "адаптируемый" интерфейс, объявляет свои экземпляры открытыми для изменения поведения от третьих лиц. Адаптируемый экземпляр может быть запрошен у объекта адаптера, который реализует интерфейс или класс. Например, ресурсы рабочего пространства являются адаптируемыми объектами, рабочее место добавляет адаптеры, которые обеспечивают подходящие иконки и текстовые метки для ресурса. Любая часть может добавить поведение к существующему типу (как к классу, так и к интерфейсу) адаптируемого объекта путем регистрации в Платформе подходящей фабрики адаптеров. Многие части могут независимо друг от друга расширять один и тот же адаптируемый объект, каждая для своей цели. Когда адаптер для данного интерфейса зарегистрирован, Платформа определяет и вызывает фабрику адаптеров, чтобы создать его. Механизм используется только для Java-типа адаптируемого объекта (он не увеличивает память адаптируемого объекта). Любое подключение может использовать этот механизм для добавления поведения к существующим адаптируемым объектам и для определения новых типов адаптируемых объектов, используемых и, возможно, расширяемых другими подключениями.

Рабочие пространства

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

Механизм типа проекта (project nature) позволяет инструменту помечать проект, чтобы придать ему определенную персонификацию или тип. Например, типом web-сайта помечается проект, который содержит статическое содержимое для web-сайта, а типом Java помечается проект, который содержит исходный код для Java-программы. Механизм типа проекта является открытым. Подключения могут объявлять новые типы проектов и обеспечивать коды для конфигурирования проектов этого типа. Один проект может иметь столько типов, сколько требуется. Это предоставляет для инструментов способ совместно использовать проекты, ничего не зная друг о друге.

Каждый проект имеет файлы, которые создает и которыми манипулирует пользователь. Все файлы в рабочем пространстве непосредственно доступны для стандартных программ и инструментов операционной системы. Инструменты, интегрированные в Платформе, обеспечиваются API для работы с ресурсами (resource) рабочего пространства (собирательный термин для проектов, файлов и папок). Ресурсы рабочего пространства представляются адаптируемыми объектами, так что другие части могут расширять их поведение.

Для минимизации риска случайной потери файлов низкоуровневый механизм истории (history) рабочего пространства сохраняет предыдущее содержимое любых файлов, которые были изменены или удалены интегрированными инструментами. Пользователь управляет тем, как работает история, через настроечные установки пространства и "возраста".

Рабочее пространство обеспечивает механизм маркеров (marker) для аннотирования ресурсов. Маркеры используются для записи различных замечаний, таких, как сообщения об ошибках компиляции, элементов списка того, что делается, закладок, результатов поиска и точек останова при отладке. Механизм маркеров является открытым. Подключения могут объявлять новые подтипы маркеров и управлять их сохранением между выполнениями.

Платформа обеспечивает общий механизм, который позволяет инструментам отслеживать изменения в ресурсах рабочего пространства. Путем регистрации слушателя изменений инструмент гарантированно получает уведомление обо всех созданиях и удалениях ресурсов и изменениях содержимого файлов после события. Платформа задерживает уведомления о событиях до окончания всего пакета операций манипулирования ресурсом. Рапорты о событиях имеют форму дерева приращений ресурсов (resource delta), которые описывают эффект всего пакета операций в терминах создания, удаления и изменения ресурсов. Приращения ресурсов также обеспечивают информацию об изменении маркеров.

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

Такие инструменты, как компиляторы или редакторы связей должны выполнять координированный анализ и трансформацию тысяч отдельных файлов. Платформа обеспечивает каркас инкрементного построителя проекта (incremental project builder); на вход инкрементного построения подается дерево приращений ресурсов, которое отражает различия в ресурсе с момента последнего построения. Изощренные инструменты могут использовать этот механизм для обеспечения масштабируемых решений.

Платформа позволяет создавать несколько разных построителей для регистрации в одном проекте и обеспечивает способ запускать проект и построители в масштабе всего рабочего пространства. Опционное свойство автопостроения рабочего пространства автоматически запускает необходимое построение после каждой операции (или пакета операций) модификации ресурса.

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

Рабочее место и инструментальные средства пользовательского интерфейса

Пользовательский интерфейс (UI) Платформы Eclipse построен вокруг рабочего места, которое обеспечивает общую структуру и представление расширяемого UI для пользователя. API рабочего места и его реализация строится из двух инструментальных средств:

  • SWT - набор элементов и графическая библиотека, интегрированные с оконной системой базовой платформы, но независимые от API ОС.
  • JFace - инструментальное средство UI, реализованное при помощи SWT, которое упрощает общие задачи программирования UI.

SWT

Standard Widget Toolkit (SWT) обеспечивает общий, независимый от ОС API для элементов и графики, реализованный таким образом, что он допускает тесную интеграцию с оконной системой базовой платформы. Весь UI Платформы Eclipse и инструменты, которые подключены к нему, используют SWT для представления информации пользователю.

Неизменной проблемой в проектировании инструментальных средств элементов GUI является противоречие между переносимыми инструментальными средствами и интеграцией с оконной системой базовой платформы. Java AWT обеспечивает низкоуровневые элементы, такие, как списки, текстовые поля и кнопки, но без высокоуровневых элементов, таких, как деревья или сложный текст. Элементы AWT реализуются непосредственно при помощи элементов базовой платформы всех базовых операционных систем. Построение UI с использованием только AWT означает программирование в наименьшем общем знаменателе для оконных систем всех ОС. Инструментальные средства Java Swing решают эту проблему эмуляцией элементов, таких как деревья, таблицы и сложный текст. Swing также обеспечивает такие уровни эмуляции внешнего вида и впечатления, которые пытаются сделать приложение, выглядящим как базовая оконная система. Однако эмулированные элементы неизбежно отстают от вида и впечатления элементов базовой оконной системы, и пользовательские взаимодействия с эмулированными элементами обычно достаточно заметно отличаются, делая трудным построение приложений, которые были бы полностью сопоставимы с приложениями, разработанными специально для оконной системы базовой платформы.

SWT решает эту проблему определением API, доступного для большого числа поддерживаемых оконных систем. Для каждой платформенной оконной системы реализация SWT использует платформенные элементы, где это возможно; там же, где нет пригодных платформенных элементов, реализация SWT обеспечивает подходящую эмуляцию. Общие низкоуровневые элементы, такие как списки, текстовые поля и кнопки, везде реализуются на базе платформы. Но некоторые обычно используемые высокоуровневые элементы могут потребовать эмуляции в некоторых оконных системах. Например, элемент линейки инструментов SWT реализован как платформенная линейка инструментов в Windows и как эмулируемый элемент в Motif. Эта стратегия позволяет SWT поддерживать целостную программную модель во всех средах, позволяя при этом виду и впечатлению базовой платформенной оконной системе проявляться через все возможные расширения.

SWT также представляет специфичный для платформенной оконной системы API в случаях, когда данная платформенная оконная система предоставляет уникальные и значимые возможности, недоступные в других оконных системах. Хорошим примером этого является Windows ActiveX. Специфичный для Window API выделен в надлежащим образом именованные пакеты, чтобы обозначить тот факт, что они являются в действительности непереносимыми.

Тесная интеграция с оконной системой базовой платформы еще не полностью обеспечивает вид и впечатление. SWT также взаимодействует со свойствами платформенного рабочего стола, такими, как буксировка, и может использовать компоненты, разработанные при помощи компонентной модели ОС, такие, как элементы управления Windows ActiveX.

Внутри реализация SWT обеспечивает раздельные и различные реализации на Java для каждой платформенной оконной системы. Платформенные библиотеки Java полностью различны, и каждая сделана с API, специфичным для базовой оконной системы. (В отличие от Java AWT, в которой платформенно-зависимые различия находятся в реализации в кодах C общего набора методов Java.) Поскольку в кодах платформы не скрыто никакой специальной логики, реализация SWT выражается полностью в Java-коде. Тем не менее, код Java выглядит знакомым для разработчика на платформе базовой ОС. Любой Windows-программист найдет Java-реализацию SWT для Windows безусловно знакомой, поскольку она состоит из вызовов Windows API, которые уже знакомы C-программисту. Так же и для Motif-программиста выглядит реализация SWT для Motif. Эта стратегия значительно упрощает воплощение, отладку и сопровождение SWT, поскольку она позволяет выполнить всю интересующую разработку на Java. Конечно, это не имеет прямого отношения к обычным клиентам SWT, поскольку платформенно-зависимые коды полностью скрыты под системно-независимым SWT API.

JFace

JFace - это инструментальное средство UI с классами для обработки многих общих задач программирования UI. JFace независимо от оконной системы и в его API, и в реализации и разработано для работы с SWT без сокрытия его.

JFace включает обычные компоненты UI реестров изображений и шрифтов, каркасы диалогов, настроек и мастеров и индикаторы хода выполнения для длинных операций. Два из его наиболее интересных свойств - действия и просмотрщики.

Механизм действий (action) позволяет командам пользователя быть определенными независимо от их точного местонахождения в UI. Действие представляет команду, которая может быть запущена пользователем через кнопку, пункт меню, или пункт линейки инструментов. Каждое действие знает свои собственные ключевые свойства UI (метка, иконка, всплывающая подсказка, etc.), которые используются для конструирования соответствующих элементов, представляющих действие. Это разделение позволяет одному и тому же действию быть использованным в нескольких местах в UI и означает, что место, где действие представляется в UI, можно легко изменить без необходимости изменения кода самого действия.

Просмотрщики (viewer) являются адаптерами для определенных элементов SWT на базе моделей. Просмотрщики обрабатывают общее поведение и обеспечивают высокоуровневую семантику, доступную в элементах SWT. Стандартные просмотрщики для списков, деревьев и таблиц поддерживают заполнение просмотрщиков элементами из клиентского прикладного домена и сохранение элементов вместе с изменениями в этом домене. Эти просмотрщики конфигурируются при помощи поставщика контента и поставщика меток. Поставщик контента знает, как отобразить входные элементы просмотрщика на будущее содержимое просмотрщика и как использовать изменения домена в соответствующих изменениях просмотрщика. Поставщик меток знает, как выработать специфическую строковую метку и инокнку, необходимые для отображения любого данного элемента из домена в элемент UI. Просмотрщики могут опционно конфигурироваться с фильтрами элементов и сортировщиками. Клиенты оповещаются о выборах и событиях в терминах элементов домена, которые они обеспечивают для просмотрщика. Реализация просмотрщика обрабатывает отображение между элементами домена и элементами SWT, настраиваясь при необходимости для фильтрованного представления элементов и пересортировки. Стандартный просмотрщик для текста поддерживает общие операции, такие как поведение по двойному щелчку, отмена, цвет и навигация по индексам символов или номерам строк. Просмотрщики текста обеспечивают для клиента модель документа и управляют преобразованием документа в информацию, требуемую для элемента стилизованного текста SWT. Многие просмотрщики могут быть открыты на одной и той же модели документа, все они изменяются автоматически, когда модель или документ изменяется в любом из них.

Рабочее место

В отличие от SWT и JFace, которые оба являются инструментальными средствами UI общего назначения, рабочее место (workbench) обеспечивает UI именно для Платформы Eclipse и поставляет структуры, в которых инструменты взаимодействуют с пользователем. Благодаря этой центральной и определяющей роли, рабочее место является синонимом UI Платформы Eclipse в целом и главного окна, которое пользователь видит при запуске Платформы (см. Рисунок 1). API рабочего места зависит от SWT API и, в меньшей степени, расширяет JFace API. Реализация рабочего места построена с использованием и SWT, и JFace; Java AWT и Swing не использованы.

Парадигма UI Платформы Eclipse базируется на редакторах, представлениях и перспективах. С точки зрения пользователя окно рабочего место визуально состоит из редакторов и представлений. Перспективы проявляют себя в выборе и порядке редакторов и представлений, видных на экране.

Редакторы (editor) позволяют пользователю открывать, редактировать и сохранять объекты. Они следуют жизненному циклу открыть-сохранить-закрыть, во многом, как и инструменты на основе файловой системы, но более тесно интегрированы в рабочее место. Когда редактор активен, он может добавить функции в меню рабочего место и в линейку инструментов. Платформа обеспечивает стандартный редактор для текстовых ресурсов; более специфические редакторы поставляются в других подключениях.

Представления (view) обеспечивают информацию о некотором объекте, с которым пользователь работает в рабочем месте. Представление может помогать редактору в обеспечении информации о редактируемом документе. Например, стандартное представление схемы содержимого показывает структурированную схему содержимого активного редактора, если оно доступно. Представление может дополнять другие представления путем обеспечения информации о выбранном в данный момент объекте. Например, стандартное представление свойств представляет свойства объекта, выбранного в другом представлении. Платформа имеют более простой жизненный цикл, чем редакторы: модификации, сделанные в представлении, обычно сохраняются немедленно, и изменения немедленно отражаются в других связанных частях UI. Платформа обеспечивает несколько стандартных представлений (см. Рисунок 1); дополнительные представления поставляются в других подключениях.

Окно рабочего места имеет несколько отдельных перспектив (perspective) , только одна из которых видима в любой данный момент. Каждая перспектива имеет собственные редакторы и представления, которые выстроены ("черепицей", стеком или по отдельности) для подачи экрана (некоторые в данный момент могут быть скрыты). Несколько разных типов редакторов и представлений могут быть открыты в перспективе одновременно. Перспектива управляет начальной видимостью представления, размещением и видимостью действий. Пользователь может быстро переключить перспективу на работу с другой задачей и может легко переупорядочить и настроить перспективу для лучшего соответствия конкретной задаче. Платформа обеспечивает стандартные перспективы для общей навигации по ресурсам, онлайновой подсказки и задач поддержки команды. Дополнительные перспективы поставляются в других подключениях.

Инструменты интегрируются в эту парадигму UI редакторы-представления-перспективы четко определенными способами. Главная точка расширения позволяет инструментам наращивать рабочее место:

  • Добавлять новые типы редакторов.
  • Добавлять новые типы представлений.
  • Добавлять новые перспективы, которые выстраивают старые и новые представления для соответствия новым задачам пользователя.

Все стандартные редакторы и представления внесены с использованием этих механизмов.

Инструменты могут также наращивать существующие редакторы, представления и перспективы:

  • Добавлять новые действия в локальное меню и линейку инструментов существующего представления.
  • Добавлять новые действия в меню и линейку инструментов рабочего места, когда существующий редактор становится активным.
  • Добавлять новые действия во всплывающее контекстное меню существующего представления или редактора.
  • Добавлять новые представления, наборы действий и короткие пути в существующей перспективе.

Платформа заботится обо всех аспектах управления окном рабочего места и перспективами. Редакторы и представления автоматически инсталлируются при необходимости и убираются, когда они больше не нужны. Отображаемые метки и иконки для действий, привнесенных инструментом, перечисляются в манифесте подключения, так что рабочее место может создавать меню и линейки инструментов без активизации привнесенных подключений. Рабочее место не активизирует подключение, пока пользователь не попытается использовать функциональность, обеспечиваемую этим подключением.

Когда редактор или представление становится активной частью перспективы, он может использовать службы рабочего места для отслеживания активизации и выбора. Служба составных частей отслеживает активизации представления и редактора в перспективе, вырабатывает события активизации и дезактивизации для зарегистрированных слушателей. Представление или редактор может также зарегистрироваться в службе выбора как источник для выборов. Служба выбора обеспечивает события изменения выбора для всех частей, которые зарегистрировали свой интерес. Вот так, например, стандартная перспектива свойств уведомляется об объекте домена, выбранном в активном редакторе или представлении.

Интеграция UI

Инструменты, написанные на Java с использованием API Платформы, достигают наивысшего уровня интеграции с Платформой. В другом крайнем случае внешние инструменты, запускаемые в Платформе, должны открывать собственные отдельные окна, чтобы взаимодействовать с пользователем, и должны обращаться к данным пользователя через файловую систему. Их интеграция, следовательно, очень слабая, в особенности на уровне UI. В некоторых средах Платформа Eclipse поддерживает также промежуточные уровни интеграции между этими крайними случаями:

  • Рабочее место имеет встроенную поддержку для встраивания любого документа OLE как редактора (только Windows). Эта опция обеспечивает тесную интеграцию UI.
  • Подключаемый инструмент может реализовать контейнер, который является мостом между API Платформы Eclipse и управляющим элементом ActiveX, так что он может быть использован в редакторе, представлении, диалоге или мастере (только Windows). SWT обеспечивает необходимую низкоуровневую поддержку. Эта опция обеспечивает тесную интеграцию UI.
  • Подключаемый инструмент может использовать AWT или Swing для открытия отдельных окон. (В Eclipse SDK 2.1 (март 2003) это работало для Windows, но не для Linux.) Эта опция обеспечивает слабую интеграцию UI, но допускает тесную интеграцию ниже уровня UI. (Конечно, AWT и Swing должны быть представлены в конфигурации базовой среды выполнения Java, в которой выполняется Платформа Eclipse.)

Поддержка командной разработки

Платформа Eclipse позволяет проекту быть размещенным по версиям и по управлению конфигурацией в соответствующем командном репозитории. Платформа имеет точки расширения и API поставщика репозитория, которые позволяют подключать новые виды командных репозиториев.

Функция, обеспечиваемая конкретным командным репозиторием, однозначно влияет на рабочий поток (workflow) пользователя, например, добавлением шагов для выборки файлов из репозитория и для сравнения разных версий файла. Точный эффект на рабочем потоке пользователя кое в чем варьируется для разных типов репозиториев. Соответственно, Платформа Eclipse позволяет каждому поставщику репозитория определять собственный рабочий поток, так что пользователь, уже знакомый с продуктом командного репозитория, может быстро изучить использование его из Eclipse. Платформа поставляет базовые зацепки, позволяющие поставщику командного репозитория вмешаться в определенные операции, которые манипулируют ресурсами в проекте. Эти зацепки обеспечивают хорошую поддержку и для оптимистической, и для пессимистической модели. На уровне UI Платформа поставляет шаблоны-заполнители для определенных действий, настроек и свойств, но предоставляет каждому поставщику репозитория определять эти элементы UI. Есть также простой мастер, с расширяемой конфигурацией, который позволяет пользователю связывать проекты с репозиториями, и который каждый поставщик репозитория может расширить элементами UI для собирания информации, специфичной для данного вида репозитория.

Множество поставщиков командных репозиториев могут мирно сосуществовать в Платформе. Платформа Eclipse включает поддержку для репозиториев CVS, доступных через протоколы pserver или ssh.

Помощь

Механизм помощи Платформы Eclipse позволяет инструментам определять и привносить документацию в одной или более онлайновой книге. Например, инструменты обычно выносят выполненное в стиле помощи руководство пользователя и документацию по API (если есть) в разные программные руководства.

Исходное содержимое вносится как файлы HTML. Возможности упорядочивания исходного содержимого в онлайновую книгу с соответствующими навигационными структурами представляются отдельно в файлах XML. Это разделение позволяет документации, ранее существовавшей в HTML, быть инкорпорированной прямо в онлайновые книги без необходимости ее переписывания или редактирования.

Дополнительная навигационная структура представляет содержимое книг как дерево тем. Каждая тема, включая промежуточные темы, может иметь ссылку на страницу исходного содержимого. Одна книга может иметь много альтернативных списков тем верхнего уровня, позволяющих некоторой или всей одинаковой информации быть представленной в совершенно разной организации; например, организованной по задачам или по инструментам.

XML-файлы навигации и HTML-файлы содержимого хранятся в корневом каталоге подключения или в подкаталогах. Маленькие инструменты обычно помещают свою документацию в том же подключении, что и код. Большие инструменты часто имеют отдельные подключения помощи. Платформа использует свой внутренний сервер документации для формирования из документов web-страниц. Этот прикладной сервер позволяет Платформе разрешать специальные связи между подключениями и выделять страницы HTML из ZIP-архивов.

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

Эпилог

Подводя итоги, Платформа Eclipse обеспечивает ядро для родовых строительных блоков, API, такие, как рабочее пространство и рабочее место, и различные точки расширения, через которые может быть интегрирована новая функциональность. Через эти точки расширения инструменты, написанные, как отдельные подключения, могут расширять Платформу Eclipse. Пользователю предоставляется IDE, специализированная набором доступных инструментальных подключений. Однако, это не конец истории, это на самом деле только начало. Инструменты также могут определять новые собственные точки расширения и API и, следовательно, служить строительными блоками и точками интеграции для других инструментов.

Этот краткий обзор не коснулся многих других интересных аспектов Платформы Eclipse, таких как поддержка отладчиков и интеграция с инструментом построения ANT. Дополнительные подробности об API Платформы Eclipse, точках расширения и стандартных компонентах вы можете найти в Platform Plug-in Developer Guide, которое доступно как онлайновая помощь для Eclipse SDK.

 

  Главная Реферат Библиотека Ссылки Отчет о поиске Тест по Java  

© ДонНТУ, Войтенко С. 2006