Task Update Tracker
- Title
- Task Update Tracker
- State
- Not started
- Time used
- Time estimated
Description
The goal of this task is to establish the Update Tracker mechanism in DOMS. The update tracker will provide the following functionality to DOMS
- Request Entry Pids changed since a given date.
Design
The Update tracker will consist of a number of components.
- A database, called DB.
- A JMS client
- The update tracker service.
The database will have two tables.
- Entry Pid - Date changed - View Name - Date published or Deleted - State:
- Associates each entry pid/view name combo with a changed date, and a date for the publication/deletion of the resource. State shows the current state: new, published, reworking (published, but taken back for further changes), deleted
- Object Pid - Entry Pid - View Name:
- Associates each pid in DOMS with a entry pid/view name combo.
There are two main flows in the service
- Update:
- JMS client will be notified upon change to an object
If the object change was create:
- if the object is not an entry object
- exit
- Add the correct line to table 1. State is set to new, or published (if the object is born active). Date changed is set. Published is set, if active.
- Add the selfreferential line to table 2.
- if the object is not an entry object
If the object change was delete
- Remove the object from table 2.
- If the object is the entry object from table 1: Change all entries for this entry object in table 1.state to deleted.
- exit
If it was a normal change:
- The object pid is looked up in table 2 to a set of entry pid/view name combos. If none are found, nothing more needs to happen.
- Each of these combos gets the corresponding entry date changed updated in table 1.
- If the change was in RELS-EXT:
- For each view name for the entry object
- Request the view object list for this entry object, from ECM
- Delete all entries for entry pid in table 2.
- Add all objects from the ecm list to table 2.
- For each view name for the entry object
If the object change was publish
- Update the state for the entry object in table 1, and the date published
- Lookup(date Since)
- Lookup in 1. to get object changed since date. (Summa search should only use date published, Summa gui should use date changed).
- If state is deleted, use the published date as the date of the deletion.
Secondly, there is the rebuild flow
- Rebuild
- Drop the contents of table 1 and table 2
- From ECM, get all view angles
- For each view angle
- Get all entry pids for view angle
- for each entry pid
- Get the View object list for this object, from ECM
- Add the corresponding entries to table 2.
- Get the latest change-date from the view object list, and set this as the changed-date in table 1. If published, mark it as published on the last change date.
The update tracker should not return object blobs, only dates.
Sub tasks
Title | State | Time used | Time estimated |
Documentation
Progress history
Iteration | Time used | Status | Notes | Tasks adressed |