blob: db1da691c218d5b080f2ce616e3595f604550648 [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 org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.components.type.TypeException;
import org.apache.myrmidon.components.type.TypeFactory;
import org.apache.myrmidon.components.type.TypeManager;
import org.apache.myrmidon.framework.AbstractContainerTask;
import org.apache.tools.ant.Task;
/**
* Adapter of Ant1 tasks to myrmidon.
*
* @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
*/
public class TaskAdapter
extends AbstractContainerTask
implements Configurable
{
private Task m_task;
private Ant1Project m_project = new Ant1Project();
public TaskAdapter( final Task task )
{
m_task = task;
}
protected final Task getTask()
{
return m_task;
}
protected final Ant1Project getProject()
{
return m_project;
}
public void configure( final Configuration configuration )
throws ConfigurationException
{
getTask().setTaskName( configuration.getName() );
//do configuration
configure( getTask(), configuration );
}
public void execute()
throws TaskException
{
try
{
getProject().setLogger( getLogger() );
getProject().contextualize( getContext() );
getProject().init();
getTask().setProject( getProject() );
getTask().init();
getTask().execute();
}
catch( final Exception e )
{
throw new TaskException( e.getMessage(), e );
}
}
}