Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2012-08-07 19:02:40 +0000
committerThomas Watson2012-08-07 19:02:40 +0000
commit8d3e59c290937b4d14db39707f9ee61d9dedddfb (patch)
tree7bb875d035f62a558a2771d211edff87b083def9 /bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java
parent7f77483bb4a46c86a4a3104c5dee52c216cb8952 (diff)
downloadrt.equinox.framework-8d3e59c290937b4d14db39707f9ee61d9dedddfb.tar.gz
rt.equinox.framework-8d3e59c290937b4d14db39707f9ee61d9dedddfb.tar.xz
rt.equinox.framework-8d3e59c290937b4d14db39707f9ee61d9dedddfb.zip
Aggressively resolve extension bundles.
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java')
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java
index 23279c4f7..b36fcfb0a 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java
@@ -29,7 +29,7 @@ public final class ModuleWiring implements BundleWiring {
private static final RuntimePermission GET_CLASSLOADER_PERM = new RuntimePermission("getClassLoader"); //$NON-NLS-1$
private static final String DYNAMICALLY_ADDED_IMPORT_DIRECTIVE = "x.dynamically.added"; //$NON-NLS-1$
private final ModuleRevision revision;
- private final List<ModuleCapability> capabilities;
+ private volatile List<ModuleCapability> capabilities;
private volatile List<ModuleRequirement> requirements;
private final Collection<String> substitutedPkgNames;
private final Object monitor = new Object();
@@ -81,12 +81,16 @@ public final class ModuleWiring implements BundleWiring {
* @see #getCapabilities(String)
*/
public List<ModuleCapability> getModuleCapabilities(String namespace) {
+ return getModuleCapabilities(namespace, capabilities);
+ }
+
+ private List<ModuleCapability> getModuleCapabilities(String namespace, List<ModuleCapability> allCapabilities) {
if (!isValid)
return null;
if (namespace == null)
- return new ArrayList<ModuleCapability>(capabilities);
+ return new ArrayList<ModuleCapability>(allCapabilities);
List<ModuleCapability> result = new ArrayList<ModuleCapability>();
- for (ModuleCapability capability : capabilities) {
+ for (ModuleCapability capability : allCapabilities) {
if (namespace.equals(capability.getNamespace())) {
result.add(capability);
}
@@ -311,6 +315,10 @@ public final class ModuleWiring implements BundleWiring {
this.requiredWires = requiredWires;
}
+ void setCapabilities(List<ModuleCapability> capabilities) {
+ this.capabilities = capabilities;
+ }
+
void invalidate() {
ModuleLoader current;
synchronized (monitor) {

Back to the top