diff --git a/addon-manager/impl/src/main/java/org/jboss/forge/addon/manager/impl/ui/AddonUpdateCommand.java b/addon-manager/impl/src/main/java/org/jboss/forge/addon/manager/impl/ui/AddonUpdateCommand.java index d7fb8db869..75017af387 100644 --- a/addon-manager/impl/src/main/java/org/jboss/forge/addon/manager/impl/ui/AddonUpdateCommand.java +++ b/addon-manager/impl/src/main/java/org/jboss/forge/addon/manager/impl/ui/AddonUpdateCommand.java @@ -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; @@ -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 { @@ -111,8 +109,11 @@ 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 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 { @@ -120,7 +121,8 @@ public Result execute(UIExecutionContext context) 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; } diff --git a/addon-manager/tests/src/test/java/org/jboss/forge/addon/manager/ui/AddonUpdateCommandTest.java b/addon-manager/tests/src/test/java/org/jboss/forge/addon/manager/ui/AddonUpdateCommandTest.java index 85497dd7b2..876898f026 100644 --- a/addon-manager/tests/src/test/java/org/jboss/forge/addon/manager/ui/AddonUpdateCommandTest.java +++ b/addon-manager/tests/src/test/java/org/jboss/forge/addon/manager/ui/AddonUpdateCommandTest.java @@ -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; @@ -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; @@ -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); } } \ No newline at end of file