// TestAntWorker2.java

import org.biomoby.service.dashboard.SimpleAnt;
import org.biomoby.service.dashboard.ExitSecurityManager;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.ExitException;
import org.apache.tools.ant.NoBannerLogger;

import java.util.Properties;

/**
 * Work in progress...
 *
 * @author <A HREF="mailto:martin.senger@gmail.com">Martin Senger</A>
 * @version $Id: TestAntWorker2.java,v 1.1 2008/03/02 12:49:33 senger Exp $
 */
public class TestAntWorker2 {

    private static org.apache.commons.logging.Log log =
       org.apache.commons.logging.LogFactory.getLog (TestAntWorker2.class);

    public void work (String[] args)
	throws BuildException {

 	Properties props = new Properties();

	props.put ("registry.cache.dir", "myCache");
	props.put ("moses.nographs", "true");
	props.put ("moses.authority", "samples.jmoby.net");

	SimpleAnt ant = new SimpleAnt();
	NoBannerLogger logger = new NoBannerLogger();
	logger.setOutputPrintStream (System.out);
	logger.setErrorPrintStream (System.err);
 	ant.addBuildListener (logger);
// 	ant.setMsgOutputLevel (Project.MSG_VERBOSE);
 	ant.startAnt (args, props);
    }

    public static void main (String[] args) {

	// set exit manager to prevent System.exit()
	ExitSecurityManager exitman = ExitSecurityManager.createAndInstall();

	final TestAntWorker2 worker = new TestAntWorker2();

	try {
	    worker.work (args);

	} catch (ExitException e) {
	    log.warn ("Ant tried to use System.exit() with exit code " + e.getStatus());

	} catch (BuildException e) {
	    log.info ("Build error already reported, right?");

	} catch (Throwable e) {
	    log.error ("Error: " + e.toString());
	}

	// enable exit and exit
	exitman.setExitForbidden (false);
// 	System.exit (0);
    }
}
