Skip to content

Commit

Permalink
Addon Update is now using API version
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Oct 21, 2015
1 parent 8af9454 commit 7ad4682
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.Set;
import java.util.TreeSet;

import org.jboss.forge.addon.manager.impl.utils.CoordinateUtils;
import org.jboss.forge.addon.ui.command.AbstractUICommand;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
Expand All @@ -29,7 +28,6 @@
import org.jboss.forge.furnace.manager.spi.AddonDependencyResolver;
import org.jboss.forge.furnace.manager.spi.Response;
import org.jboss.forge.furnace.repositories.AddonRepository;
import org.jboss.forge.furnace.versions.Versions;

public class AddonUpdateCommand extends AbstractUICommand implements AddonCommandConstants
{
Expand Down Expand Up @@ -111,16 +109,20 @@ public Result execute(UIExecutionContext context)
AddonManager addonManager = SimpleContainer.getServices(getClass().getClassLoader(), AddonManager.class).get();
AddonDependencyResolver resolver = SimpleContainer
.getServices(getClass().getClassLoader(), AddonDependencyResolver.class).get();
AddonId addonId = CoordinateUtils.resolveCoordinate(named.getValue(),
Versions.getSpecificationVersionFor(this.getClass()), resolver);

Set<Addon> addons = furnace.getAddonRegistry().getAddons();
AddonId addonId = addons.stream().map(a -> a.getId()).filter(a -> a.getName().equals(named.getValue()))
.findFirst().get();
String addonAPIVersion = resolver.resolveAPIVersion(addonId).get();
AddonId maxAddonId = addonId;
try
{
Response<AddonId[]> resolveVersions = resolver.resolveVersions(addonId.getName());

for (AddonId id : resolveVersions.get())
{
if (id.getVersion().compareTo(maxAddonId.getVersion()) > 0)
if (id.getVersion().compareTo(maxAddonId.getVersion()) > 0
&& addonAPIVersion.equals(resolver.resolveAPIVersion(id).get()))
{
maxAddonId = id;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.io.FileNotFoundException;
import java.io.IOException;
Expand All @@ -20,7 +19,6 @@
import org.jboss.forge.addon.ui.result.Result;
import org.jboss.forge.addon.ui.test.UITestHarness;
import org.jboss.forge.furnace.Furnace;
import org.jboss.forge.furnace.addons.Addon;
import org.jboss.forge.furnace.addons.AddonId;
import org.jboss.forge.furnace.container.simple.lifecycle.SimpleContainer;
import org.jboss.forge.furnace.manager.AddonManager;
Expand Down Expand Up @@ -109,23 +107,10 @@ public void testUpdateAddon() throws Exception
Assert.assertThat(result, allOf(notNullValue(), not(instanceOf(Failed.class))));
}

boolean found = false;
String desiredAddonIdName = ADDON_NAME_TO_UPDATE;
for (Addon addon : furnace.getAddonRegistry().getAddons())
{
if (addon.getId().getName().equals(desiredAddonIdName))
{
// Version should be higher than 1.0.0.Final
if (addon.getId().getVersion().compareTo(exampleId.getVersion()) > 0)
{
found = true;
break;
}
}
}
if (!found)
{
fail("Addon was not updated");
}
boolean found = furnace.getAddonRegistry().getAddons().stream()
.anyMatch((addon) -> (addon.getId().getName().equals(desiredAddonIdName)
&& addon.getId().getVersion().compareTo(exampleId.getVersion()) > 0));
Assert.assertTrue("Addon was not updated", found);
}
}

0 comments on commit 7ad4682

Please sign in to comment.