private Thread thread;
@Override
public ProtocolMetaData deploy(Archive<?> archive) throws DeploymentException
{
Deployment deployment = deploymentInstance.get();
final AddonId addonToDeploy = getAddonEntry(deployment);
File destDir = repository.getAddonBaseDir(addonToDeploy);
destDir.mkdirs();
System.out.println("Deploying [" + addonToDeploy + "] to repository [" + repository + "]");
if (archive instanceof ForgeArchive)
{
ShrinkWrapUtil.toFile(new File(destDir.getAbsolutePath() + "/" + archive.getName()), archive);
ShrinkWrapUtil.unzip(destDir, archive);
repository.deploy(addonToDeploy, ((ForgeArchive) archive).getAddonDependencies(), new ArrayList<File>());
repository.enable(addonToDeploy);
while (runnable.forge.getStatus().isStarting())
{
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
AddonRegistry registry = runnable.getForge().getAddonRegistry();
try
{
Future<Void> future = registry.getAddon(addonToDeploy).getFuture();
future.get();
Addon addon = registry.getAddon(addonToDeploy);
if (addon.getStatus().isFailed())
{
ContainerException e = new ContainerException("Addon " + addonToDeploy + " failed to deploy.");
deployment.deployedWithError(e);
throw e;
}
}
catch (Exception e)
{