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 2010/04/02 15:30:31 UTC

svn commit: r930266 - /felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java

Author: rickhall
Date: Fri Apr  2 13:30:30 2010
New Revision: 930266

URL: http://svn.apache.org/viewvc?rev=930266&view=rev
Log:
Add duplicate export scenario.

Modified:
    felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java

Modified: felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java?rev=930266&r1=930265&r2=930266&view=diff
==============================================================================
--- felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java (original)
+++ felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java Fri Apr  2 13:30:30 2010
@@ -1122,4 +1122,37 @@ public class Main
 
         return target;
     }
+
+    // SOLUTION:
+    // A: fooB->B, fooC->C, fooD->D
+    // B: fooD->D
+    // C: fooD->D
+    private static Module scenario27(List<Module> moduleList)
+    {
+        Module m, target;
+
+        // Bundle A
+        moduleList.add(
+            target = (m = new Module("A"))
+                .requiring(new RequirementImpl(Capability.PACKAGE_NAMESPACE).with("package=fooD"))
+                .requiring(new RequirementImpl(Capability.PACKAGE_NAMESPACE).with("package=fooB"))
+                .requiring(new RequirementImpl(Capability.PACKAGE_NAMESPACE).with("package=fooC")));
+        // Bundle B
+        moduleList.add(
+            (m = new Module("B"))
+                .providing(new CapabilityImpl(m, Capability.PACKAGE_NAMESPACE).with("package=fooB").using("fooD"))
+                .requiring(new RequirementImpl(Capability.PACKAGE_NAMESPACE).with("package=fooD").with("attr=first")));
+        // Bundle C
+        moduleList.add(
+            (m = new Module("C"))
+                .providing(new CapabilityImpl(m, Capability.PACKAGE_NAMESPACE).with("package=fooC").using("fooD"))
+                .requiring(new RequirementImpl(Capability.PACKAGE_NAMESPACE).with("package=fooD").with("attr=second")));
+        // Bundle D
+        moduleList.add(
+            (m = new Module("D"))
+                .providing(new CapabilityImpl(m, Capability.PACKAGE_NAMESPACE).with("package=fooD").with("attr=first"))
+                .providing(new CapabilityImpl(m, Capability.PACKAGE_NAMESPACE).with("package=fooD").with("attr=second")));
+
+        return target;
+    }
 }
\ No newline at end of file