Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Project Overview

For TopCoder Competition Engine, we will enter into a FAST development phase this year, but we see there are shortcomings for using Arena VM for development.

Due to port restrictions and network speeds, it is not possible or easy to debug through the desired part to get familar with the code and understand the specific logic.

So we'd like to seek ways to setup a local environment to develop, build and testing, which makes our competitiors more efficient.

The local environment can native OS or OS under VM environment locally like VirtualBox, etc.

The first target OS will be CentOS 6.4 x64, should be similar for all CentOS 6.x system.

Competition Task Overview

Previously, we have worked out the way to setup TopCoder Competition Engine locally but under different accounts.

For this contest, we'd like to look for way to automatically setup all services under the same account (not root) by using scripts.

Setup Artificts

For the standard distributions, it should be from official site, if possible, like JBoss 4.2.3, Apache Ant etc.

If impossible, you can host them in dropbox or other services, and retrieved by wget command.

Tokenization

Previously, we set domains in hosts file, considering a case that we don't have root access. it is impossible to edit /etc/hosts file, so we'd like to tokenize them before deploy. In the preivous contest, we have created  token.properties under app project, which covers this.

But please double check and test, if all covers.

You are expected to create a seperate token.properties.ci file, which will replace token.properties file before deployment (shell command like copy is engouh for this task).

Directory Structures

All the pieces should be still under the home directory, but same user account, like

tomcat: The Apache Tomcat installation running the Farm deployer application. The farm-deployer.war can be found in the webapps folder of this Tomcat installation.

deployer: The deployer folder is the resource folder used by the Farm deployer application, it contains binary dependencies (jars) for all processors and controllers and it provides means to customize deployment folders and classpath for them..

deployer/jars: This folder contains all the jars used by processors and controllers. In addition, jars generated on the fly while building customized deployments are include into this directory. (All jars located in this folder must be signed)

deployer/deployment: Contains deployment customization for processors and controllers. A document located in that directory provides more information about how deployment is generated.

processor/launcher: Contains the scripts to start, restart

app/scripts: Contains the scripts to start and stop the different listeners.

app/resources: Contains all configuration files required by the Listeners. This folder contains many files that are deprecated. Nevertheless, there is no documentation about it, so removing some of the them may be risky. (A lot of testing would be required).

jboss: Services exported by the Competition engine are deployed in this JBoss instance. The "default" configuration is used to deploy the services
controller/launcher: Contains the launcher to execute the Farm controller application.

dev: Contains a fresh checkout of the arena modules and the examination project.

Build Scripts

the current ANT build.xml file is used for different user accounts case,  you are expected to create a revised on called build_ci.xml for considering the same user account case deployment.

Shell Script for Automatic Setup

We are expecting a shell script that can help setup the environment under the same account automatically.

Where to Setup

You are expected to install your own fresh clean OS environment for testing.  But to get you startup, we can provide a CentOS VM for usage. But review and acceptance will be based on a clean OS.

Please also include a screencast to showcase your local environment.

Reviewers also need to provide screencasts, so competitors can appeal properly.

VMs

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.

To use the Arena VM, please follow http://apps.topcoder.com/wiki/display/docs/Competition+Engine+VM+Setup



Final Submission Guidelines

Submission Deliverables

Below is an overview of the deliverables:

  • Changes for the current code base.
  • automatical setup scripts
  • Working VMs to testing purpose.

Final Submission

For each member, the final submission should be uploaded to the Online Review Tool.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30041675