Una libreria Java per RSS e Atom

In questo articolo viene utilizzata ROME, una libreria che permette di gestire ottimamente i feed RSS/Atom

Introduzione

ROME è un progetto opensource che include tutta una serie di package/classi utili per il parsing, generazione e manipolazione di feed RSS e Atom. E’ un progetto molto ben fatto sotto il punto di vista delle feature che offre allo sviluppatore. Infatti tramite è possibile gestire una vasta gamma di feed, tra cui:

  • RSS 0.90
  • RSS 0.91 Netscape
  • RSS 0.91 Userland
  • RSS 0.92
  • RSS 0.93
  • RSS 0.94
  • RSS 1.0
  • RSS 2.0
  • Atom 0.3
  • Atom 1.0

Oltre alla gestione dei classici feed, ROME permette di creare dei moduli che possono integrarsi con la libreria al fine di supportare altri tipi di feed specifici. Qui di seguito trovate una lista dei moduli attualmente presenti nel sottoprogetto ROME Modules

  • iTunes Podcasting
  • GeoRSS – Per aggiungere informazioni di localizzazione ai feed RSS/Atom
  • Slash
  • Google Base
  • Content
  • Creative Commons
  • Yahoo! MediaRSS
  • iPhoto Photocasting
  • A9 OpenSearch
  • Microsoft Simple List Extensions
  • Microsoft Simple Sharing Extensions

Tutte queste feature e moduli fanno già capire quanto sia interessante questa libreria, in maniera direttamente proporzionale a quanto sono importanti nel Web 2.0 feed RSS/Atom e compagnia bella.

Lettura di un feed RSS

La lettura e il parsing di un feed, specialmente se si usano delle semplici librerie per il parsing dell’XML o addirittura neanche queste può essere una cosa che porta dei notevoli mal di testa. Qui di seguito viene fatto vedere come è possibile leggere agevolmente il feed RSS di un sito (in questo caso JavaStaff.com :P) e presentare i contenuti del feed nella maniera più opportuna.

In questo caso abbiamo utilizzato una semplice JSP per poter visualizzare il risultato direttamente sul nostro browser. Quello che viene fatto in queste righe è abbastanza semplice. Viene creata un istanza di SyncFeed, l’oggetto che rappresenta il nostro feed, partendo dall’URL del feed. In questo modo è possibile avere subito informazioni tramite i metodi getTitle() e getLink() ad esempio. Successivamente vengono elaborati tutte le entry del feed, attraverso un semplice Iterator. Nel ciclo while vengono stampate alcune infomazioni presenti in ogni feed (in questo caso titolo, link e descrizione). Il risultato è visibile nella seguente immagine

Parsing feed

 

 

Creazione di un feed

La lettura di un feed usando ROME è stata abbastanza facile. Vedremo ora che anche la realizzazione di un nostro feed utilizzando questa libreria è semplice e veloce. Per avere sempre un feedback istantaneo di quello che stiamo facendo, in questo caso utilizzeremo una Servlet, visualizzando il risultato dentro il browser (quel codice dentro la Servlet mi fa venire la pelle d’oca però viene fatto per fini didattici :P).

Immaginiamo di avere un database, dove abbiamo memorizzate delle informazioni. Possiamo pensare di avere salvate delle notizie e per generare un feed dobbiamo ora creare quello che prima utilizzavamo, ovvero un SyncFeed.

Come potete vedere anche la creazione del feed è un compito abbastanza semplice con ROME, bisogna soltanto aggiungere le varie notizie, settare i campi che si hanno e il gioco è fatto. Importante è il metodo setFeedType() di SyncFeed, che viene utilizzato per dire alla libreria che tipo di feed deve essere creato. In questo caso è stato utilizzato RSS 1.0. Ora immaginiamo di avere questo codice all’interno della doGet() della nostra Servlet. Per restituire il feed attraverso il browser non dobbiamo far altro che creare l’informazione da trasferire e scriverla nello stream di output

Qui abbiamo utilizzato l’HttpResponse (response) che viene passata al metodo doGet() delle Servlet, per generare nella risposta verso il browser il nostro feed RSS. Se passate l’url relativo alla Servlet realizzata, ad un browser o meglio ad un lettore di feed, dovreste avere come risultato la lettura del semplice RSS che è stato appena creato.

Riferimenti

Sito del progetto ROME
Articolo su java.net
Diversi tutorial su ROME

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *