package net.sourceforge.cruisecontrol.builders; import org.apache.tools.ant.BuildEvent; import org.apache.tools.ant.Project; import org.apache.tools.ant.DefaultLogger; import java.io.PrintStream; /** * Ant Logger impl used to send progress messages back to an AntBuilder. * Intended for use in conjuction with {@link AntProgressXmlListener}. * * Ideas adapted from contrib/XmlLoggerWithStatus, written by IgorSemenko (igor@semenko.com). * * @author Dan Rollo * Date: Aug 10, 2007 * Time: 5:07:53 AM * To change this template use File | Settings | File Templates. */ public class AntProgressXmlLogger extends DefaultLogger { 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 = AntProgressLogger.MSG_PREFIX_ANT_PROGRESS + name; // use super to actually print to sysout super.printMessage(msg, out, event.getPriority()); log(msg); } } /** * Prints a message to a PrintStream. * * @param message The message to print. * Should not be <code>null</code>. * @param stream A PrintStream to print the message to. * Must not be <code>null</code>. * @param priority The priority of the message. * (Ignored in this implementation.) */ protected void printMessage(final String message, final PrintStream stream, final int priority) { // no-op to stop console output - similar behavior to XmlLogger when used as Logger; } /** @return current value of message output level */ public int getMessageOutputLevel() { return msgOutputLevel; } }