Patrick Chanezon

Software Architect

Sun Software / USG / Portal

Rome RSS and Atom Java Utilities

“All feeds lead to Rome”

Rome in 5 minutes

When

Why

What

How

Code

Now

Then

Pax Romana

More

When? Rome Genesis

Non uno die roma aedificata est

Rome was not built in one day

March 2004

Alejandro, Elaine, and P@: internal pet project including a RSS and Atom parsing library

Goal was for it to be reused in all Sun products

May 2004

Decided better as open source

Raymond, “With enough eyeballs all bugs are shallow”

Bill Joy, “Most of the best talent in the world does not work for you”

java.net / business friendly apache license

Why? ESCAPE “Syndication Hell”

Syndication Standard war: 8 formats

Python users already have Mark Pilgrim's UFP

Abstract syndication to a common Java API

ESCAPE

Easy to use: give Url, get Object

Simple: simple mental model

Complete: all versions of RSS and Atom

Abstract: model what's common (∩ not ∪)

Powerful: deal with extension modules

Extensible: plugin architecture

What? Rome, modules, subprojects

Rome

Generic API, specific classes, converters

JDOM dependency

Modules

Handle other optional meta data present in feeds, in a standard way: namespace it, we'll handle it:-)

Subprojects

Fetcher: http (next is JMS), and xml over http – etags, encoding mess: let him do the walking!

Rome Anatomy

Code: conversion

String outputType = args[0];

URL feedUrl = new URL(args[1]);

SyndFeedInput input = new SyndFeedInput();

SyndFeed feed =

input.build(new XmlReader(feedUrl));

feed.setFeedType(outputType);

SyndFeedOutput output = new SyndFeedOutput();

output.output(feed,new PrintWriter(System.out));

Now: state of Rome

Soon Rome 0.4 ships

It is a beta: before was alpha

API pretty much stabilized

Unit tests complete enough and pass

Subprojects: fetcher and weather module

9 observers, 7 developers, 3 owners

Doc on wiki, different urls for each version

Then: Rome roadmap

First non spec related module

Finish weather subproject

Then others: help Joe Reger create his triathlon module

Make Rome more liberal

Create Danny Ayer's JSoup subproject

Fix broken XML

Urbi et orbi

To the city (of Rome) and to the globe

SnipSnap adopted it last week

Pax Romana in the feed war

Let's Nuke'em all!

More: resources

Books, Films

“Decline and Fall of the Roman Empire”, Edward Gibbons

Fellini “Roma”

“Content Syndication with RSS”, Ben Hammersley, O'Reilly

People

https://rome.dev.java.net/servlets/SummarizeList?list=dev&by=author&count=21&paged=false

Sites:

https://rome.dev.java.net/

Patrick Chanezon

patrick.chanezon@sun.com

Patrick Chanezon

2003-02-19T17:33:15