January 6, 2011 Leave a comment
So a lot has been done to the server side of the module over break, and a lot remains to be done.
Some highlights of work that has been completed:
- Implemented commands so that certain tasks can be accomplished by the server such as compiling and testing source files.
- Finished implemented an ant command that will be used to build code.
- Started implementing a junit command, its accompanying testing suite, and its client side display. This is coming along nicely, the command won’t be finished until we finalize the parameters for the testing suite. Once that happens it will quickly progress.
What remains to be done generally relates to the commands/testing suites as well. Originally I wanted to continue to use the database for storing the results of tests and the commands themselves. However each time I look at how that can be accomplished I realize its a horrible idea. For example to test a submission and restore the results we are going to need some way of linking the submission to the test results. However since our testing suites run as a separate process this means passing in the submission id as a parameter in some input file, and what if the tests need to be compiled server side as well do we have a separate section of code strictly for commands that operate on files that are not part of a submission? What if we want to add some extension in the future?
This problem along with the fact that you use a database for storing large amounts of data that can quickly be searched, aggregated and returned isn’t what we really need for this portion of the system. This has lead me to the conclusion that a file based solution is a much better route to go. Since the commands are given a working directory as part of their parameter (for relative path names) it will require no real modification to the existing command code and allow for extensions in the future.
Another possible benefit of this is that if a user’s client doesn’t have the proper module installed to view the results of some command then if the file is text based it canĀ easily be opened and read.