Jump to: navigation, search

Difference between revisions of "Mylyn Task List"

 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Mylar]]  
+
[[Category:Mylyn]]  
  
 
==Repository Task Data==
 
==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 [[https://bugs.eclipse.org/bugs/show_bug.cgi?id=157257 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="http://bugs.eclipse.org/bugs" repositoryKind="Bugzilla" modifiedTs="timestamp">
 
 
<Attribute id="...priority" modifiedTs="timestamp" author="rob.elves">
 
  <Value>xxx</Value>
 
  <Value>xxx</Value>
 
  <Value>xxx</Value>
 
</Attribute>
 
 
<Attribute id="milestone" choices="milestone">
 
  <Value>M1</Value>
 
</Attribute>
 
 
<Comment hasAttachment="true" attachmentId="1">
 
  <Attribute id="...author">
 
  <Value>rob.evles</Value>
 
  </Attribute>
 
</Comment>
 
 
<NewComment>
 
    My new comment
 
</NewComment>
 
 
<Attachment id="1" isObsolete="false">
 
  <Attribute id="...attachment_date">
 
  <Value>date</Value>
 
  </Attribute>
 
</Attachment>
 
 
</TaskData>
 
 
==Index==
 
*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===
 
 
<RepositoryConfiguration>
 
 
<GeneralOptions id="...products" hidden="false" readonly="false">
 
  <Value>Mylar</Value>
 
  <Value>Nebula</Value>
 
</GeneralOptions>
 
 
<ProductOptions>
 
<Product name="Mylar">
 
  <Options id="....os">
 
    <Value>MacOS</Value>
 
    <Value default="true">Windows XP</Value>
 
  <Options>
 
  </Product>
 
</ProductOptions>
 
 
</RepositoryConfiguration>
 

Latest revision as of 20:26, 27 June 2007


Repository Task Data