Changes between Version 1 and Version 2 of SERVER_DATABASE_PERSISTENCE
- Timestamp:
- 02/12/10 18:34:50 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SERVER_DATABASE_PERSISTENCE
v1 v2 4 4 5 5 = Analysis = 6 ^(Give as much as possible of the needed information for designing and implementing the task in the following sections.)^7 6 8 7 == Overview == 9 ^(Provide a brief overview of the whole task in its first revision. Stick to the current revision of the task, but keep an eye to the whole task progress, and stay alert for possible smells.)^ 8 The Server have to keep it's resource data in a flexible and extend-able database. The information should be stored and loaded when the Server is restarted, the current functionality should continue to work. 10 9 11 10 == Task requirements == 12 ^(List the necessary requirements that the task must fulfill.)^ 11 * Choose an appropriate database for storing. 12 * Create a good database schema for storing the resources and the history 13 * Store in the database the resources and the history 14 * Should be able to pick a resource data at a specified revision 15 * Should be able delete and create a resource in the database 16 * Should be able to store the changes of an resource in the database. 17 * Create an API that communicates with the database using JDBC. 18 * Create a JDBC template to query easy the DB 19 * Think of a way to manage the DB connection 20 * Connecting to the DB should be treadsafe. 21 * Make the facade and the web use the database 22 * Preserve the current functionality - collaboration, skipping changes, web upload/download/browse/delete 23 * Make a mock server from the old implementation of accessing resources in the server memory (optional) 13 24 14 25 == Task result == 15 ^(List the end product of the task (for example "Source code", "Wiki page", etc.))^ 26 Source code and tests. 16 27 17 28 == Implementation idea == 18 ^(Provide some rough implementation idea(s).)^ 29 * Use H2 database for the database. 30 * Use ThreadLocal connection variables for the ThreadSafe connections. 31 * Create special WebResourceAccess to replace the current mem accesses in the web, but to preserve working with helpers. 32 * Use the current Persistence API to store the immutables in the DB. 19 33 20 34 == Related == 21 ^(Add links to related tasks that could be useful or helpful.)^ 35 No related tickets for now... 22 36 23 37 == How to demo == 24 ^(Provide instructions for demonstration of the task.)^ 38 * Show the working web and collaboration in Sophie but with the DB implementation 39 * Web interface 40 * Upload a book through the web interface 41 * Browse the books in the web interface 42 * Download and delete the book. 43 * Collaboration 44 * Save a book on the server 45 * Make some changes from different Sophie clients 46 * Undo the change, redo them 47 * See the actions in all the clients 25 48 26 49 = Design =