Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Eclipse-ядро и плагины






Для того, чтобы «встроиться» в Eclipse, модуль должен использовать специальные механизмы точек расширения (extension points). Для этого необходимы два файла - OSGi манифест (MANIFEST.MF) и плагин манифест (plugin.xml).

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

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

Ядро состоит из восьми основных компонент, отвечающих за различную функциональность:

v Ядро исполнения (Runtime core) запускает базовые модули и динамически подгружает (на основе информации из манифест-файлов) и запускает плагины. Основная задача этой компоненты – сбережение ресурсов системы. Память и процессорное время не расходуются на неактивные плагины. Плагин может быть загружен и внесен в регистр, но он не будет активирован до тех пор, пока пользователю не потребуется предоставляемая им функциональность.

v Система управления ресурсами (Resource management) определяет общую модель ресурсов, хранящую в себе информацию о файлах, папках и проектах, которые могут создаваться и открываться механизмами плагинов.

v Интерфейс рабочего места (Workbench user interface) обеспечивает интерфейс Eclipse, при этом предоставляет точки расширения, позволяющие плагинам вносить собственные меню, панели, диалоги, редакторы и пр.

v Поддержка командной работы (Team support) позволяет плагинам использовать функциональность, связанную с командной разработкой, поддержку версий, репозиториев.

v Система помощи (Help system) – компонента для интеграции в систему помощи и документации.

v Поддержка отладки (Debug support) дает плагинам возможность реализации специальные отладчики и загрузчики.

v Инструменты для разработки на Java (Java development tools) предоставляют точки расширения для плагинов, реализующих какую-либо специальную функциональность по редактированию, просмотру, компиляции, отладке и запуску Java-кода.

v Среда разработки плагинов (Plugin development environment) поддерживает инструменты автоматизации создания, управления, отладки и внедрения плагинов.

Расширенная платформа клиента (RCP)

Каркасом Eclipse является расширенная платформа клиента (RCP — от англ. rich client platform). В ее состав входят следующие компоненты:

v Ядро Eclipse (восемь модулей, описанных выше);

v OSGi - стандартная среда поставки комплектов, предоставляющая механизм, обеспечивающий динамическую загрузку плагинов, о которых система ничего не знает на основе информации манифест-файла; [2]

v SWT - портируемый инструментарий интерфейсных компонент. Эта библиотека используется вместо стандартной для Java библиотеки Swing. Она полностью зависит от нижележащей платформы (операционной системы), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает проблемы совместимости и устойчивости приложений на разных платформах; [3]

v JFace – реализует файловые буферы, работа с текстом, текстовые редакторы.

 

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

Система моделирования Eclipse (EMF)

Система моделирования Eclipse (EMF — от англ. Eclipse modeling framework) представляет собой средство генерации кода для создания инструментов и прочих приложений на основе структурированной модели и позволяет преобразовывать модели в эффективный, корректный и легко настраиваемый код на Java.

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

Унифицированный язык моделирования (UML — от англ. unified modeling language) определяет стандартизированную нотацию для подобного рода диаграмм. UML-модели можно использовать как исключительно для документации, так и для генерации при помощи специальных средств части или, в некоторых случаях, всего когда приложения. Используя комбинацию UML-диаграмм можно создать полноценное приложение и систему тестирования для него.

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

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

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

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

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

В системе моделирования Eclipse сериализация производится в файлы формата расширяемого языка разметки (XML — от англ. eXtensible Markup Language).

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.