samskivert notes -*- mode: outline -*- * To do: Modify JORA such that if it doesn't find a matching public field in the persistence object, it looks for getter/setter methods that will handle the encoding/decoding of the composite fields during persistification. Fix message.properties single quote handling. In messages that have translation substitutions ({0}, {1}, etc.), one has to use '' but in plain strings they have to use \'. It should be one or the other. Make MessageManager.resolveBundle more efficient because presently it iterates over all locales looking for an exact match *every* time a message is fetched. Make SiteResourceLoader cache the resources it loads (locate and make use of someone else's caching services rather than rewheeling). * Minimal database services ** Requirements - Connection management (configuration file mapping database identifiers to JDBC info; connection pooling if desired; automatic reconnection on transient error) - Support for retrying transation on transient error - Mechanism for ironing out database idiosyncrasies * O/R database services ** Requirements - Generate schemas from XML description - Generate Java source from XML description - Load object from table - Extensibility (extend tables & objects) - Partial loads (load subset of object fields) - Partial updates (update subset of object fields) - Joins (populate objects w/data from multiple tables) - Multiple queries (populate objects w/data from multiple queries) - Support multiple operations in the same transaction - Support automatic transation retries on transient errors - Extensible support for smoothing over DB vendor inconsistencies - Handle OID assignment - Support mapping of multiple classes to one table (ie. address contains zipcode object, address table contains all the information) - Loose coupling between in memory objects and data in database - Ability to load entire object and dependencies at once or as needed ** Postponed or explicitly ignored requirements - Object proxies with just in time loaded fields (use partial loads instead) - Cursor support ** Related projects (in some sort of order) - Castor http://castor.exolab.org/ - Town http://share.whichever.com/index.php?SCREEN=town - POEM http://www.melati.org/ - s2j http://www.bitmechanic.com/projects/s2j/ - COBRA http://www.kimble.easynet.co.uk/cobra/index.htm - DbGen http://dbgen.sourceforge.net/ - JORA http://www.ispras.ru/~knizhnik/ - TableGen http://tablegen.sourceforge.net/ - DECCO http://www.khill.org/decco/ - Osage http://osage.sourceforge.net/ - DOGEN http://sourceforge.net/projects/dogen/ ** Related information - http://www.ambysoft.com/mappingObjects.html - http://www.ambysoft.com/persistenceLayer.html