aspose file tools*
The moose likes Certification Results and the fly likes OCMJD Passed Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Certification » Certification Results
Bookmark "OCMJD Passed" Watch "OCMJD Passed" New topic
Author

OCMJD Passed

Jason Then
Greenhorn

Joined: Jun 26, 2010
Posts: 17
Hey ranchers,
Just thought I'd let you all know I passed - yay!
I'd like to thank the great people who contribute to this board, probably wouldn't have made it without the valuable amount of information contained here
In particular I'd like to thank first and foremost both Roel De Nijs and Roberto Perillo for their dedication and commitment to answering questions on this board - it must get so repetitive hearing the same things all the time but it helps!
I'd also like to thank others on this board, like Michael Grossenbacher, Alecsandru Cocarla and Pedro Kowalski for their contributions.

So a few details about my project:
General
- I had URLybird (not sure which version).
- Started around 12/06/2010, submitted on 09/11/2010. It actually took me while to get into the swing of things, initially, but I eventually found motivation
- 58 Java Classes total
- Used a modified version of Roel's ant script to compile, run pre-build tests, assemble and run post-build tests
- Used TestNG for unit tests
- Used Windowlicker for Swing GUI tests.
- Used Mockito for mocking and stubbing of Objects.
- 3000+ Unit tests (most of them were parallel tests on the Data class).
- Used a three-tier architecture.
- Only produced plain-text documentation (no HTML) for user guide.
- Avoided statics and singletons where possible - relied on dependency injection for testable code - see here.

Data layer
- Used a record cache (so much easier than an IO based solution)
- Used Immutable Room objects to model the data.
- Statically defined the database schema
- Implemented logging in this layer.
- Did NOT synchronize all methods of the Data class - used Thread safe data structures in java.util.concurrent.
- Created my own Thread-safe LockableRecord class which stores lock cookie, lock state and acts as a monitor.

Service layer
- Used RMI
- Only defined two methods - bookRoom and findByCriteria
- Used Factory pattern to control how Services are constructed for the Presentation layer
- Did NOT use any singletons

GUI
- Kept it really simple and minimalistic
- Validated input where possible - e.g. no letters allowed for the port number field, or customer id dialog.
- Tooltips and Mnemonics everywhere.
- No icons.
- No contextual help.
- No GUI when running in Server mode.
- Encapsulated long running tasks within a modal, task running dialog - so as to not block the GUI.

And that's about all I can really think of. I'll post up my Data layer tests if people are interested - let me know by posting comments if you'd like to see them or not ;)

Cheers,
Jason
Roel De Nijs
Bartender

Joined: Jul 19, 2004
Posts: 5216
    
  12

Congratulations Jason

Thanks for the kind words

3000+ unit tests, that's really impressive.


SCJA, SCJP (1.4 | 5.0 | 6.0), SCJD
http://www.javaroe.be/
Roberto Perillo
Bartender

Joined: Dec 28, 2007
Posts: 2265
    
    3

Howdy, Jason!

Great news, champion! Congrats for the achievement!!! We're happy for you!!!

it must get so repetitive hearing the same things all the time but it helps!


Well, after sometime, we have already answered the same (or almost same) questions... so we can point people to other threads that address the candidate's problem, so we can save some time too


- Did NOT synchronize all methods of the Data class - used Thread safe data structures in java.util.concurrent.
- Created my own Thread-safe LockableRecord class which stores lock cookie, lock state and acts as a monitor.


You know what, today I think that it is a better approach, even though performance is not a requirement in this certification. As you mentioned, I'd avoid using singletons too. I am tech member of a brazilian Java magazine called MundoJ (it used to be MundoJava, but it is currently addressing subjects other than Java too), and recently we had an interview with the GoF. One of the patterns they said that they would drop from the catalog is the Singleton pattern if there was a second edition of the book. They also said that they would include DI and Type Object.

I also think it is fancier to use the java.util.concurrent API


Cheers, Bob "John Lennon" Perillo
SCJP, SCWCD, SCJD, SCBCD - Daileon: A Tool for Enabling Domain Annotations
Robert Benson
Ranch Hand

Joined: Apr 04, 2010
Posts: 56


SCJP 6 , OCMJD 6 ,
http://www.robertbenson.ie/
Piotr Nowicki
Ranch Hand

Joined: Jul 13, 2010
Posts: 610

Congratulations mate! :-) Well done!



OCP Java SE 6 Programmer, OCM Java SE 6 Developer, OCE Java EE 6 JSPSD, OCE Java EE 6 EJBD, OCE Java EE 6 JPAD, Spring 3.0 Core Professional.
Rafal Wasielewski
Ranch Hand

Joined: Jan 08, 2010
Posts: 372
Congratulations


SCJP 6.0 (86%), SCWCD 5.0 (92%), SCBCD 5.0 (93%), MCTS(SQL Server 2008)
Gaurav Sagar
Ranch Hand

Joined: Sep 08, 2010
Posts: 97

congrats


SCJP 1.6(91%), SCWCD 1.5(100%), SCBCD in progress
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: OCMJD Passed