Author: thomas.diesler(a)jboss.com
Date: 2009-09-08 12:33:54 -0400 (Tue, 08 Sep 2009)
New Revision: 93286
Modified:
projects/jboss-osgi/trunk/testsuite/functional/src/test/java/org/jboss/test/osgi/jbosgi151/OSGI151TestCase.java
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/META-INF/jboss-osgi-bootstrap.xml
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi151/jbosgi151-bundleC.bnd
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi151/jbosgi151-bundleD.bnd
Log:
[JBOSGI-151] Cannot resolve circular dependencies
Simulate compendium + jetty issue
Modified:
projects/jboss-osgi/trunk/testsuite/functional/src/test/java/org/jboss/test/osgi/jbosgi151/OSGI151TestCase.java
===================================================================
---
projects/jboss-osgi/trunk/testsuite/functional/src/test/java/org/jboss/test/osgi/jbosgi151/OSGI151TestCase.java 2009-09-08
16:33:03 UTC (rev 93285)
+++
projects/jboss-osgi/trunk/testsuite/functional/src/test/java/org/jboss/test/osgi/jbosgi151/OSGI151TestCase.java 2009-09-08
16:33:54 UTC (rev 93286)
@@ -30,6 +30,8 @@
import org.jboss.osgi.spi.testing.OSGiTestHelper;
import org.jboss.test.osgi.jbosgi151.bundleA.BeanA;
import org.jboss.test.osgi.jbosgi151.bundleB.BeanB;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -40,24 +42,51 @@
*
*
https://jira.jboss.org/jira/browse/JBOSGI-143
*
- * A imports B
- * B imports A
+ * BundleA
+ * exports A
+ * imports B
+ *
+ * BundleB
+ * exports B
+ * imports A
+ *
+ * BundleC
+ * exports A, B
+ * imports A
*
- * C exports/imports A,B
- * D exports/imports A,B
+ * BundleD
+ * exports A,
+ * imports A, B
*
* @author thomas.diesler(a)jboss.com
* @since 07-Sep-2009
*/
public class OSGI151TestCase
{
+ private static Framework framework;
+
+ @BeforeClass
+ public static void beforeClass() throws Exception
+ {
+ OSGiBootstrapProvider bootProvider = OSGiBootstrap.getBootstrapProvider();
+ framework = bootProvider.getFramework();
+ framework.start();
+ }
+
+ @BeforeClass
+ public static void afterClass() throws Exception
+ {
+ if (framework != null)
+ {
+ framework.stop();
+ framework.waitForStop(2000);
+ }
+ }
+
@Test
+ @Ignore
public void testCircularNoSelfDependency() throws Exception
{
- OSGiBootstrapProvider bootProvider = OSGiBootstrap.getBootstrapProvider();
- Framework framework = bootProvider.getFramework();
- framework.start();
-
BundleContext sysContext = framework.getBundleContext();
Bundle bundleA =
sysContext.installBundle(getBundleLocation("jbosgi151-bundleA.jar"));
@@ -67,37 +96,35 @@
assertEquals("INSTALLED expected", Bundle.INSTALLED,
bundleB.getState());
System.out.println("FIXME [JBOSGI-151] Cannot resolve circular
dependencies");
-// bundleB.start();
-// assertEquals("ACTIVE expected", Bundle.ACTIVE, bundleB.getState());
-// assertEquals("RESOLVED expected", Bundle.RESOLVED,
bundleA.getState());
+ /*
+ bundleB.start();
+ assertEquals("ACTIVE expected", Bundle.ACTIVE, bundleB.getState());
+ assertEquals("RESOLVED expected", Bundle.RESOLVED, bundleA.getState());
-// Class<?> classAA = bundleA.loadClass(BeanA.class.getName());
-// Class<?> classAB = bundleB.loadClass(BeanA.class.getName());
-// assertEquals("Class for BeanA", classAA, classAB);
-//
-// Class<?> classBA = bundleA.loadClass(BeanB.class.getName());
-// Class<?> classBB = bundleB.loadClass(BeanB.class.getName());
-// assertEquals("Class for BeanB", classBA, classBB);
+ Class<?> classAA = bundleA.loadClass(BeanA.class.getName());
+ Class<?> classAB = bundleB.loadClass(BeanA.class.getName());
+ assertEquals("Class for BeanA", classAA, classAB);
- framework.stop();
- framework.waitForStop(1000);
+ Class<?> classBA = bundleA.loadClass(BeanB.class.getName());
+ Class<?> classBB = bundleB.loadClass(BeanB.class.getName());
+ assertEquals("Class for BeanB", classBA, classBB);
+ */
+
+ bundleB.uninstall();
+ bundleA.uninstall();
}
@Test
public void testCircularWithSelfDependency() throws Exception
{
- OSGiBootstrapProvider bootProvider = OSGiBootstrap.getBootstrapProvider();
- Framework framework = bootProvider.getFramework();
- framework.start();
-
BundleContext sysContext = framework.getBundleContext();
+ Bundle bundleD =
sysContext.installBundle(getBundleLocation("jbosgi151-bundleD.jar"));
+ assertEquals("INSTALLED expected", Bundle.INSTALLED,
bundleD.getState());
+
Bundle bundleC =
sysContext.installBundle(getBundleLocation("jbosgi151-bundleC.jar"));
assertEquals("INSTALLED expected", Bundle.INSTALLED,
bundleC.getState());
- Bundle bundleD =
sysContext.installBundle(getBundleLocation("jbosgi151-bundleD.jar"));
- assertEquals("INSTALLED expected", Bundle.INSTALLED,
bundleD.getState());
-
bundleD.start();
assertEquals("ACTIVE expected", Bundle.ACTIVE, bundleD.getState());
assertEquals("RESOLVED expected", Bundle.RESOLVED, bundleC.getState());
@@ -110,8 +137,8 @@
Class<?> classBD = bundleD.loadClass(BeanB.class.getName());
assertEquals("Class for BeanB", classBC, classBD);
- framework.stop();
- framework.waitForStop(1000);
+ bundleD.uninstall();
+ bundleC.uninstall();
}
private String getBundleLocation(String jarname)
Modified:
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/META-INF/jboss-osgi-bootstrap.xml
===================================================================
---
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/META-INF/jboss-osgi-bootstrap.xml 2009-09-08
16:33:03 UTC (rev 93285)
+++
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/META-INF/jboss-osgi-bootstrap.xml 2009-09-08
16:33:54 UTC (rev 93286)
@@ -52,20 +52,6 @@
********************************
-->
- <bean name="OSGiAutoInstallPlugin"
class="org.jboss.osgi.plugins.facade.plugins.AutoInstallPluginImpl">
- <constructor><parameter><inject bean="OSGiBundleManager"
/></parameter></constructor>
- <property name="autoInstall">
- <list elementClass="java.net.URL">
-
<value>${test.archive.directory}/bundles/org.osgi.compendium.jar</value>
- </list>
- </property>
- <property name="autoStart">
- <list elementClass="java.net.URL">
-
<value>${test.archive.directory}/bundles/org.apache.felix.log.jar</value>
- <value>${test.archive.directory}/bundles/jboss-osgi-common.jar</value>
- </list>
- </property>
- </bean>
<bean name="OSGiFrameworkEventsPlugin"
class="org.jboss.osgi.plugins.facade.plugins.FrameworkEventsPluginImpl">
<constructor><parameter><inject bean="OSGiBundleManager"
/></parameter></constructor>
</bean>
Modified:
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi151/jbosgi151-bundleC.bnd
===================================================================
---
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi151/jbosgi151-bundleC.bnd 2009-09-08
16:33:03 UTC (rev 93285)
+++
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi151/jbosgi151-bundleC.bnd 2009-09-08
16:33:54 UTC (rev 93286)
@@ -2,4 +2,4 @@
Bundle-SymbolicName: jbosgi151-bundleC
Export-Package: org.jboss.test.osgi.jbosgi151.bundleA,
org.jboss.test.osgi.jbosgi151.bundleB
-Import-Package: org.jboss.test.osgi.jbosgi151.bundleA,
org.jboss.test.osgi.jbosgi151.bundleB
+Import-Package: org.jboss.test.osgi.jbosgi151.bundleA
Modified:
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi151/jbosgi151-bundleD.bnd
===================================================================
---
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi151/jbosgi151-bundleD.bnd 2009-09-08
16:33:03 UTC (rev 93285)
+++
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi151/jbosgi151-bundleD.bnd 2009-09-08
16:33:54 UTC (rev 93286)
@@ -1,5 +1,5 @@
# bnd build -classpath target/test-classes -output target/test-libs/jbosgi151-bundleD.jar
src/test/resources/jbosgi151/bundleD.bnd
Bundle-SymbolicName: jbosgi151-bundleD
-Export-Package: org.jboss.test.osgi.jbosgi151.bundleA,
org.jboss.test.osgi.jbosgi151.bundleB
+Export-Package: org.jboss.test.osgi.jbosgi151.bundleA
Import-Package: org.jboss.test.osgi.jbosgi151.bundleA,
org.jboss.test.osgi.jbosgi151.bundleB