diff options
author | Igor Fedorenko | 2011-02-25 01:08:58 +0000 |
---|---|---|
committer | Igor Fedorenko | 2011-02-25 01:09:31 +0000 |
commit | a44c97444bfc2b80819b1f8c4d9b99fe0f69d4c8 (patch) | |
tree | 65f18779698e2398a4dbf6ef6a9b29e894268c3a /org.eclipse.m2e.discovery/src/org/eclipse | |
parent | ce06874e5079f4a2f61fdd018d73824a1522c8f5 (diff) | |
download | m2e-core-a44c97444bfc2b80819b1f8c4d9b99fe0f69d4c8.tar.gz m2e-core-a44c97444bfc2b80819b1f8c4d9b99fe0f69d4c8.tar.xz m2e-core-a44c97444bfc2b80819b1f8c4d9b99fe0f69d4c8.zip |
fixed intermittent LifecycleMappingDiscoveryTest failures
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Diffstat (limited to 'org.eclipse.m2e.discovery/src/org/eclipse')
-rw-r--r-- | org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java | 35 |
1 files changed, 24 insertions, 11 deletions
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 04d506ab..bcd803d1 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 @@ -13,7 +13,6 @@ package org.eclipse.m2e.internal.discovery; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; -import java.util.IdentityHashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -49,18 +48,32 @@ import org.osgi.framework.ServiceRegistration; @SuppressWarnings({"restriction", "rawtypes"}) public class MavenDiscoveryService implements IMavenDisovery, ServiceFactory { - private final boolean factory; + public static class CatalogItemCacheEntry { + private final CatalogItem item; - //private Catalog catalog; + private final LifecycleMappingMetadataSource metadataSource; - private IdentityHashMap<CatalogItem, LifecycleMappingMetadataSource> items; + public CatalogItemCacheEntry(CatalogItem item, LifecycleMappingMetadataSource metadataSource) { + this.item = item; + this.metadataSource = metadataSource; + } + + public CatalogItem getItem() { + return item; + } + + public LifecycleMappingMetadataSource getMetadataSource() { + return metadataSource; + } + } + + private List<CatalogItemCacheEntry> items; public MavenDiscoveryService() { this(true); } public MavenDiscoveryService(boolean factory) { - this.factory = factory; } public Map<ILifecycleMappingElementKey, List<IMavenDiscoveryProposal>> discover(MavenProject mavenProject, @@ -68,7 +81,7 @@ public class MavenDiscoveryService implements IMavenDisovery, ServiceFactory { throws CoreException { if(items == null) { - items = new IdentityHashMap<CatalogItem, LifecycleMappingMetadataSource>(); + items = new ArrayList<MavenDiscoveryService.CatalogItemCacheEntry>(); Catalog catalog = MavenDiscovery.getCatalog(); IStatus status = catalog.performDiscovery(monitor); @@ -96,9 +109,9 @@ public class MavenDiscoveryService implements IMavenDisovery, ServiceFactory { List<CatalogItem> selectedItems = toCatalogItems(preselected); List<LifecycleMappingMetadataSource> selectedSources = toMetadataSources(preselected); - for(Map.Entry<CatalogItem, LifecycleMappingMetadataSource> itemEntry : items.entrySet()) { - CatalogItem item = itemEntry.getKey(); - LifecycleMappingMetadataSource src = itemEntry.getValue(); + for(CatalogItemCacheEntry itemEntry : items) { + CatalogItem item = itemEntry.getItem(); + LifecycleMappingMetadataSource src = itemEntry.getMetadataSource(); boolean preselectItem = false; for(CatalogItem selectedItem : selectedItems) { @@ -158,9 +171,9 @@ public class MavenDiscoveryService implements IMavenDisovery, ServiceFactory { public void addCatalogItem(CatalogItem item, LifecycleMappingMetadataSource metadataSource) { if(items == null) { // for tests - items = new IdentityHashMap<CatalogItem, LifecycleMappingMetadataSource>(); + items = new ArrayList<MavenDiscoveryService.CatalogItemCacheEntry>(); } - items.put(item, metadataSource); + items.add(new CatalogItemCacheEntry(item, metadataSource)); } private IMavenDiscoveryProposal getProposal(LifecycleMappingMetadataSource src) { |