• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Ron McLeod
  • paul wheaton
  • Jeanne Boyarsky
Sheriffs:
  • Paul Clapham
  • Devaka Cooray
Saloon Keepers:
  • Tim Holloway
  • Roland Mueller
  • Himai Minh
Bartenders:

Passed SCJD.

 
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi All,
Finally passed the exam.
It took me whole year to complete the assignment.[4-5 dedicated months are enough. It took me long because of my professional duties.]

Here is the score.

General Considerations (maximum = 100): 92
Documentation (maximum = 70): 70
O-O Design (maximum = 30): 30
GUI (maximum = 40): 40
Locking (maximum = 80): 80
Data store (maximum = 40): 40
Network server (maximum = 40): 40

----------------------------------------------------------
Total 392/400

I also recieved an appreciation regarding my locking mechanism.

This site has helped me a lot during the build and submission. [I did not read any other book. I think this site has enough help.]

Thanks.

-
Mayuresh

 
Ranch Hand
Posts: 39
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Splendid!!! congratulations!
can you please answer these questions too?
Thanks.
 
mayuresh chaubal
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I can answer 2 of your questions.

3) why did you choose to have a separate business layer? what functionality did you put in there?
Separate business layer encapsulated operations in my data class.
the data class was never shown to client, all client could see was a business interface.
here is the business interface [or server interface]



i hope things can be clearer by looking at this. do reply in case of doubts.

4) how does your gui look like? Did you implement observer pattern?
my gui code was mvc.
a table model encaplsulated my data class.
there was a listener for every type of action. ie Search, Update, Add, Delete.
I used a singleton facade class to access all the current variable set in client.
ie
Client.getInstance().getUIManager().get...
and Client.getInstance().getUIManager().set...
 
Vasya Pupkin
Ranch Hand
Posts: 39
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I do use a separate interface to expose the data instances to the clients too. I would never call it "business layer".

4) it is kind of obvious what to code in gui part. I was curious about how the gui looks like. Where did you place your buttons, table, fields? Did you use a context menu? Did you allow sorting, moving columns? Did you use filtering? and so on

Thank you very much for the explanation.
 
mayuresh chaubal
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
gui had following components.

a menubar containing all the global functions with shortcuts.
a table in the middle. a popup menu for the table [Book/unBook Room]
searchpanel at the bottom.
the panel contained 2 labeled editable comboboxes.
1. to search hotel names
2. to search city names.
above to comboboxes suggested current hotel names and city names.

the panel also had a checkbox saying "show the rooms in avaiable in 48 next hours only."

each one of the above components was provided with search action listener. thus any action here would result in change in table rows.
there was no search button.

rest of the functions resided in menubar.
the functions were Create Record, Delete Record, BooK/UnBook Record [Redundant], Settings, About etc.

at the very bottom there was status bar. it dispayed status of previous action ie "Succeeded/Failed" with additional description

apart from this main window. there were extensions of dialog boxes which helped specify properties.
eg "Add new Record Dialog" or "Settings Dialog"

all the ui components refered global variables [as described in previous post].

let me know if you require more.
 
Sheriff
Posts: 11606
178
Hibernate jQuery Eclipse IDE Spring MySQL Database AngularJS Tomcat Server Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congratulations with your great score

mayuresh chaubal wrote:I also recieved an appreciation regarding my locking mechanism.


What was so special about your locking mechanism?
 
mayuresh chaubal
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
thanks roel.

and congratulations to you too.

regarding the locking.

there was Registry which held record numbers of currently locked records.
when new recordnumber was added to registry, a new lock was created and assigned to record number.
if the recordnumber was already present in registry, the thread would wait on lock assigned to the record number.
when the lock was removed. waiting thread would create new lock.
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic