blob: ccc6615c700387dbcf9d5de58cdb8ed6342ff2ac [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.api;
/**
* This is the interface that tasks implement to be executed in Myrmidon runtime.
*
* Instances can also implement the Avalon lifecycle methods
* Loggable, Contextualizable, Composable, Initializable and Disposable.
* Each of these lifecycle stages will be executed at appropriate time.
*
* Tasks can also choose to implement Configurable if they wish to directly
* receive the Configuration data representing the task. If this interface is
* not implemented then the engine will be responsbil for mapping configuration
* to task object.
*
* The Components passed in via ComponentManager are determined by container.
*
* @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
*/
public interface Task
{
String ROLE = "org.apache.myrmidon.api.Task";
/**
* Execute task.
* This method is called to perform actual work associated with task.
* It is called after Task has been Configured and Initialized and before
* being Disposed (If task implements appropriate interfaces).
*
* @exception TaskException if an error occurs
*/
void execute()
throws TaskException;
}