Abdera: Possible ROME Merger to form single Java Syndication stack
It began last week with IBM's James Snell, Sam Ruby, and Robert Yates submitting a proposal to the Apache incubator for Abdera, whose goal would be to provide a high quality implementation of Atom and the Atom Publishing Protocol specs. The initial code contribution would be donated by IBM; it is based on the same Axiom / StaX code that underlies Apache Axis2. The source code is currently available on James' site.
The Apache Incubator PMC asked them if they'd consider collaborating with the popular ROME project (which also has Atom support), in response to which the Abdera folks wrote a proposal to the ROME mailing list suggesting that the two projects merge, adding some performance figures that Abdera benchmarks with a 10 times decrease in CPU cycles and memory consumption than ROME. ROME co-founder Patrick Chanezon blogged his enthusiastic agreement to the merger, and even published a potential roadmap for the new combined project:
Patrick is now proposing to the ROME developer community to merge ROME with Abdera under Apache, as well as integrating Dave Johnson’s blogapp tools, in order to "create a single coherent stack of Java tools to deal with syndication data. " James Snell has recently also blogged about Abdera's architecture. It's good to see all these different groups choosing to collaborate instead of compete!
- Finish ROME 1.0 and end the beta
- Start ROME 2.0 using JDK 1.5 (Generics) with Abdera integration
- Agree on a common bean format for Atom
- Make Abdera a ROME parser for Atom
- Make streaming parsers for the other feed types
- Create a common repository of test cases gainst which to be "liberal"
- Create a Universal feed service: it is an Atom store that can be used for servers or client workstations: handles feed fetching, with a query API, the ROME Mano filtering API, and the Google Data API. On the server developers can use that to create any kind of GData server, on the client it could become the Linux alternative to Microsoft's excellent client side RSS APIs and infrastructure.
- Create a ROME module repository ala maven where a set of extension modules will be maintained ala maven repository.
- JSON serializer for Mano
- Semantic web extensions, to make it easier to consume/generate semweb data from regular feeds. Danny Ayers could help with this.
- Build an aggregator on top of the server: Roller aggregator may be a good start.
- Microformat parsers and translators: build parsers to detect microformats in Atom payloads and tranlate them to popular xml extensions (ex: hCalendar to Google Data Calendar).