@Override
public Result execute(UIExecutionContext context) throws Exception
{
// TODO: Option to save sources?
File tempDir = OperatingSystemUtils.createTempDir();
DirectoryResource projectRoot = resourceFactory.create(DirectoryResource.class, tempDir);
UIProgressMonitor progressMonitor = context.getProgressMonitor();
UIOutput output = context.getUIContext().getProvider().getOutput();
progressMonitor.beginTask("Installing Addon from Git", 4);
progressMonitor.subTask("Cloning repository in " + tempDir);
// Clone repository
cloneTo(projectRoot);
progressMonitor.worked(1);
progressMonitor.subTask("Installing project into local repository");
// Build project
Project project = projectFactory.findProject(projectRoot);
if (project == null)
{
return Results.fail("No project found in root " + projectRoot.getFullyQualifiedName());
}
Coordinate buildCoordinate = project.getFacet(MetadataFacet.class).getOutputDependency().getCoordinate();
try
{
updateFurnaceVersion(project);