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.)



Like this post?  del.icio.us Bookmark it   |   submit to dig digg.com Digg it   |   slashdot Slashdot it   |   technorati See who links to it

Comments:

Nice work Dave. I really like this architecture, and its nice utilization of Rome and Texen. I can see Henri's point about considering releasing it as a separate from Roller. Some folks might be interested in just running aggregators, and aggregator hosts may not coincide with blog server hosts even in cases where one wants both. Good stuff.

Posted by Anil Gangolli on February 15, 2005 at 10:50 AM EST #

Yes, I agree. In the near-term I'm shooting for a 1) a command-line tool that is independent of Roller and 2) a Roller integrated version with a UI for administration and database storage for all config and subscription data.

Posted by Dave Johnson on February 15, 2005 at 11:17 AM EST #

Post a Comment:
  • HTML Syntax: Allowed

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.