@Override
public AddonId call() throws Exception
{
for (DependencyNode requiredAddon : getRequiredAddons())
{
AddonId requiredAddonId = toAddonId(requiredAddon);
boolean deployed = false;
for (AddonRepository repository : forge.getRepositories())
{
if (repository.isDeployed(requiredAddonId))
{
log.info("Addon " + requiredAddonId + " is already deployed. Skipping...");
deployed = true;
break;
}
}
if (!deployed)
{
addonManager.install(requiredAddonId).perform(target);
}
}
AddonId requestedAddonId = toAddonId(requestedAddonNode);
MutableAddonRepository mutableRepository = (MutableAddonRepository) target;
deploy(mutableRepository, requestedAddonId, requestedAddonNode);
mutableRepository.enable(requestedAddonId);
return requestedAddonId;