Testing Controllers in SMs

Different methods to test new controllers

1. From the portal: Deploy the webapp. The controller would be packaged with it [Look at the pom files in the existing xmlrpc controller to see how it is packaged]. In the user tab of the portal, you can click "start controller". Your controller should show up on the menu and then if you click ok, your controller should start up. Look at tail -f logs/orca.log inside tomcat directory to see what's going on. The log4j outputs will be in logs/orca.log and system outs will be in logs/catalina.out [the mandate is not to use system.outs for debugging though]. This is the recommended way to test controllers.

2. From inside your IDE: A bunch of steps are needed to set this up.

(a) In tools/config , do 'ant security.create.admin.config' if you haven't already done so.

(b) cd tools/cmdline ; ln -s ../config/runtime runtime

(c) mvn install at the root of the source tree ; 'ant get.packages' at tools/cmdline

(d) Prepare a config file . This is similar to config.xml in webapp/actor_configs/ .

Some old examples reside in tools/cmdline/tests/*.xml . You might first try to use the one in webapp/actor_configs/config.xml , (e) Inside your IDE, you have to set the 'working directory' as the tools/cmdline directory and run the YourControllerTest file with the following arguments: config=<path_to_config_file> do.not.recover=true time.to.live=<how_long_you_want_theTest_to_run_Eg._600000> . You should be seeing your program control reaching the runTest() method in YourControllerTest .

3. From command line: Follow steps 2(a) through 2(d) . Add your Controller test as an ant task in tools/cmdline/ant/tests.xml . See examples there (like the test.ben.interdomain task) . Then run 'ant test.yourcontroller' from tools/cmdline .