URLyBird. I'm almost done but I have a couple of questions.
1.) How did you guys implement the 48-hour rule? I did it in my GUI so I don't know if thats okay 2.) My server is starting (and I confirmed it using the command on Command Prompt but the client is not loading the database into the display. I made the database location (remote or local) partially transparent to the GUI so the problem couldn't have been in the GUI too. Somehow confused.
3.) Do we need to go the extent of locking the database file at the physical level so that other system processes will not tamper with it while we are working?
4.) What format are we expected to build our properties file (serialized object, plain text, some XML mark-up)? I'm using plain text
5.) Where are we expected to place it relative to the executing jar file?
6.) Can I upload screenshots of my GUI here?
7.) How much logging is expected in our code? (every method with entering() and exiting())?
1) I get the impression a lot of people just ignored this (I'm sure someone will confirm this). In my case I didn't try and enforce it, but I did provide some support in the GUI: I had a option to display only rooms in the next 48 hours.
2) Sorry, can't help there - too many things that could potentially cause it. You probably need to do some debugging to find out:
- is the client making a call to the server?
- is the server receiving the call?
- what is the server returning?
- what is the client receiving back?
3) Check your particular instructions, but mine had a line about being able to assume that only one program was accessing the data file, which would mean this isn't necessary.
My answers closely match the ones by Matthew. Here I go:
1/ I ignored it completely (and documented this decision in choices.txt)
2/ Another question to the ones Matthew already added: if you use the same client for network and standalone mode, does it work in standalone mode?
3/ You don't have to do that (it's clearly mentioned in your instructions)
4/ A properties file should use the Properties class (because then you don't have to write your own and you can use existing functionality) and you don't have to care about the format, because the class takes care of it for you.
5/ From my instructions: Such configuration information must be stored in a file called suncertify.properties which must be located in the current working directory.
6/ You don't have to upload images of your GUI, because they will be removed (because it's not allowed to share complete parts of the assignment publicly)
7/ I have logging in every method of Data class and business service (which could be used e.g. for debugging purposes), but disabled it when I submitted the assignment
1.) Yeah I used the same client for the network and stand-alone mode and Its working well in the stand-alone mode. Infact the whole thing (stand-alone) is complete. The only things left apart from this connection issue are just some code cleaning, documentation cleaning and building the entire jar. I'm running under a very busy schedule which makes me want to submit and take the essay exam this saturday. My head is really saturated with so many things which are not allowing me to flow properly. Any tips?
2.) Did you guys use descriptive icons on your GUI components? or is it an overkill?
@Roel, thanks champ.
I was overconfident of my code that I delayed the testing of the Data class to the very end and guess what, it failed Roberto Perillo's test. but after some modifications, today, it finally passed. Now I've tested with 100,000 threads and it passed. Thanks guys.
Now its time to clean-up my documentation and use Roels build script to verify the submission.
I have already purchased the essay exam and scheduled for Saturday. It is a 2-hour test. How many minutes did you spend on it? What kind of stuffs should I expect?
The essay exam is just to make sure you developed the assignment and not your neighbour who happens to be a real Java guru. So you'll get 4 open questions about decions you had to make during the assignment and the more detailed information you can give (names of classes, methods, variables,...) the better of course. Because it's an official Oracle (Sun) exam it's not allowed to make the questions public. But don't be afraid: if you developed the assignment yourself, you have nothing to worry about; this will be the easiest part of the assignment.
I don't know exactly how much time I needed (it's already more than 2 years ago since I took the essay exam), but I certainly had some time left.
My StateSaver class was almost a re-implementation of the java.util.Properties class but leaving out unneeded facilities. With your advice, I had to modify my code but I couldn't just wipe out my StateSaver so I just kept the public method signatures the same and just modified the implementations, to make use of the facilities in the Properties class for persistence and retrieval. That way, I didn't have to refactor other codes. This is part of what I had before modification.
I had something similar for reading.
I think I'm okay working with the Properties class since the standard API will find more favour compared to custom implementations.