First, thank you for sharing your finding.
However, there are quite a few critics to Castor JDO, in my opinion is only a personal programming styles. Also, some inaccurate information. Thomas ---------- "In your document, you wrote "Castor only implements Eager relationship". It is not true. A quarter of your document was written based on that assumption, so I am not commenting on that." Lazy loading of collection have been already implemented. See, D:\cvs\one\castor\build\doc\castor-one.html ------ "Note that the problem with lazy loading is not incidental but fundamental and so cannot easily be corrected in a future version" Lazy loading of collection have been already implemented. ----------- "Normally Castor accesses instance variables by Getters & Setters. But these are in fact useless, they cannot be used for validation logic and Castor cannot use them to detect updates. So best to declare fields <...direct="true">, as shown in Parent." The above statement is misleading. Castor can detect changes using both getter/setter and direct fields. Which one to use is purely programmatic style. I prefer getter/setter. Remember that fields are shadowed, methods are overridden. It really depends on what you want. ---------- "However, if the record does not exist db.load() throws an exception rather than just returning null which is a pain." I can't disagree more on this. If you really want a null, simply put the load() in another private method with a try/catch block in it. I prefer exception, because it is. -------- "By default Castor neither locks nor detects changes from other transactions" It is completely opposite. Castor, by default, detect concurrent changes. User can turn it off in field-by-field basis in the mapping file (ie, <field dirty="ignore"/>). Castor has it own memory locks. Each load()/queried() object are read-locked. During db.create(), a row is inserted right the way. And, it essentially locked the created row. ----- "However, attempts to update the row correctly cause an optimistic crash." I don't understand what you mean. ------ "Unlike a relational database, Castor requires you to declare each end of a relationship redundantly" It is corrected that Castor JDO required the data object be bi-direction "links". I won't compare relationship with "links", and certainly won't count it as redundant. -----Original Message----- >From: Anthony Berglas [mailto:[EMAIL PROTECTED]] >Sent: Thursday, December 06, 2001 10:09 AM >To: [EMAIL PROTECTED] >Subject: [castor-dev] Additional DOCUMENTATION and test cases (JDO) > >Hello All, > >I have attached the result of an evaluation of Castor which includes several >significant test cases, performance benchmarks, and most importantly >additional documentation of how Castor JDO actually works. I hope people >find this useful. > >All feedback and criticism most welcome. As I will be away for a few weeks >please be sure to CC any replies to my direct address above. > >I would like to take this opportunity to thank the Exolab team for providing >Castor. > >Regards, > >Anthony > ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev