Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi')
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/framework/util/KeyedHashSet.java2
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java30
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoaderSources.java18
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/classpath/ClasspathEntry.java11
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/NullPackageSource.java15
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/sources/PackageSource.java14
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;
}

Back to the top