blob: bfb9e0126bfee9b1c304af1b6081f52425edf6f5 [file] [log] [blame]
/*
* 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.libs.ant1;
import java.io.File;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.logger.Loggable;
import org.apache.log.Logger;
import org.apache.myrmidon.api.TaskContext;
import org.apache.tools.ant.*;
import org.apache.tools.ant.Project;
public class Ant1Project
extends Project
implements Loggable, Contextualizable
{
private Logger m_logger;
///Variable to hold context for use by sub-classes
private TaskContext m_context;
public void setLogger( final Logger logger )
{
m_logger = logger;
}
protected final Logger getLogger()
{
return m_logger;
}
/**
* Retrieve context from container.
*
* @param context the context
*/
public void contextualize( final Context context )
{
m_context = (TaskContext)context;
}
protected final TaskContext getContext()
{
return m_context;
}
/**
* Initialise the project.
*/
public void init()
throws BuildException
{
setJavaVersionProperty();
}
public void setProperty( final String name, final String value )
{
try { getContext().setProperty( name, value ); }
catch( final Exception e )
{
getLogger().warn( "Failed to set property " + name + " to " + value, e );
}
}
public void setUserProperty( final String name, final String value )
{
setProperty( name, value );
}
public String getProperty( final String name )
{
return "" + getContext().getProperty( name );
}
public String getUserProperty( final String name )
{
return getProperty( name );
}
public String getName()
{
return "Ant1 Project";
}
public Task createTask( final String taskType )
throws BuildException
{
throw new UnsupportedOperationException();
}
public Object createDataType( final String typeName )
throws BuildException
{
throw new UnsupportedOperationException();
}
public File resolveFile( final String fileName )
{
try { return getContext().resolveFile( fileName ); }
catch( final Exception e )
{
return null;
}
}
protected void fireBuildStarted() {}
protected void fireBuildFinished(Throwable exception) {}
protected void fireTargetStarted(Target target) {}
protected void fireTargetFinished(Target target, Throwable exception) {}
protected void fireTaskStarted(Task task) {}
protected void fireTaskFinished(Task task, Throwable exception) {}
private void fireMessageLoggedEvent(BuildEvent event, String message, int priority)
{
messageLogged( message, priority );
}
protected void fireMessageLogged(Project project, String message, int priority)
{
messageLogged( message, priority );
}
protected void fireMessageLogged(Target target, String message, int priority)
{
messageLogged( message, priority );
}
protected void fireMessageLogged(Task task, String message, int priority)
{
messageLogged( message, priority );
}
private void messageLogged( String message, int priority )
{
switch( priority )
{
case MSG_ERR: getLogger().error( message ); break;
case MSG_WARN: getLogger().warn( message ); break;
case MSG_INFO: getLogger().info( message ); break;
case MSG_VERBOSE: getLogger().debug( message ); break;
case MSG_DEBUG: getLogger().debug( message ); break;
default:
getLogger().debug( message );
}
}
}