apache apachecon app apple asf atom atomprotocol atompub barcamprdu blogapps blogging businessblogging conferences family feeds foss general glassfish google humor ibm java javaone links linux mac microsoft movies music netbeans opensocial opensource photos politics rest roller rome rss socialnetworking socialsite socialsoftware sun triangle trianglebloggers vacation webdev webservices wiki


Tuesday Feb 15, 2005

Planet Roller internals

I promised some details on PlanetTool (the command-line tool that generates Triangle Bloggers) internals, so here goes. This is what happens when PlanetTool runs:

diagram of PlanetTool

Startup

(1) We start by reading the XML configuration file (via JDOM and XPath)

(2) From the config, we create a config object, subscriptions and groups

(3) A group has subscriptions

(4) And a subscription can belong to more than one group

Refresh subscription data

(5) For each subscription, call the Rome Fetcher

(6) Fetcher uses Conditional Get and Etags and caches feeds on disk

(7) Feeds parsed into entries objects and added to subscription objects

File generation

(8) Call Velocity Texen with name of a control template

(9) Texen calls our control template

(10) Control template calls file generation templates

(11) Templates calls planet object to get config, group, subscription, and entry objects needed to generates files needed for aggregated site (HTML, RSS, OPML, etc.)

This work is licensed under a Creative Commons License.
Copyright 2002-2007, David M Johnson (dave.johnson at rollerweblogger.org)

This is a personal weblog, I do not speak for my employer.