понедельник, 17 мая 2010 г.

Знакомимся: RSS/Atom парсер/генератор для Java - проект ROME


Введение


Форматы RSS/Atom активно используются для синдикации данных. Многие пользователи сети Интернет уже не представляют свою жизнь без использования RSS/Atom агрегаторов для чтения блогов, новостных лент, получения бизнес-информации и т.д. Даже архивы списков почтовых рассылок доступны с помощью RSS. Atom, в свою очередь, так же используется как один из форматов взаимодействия с RESTfull сервисами.

В связи с широкой распространенностью RSS и Atom лент необходимо программное обеспечение для их генерации и разбора (парсинга), причем желательно в некоторую объектную модель API работы с которой проще чем DOM. Для решения данной задачи в мире Java существует библиотека com.sun.syndication, которая так же называется проект ROME. Последняя версия библиотеки - 1.0 - выпущена в марте 2009-го года.

суббота, 15 мая 2010 г.

Сервлеты и OSGi: Equinox в сервлет-контейнере. Equinox Servletbridge


Наконец-то пришло время рассмотреть, как выполняется развертывание приложения, основанного на OSGi, в обычном, а не приспособленном специально для Equinox, сервлет-контейнере (или сервере приложений, в дальнейшем будем употреблять только термин "сервлет-контейнер"), таком как Tomcat, GlassFish, IBM WebSphere и т.д.

пятница, 14 мая 2010 г.

Eclipse RCP: Сборка и развертывание RCP-приложения. Понятие "Продукт"


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

Проект состоит из двух частей: файла с расширением product в котором хранятся все специфичные для приложения настройки (иконки и т.д.) и точки расширения org.eclipse.core.runtime.products с помощью которой продукт регистрируется в реестре. Рассмотрим подробно создание продукта с помощью встроенного в Eclipse PDE редактора и развертывание приложения с помощью соответствующего визарда. Все примеры приведены для Eclipse Helios, запущенного под ОС Gentoo GNU/Linux.

Знакомимся: EclipseLabs - новая инициатива от Eclipse Foundation и Google


Eclipse и Google анонсировали новую инициативу под названием EclipseLabs. Давайте познакомимся с ней подробнее.



Известно, что сообщество разработчиков для платформы Eclipse создало огромное количество как коммерческих, так и плагинов с открытым исходным кодом. В мире открытых исходников существует два пути создания проекта: подать заявку на официальный Eclipse-проект, который будет размещаться на сайте eclipse.org или создать проект на существующем сервере, предоставляющем хостинг проектов с открытым кодом, таком как Google Code, SourceForge или Codehaus. Создать проект на хостинге Eclipse сложно - нужно пройти довольно нудный IP-процесс. В то же время, есть большая вероятность, что проект на том же Google Code никто не заметит.

Теперь существует еще один способ, объединяющий преимущества двух вышеописанных. Можно создать проект на Google Code без необходимости проходить IP-процесс, но в то же время видимый всеми, интересующимися платформой Eclipse или ищущими плагин под эту замечательную IDE. Данный способ прост - разместить проект в специализированном репозитории Eclipse-проектов - Eclipse Labs.

воскресенье, 9 мая 2010 г.

Eclipse RCP: О понятии RCP Application


В прошлый раз я обещал написать про то, как деплоить OSGi-приложение в сервлет-контейнерах, отличных от Jetty. Для решения данной задачи используется Equinox ServletBridge, однако, прежде чем разбираться с данным механизмом, необходимо вникнуть в основы построения и деплоймента Eclipse RCP-приложений. О деплойменте поговорим чуть позже, а сегодня разберемся с тем, что такое "приложение" в терминах Eclipse RCP.

Приложением называется класс, реализующий интерфейс IApplication. В каком-то смысле приложение является точкой входа в Eclipse RCP и является аналогом метода main Java или C/C++ программы. В поставку Eclipse Plugins Development Environment включено несколько примеров приложений. Вот код класса, реализующего интерфейс IApplication из примера Hello RCP: