As promised, here is how I solved the
SCJD exam.
I am listing everything that I wasn't certain about during my design, and what I decided. I hope that is is useful to others:
1) I modified the database as opposed to extend it. Seems like everybody did this.
2) I altered the LOCK/UNLOCK signature to also include the "user ID" as well as the record that gets locked. Seems like the most common solution.
3) Remote vs. Local mode: I created an INTERFACE called "FlightDataInterface". I then created two classes called "FlightDataLocalMode" and "FlightDataServerMode" which both implemented the "FlightDataInterface". My CLIENT used an instance of the "FlightDataInterface" so I could pass it "FlightDataServerMode" or "FlightDataLocalMode" depending upon mode of operation. This let me have one class to handle either mode of operation. As far as I can tell, this is the obvious way to solve this, and most people take a similar approach. There are certainly others.
4) I used RMI instead of Sockets (since they were easier to use). I don't know anybody who used sockets.
5) For my command line arguments, I gave the user two options. The user could enter NO COMMAND LINE arguments, and then the program would prompt the user to enter the necessary information. However, the user could also enter command line arguments preceeded by a flag such as "-PORT=1099". I basically wasn't certain if I was allowed to use the flags such as "-PORT", so I played it safe offering two options.
6) For the deprecated methods, I pretty much used the standard solution that everybody uses on this news group and has been posted a billion times. I used "UTF-8" as my encoding
string.
7) My GUI was very simple. I had a simple window for my SERVER, and a simple, bare bones GUI for my CLIENT. I provided what was asked for and no more.
8) For my "how to run" the CLIENT and SERVER, I included *BOTH* an HTML and a plain ASCII file for each one.
9) For my design document, I wrote it using straight ASCII. The assignment doesn't say what to use for this, so I played it safe. Got perfect on my docs, so I guess this was OK.
10) For my "README.txt", I listed EVERY file I was submitting. This was a pain. But, I didn't want to lose points on this, so I played it safe.
FOR THE ESSAY:
I already posted a pretty detailed overview on how to prepare for the essay exam in early February of 2002. I think that reading that will allow anybody to prepare for that part.
HOW LONG FOR RESULTS:
It seems that after Sun gets both your assignment and your essay,
you should get an answer after 2 weeks.
If you don't hear anything after that, call to see if SUN has both your essay and your assignment. In my case, Prometric lost my essay. I called SUN after two weeks and found the missing essay exam problem. It took over two weeks and a million phone calls from me before SUN did anything about the problem, so you have to keep all over them. However, after they got both, it took me two weeks to get my results.
SCORE:
Total Score: 135
General Considerations(maximum = 58): 48 Documentation(maximum = 20): 20
GUI(maximum = 24): 18
Server(maximum = 53): 49