вторник, 16 февраля 2016 г.

Интеграция RSS в ADF (Integration RSS in Oracle ADF)

RSS (Rich Site Summary — обогащённая сводка сайта) - предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Обычно с помощью RSS 2.0 даётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию. Интернет-ресурс в формате RSS называется RSS-каналом, RSS-лентой или RSS-фидом.
Документ RSS состоит их двух частей: загаловка  и статей.
В загаловке обязательными являются три элемента : 
  • title - имя канала 
  • link - ссылка на сайт, с которым установлен канал связи
  • description - описание канала
RSS-лента может состоять из множества статей. Основными составляющими статьи являются заголовок и описание.

В этой статье я хочу рассказать как интегрировать RSS ленту в ADF приложение.
1. Создайте ADF приложение.
2. Создайте HTTP Servlet (в мастере создания выберите  : Configuration file(web.xml) и поставьие галочку  в doGet() )



Дайте имя сервлету и url pattern по которому он будет доступен. Нажмите на Finish 


После этого будет создан сервлет, и в web.xml будут добавлены следующие строки:


<servlet>
    <servlet-name>RssServlet</servlet-name>
    <servlet-class>by.perevertkin.servlets.RssServlet</servlet-class>
  </servlet>


<servlet-mapping>
    <servlet-name>RssServlet</servlet-name>
    <url-pattern>/rss</url-pattern>
  </servlet-mapping>



Теперь в созданном сервлете нам нужно создать саму RSS ленту. Для ее создания лучше  всего использовать ROME . ROME это  Java-библиотека , спроектированная для облегчения разбора и создания каналов, независимо от их формата. ROME поддерживает все форматы каналов RSS и Atom.  Чтобы  использовать ROME в ADF, нужно сказать Rome-1.0.jar и Jdom.jar и добавить их в Libraries and Classpath вашего проекта( скачать можно с github:
https://github.com/JealousyM/rss-adf/tree/master/ViewController/lib )



Теперь нужно открыть созданные сервлет и в метод doGet написать код для создания ленты. Нам понадобится 2 интерфейса: SyndFeed (для создания заголовка) и SyndEntry ( для создания статей). Эти интерфейсы имеют необходимые нам методы, для заполнения  элементов( setTitle, setDescription,setLink и др).  Так же SyndFeed  имеет такие важные методы как :
  • setFeedType  - тип канала(возможные варианты: rss_0.9, rss_0.91, rss_0.92, rss_0.93, * rss_0.94, rss_1.0, rss_2.0, atom_0.3, * или atom_1.0)
  • setLanguage - язык ленты
  • setEncoding - кодировка ленты
Код ниже демонстрирует создание RSS ленты:



Результат :



Исоходники : https://github.com/JealousyM/rss-adf