Last modified 16 years ago
Last modified on 01/28/09 15:40:00
Analysis
Overview
This that is about the extensibility of the persistence format of Sophie 2.0. The persistence format should provide an extension point for new things to be persisted.
Task requirements
- Design a way to persist new things.
- If the client implements a new plug-in that uses something which may be persisted, the format should provide him the ability to do so.
- Persisting new should should be independent regarding the original Sophie 2.0 format.
- Sophie 2.0 persisting format should provide extension point for persisting.
- Everything that is to be persisted from a certain point on, should be declared as an extension to the persisting format of Sophie 2.0
- Provide a wiki page that fully describes the way the client should implement new extensions for the persistence format.
- Write unit test with a mock extension of the format that tests its extensibility capabilities.
- All important wiki content should be put in the corresponding section of a wiki page => BASE_PERSISTENCE
Task result
- Source code.
- Wiki page.
- Unit Tests.
Implementation idea
- view code:
- => trunk/sophie2-platform/modules/org.sophie2.base.persistence
- => trunk/sophie2-platform/modules/org.sophie2.main.model.book.format.r1/src/main/java/org/sophie2/main/model/book/format/r1
- => trunk/sophie2-platform/modules/org.sophie2.main.model.book.format.r2/src/main/java/org/sophie2/main/model/book/format/r2
- create the extension point of the format after a thorough design.
- create a wiki page named "BASE_PERSISTENCE_FORMAT_POINT" and provide explanation of how to create an extension to the format.
- write unit test with mock extension.
Related
- BASE_PERSISTENCE_COMMONS_R0
- BASE_PERSISTENCE_INTERMEDIATE_STORAGE_R0
- BASE_PERSISTENCE_FORMAT_REGISTRY_R0
- BASE_PERSISTENCE_PROPERTY_FORMAT_R0
- BASE_PERSISTENCE_IMMUTABLES_R0
How to demo
- Show the wiki page that describes the extensibility.
- Run unit tests.
Design
Implementation
(Implementation results should be described and linked here (from the wiki or the repository))
Testing
Comments
(Write comments for this or later revisions here.)