blob: 57ae604709f5e3cb848ca2e6d3682321d4a4cc96 [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.components.workspace;
import java.util.Map;
import org.apache.avalon.framework.component.Component;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.components.model.Project;
import org.apache.myrmidon.listeners.ProjectListener;
/**
* This is the abstraction through which Projects are managed and executed.
*
* @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
*/
public interface Workspace
extends Component
{
String ROLE = "org.apache.myrmidon.components.workspace.Workspace";
/**
* Add a listener to project events.
*
* @param listener the listener
*/
void addProjectListener( ProjectListener listener );
/**
* Remove a listener from project events.
*
* @param listener the listener
*/
void removeProjectListener( ProjectListener listener );
/**
* Execute a target in a particular project.
*
* @param project the Project
* @param target the name of the target
* @param defines the defines
* @exception TaskException if an error occurs
*/
void executeProject( Project project, String target )
throws TaskException;
}