package org.bndtools.build.api;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.osgi.annotation.versioning.ProviderType;
/**
* A listener for phases in the Bndtools build lifecycle.
*
* @author Neil Bartlett <njbartlett@gmail.com>
*/
@ProviderType
public interface BuildListener {
enum BuildState {
starting, built, released;
}
/**
* Bndtools is starting to build the specified project. The corresponding bnd project model in the bnd workspace has
* yet been created, and may not exist.
*
* @param project
*/
void buildStarting(IProject project);
/**
* Bndtools has built one or more bundles in the specified project.
*
* @param project
* The Eclipse project for which the built has been executed.
* @param paths
* An array of workspace-relative paths.
*/
void builtBundles(IProject project, IPath[] paths);
/**
* Listeners are released
*/
void released(IProject project);
}