You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2011/07/06 18:55:15 UTC

svn commit: r1143500 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionDependencies.java

Author: rickhall
Date: Wed Jul  6 16:55:15 2011
New Revision: 1143500

URL: http://svn.apache.org/viewvc?rev=1143500&view=rev
Log:
Need to return provided wires in the order in which capabilities
were declared. (FELIX-2950)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionDependencies.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionDependencies.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionDependencies.java?rev=1143500&r1=1143499&r2=1143500&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionDependencies.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionDependencies.java Wed Jul  6 16:55:15 2011
@@ -130,15 +130,22 @@ class BundleRevisionDependencies
     {
         List<BundleWire> providedWires = new ArrayList<BundleWire>();
 
-        Map<BundleCapability, Set<BundleWire>> caps =
+        Map<BundleCapability, Set<BundleWire>> providedCaps =
             m_dependentsMap.get(revision);
-        if (caps != null)
+        if (providedCaps != null)
         {
-            for (Entry<BundleCapability, Set<BundleWire>> entry : caps.entrySet())
+            // The wires are supposed to be in declared capability order, so
+            // get the capability list from the revision's wiring, which is
+            // in declared order (including fragments), and use it to create
+            // the provided wire list in declared order.
+            List<BundleCapability> resolvedCaps =
+                revision.getWiring().getCapabilities(namespace);
+            for (BundleCapability resolvedCap : resolvedCaps)
             {
-                if ((namespace == null) || entry.getKey().getNamespace().equals(namespace))
+                Set<BundleWire> dependentWires = providedCaps.get(resolvedCap);
+                if (dependentWires != null)
                 {
-                    providedWires.addAll(entry.getValue());
+                    providedWires.addAll(dependentWires);
                 }
             }
         }