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/08/11 17:32:21 UTC

svn commit: r1156652 - in /felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test: ./ recipes/ src/org/apache/felix/framework/test/ src/org/apache/felix/framework/test/resolver/b016/ src/org/apache/felix/framework/test/resolver/b017/ src/org/a...

Author: rickhall
Date: Thu Aug 11 15:32:20 2011
New Revision: 1156652

URL: http://svn.apache.org/viewvc?rev=1156652&view=rev
Log:
Add a resolver test case for reexport uses conflict.

Added:
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016a.bnd
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016b.bnd
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b017.bnd
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b018.bnd
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b016/
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b016/Placeholder.java
      - copied, changed from r1156640, felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b017/
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b017/Placeholder.java
      - copied, changed from r1156640, felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b018/
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b018/Placeholder.java
      - copied, changed from r1156640, felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java
Modified:
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/bnd.bnd
    felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/TestResolver.java

Modified: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/bnd.bnd
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/bnd.bnd?rev=1156652&r1=1156651&r2=1156652&view=diff
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/bnd.bnd (original)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/bnd.bnd Thu Aug 11 15:32:20 2011
@@ -9,7 +9,8 @@ Include-Resource: \
  resolver.b001.jar, resolver.b002.jar, resolver.b003.jar, resolver.b004.jar, \
  resolver.b005.jar, resolver.b006.jar, resolver.b007.jar, resolver.b008.jar, \
  resolver.b009.jar, resolver.b010.jar, resolver.b011.jar, resolver.b012.jar, \
- resolver.b013.jar, resolver.b014.jar, resolver.b015.jar, \
+ resolver.b013.jar, resolver.b014.jar, resolver.b015.jar, resolver.b016a.jar, \
+ resolver.b016b.jar, resolver.b017.jar, resolver.b018.jar, \
  fragment.b001.jar, fragment.b002.jar, fragment.b003.jar, \
  fragment.b004.jar, fragment.b005.jar, \
  fragment.b006.jar, fragment.b007.jar, fragment.b008.jar, \

Added: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016a.bnd
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016a.bnd?rev=1156652&view=auto
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016a.bnd (added)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016a.bnd Thu Aug 11 15:32:20 2011
@@ -0,0 +1,4 @@
+Bundle-SymbolicName: org.apache.felix.framework.test.resolver.b016a
+Private-Package: org.apache.felix.framework.test.resolver.b016
+Export-Package: org.apache.felix.framework.test.resolver.b016; -noimport:=true
+

Added: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016b.bnd
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016b.bnd?rev=1156652&view=auto
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016b.bnd (added)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b016b.bnd Thu Aug 11 15:32:20 2011
@@ -0,0 +1,4 @@
+Bundle-SymbolicName: org.apache.felix.framework.test.resolver.b016b
+Private-Package: org.apache.felix.framework.test.resolver.b016
+Export-Package: org.apache.felix.framework.test.resolver.b016; -noimport:=true
+

Added: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b017.bnd
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b017.bnd?rev=1156652&view=auto
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b017.bnd (added)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b017.bnd Thu Aug 11 15:32:20 2011
@@ -0,0 +1,5 @@
+Bundle-SymbolicName: org.apache.felix.framework.test.resolver.b017
+Private-Package: org.apache.felix.framework.test.resolver.b017
+Require-Bundle: org.apache.felix.framework.test.resolver.b016a; visibility:="reexport"
+Export-Package: org.apache.felix.framework.test.resolver.b017; uses:="org.apache.felix.framework.test.resolver.b016"; -noimport:=true
+

Added: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b018.bnd
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b018.bnd?rev=1156652&view=auto
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b018.bnd (added)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/recipes/resolver.b018.bnd Thu Aug 11 15:32:20 2011
@@ -0,0 +1,5 @@
+Bundle-SymbolicName: org.apache.felix.framework.test.resolver.b018
+Private-Package: org.apache.felix.framework.test.resolver.b018
+Import-Package: org.apache.felix.framework.test.resolver.b016; bundle-symbolic-name="org.apache.felix.framework.test.resolver.b016b"
+Require-Bundle: org.apache.felix.framework.test.resolver.b017
+

