package net.sourceforge.cruisecontrol.builders; import org.apache.tools.ant.DefaultLogger; import org.apache.tools.ant.BuildEvent; import org.apache.tools.ant.Project; /** * Ant Logger impl used to send progress messages back to an AntBuilder. * * Ideas adapted from contrib/XmlLoggerWithStatus, written by IgorSemenko (igor@semenko.com). * * @author Dan Rollo * Date: Aug 8, 2007 * Time: 10:21:52 PM */ public class AntProgressLogger extends DefaultLogger { /** * Prefix prepended to system out messages to be detected by AntScript as progress messages. * NOTE: Must be the exact same string as that defined in AntScript constant, but kept separate * to avoid dependence on Ant Builder classes in AntScript. */ static final String MSG_PREFIX_ANT_PROGRESS = "ccAntProgress -- "; public void targetStarted(BuildEvent event) { if (Project.MSG_INFO <= msgOutputLevel && !event.getTarget().getName().equals("")) { final String name = event.getTarget().getName(); // @todo Add filter support, like XmlLoggerWithStatus // if (this.targetFilter != null && name.matches(this.targetFilter)){ // return; // } final String msg = MSG_PREFIX_ANT_PROGRESS + name; // use super to actually print to sysout printMessage(msg, out, event.getPriority()); log(msg); } } }