Author: rickhall
Date: Thu Mar 10 15:00:15 2011
New Revision: 1080242

URL: http://svn.apache.org/viewvc?rev=1080242&view=rev
Log:
Need to wrap requirments and capabilities in wire when they come from
fragments. (FELIX-2858)

Modified:
    
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
    
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java

Modified: 
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java?rev=1080242&r1=1080241&r2=1080242&view=diff
==============================================================================
--- 
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
 (original)
+++ 
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
 Thu Mar 10 15:00:15 2011
@@ -479,8 +479,24 @@ public class ResolverImpl implements Res
             // Use wires to get actual requirements and satisfying 
capabilities.
             for (Wire wire : module.getWires())
             {
-                reqs.add(wire.getRequirement());
-                caps.add(wire.getCapability());
+                // Wrap the requirement as a hosted requirement
+                // if it comes from a fragment, since we will need
+                // to know the host.
+                Requirement r = wire.getRequirement();
+                if (!r.getModule().equals(wire.getImporter()))
+                {
+                    r = new WrappedRequirement(wire.getImporter(), r);
+                }
+                // Wrap the capability as a hosted capability
+                // if it comes from a fragment, since we will need
+                // to know the host.
+                Capability c = wire.getCapability();
+                if (!c.getModule().equals(wire.getExporter()))
+                {
+                    c = new WrappedCapability(wire.getExporter(), c);
+                }
+                reqs.add(r);
+                caps.add(c);
             }
 
             // Since the module is resolved, it could be dynamically importing,

Modified: 
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java?rev=1080242&r1=1080241&r2=1080242&view=diff
==============================================================================
--- 
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java
 (original)
+++ 
felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java
 Thu Mar 10 15:00:15 2011
@@ -137,6 +137,11 @@ class WrappedModule implements Module
         return m_cachedRequirements;
     }
 
+    public String toString()
+    {
+        return m_module.getId();
+    }
+
     public Map getHeaders()
     {
         throw new UnsupportedOperationException("Not supported yet.");


Reply via email to