Browse Source

Update Listeners so that the default listener is like the NoBannerLogger from Ant1.x while the classic is like ants current default.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270203 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
497fb70fe8
3 changed files with 101 additions and 1 deletions
  1. +92
    -0
      proposal/myrmidon/src/java/org/apache/myrmidon/listeners/ClassicProjectListener.java
  2. +8
    -1
      proposal/myrmidon/src/java/org/apache/myrmidon/listeners/DefaultProjectListener.java
  3. +1
    -0
      proposal/myrmidon/src/manifest/builtin-ant-descriptor.xml

+ 92
- 0
proposal/myrmidon/src/java/org/apache/myrmidon/listeners/ClassicProjectListener.java View File

@@ -0,0 +1,92 @@
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.myrmidon.listeners;

import org.apache.avalon.framework.ExceptionUtil;

/**
* Default listener that emulates the old ant listener notifications.
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
*/
public class ClassicProjectListener
extends AbstractProjectListener
{
private String m_prefix;

/**
* Notify listener of targetStarted event.
*
* @param targetName the name of target
*/
public void targetStarted( final String targetName )
{
output( targetName + ":\n" );
}

/**
* Notify listener of taskStarted event.
*
* @param taskName the name of task
*/
public void taskStarted( final String taskName )
{
setPrefix( taskName );
}

/**
* Notify listener of taskFinished event.
*/
public void taskFinished()
{
setPrefix( null );
}

/**
* Notify listener of log message event.
*
* @param message the message
*/
public void log( String message )
{
output( message );
}

/**
* Notify listener of log message event.
*
* @param message the message
* @param throwable the throwable
*/
public void log( String message, Throwable throwable )
{
output( message + "\n" + ExceptionUtil.printStackTrace( throwable, 5, true ) );
}

/**
* Utility class to output data.
* Overide in sub-classes to direct to a different destination.
*
* @param data the data
*/
protected void output( final String data )
{
if( null != getPrefix() ) System.out.println( "\t[" + getPrefix() + "] " + data );
else System.out.println( data );
}

protected final String getPrefix()
{
return m_prefix;
}

protected final void setPrefix( final String prefix )
{
m_prefix = prefix;
}
}

+ 8
- 1
proposal/myrmidon/src/java/org/apache/myrmidon/listeners/DefaultProjectListener.java View File

@@ -18,6 +18,7 @@ public class DefaultProjectListener
extends AbstractProjectListener
{
private String m_prefix;
private String m_targetName;

/**
* Notify listener of targetStarted event.
@@ -26,7 +27,7 @@ public class DefaultProjectListener
*/
public void targetStarted( final String targetName )
{
output( targetName + ":\n" );
m_targetName = targetName;
}

/**
@@ -76,6 +77,12 @@ public class DefaultProjectListener
*/
protected void output( final String data )
{
if( null != m_targetName )
{
output( m_targetName + ":\n" );
m_targetName = null;
}

if( null != getPrefix() ) System.out.println( "\t[" + getPrefix() + "] " + data );
else System.out.println( data );
}


+ 1
- 0
proposal/myrmidon/src/manifest/builtin-ant-descriptor.xml View File

@@ -3,6 +3,7 @@
<types>

<listener name="default" classname="org.apache.myrmidon.listeners.DefaultProjectListener"/>
<listener name="classic" classname="org.apache.myrmidon.listeners.ClassicProjectListener"/>
<aspect name="noop" classname="org.apache.myrmidon.aspects.NoopAspectHandler"/>
<project-builder name="ant" classname="org.apache.myrmidon.components.builder.DefaultProjectBuilder"/>
<project-builder name="ati" classname="org.apache.myrmidon.components.builder.ATIProjectBuilder"/>


Loading…
Cancel
Save