![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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]
|