After a long week I have finished my
SCJD assignment (URLyBird 1.3.2) and have fulfilled all the
must requirements as far as I know. In addition I've done basic
testing to check that my database class implementation works - I can read records from the database, delete them (and subsequently reuse the record number and disk space), create new records, search them, and the locking/unlocking appears to work as well from my simple tests in which I try locking records from different threads and sleeping a few seconds before unlocking - if the record numbers are the same, then the runtime is approximately
sleepTime * numThreads, but when the record numbers to lock are different the runtime is about
sleepTime so clearly parallelism is at work.
In fact, I do not see how they can automatically test my database implementation because they don't know what the constructor signature of my
Data class looks like. In fact, it takes in a custom type (
DatabaseIO) so I doubt they can automate this. My spec says only
Your data access class must be called "Data.java", must be in a package called "suncertify.db", and must implement the following interface...
My guess is that they just run a reflection test to make sure that the provided interface hasn't been modified and that the checked exceptions have the required constructors and are in
suncertify.db.
So functionality-wise, I feel safe. My GUI is minimalistic but supports the very basic find and book operations requested by the spec. I have generated an RMI stub for my class that implements
Remote, and my JavaDoc is sufficient + has a nice class diagram. The majority of my thoughts and dilemmas are in choices.txt as well as reasons why I did not implement some extra features (for example, unbooking a reservation). I'll try some testing on other platforms as well just to make sure.
Does it look like I'm ready to submit?
Thanks!