When you submit your assignment, each part (client and server) must be executable using a command of this exact form:
java -jar <path_and_filename> [<mode>]
All elements of your submission must be packaged in a single JAR file. The JAR file must have the following layout and contents in its root:
* The executable JAR containing the programs. This must be called runme.jar.
From the above two statements i think that there must be only one command to run this program whereas i was thinking that there must be two commands fired one to start the server and the other to start the client.
All configuration must be done via a GUI, and must be persistent between runs of the program. Such configuration information must be stored in a file called suncertify.properties which must be located in the current working directory.
Does this mean details like server port number, etc. This would then mean that the server and client are separately invoked
Getting a lot of queries in mind. Please could someone help me with these?
Hello Codean, Regarding jar packaging i recommend you look this thread
All configuration must be done via a GUI, and must be persistent between runs of the program. Such configuration information must be stored in a file called suncertify.properties which must be located in the current working directory
IMO this statement is requiring a GUI for the server. Here is my implementation, hope it help you:
Inside the jar there's a small launcher program which (depending on the argument to the JVM) launches another program which is either the server or the client. The main-class attribute of the jarfile points to that launcher.
Both client and server are Swing applications (though the server has an optional text-only mode which is automatically invoked when it's run on a machine/console without videohardware).
For testing I can just run the server or client directly, and in my choices.txt I've justified the system further by pointing out that this structure makes it possible to in the future package server and client independently and just distribute either one to whereever they're needed. Similar with the text-only mode for the server, which I justified as a need for testing as well as a capability for remote deployment to servers (which often means you have telnet-only access and can't run graphical subsystems).
For delivering the final submission, follow the jar-in-a-jar system outlined in the linked thread.