Liferay и OSGi - Liferay и OSGi
Блоги
Навигационные полоски
Медленно, но верно продолжается интеграция Liferay и OSGi. Увидеть первые результаты можно будет уже в версии Liferay 6.2.0. А пока посмотреть и попробовать OSGi, встроенный в Liferay, можно в LR 6.2.0-M4 или собрав портал из ветки trunk версии 6.2.0.
Причины и необходимость интеграции
Основной разработчик этого направления Ray Auge, он же периодиески публикует в своем блоге достаточно подробные и интересные статьи о ходе разработки, а также рассказывает почему решено было начать работы в этом направлении.
Чтобы ответить на вопрос "Для чего потребовалось это объединение?", нужно вспомнить, что это за OSGi и зачем было придумано. Если говорить вкратце, то OSGi – это набор спецификаций, которые помогают упростить сложные, неповоротливые системы за счет создания модульной архитектуры.
А теперь, если подумать о Liferay с его собственной системой плагинов (портлетов, тем и пр.), о том, как быстро и разнонаправлено он развивается, то становится понятно, что управлять всей этой системой с каждым следующим этапом развития все сложнее.
Здесь-то и может выручить модульность, которую предлагает OSGi. Только представьте насколько проще и быстрее стала бы разработка и поддержка Liferay:
-
простая и быстрая установка исправлений ошибок и уязвимостей системы (скажем "Нет" четырехлетним багам);
-
регулярное и необременительное добавление новой функциональности и обновлений;
-
меньшее количество ошибок в важных модулях, потому что основные модули всегда находятся в фокусе;
-
и многое другое.
Поэтому мы с интересом следим за тем, как идет интеграция и ждем-не дождемся выхода версии 6.2.0. Присоединяйтесь к нам!
Что уже реализовано
В одной из своих статей Рэй рассказал и том, как идет разработка. На данном этапе уже сделано следующее:
-
В качестве реализации OSGi используется Eclipse Equinox (начиная с версии 3.7). Дополнительно был протестирован Knopflerfish 3.2.0 – полет нормальный; есть уверенность, что Felix от Apache тоже приживется.
-
Сервисы и компоненты (beans) портального Spring-контекста переделаны и зарегистрированы в регистре сервисов OSGi, чтобы их могли использовать другие OSGi-модули (bundles).
-
Разработан и размещен в "Панели управления" специальный портлет для работы с OSGi-модулями. С его помощью администратор портала может добавлять, обновлять, удалять, запускать или останавливать модули. Так же можно просмотреть все зарегистрированные сервисы модулей, заголовки модулей и необходимые им сервисы. Как выглядит портлет можно посмотреть на картинках в конце статьи.
-
Установлен AutoDeployListener класс. Он проверяет все JAR- и WAR-файлы, которые попадают в deploy-директорию портала, и, если распознает в них OSGi-модули, автоматически устанавливает их в OSGi-контейнер и пытается запустить.
-
Успешно протестированы различные сценарии изменения кода, например, такие как замещение реализаций сервисных и Util-классов.
-
Установлена и успешно используется последняя версия Gemini Blueprint (реализация OSGi Alliance Blueprint Service, которую еще называют Spring для OSGi).
-
В портал добавлена библиотека BND (упрощает создание OSGi-модулей, в частности работу с MANIFEST-файлами).
В планах на реализацию:
-
В Plugins SDK добавить возможность автоматически создавать плагины как OSGi-модули.
-
Добавить поддержку различных типов портальных плагинов, созданных как OSGi-модули.
-
Изменить в Liferay механизм хранения, чтобы он поддерживал OSGi-модули, а также автоматически отслеживал обновления, распознавал и загружал зависимости.
OSGi Admin Portlet. Список доступных модулей.
OSGi Admin Portlet. Просмотр информации о конкретном модуле.
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.