|
|
(10 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | ==Refactoring Objectives==
| + | [[Category:Mylyn]] |
| | | |
− | * Task Data Refactoring
| + | ==Repository Task Data== |
− | ** Currently not nomalized
| + | |
− | *** 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?)
| + | |
− | ** Operations being included
| + | |
− | **Task Data Externalization
| + | |
− | *** Switch to XML
| + | |
− | *** Possibly use IMemento
| + | |
− | *** Separate files vs. one BIG file
| + | |
− | *** Consider zipping all the individual xml files together into one zip file (similar to Open Office file format ODF)
| + | |
− | | + | |
− | * Lazy loading
| + | |
− | ** 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?
| + | |
− | | + | |
− | *Repository Configuration
| + | |
− | ** (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?
| + | |
− | | + | |
− | <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>
| + | |
− | | + | |
− | ==XML File Formats==
| + | |
− | | + | |
− | ===Proposed Repository Task Data===
| + | |
− | | + | |
− | | + | |
− | <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>
| + | |
− | | + | |
− | <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>
| + | |