Tucu's Weblog
[Alejandro Abdelnur]
  I don't contradict myself,
  I just change my mind.
[Blogs.Sun.com HOME]
All | General | Java | Syndication | XML

20040927 Monday September 27, 2004

Rome v0.4 is available

We've just released version 0.4 of Rome and Rome Fetcher. They are still marked as Alpha but we consider they are already stable for some serious use, we just want to do some sanity check (mostly classes, interfaces, methods and packages names) before we go with a Beta release (which we hope it will be the next one).

We've been busy with this one, just check Rome Changes Log and Rome Fetcher Changes Log, 35 entries. A few highlights:

  • Changed naming convention of the bean interfaces and implementations (i.e.: SyndFeedI/SyndFeed are now SyndFeed/SyndFeedImpl)
  • New XmlReader that handles charset encoding as defined by the XML 1.0 specification and RFC 3023
  • Support for RSS 0.91 Netscape and RSS 0.91 Userland as distinct feed types
  • All feed parsers/generators have Modules support
  • Added checks to generators reducing the chances of generating invalid feeds
  • Several implementation pieces have been refactored or rewritten
  • Comprehensive Unit testing
  • Bug fixes
  • More documentation and samples
  • Dependencies, upgraded to JDom 1.0 and removed dependency from Xerces
  • The Fetcher adds support for Apache HTTP Client for retrieving feeds
(2004-09-27 01:07:18.0) Permalink Comments [2]

Comments:

Tucu, have been using Rome 0.4 to generate RSS for awhile now and just tried using it to parse a feed which is great, but I needed access to the RSS 2.0 enclosures ( exposed in the normal Item, but not SyndEntry ), I hacked this in by modifying the RSS2.0 converter to extract the item.getEnclosures() and create a list of (newly created) SyndEnclosure and SyndEnclosureImpl instances, only - I'm hitting java security problems instantiating a Feed now :( Have you guys looked at adding enclosure parsing support in ( maybe in cvs already? )? Or what can I do to fix this security issue ( java/package security is something I've not yet really looked at, and its late, but will look at in the morning ) unless I hear from you. Other than that, I like rome :)

Posted by Mark Derricutt on October 24, 2004 at 03:45 AM PDT #

0.4 is really dang fine for an alpha release, (the conversions between types are like butter!)

I'm wondering how Rome ought to react when it gets, well, slightly "off" input. I'll focus on the length of the description field for an entry, since that's where I ran into a problem with some RSS 1.0 feeds.

In com.sun.syndication.io.impl.RSS090Generator (or somewhere in that class' inheritance tree, at any rate), there are hardcoded length limits set on some fields; for the description field, it's 500. So if Rome encounters an entry description longer than that while working with a feed, it throws a FeedException.

I'm 100% down with being strict in what one emits, but here seems to be a case where throwing the exception will cut you off from accepting some feeds which aren't irreparably ill-formed (and according to (e.g.) the RSS 1.0 spec (http://web.resource.org/rss/1.0/spec), 500 is merely a _suggested_ limit).

Anyhow, I realize there are a few directions one could go with this issue. One approach that seems reasonably ecumenical is truncating fields that are too long (I suppose one might have to check that doing so leaves you with a well-formed structure).

Posted by Adam Constabaris on December 10, 2004 at 11:30 AM PST #

Post a Comment:

Comments are closed for this entry.

archives
links
i'd rather be