Rick Fortier

Ranch Hand
+ Follow
since Jun 04, 2001
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
(keep public parts private until JForum day)
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt
Moderation Tools

Recent posts by Rick Fortier

Because of the requirements, BookFlight must reside on the client side. This is not a good real-life design. But that is what they want.
I think your question is really, "Should I hard code the names of the database fieldnames in the gui".
The answer would be that you should put the column names in a constant somewhere. They have to be hard coded somewhere.
Of course if your question is "Should I hard code the cities that can be selected", then the answer is no. The way I did it was on startup to get all list of all of the city names using a TreeSet class. Then you could also provide a way for the user to refresh this list from a menu.
After I completed this assignment, I had a discussion with someone else about another way to do this. I did not code it that way, and so this thought is not completely thought out in my mind.
If the client calls the RMI interface on the server which creates a connection object, and returns this object to the client, then this connection object can be used to uniquely identify the client on subsequent calls.
This would mean that the collection object would create a unique id, maybe by using the UID class, and use this uid to lock the record. So when the client called lock(int) as a method of the connection object, then the object would know who the caller was.
Somehow the connection object would have to have access to a singleton class which held the current locks collection.
This would allow you to uniquely identify the user's session and you would not have to modify the lock/unlock signatures.
Any thoughts?
I used CardLayout and GridBagLayout and passed. Aren't all layout managers from AWT?
I don't the answer but was curious as to why you would need it. On my design I just got the selected row when the user clicked on the Book Flight button.
int rowSelected = table.getSelectedRow()
Did you start the rmiregistry? Did you register the interface?
Peter -- Wow, I am surprised you didn't say anything about DirtyHarry's name as not being acceptable.
Yes, I considered this also. The first message is for when the user you already know that the request is for too many seats. The second message is when their were enough seats a minute ago, but someone just beat you to them.
My second message says, "The seats you requested are no longer available". It might be a little more clear.
It looks good. I used a four layer design on my assignment. I made the gui ignorant of the Data class, put all of the business and rule based logic in my middle layer which I called FlightServices, had a server layer to provide the RMI interface and locking, and put all of the file access in the Data class.
So Data doesn't know anything about locking, because this is not needed when running in local mode.
The FlightServices layer either instantiates a Data object or my server object. Both of them implement the same interface. FlightServices has methods such as searchForFlights, BookFlight, getListOfCities. So the gui does not have to know the details of the lock, read, modify, unlock mechanism. Also FlightServices only throws FlightServicesException-s.
Please read my article on The Mystery of the Unused Methods to answer your other questions.
The best thing is to download the assignment. There is no time limit.
I would recommend using the latest production version of the JDK, which I think is 1.3.1. But you can use 1.2 if you wish.
Since you got a perfect in General Considerations, can you tell us what your Design Choices were?
What did you do about locking, Data - modify or extend, RMI or Sockets.
How did you handle: client id tracking, lock timeout, automatic downloading of stub, executable jar or not, user selection of connection method, automation, and gui online help.

Originally posted by Doug Harvey:
I received my score 9 calendar days after taking the exam.
Thanks to many on this site. Most of all, reading about other's experiences helped in confidence in taking tests (Developer and Programmer).
As stated elsewhere, the developer test is nothing if in fact you have done your own work on the assignment. You basically need to study only your own documentation (if you have done it properly per the instructions) in order to pass the test.
Therefore, plan to take the exam immediately after uploading the assignment.

That is a great score. I wish mine was that high.
How did you handle client id?
Did you make your client jar executable?
Formatting based on datatypes is not a requirement. Just display it as it is.
The first was that I listed two files 'client.jar' and 'server.jar' as simply containing all class files and resources necessary to execute the client and server respectively. I did not list the files in the archives. However, I did list every source file or documentation file with an explanation.
This is fine
The second mistake I think mades was to give instructions on how to start the client and server in terms of starting the VM and providing classpaths, etc. For the client app I did not give instructions on how to connect to the server in the README.txt file. I thought they'd refer to the client help documentation for that or would know to press the big connect button.
Did you provide any instructions on how to start the client app from the command line (i.e. policy file) in the README.txt?
If not, then you should probably re-upload. You are allowed to upload as many times as you want until you take the written exam. They told me in an email that you must do the upload before you take the written test

What was your score? And how long did it take you?