Hi all,
I am planning to submit my assignment this weekend.
This is my final review. I would like your opinion.
RMI Implementation: I have a DataClient interface which
has all public methods of Data. My DataWrapper class
has a reference to Data and implements DataClient.
My connections are provided by ConnectionFactory which
returns either a DataWrapper instance (for local mode)
or a FBNDatabaseImpl instance (for remote).
FBNDatabaseImpl extends UnicastRemoteObject and implements
FBNDatabaseRemote which extends Remote and DataClient.
Data: I modified the Data class and added a LockManager
class.
LockManager: Locked records are kept in a Hashtable with
the record as the key. I did not implement client ID
tracking and justified this decision in my designchoices.txt.
When the whole database gets locked all clients
attempting to aquire a lock wait. Stale client locks are
handled via a LockChecker class which is a periodically
running
thread which releases locks held longer than
a certain amount of time.
GUI: I use the MVC
pattern for client implementation.
My model extends AbstractTableModel. The controller
modifies the model and the model updates the JTable.
All my dialogs (searching, booking ...) are implemented
using JDialog. I created a generic dialog class
which all other dialogs extends to provide general
layout of the dialog. My search is also generic, meaning
you can use any field of the underlying database model
to search independant of the database model.
For the JTable I implemented Tooltips and sorting the
table in both directions.
The user can change the connection type on the fly.
My help window displays a HTML page including screenshots.
I have 2 jar files (client.jar, server.jar), I do not
use codebase, server.jar has all necessary classes included.
Documented each and every file I will submit.
Did extensive
testing all week, works fine.
Is there anything I missed? Is there anyone who sees a
flaw in there?
Thanks for your advice...
Best of luck.
jay
-----
SCJP2