Modified: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/TestResolver.java
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/TestResolver.java?rev=1156652&r1=1156651&r2=1156652&view=diff
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/TestResolver.java (original)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/TestResolver.java Thu Aug 11 15:32:20 2011
@@ -347,6 +347,52 @@ public class TestResolver extends FelixT
         }
     }
 
+    public void testReexportConflict() throws Exception
+    {
+        InputStream is = null;
+
+        // Scenario
+        //
+        // Bundle 18 explicitly imports a package from bundle 16b, but it is also
+        // exposed to that package in a uses constraint when it requires bundle 17,
+        // which requires bundle 16a. Therefore it should fail to resolve.
+        try
+        {
+            is = this.getClass().getClassLoader().getResourceAsStream("resolver.b016a.jar");
+            m_bundleA = getBundleContext().installBundle("resolver.b016a.jar", is);
+            is = this.getClass().getClassLoader().getResourceAsStream("resolver.b016b.jar");
+            m_bundleB = getBundleContext().installBundle("resolver.b016b.jar", is);
+            is = this.getClass().getClassLoader().getResourceAsStream("resolver.b017.jar");
+            m_bundleC = getBundleContext().installBundle("resolver.b017.jar", is);
+            is = this.getClass().getClassLoader().getResourceAsStream("resolver.b018.jar");
+            m_bundleD = getBundleContext().installBundle("resolver.b018.jar", is);
+
+            assertTrue("Bundle should resolve",
+                getPackageAdmin().resolveBundles(new Bundle[] { m_bundleA }));
+            assertEquals("Bundle state should be resolved.",
+                Bundle.RESOLVED, m_bundleA.getState());
+
+            assertTrue("Bundle should resolve",
+                getPackageAdmin().resolveBundles(new Bundle[] { m_bundleB }));
+            assertEquals("Bundle state should be resolved.",
+                Bundle.RESOLVED, m_bundleB.getState());
+
+            assertTrue("Bundle should resolve",
+                getPackageAdmin().resolveBundles(new Bundle[] { m_bundleC }));
+            assertEquals("Bundle state should be resolved.",
+                Bundle.RESOLVED, m_bundleC.getState());
+
+            assertFalse("Bundle should not resolve",
+                getPackageAdmin().resolveBundles(new Bundle[] { m_bundleD }));
+            assertEquals("Bundle state should be installed.",
+                Bundle.INSTALLED, m_bundleD.getState());
+        }
+        finally
+        {
+            cleanup();
+        }
+    }
+
     private void cleanup()
     {
         if (m_bundleA != null)

Copied: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b016/Placeholder.java (from r1156640, felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java)
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b016/Placeholder.java?p2=felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b016/Placeholder.java&p1=felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java&r1=1156640&r2=1156652&rev=1156652&view=diff
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java (original)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b016/Placeholder.java Thu Aug 11 15:32:20 2011
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.framework.test.resolver.b015;
+package org.apache.felix.framework.test.resolver.b016;
 
 import org.apache.felix.framework.test.resolver.b014.*;
 

Copied: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b017/Placeholder.java (from r1156640, felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java)
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b017/Placeholder.java?p2=felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b017/Placeholder.java&p1=felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java&r1=1156640&r2=1156652&rev=1156652&view=diff
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java (original)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b017/Placeholder.java Thu Aug 11 15:32:20 2011
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.framework.test.resolver.b015;
+package org.apache.felix.framework.test.resolver.b017;
 
 import org.apache.felix.framework.test.resolver.b014.*;
 

Copied: felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b018/Placeholder.java (from r1156640, felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java)
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b018/Placeholder.java?p2=felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b018/Placeholder.java&p1=felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java&r1=1156640&r2=1156652&rev=1156652&view=diff
==============================================================================
--- felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b015/Placeholder.java (original)
+++ felix/sandbox/rickhall/bnd-test/org.apache.felix.framework.test/src/org/apache/felix/framework/test/resolver/b018/Placeholder.java Thu Aug 11 15:32:20 2011
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.framework.test.resolver.b015;
+package org.apache.felix.framework.test.resolver.b018;
 
 import org.apache.felix.framework.test.resolver.b014.*;