Some experience with RSS/Atom frameworks
Posted by Martin Homik | Posted in Java | Posted on 20-06-2008
3
10 days ago, I had the idea to enhance my web application by integration Roller. Instead of implementing a blog model myself, I wanted to implement the UI only and pass all the blog entries to a stable blog server. The problems were:
- Blog entry management. How to exchange blog entries with Roller?
- User management. How to synchronize users with Roller?
To solve the the management of blog entries, Roller provides an RSS/Atom interface. The only thing I would need is a blog client. Lucky me, there is the ROME and ROME Propono. ROME is a RSS/ATOM framework and Propono is a subproject of it that implements a RSS/Atom client. It seemed to be a good solution, because:
- ROME is quite mature.
- It is written by Dave Johnson, the author of RSS/Atom in Action. Dave is also involved in Roller.
- Dave keeps blogging on a regular basis and informs the community about progress.
- There is a discussion forum on Nabbles.
- The blog client, described in the book has been extracted from the example sources and and has been further developed. Today we know it as ROME Propono.
But once, I started to test, compile, and integrate into a Maven based project, I ran into trouble. To make a long story short:
- ROME has never reached 1.0 status. Propono is still 0.6. Progress is slow. There is since 2006 a discussion what needs to be done to move to 1.0. The discussion was never intense and therefore, never reached a fix point.
- Dave works for a different company and does not invest too much time in ROME.
- Compiling ROME 0.9 is okay, but Propono 0.6 requires 0.9.1-dev. So you need to get the binary or get the sources from CVS. But even these don’t compile.
- While ROME is available via Maven repositories, and hence, easily to include into a project, ROME 0.9.1-dev is not available. Actually, there is no need for that, because ROME Propono is not available via Maven repositories add all.
- Finally, I observed quite often that users in discussion forums waited for answers from experts quite long. Some questions stayed unanswered.
Meanwhile, I found an article about Abdera in Dave’s blog. Abdera is a promising Atom framework that provides many features. It has many committers and the forum seems to be quite busy. It is easy to integrate into maven projects and even the build is fun. Despite of its early status it promises a good quality. Documentation is still scarce, however, it is sufficient to get started. One annoying thing is, that James Snell, one of the project leaders, maintains a wordpress blog which does not offer RSS/Atom feeds. This is really dull, because he is blogging about Abdera and the Atom specification quite often.
To solve the user management requirement, Roller offers an atom admin interface to create/update/delete users. This is necessary in order to have the same users on Roller as in my application. Again, to access the interface, the source application needs a client through which it can talk to Roller. Propono offers an atom client solution. However, it is not applicable because of the explained problems. The work around is to use Abdera. Abdera has a clean interface and following a few examples should help to solve this requirement.
In the end, I dropped both approaches due to some Spring problems I did not understand. Instead, I looked at the Roller’s code closely and decided to integrate very basic blogging facilities into my application. To get things done, this is the most efficient way. Maybe, one day, I get back to Roller.

Like most of Manning’s books, 