Author: jwross
Date: Thu Oct 18 16:19:26 2012
New Revision: 1399722
URL: http://svn.apache.org/viewvc?rev=1399722&view=rev
Log:
ARIES-870: Return the correct current wiring from the resolve context used when
resolving a subsystem.
Modified:
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java
Modified:
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java
URL:
http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java?rev=1399722&r1=1399721&r2=1399722&view=diff
==============================================================================
---
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java
(original)
+++
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java
Thu Oct 18 16:19:26 2012
@@ -20,6 +20,7 @@ import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -471,6 +472,19 @@ public class SubsystemResource implement
private ResolveContext createResolveContext() {
return new ResolveContext() {
+ private final Map<Resource, Wiring> wirings =
computeWirings();
+
+ private Map<Resource, Wiring> computeWirings() {
+ Map<Resource, Wiring> wirings = new
HashMap<Resource, Wiring>();
+ for (AriesSubsystem subsystem :
Activator.getInstance().getSubsystems().getSubsystems())
+ for (Resource constituent :
subsystem.getConstituents())
+ if (constituent instanceof
BundleRevision) {
+ BundleRevision revision
= (BundleRevision)constituent;
+ wirings.put(revision,
revision.getWiring());
+ }
+ return Collections.unmodifiableMap(wirings);
+ }
+
@Override
public List<Capability> findProviders(Requirement
requirement) {
List<Capability> result = new
ArrayList<Capability>();
@@ -519,8 +533,8 @@ public class SubsystemResource implement
}
@Override
- public Map<Resource, Wiring> getWirings() {
- return Collections.emptyMap();
+ public synchronized Map<Resource, Wiring> getWirings() {
+ return wirings;
}
};
}