r3 - 20 Mar 2008 - 09:48:49 - RandyLetnessYou are here: OSAF >  Journal Web  >  ContributorNotes > RandyLetnessNotes > NotificationTasks

Notification Tasks

These tasks assume the following:

  • We are only tracking item level changes

Model Layer

  1. Define set of events (ex. item created/item updated/item deleted/item added to collection/etc) and related info (user/ticket/collection/etc) to track and persist.
  2. Define model for event log
  3. Hibernate implementation of event log
  4. Define model for item change records (transient, used by the changed query)

Item Filter Layer

  1. Add api support for filtering based on reminderTime falling withing a time range
  2. Add reminderTime filtering support in StandardItemFilterProcessor?

DAO Layer

  1. Define DAO for event log including CRUD and query api
  2. Hibernate event log DAO implementation
  3. Add apis in UserDao? to query Users by user preferences
  4. Implement new UserDao? apis in Hibernate DAO

Service Layer

  1. Create aspect that wraps relevant service api calls and logs events
  2. Implement new service api to support 'changed' query that takes a date range and returns a list of item change records (use event log queries)
  3. Implement new service api tp support 'range' query that takes a date range and returns all items with a start date or reminderTime in the range (use ItemFilter?)

Protocol Layer

  1. Implement 'changed' projection
  2. Define microformat and formatter for item change records
  3. Implement 'range' projection

Job Scheduler

  1. Define Interface for Notifiers
  2. Define Job types
  3. Figure out how schedule jobs using user preference queries (including timezone pref)
  4. Figure out how to handle schedule changes (start out as job that runs periodically)
  5. Implement core scheduler functionality using Quartz
  6. Implement Notifiers as email/xmpp

Notes

The Job Scheduler is going to be by far the most work. The work can be split up into the core scheduler and the notifiers (xmpp/email/etc). The good news is that once the Notifier interface and item change record model has been defined, then all Notifier implementations can be coded and tested independent of all other work.

-- RandyLetness - 19 Mar 2008

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r3 < r2 < r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.