Challenge Overview
Project Overview
TopCoder Competition Engine is a system used for Single Round Matches (SRM) and Marathon Matches (MM).
Currently, Arena VM is heavily used to challenges related to TopCoder Competition Engine.
Competition Task Overview
In order to properly test the functioanlty, three client tools (Arena client, MPSQAS client and Admin tool) need to be downloaded from Arena VM, and extract to be ready for launch. This is not very convient for different environments.
For this challenge, we'd like to seek ways to setup the Arena VM, so the clients can be started by Java Web Start through an URL, like
- Arena Applet - http://tc.cloud.topcoder.com/contest/arena/ContestAppletProd.jnlp
- Contest Admin Tool - http://tc.cloud.topcoder.com/contest/arena/ContestAdminToolProd.jnlp
- MPSQAS Client - http://tc.cloud.topcoder.com/contest/arena/MPSQASProd.jnlp
How to Build the Clients
- Build MPSQAS Client
- Login as apps user
- cd ~/dev/comp-eng/mpsqas-client/
- ant clean publish-workspace-all package-applet
- the zip file can be found at /home/apps/dev/comp-eng/mpsqas-client/build/ directory.
- Build Admin Tool
- Login as apps user
- cd ~/dev/app
- ant clean publish-workspace-all package-AdminTool
- the zip file can be found at /home/apps/dev/app/dist directory.
- Build Arena Applet
- Login as apps user
- cd ~/dev/comp-eng/arena-client/
- ant clean publish-workspace-all package-applet
- the zip file can be found at /home/apps/dev/comp-eng/arena-client/build/ directory.
Expected Solution
- Root access to Arena VM will be granted, in case it is needed.
- Update Apache configuration (/usr/local/apache/conf/httpd.conf) to make http://tc.cloud.topcoder.com/contest/arena/ point to /mnt/apache/contest/arena directory, where the clients will be deployed too.
- Follow above to build the clients, in order to adapt for the tc.cloud.topcoder.com domain, the build.properties or applet.properties file need to be updated, in order to make it working.
- replace www.topcoder.com with tc.cloud.topcoder.com
- Create three shell scripts for each client that will properly unpack the built zip files and deploy to /mnt/apache/contest/arena correspondingly.
- All jars in admin-client-x.x.x.zip to /mnt/apache/contest/classes/admintool7 directory
- All jars in arena-client-x.x.x.zip to /mnt/apache/contest/classes/7.0 directory
- All jars in mpsqas-client-x.x.x.zip to /mnt/apache/contest/classes/mpsqas7 directory
- All *.jnlp file in all three zip to /mnt/apache/contest/arena directory
- Properly signall jars like similar like following script, otherwise, it can not be loaded by Java Web Start.
#! /bin/bash
for i in `ls -1 ./arena-client/*.jar`; do
jarsigner -J-Xmx512m -keystore farm.keystore -storepass changeit $i deployer
done;
Verification
To verify your approach, you can simply try to launch and following links and try login.
- Arena Applet - http://tc.cloud.topcoder.com/contest/arena/ContestAppletProd.jnlp
- Contest Admin Tool - http://tc.cloud.topcoder.com/contest/arena/ContestAdminToolProd.jnlp
- MPSQAS Client - http://tc.cloud.topcoder.com/contest/arena/MPSQASProd.jnlp
Winner Responsibility
Winner will be responsible to create pull request for merging.
Arena VM Usage
Before asking your own VM, you need to have a public key on your profile before asking for the VM.
You can find more details on how to generate a key http://apps.topcoder.com/wiki/display/projects/Generate+SSH+Key and how to connect using it http://apps.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.
Please reference http://apps.topcoder.com/wiki/display/docs/Competition+Engine+VM+Setup for general usage.
Final Submission Guidelines
Submission Deliverables
Below is an overview of the deliverables:
- new files for arena vm initialization
- updated shell scripts for arena vm initialization
- A complete and detailed documentation documented explaining how to deploy the application including configuration information.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.