From 730c33122041f6b8f99f1a7d72af5c5372c991be Mon Sep 17 00:00:00 2001 From: Matthew Piggott Date: Mon, 14 Mar 2011 13:08:46 -0400 Subject: Bug 339557 - same installable unit appears multiple times in maven discovery install wizard --- .../m2e/internal/discovery/MavenDiscoveryService.java | 8 +++++--- .../operation/MavenDiscoveryInstallOperation.java | 14 ++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) (limited to 'org.eclipse.m2e.discovery') diff --git a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java index 3750613a..75bcb14f 100644 --- a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java +++ b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java @@ -14,9 +14,11 @@ package org.eclipse.m2e.internal.discovery; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.plugin.MojoExecution; @@ -151,7 +153,7 @@ public class MavenDiscoveryService implements IImportWizardPageFactory, IMavenDi MavenExecutionRequest request = maven.createExecutionRequest(monitor); // TODO this ignores workspace dependencies - List selectedItems = toCatalogItems(preselected); + Collection selectedItems = toCatalogItems(preselected); List selectedSources = toMetadataSources(preselected); for(CatalogItemCacheEntry itemEntry : items) { @@ -318,8 +320,8 @@ public class MavenDiscoveryService implements IImportWizardPageFactory, IMavenDi } } - private List toCatalogItems(List proposals) { - List items = new ArrayList(); + private Collection toCatalogItems(List proposals) { + Set items = new HashSet(); for(IMavenDiscoveryProposal proposal : proposals) { if(proposal instanceof InstallCatalogItemMavenDiscoveryProposal) { items.add(((InstallCatalogItemMavenDiscoveryProposal) proposal).getCatalogItem()); diff --git a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/operation/MavenDiscoveryInstallOperation.java b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/operation/MavenDiscoveryInstallOperation.java index 0e09a890..b48cb4c1 100644 --- a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/operation/MavenDiscoveryInstallOperation.java +++ b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/operation/MavenDiscoveryInstallOperation.java @@ -52,7 +52,7 @@ import org.eclipse.osgi.util.NLS; */ @SuppressWarnings("restriction") public class MavenDiscoveryInstallOperation implements IRunnableWithProgress { - private List installableConnectors; + private Collection installableConnectors; private ProvisioningSession session; @@ -70,12 +70,14 @@ public class MavenDiscoveryInstallOperation implements IRunnableWithProgress { private boolean shouldResolve; - public MavenDiscoveryInstallOperation(List installableConnectors, IRunnableWithProgress postInstallHook, + public MavenDiscoveryInstallOperation(Collection installableConnectors, + IRunnableWithProgress postInstallHook, boolean restart) { this(installableConnectors, postInstallHook, restart, true, null); } - public MavenDiscoveryInstallOperation(List installableConnectors, IRunnableWithProgress postInstallHook, + public MavenDiscoveryInstallOperation(Collection installableConnectors, + IRunnableWithProgress postInstallHook, boolean restart, boolean shouldResolve, Collection projectsToConfigure) { this.installableConnectors = installableConnectors; this.postInstallHook = postInstallHook; @@ -123,7 +125,7 @@ public class MavenDiscoveryInstallOperation implements IRunnableWithProgress { try { List repositories = addRepositories(monitor.newChild(50)); - final List installableUnits = queryInstallableUnits(monitor.newChild(50), repositories); + final Collection installableUnits = queryInstallableUnits(monitor.newChild(50), repositories); if(!statuses.isEmpty()) { throw new CoreException(new MultiStatus(DiscoveryActivator.PLUGIN_ID, 0, statuses.toArray(new IStatus[statuses @@ -138,9 +140,9 @@ public class MavenDiscoveryInstallOperation implements IRunnableWithProgress { /* * Get IUs to install from the specified repository */ - private List queryInstallableUnits(IProgressMonitor progressMonitor, + private Collection queryInstallableUnits(IProgressMonitor progressMonitor, List repositories) { - final List installableUnits = new ArrayList(installableConnectors.size()); + final Set installableUnits = new HashSet(installableConnectors.size()); SubMonitor monitor = SubMonitor.convert(progressMonitor, installableConnectors.size()); try { -- cgit v1.2.3