diff options
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi')
6 files changed, 45 insertions, 45 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/KeyedHashSet.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/KeyedHashSet.java index 0db7e07b7..98445fa69 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/KeyedHashSet.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/KeyedHashSet.java @@ -22,8 +22,10 @@ import java.util.NoSuchElementException; * reduce the overhead of storing the keys of each individual element<p> * This class in not thread safe, clients must ensure synchronization when modifying an object of this type. * @since 3.2 + * @deprecated This class will be removed in a future release */ // This class was moved from /org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/KeyedHashSet.java +@Deprecated public class KeyedHashSet { public static final int MINIMUM_SIZE = 7; int elementCount = 0; diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java index f86899473..9d8cfad81 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java @@ -42,8 +42,6 @@ import org.eclipse.osgi.container.ModuleWire; import org.eclipse.osgi.container.ModuleWiring; import org.eclipse.osgi.container.builders.OSGiManifestBuilderFactory; import org.eclipse.osgi.container.namespaces.EquinoxModuleDataNamespace; -import org.eclipse.osgi.framework.util.KeyedElement; -import org.eclipse.osgi.framework.util.KeyedHashSet; import org.eclipse.osgi.internal.debug.Debug; import org.eclipse.osgi.internal.framework.EquinoxConfiguration; import org.eclipse.osgi.internal.framework.EquinoxContainer; @@ -106,9 +104,9 @@ public class BundleLoader extends ModuleLoader { private final BundleLoaderSources exportSources; /* cache of required package sources. Key is packagename, value is PackageSource */ - private final KeyedHashSet requiredSources = new KeyedHashSet(false); + private final Map<String, PackageSource> requiredSources = new HashMap<>(); /* cache of imported packages. Key is packagename, Value is PackageSource */ - private final KeyedHashSet importedSources = new KeyedHashSet(false); + private final Map<String, PackageSource> importedSources = new HashMap<>(); private final List<ModuleWire> requiredBundleWires; /* @GuardedBy("importedSources") */ @@ -786,13 +784,13 @@ public class BundleLoader extends ModuleLoader { boolean subPackages = (options & BundleWiring.LISTRESOURCES_RECURSE) != 0; List<String> packages = new ArrayList<>(); // search imported package names - KeyedHashSet importSources = getImportedSources(null); - KeyedElement[] imports; + Map<String, PackageSource> importSources = getImportedSources(null); + Collection<PackageSource> imports; synchronized (importSources) { - imports = importSources.elements(); + imports = new ArrayList<>(importSources.values()); } - for (KeyedElement keyedElement : imports) { - String id = ((PackageSource) keyedElement).getId(); + for (PackageSource source : imports) { + String id = source.getId(); if (id.equals(pkgName) || (subPackages && isSubPackage(pkgName, id))) packages.add(id); } @@ -1144,13 +1142,13 @@ public class BundleLoader extends ModuleLoader { } private PackageSource findImportedSource(String pkgName, Collection<BundleLoader> visited) { - KeyedHashSet imports = getImportedSources(visited); + Map<String, PackageSource> imports = getImportedSources(visited); synchronized (imports) { - return (PackageSource) imports.getByKey(pkgName); + return imports.get(pkgName); } } - private KeyedHashSet getImportedSources(Collection<BundleLoader> visited) { + private Map<String, PackageSource> getImportedSources(Collection<BundleLoader> visited) { synchronized (importedSources) { if (importsInitialized) { return importedSources; @@ -1160,7 +1158,7 @@ public class BundleLoader extends ModuleLoader { for (ModuleWire importWire : importWires) { PackageSource source = createExportPackageSource(importWire, visited); if (source != null) { - importedSources.add(source); + importedSources.put(source.getId(), source); } } } @@ -1182,7 +1180,7 @@ public class BundleLoader extends ModuleLoader { Debug.println("BundleLoader[" + this + "] using dynamic import source: " + source); //$NON-NLS-1$ //$NON-NLS-2$ } synchronized (importedSources) { - importedSources.add(source); + importedSources.put(source.getId(), source); } return source; } @@ -1195,7 +1193,7 @@ public class BundleLoader extends ModuleLoader { return null; } synchronized (requiredSources) { - PackageSource result = (PackageSource) requiredSources.getByKey(pkgName); + PackageSource result = requiredSources.get(pkgName); if (result != null) return result.isNullSource() ? null : result; } @@ -1225,7 +1223,7 @@ public class BundleLoader extends ModuleLoader { source = createMultiSource(pkgName, srcs); } synchronized (requiredSources) { - requiredSources.add(source); + requiredSources.put(source.getId(), source); } return source.isNullSource() ? null : source; } diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoaderSources.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoaderSources.java index 7ea06d35c..982a2cd2d 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoaderSources.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoaderSources.java @@ -14,29 +14,31 @@ package org.eclipse.osgi.internal.loader; import java.security.AccessController; +import java.util.HashMap; import java.util.Map; import org.eclipse.osgi.container.ModuleCapability; -import org.eclipse.osgi.framework.util.KeyedHashSet; import org.eclipse.osgi.framework.util.SecureAction; -import org.eclipse.osgi.internal.loader.sources.*; +import org.eclipse.osgi.internal.loader.sources.FilteredSourcePackage; +import org.eclipse.osgi.internal.loader.sources.PackageSource; +import org.eclipse.osgi.internal.loader.sources.SingleSourcePackage; import org.osgi.framework.namespace.PackageNamespace; public class BundleLoaderSources { static SecureAction secureAction = AccessController.doPrivileged(SecureAction.createSecureAction()); - private final KeyedHashSet pkgSources; + private final Map<String, PackageSource> pkgSources; private final BundleLoader loader; public BundleLoaderSources(BundleLoader loader) { - this.pkgSources = new KeyedHashSet(false); + this.pkgSources = new HashMap<>(); this.loader = loader; } PackageSource getPackageSource(String pkgName) { synchronized (pkgSources) { - PackageSource pkgSource = (PackageSource) pkgSources.getByKey(pkgName); + PackageSource pkgSource = pkgSources.get(pkgName); if (pkgSource == null) { pkgSource = new SingleSourcePackage(pkgName, loader); - pkgSources.add(pkgSource); + pkgSources.put(pkgSource.getId(), pkgSource); } return pkgSource; } @@ -67,8 +69,8 @@ public class BundleLoaderSources { if (storeSource) { if (pkgSource != null) { synchronized (pkgSources) { - if (pkgSources.getByKey(name) == null) { - pkgSources.add(pkgSource); + if (pkgSources.get(name) == null) { + pkgSources.put(pkgSource.getId(), pkgSource); } } } diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/classpath/ClasspathEntry.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/classpath/ClasspathEntry.java index 99bbce154..5b7882b67 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/classpath/ClasspathEntry.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/classpath/ClasspathEntry.java @@ -30,7 +30,6 @@ import java.util.jar.Attributes; import java.util.jar.Manifest; import org.eclipse.osgi.container.Module; import org.eclipse.osgi.framework.util.KeyedElement; -import org.eclipse.osgi.framework.util.KeyedHashSet; import org.eclipse.osgi.storage.BundleInfo; import org.eclipse.osgi.storage.BundleInfo.Generation; import org.eclipse.osgi.storage.Storage; @@ -60,7 +59,7 @@ public class ClasspathEntry { private final ManifestPackageAttributes mainManifestPackageAttributes; private final Map<String, ManifestPackageAttributes> perPackageManifestAttributes; private final List<BundleFile> mrBundleFiles; - private KeyedHashSet userObjects = null; + private HashMap<Object, KeyedElement> userObjects = null; // TODO Note that PDE has internal dependency on this field type/name (bug 267238) @SuppressWarnings("unused") @@ -164,7 +163,7 @@ public class ClasspathEntry { public synchronized Object getUserObject(Object key) { if (userObjects == null) return null; - return userObjects.getByKey(key); + return userObjects.get(key); } @@ -174,8 +173,10 @@ public class ClasspathEntry { */ public synchronized void addUserObject(KeyedElement userObject) { if (userObjects == null) - userObjects = new KeyedHashSet(5, false); - userObjects.add(userObject); + userObjects = new HashMap<>(5); + if (!userObjects.containsKey(userObject.getKey())) { + userObjects.put(userObject.getKey(), userObject); + } } /** 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; } |