Required, precisely named submission files, NO
subdirectories, NO packages:
Refer to
Checklist Instructions as needed.
Change "No" to "Yes" as you complete the tasks:
Task | Complete? |
| |
[Put your name here] | No |
I understand that making false claims on this checklist is an academic integrity violation. | No |
Except for the ColorServer code I have not copied any other Java source code for this assignment. (No Inet code is allowed!) | No |
Academic Integrity quiz completed with perfect score? (Required before assignments can be graded for credit.) | No |
<> | |
My code is compatible with the version of Java required by this course | No |
Included the required full Header Information in my Java file? | No |
Saved THIS file in plain-text HTML format, and viewed it in a browser to check the appearance? | No |
All files correctly named with no subdirectories and no packages? | No |
Copied my completed and compiling JokeServer.java file to JokeServer.java.txt and submitted the .txt version to D2L? | No |
Checked to see that my JokeServer.java.txt file correctly produced a TII report? | No |
Verified that the TII overlap percentage is beneath the maximum allowed? [We will not grade submissions over the TII limit for credit.] | No |
Downloaded my own JokeServer.java.txt file submission from D2L, renamed it to JokeServer.java and checked that it still compiles and runs? STRONGLY RECOMMENDED. | No |
<> | |
| |
. | |
| |
JokeServer compiles and produces the JokeServer, JokeClient and JokeClientAdmin classes? | No |
JokeServer, JokeClient and JokeClientAdmin all run as separate processes from the command line? | No |
JokeServer uses Java serialization and object marshalling as in the ColorServer (required) | No |
JokeClient retrieves at least one joke from the JokeServer | No |
Jokes are retrieved in sets of four, then the cycle is repeated endlessly | No |
Can simply press <ENTER> on the JokeClient console to get the next response | No |
All of the correct port numbers are used throughout | No |
The username (e.g. "Joseph") is displayed on the Server console every time a JokeClient connects. | No |
I have used clean, inoffensive jokes and proverbs throughout | No |
I removed Elliott's comments and added my own extensive comments (your ColorServer comments may be repeated) | No |
I captured console output from my JokeServer, JokeClient and JokeClientAdmin processes (simple copy and paste recommended!) showing my running system and placed all that output in a file named JokeLog.txt. I then inserted JokeLog.txt into the bottom of my JokeServer.java file as Java comments. | No |
I have made two or more scholarly postings in the JokeServer thread on the D2L forums, and inserted them at the bottom of my JokeServer.java file as Java comments. (Easy!) | No |
. | |
| |
JokeClientAdmin compiles and runs | No |
Can start JokeServer[s], JokeClient[s], and JokeClientAdmin in any order | No |
Asynchronously spawned Admin Looper simultaneously listens for Admin connections | No |
JokeAdminClient correctly toggles the JokeServer between Joke and Proverb modes | No |
Can simply press <ENTER> on the JokeClientAdmin console to toggle the JokeServer mode | No |
The current mode is displayed on the JokeClientAdmin and JokeServer consoles after a mode toggle | No |
I have handled the significant design problem such that the ModeWorkers and JokeWorkers communicate: the Admin Client changes the mode, and the JokeWorker knows about it. | No |
Jokes and Proverbs are correctly labeled JA, JB, JC, JD, PA, PB, PC, PD. | No |
The user's USERNAME is inserted into the jokes and proverbs. | No |
. | |
| |
JokeServer accepts multiple JokeClient connections without interference. | No |
Maintains CONVERSATION STATE for each client so that a complete set of jokes/proverbs is seen before the cycle begins again, without repeating any jokes or proverbs within the cycle. | No |
Maintains CONVERSATION STATE for each client even when jokes and proverbs are interleaved. (Be careful that you understand this statement!) | No |
I have tested my JokeServer with this many simultaneously active JokeClients | 0 |
. | |
| |
Jokes and Proverbs are randomized when each new cycle begins | No |
Can start and stop JokeClientAdmin at any time | No |
Can run JokeServer and JokeClient without JokeClientAdmin | No |
I believe I have handled command line arguments correctly so my JokeClient and JokeClientAdmin can connect to the JokeServer over the Internet from different machines, possibly located anywhere on Earth. This is your opinion since we do not require that you test this feature. | No |
I have tested my JokeServer system over the Internet or my home/office Intranet so that it runs on mulitple machines using IP addresses other than those for localhost. (Not required) | No |
. | |
. | |
. | |
| |
Implemented Secondary JokeServer | No |
Primary and Secondary server modes are completely independent of one another in all ways | No |
The JokeClientAdmin sets the modes for both Primary and Secondary servers | No |
Informs (JokeClient) user of current server after switch | No |
Displays <S2> for all secondary server messages | No |
All arguments to clients and servers are handled correctly for Multiple JokeServers | No |
Correctly maintains CONVERSATION STATE WITH EACH SERVER—independently of one another—for each JokeClient. Restated: A conversation the Primary JokeServer is maintaining with a JokeClient, is completely independent of the conversation the Secondary JokeServer is having with that same client. (Be careful that you understand this statement!) | No |
Correctly maintains CONVERSATION STATE WITH EACH SERVER—independently of one another—for each JokeClient, even when jokes and proverbs are interleaved. | No |
. | |
| . |
JokeClientAdmin shuts down the server[s]—Example 1 | No |
Writes and restores state from disk to restore the client conversation after the JokeServer or JokeClient are shut down and re-started—Example 2 | No |
Wrote thread-safe code—Example 3 | No |
[Fill in YOUR OWN custom extra features, one line per feature] | Yes |