Skip to main content
Jump to: navigation, search

Mylyn Task List

Revision as of 14:27, 25 October 2006 by (Talk | contribs) (Refactoring Objectives)

Repository Task Data

Refactoring Objectives

  • Task Data Refactoring
    • Currently not normalized
      • Repository configuration options stored in same file
      • Configuration data is being updated upon load anyway
    • Presentation information such as hidden/readonly status fields being persisted (put with configuration?)
      • These flags could be provided by the Attribute Factory (no need to persist them)
      • Read-only can depend on permissions of the logged in user so it might need to be stored in the data model
    • Need to make sure configuration data is persisted as long as there is a single task for that repository
    • Attributes need to point to a field in the configuration data (e.g. milestone) that stores a list of choices
    • Operations being included
      • Needed for Trac since these depend on permissions of the logged in user
    • Task Data Externalization
      • Switch to XML
      • Possibly use IMemento
        • Requires dependency on UI?
      • Separate files vs. one BIG file
        • Single files: Easy to implement lazy loading, but possibly many files in a single directory
        • Alternative: Use Apache Lucene for storage
      • Consider zipping all the individual xml files together into one zip file (similar to Open Office file format ODF)
  • Lazy loading [bug#157257]
    • Currently loaded at tasklist load time
    • Could just have a flag indicating the existence of an offline file rather than load the data
    • What does this break?

Proposed XML Serialization

<TaskData version="1.0" taskId="1" repositoryUrl="" repositoryKind="Bugzilla" modifiedTs="timestamp">
<Attribute id="...priority" modifiedTs="timestamp" author="rob.elves">
<Comment hasAttachment="true" attachmentId="1">
 <Attribute id="">
   My new comment
<Attachment id="1" isObsolete="false">
 <Attribute id="...attachment_date">


  • Another option is to use Lucene as a data store

Repository Configuration

Refactoring Objectives

    • (option 1) Leave as responsibility of connector assuming a contract:
      • Provide IMemento upon startup as an option?
      • Remote configuration gathered periodically
      • Always available (even if repository is deleted, configuration sticks)
      • Given a configuration folder within .mylar to persist data (not ideal)
      • Task data combined with configuration upon presentation rather than persistence
    • (option 2) XML externalization
      • Available options per id (ie. taskdata.priority --> P1, P2, P3...)
      • Available options given a specific product selection <Attribute id="taskdata.components"><Value>Bugzilla</Value><Value>Core</Value>
      • Hidden/readonly status for attributes?

Proposed XML Serialization

<GeneralOptions id="...products" hidden="false" readonly="false">
<Product name="Mylar">
  <Options id="....os">
    <Value default="true">Windows XP</Value>

Back to the top