Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Fedorenko2011-02-25 01:08:58 +0000
committerIgor Fedorenko2011-02-25 01:09:31 +0000
commita44c97444bfc2b80819b1f8c4d9b99fe0f69d4c8 (patch)
tree65f18779698e2398a4dbf6ef6a9b29e894268c3a /org.eclipse.m2e.discovery/src/org/eclipse
parentce06874e5079f4a2f61fdd018d73824a1522c8f5 (diff)
downloadm2e-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.java35
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) {

Back to the top