diff options
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources')
2 files changed, 13 insertions, 16 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/NullPackageSource.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/NullPackageSource.java index cc0ec615a..d397e4140 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/NullPackageSource.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/NullPackageSource.java @@ -14,8 +14,11 @@ package org.eclipse.osgi.internal.loader.sources; import java.net.URL; -import java.util.*; -import org.eclipse.osgi.framework.util.KeyedHashSet; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * This class is used to optimize finding provided-packages for a bundle. @@ -24,7 +27,7 @@ import org.eclipse.osgi.framework.util.KeyedHashSet; * be done again. */ public class NullPackageSource extends PackageSource { - static KeyedHashSet sources; + static Map<String, NullPackageSource> sources = new HashMap<>(); private NullPackageSource(String name) { super(name); @@ -51,13 +54,11 @@ public class NullPackageSource extends PackageSource { } public static synchronized NullPackageSource getNullPackageSource(String name) { - if (sources == null) - sources = new KeyedHashSet(); - NullPackageSource result = (NullPackageSource) sources.getByKey(name); + NullPackageSource result = sources.get(name); if (result != null) return result; result = new NullPackageSource(name); - sources.add(result); + sources.put(name, result); return result; } diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/PackageSource.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/PackageSource.java index 516ac33d0..c7e490319 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/PackageSource.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/PackageSource.java @@ -19,7 +19,6 @@ import java.util.Collection; import java.util.Enumeration; import org.eclipse.osgi.container.ModuleRevision; import org.eclipse.osgi.container.ModuleWiring; -import org.eclipse.osgi.framework.util.KeyedElement; import org.eclipse.osgi.internal.framework.EquinoxBundle; import org.eclipse.osgi.internal.framework.EquinoxContainer; import org.eclipse.osgi.internal.loader.BundleLoader; @@ -28,7 +27,7 @@ import org.osgi.framework.Bundle; import org.osgi.framework.ServiceFactory; import org.osgi.service.packageadmin.PackageAdmin; -public abstract class PackageSource implements KeyedElement { +public abstract class PackageSource { protected final String id; public PackageSource(String id) { @@ -42,18 +41,15 @@ public abstract class PackageSource implements KeyedElement { public abstract SingleSourcePackage[] getSuppliers(); - public boolean compare(KeyedElement other) { - return id.equals(((PackageSource) other).getId()); + public boolean compare(PackageSource other) { + return id.equals(other.getId()); } - public int getKeyHashCode() { + @Override + public int hashCode() { return id.hashCode(); } - public Object getKey() { - return id; - } - public boolean isNullSource() { return false; } |