I've just got info from the Oracle that I've passed the OCMJD 6. I would like to thank all you Ranchers who answered the questions and were very helpful: (alphabetic order, so no one should feel bad :-) Sorry if I missed someone!
Roel De Nijs
Also thanks a lot for some archival questions authors and responders which saved me a lot of time!
Few basic information for future candidates.
I've registered for the task assignment (URLyBird 1.1.1) on 29.09.2010 and submitted it on 8.11.2010. I found OCMJD more fun and faster to prepare for than OCPJP. I have a part-time job as a Java developer (6 hours/day, 5 days a week) and have a girlfriend (which is quite relevant information when you consider how much free-time you have left ;-)
- I created two-tiers, three-layer architecture (GUI + BLL + DAO),
- used RMI instead of Sockets,
- GUI was quite simple but was prepared for long-time operations (progress bars, waiting cursor, etc.),
- GUI was just executing operations from the BLL (no logic in GUI so no locking at all, no lost-locks, etc.),
- BLL wasn't a singleton but it was thread-safe (because of RMI),
- DAO was a singleton class with all methods synchronized and thread-safe instantiation,
- I used a records cache which was loaded during application server startup and saved during shutdown (can be modified to create timer-based commits to prevent data loss during server crash),
- No 48-hours rule implemented,
- User-guide was in TXT format,
- Javadoc generated from the package level and all above ones,
- Javadoc provided for every field and method (even private ones, the only exception was popular implemented/overriden methods like Object.equals(-) or others)
- All unsure situations and even minor (but important from future developer point of view) decisions were documented in Javadoc and/or choices.txt
- Used Findbug to find some minor and few medium bugs before sending project to the assessor.
- Used Roel's Ant script for building end-jar and Roberto's deadlock test cases,
Size of choices.txt: 48,5 kB Size of userguide.txt: 14,4 kB Number of classes/interfaces: 41 Number of packages: 5 Number of code lines (with comments): 6717 Number of pure code lines: 2219
Once more - thanks a lot guys for your help! Couldn't made it without you!