Changes between Initial Version and Version 1 of GROUP_PERSISTENCE_R0


Ignore:
Timestamp:
02/26/09 10:58:56 (16 years ago)
Author:
boyan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GROUP_PERSISTENCE_R0

    v1 v1  
     1[[BackLinksMenu]] 
     2 
     3[[TicketQuery(summary=GROUP_PERSISTENCE_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] 
     4 
     5= Analysis = 
     6 
     7== Overview == 
     8This group of tasks is about improving the base.persistence module and providing a well-designed, easily usable and extensible persistence library. After this task is complete, the following will be true: 
     9 * The base.persistence module will provide all the commons needed for persistence. 
     10 * The intermediate storage format will be improved where needed. 
     11 * A format registry tracking all current formats and their abilities to save/load will be present. 
     12 * Functionality for saving immutables and pro-things will be present. 
     13 * Extensions and extension points will be introduced to simplify the usage of the library. 
     14 * All the code related to persistence will conform to our code standards. 
     15 
     16== Task requirements == 
     17 * Try to devise a way the SharedLoader and SharedSaver to be consistent (currently they are not - see the notes on the persistence discussion that was held on 2009-02-18). 
     18  * Another option is to rename them so that people don't get confused by the similarity in their names. 
     19 * See how and where the intermediate storage format will be used and improve where needed. 
     20 * Define how properties and immutables will be persisted (a good idea is to store the immutables as string). 
     21 * Implement the annotations that were discussed - @Persist, @Immutable (see the video of the discussion for more information on these): 
     22  * @Persist allows saving of pro-things in different formats. 
     23  * @Immutable handles persistence of immutables. 
     24  * Both annotations are used by the savers to track what and how should be saved. 
     25  * An annotation for things not to be persisted might be needed. 
     26  * (Optional) Provide a class that handles all immutables coming from the JDK. 
     27 * Provide extension points for registering formats and for savers and loaders. 
     28 * Design and implement a format registry that keeps track of all formats and their features and limitations: 
     29  * see [wiki:BASE_PERSISTENCE_FORMAT_REGISTRY_R0] for more ideas on that. 
     30 * Ensure backward compatibility. 
     31 * Consider forwards compatibility in the design. 
     32 * (Optional) Provide a wiki page - [wiki:BASE_PERSISTENCE] with detailed documentation on the library created so that everyone can easily get into it. 
     33 
     34== Task result == 
     35 * Source code 
     36 * (Optional) Wiki page 
     37 
     38== Implementation idea == 
     39 Watch the design discussion on persistence to get an idea of how things should be done. 
     40 
     41== Related == 
     42[wiki:BASE_PERSISTENCE_COMMONS_R0][[BR]] 
     43[wiki:BASE_PERSISTENCE_INTERMEDIATE_STORAGE_R0][[BR]] 
     44[wiki:BASE_PERSISTENCE_FORMAT_REGISTRY_R0][[BR]] 
     45[wiki:BASE_PERSISTENCE_PROPERTY_FORMAT_R0][[BR]] 
     46[wiki:BASE_PERSISTENCE_IMMUTABLES_R0][[BR]] 
     47[wiki:BASE_PERSISTENCE_FORMAT_POINT_R0][[BR]] 
     48http://asteasolutions.net/videos/ 
     49 
     50== How to demo == 
     51  * Explain the ideas of the library. 
     52  * Show the source code. 
     53  * Run the tests/demos. 
     54  * (Optional) Show the created wiki page. 
     55 
     56= Design = 
     57^Describe your design here. 
     58 
     59= Implementation = 
     60^Describe and link the implementation results here (from the wiki or the repository). 
     61 
     62= Testing = 
     63^Place the testing results here. 
     64 
     65= Comments = 
     66^Write comments for this or later revisions here.