[jboss-cvs] JBossAS SVN: r97507 - projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Dec 7 09:36:31 EST 2009
Author: alesj
Date: 2009-12-07 09:36:31 -0500 (Mon, 07 Dec 2009)
New Revision: 97507
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java
Log:
Test mixed SF usage.
Modified: projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java 2009-12-07 13:29:53 UTC (rev 97506)
+++ projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java 2009-12-07 14:36:31 UTC (rev 97507)
@@ -301,6 +301,74 @@
}
}
+ public void testServiceFactoryMix() throws Throwable
+ {
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("C1", C.class.getName());
+ builder.addPropertyMetaData("a", builder.createInject("A"));
+ BeanMetaData bmd = builder.getBeanMetaData();
+ Deployment bean1 = addBean("beanA1", C.class, bmd, A.class, D.class);
+ try
+ {
+ Bundle bundle1 = assembleBundle("simple2", "/bundles/service/service-bundle4");
+ try
+ {
+ bundle1.start();
+ BundleContext bundleContext1 = bundle1.getBundleContext();
+ assertNotNull(bundleContext1);
+
+ Class<?> dClass = bundle1.loadClass(D.class.getName());
+ Object d = dClass.newInstance();
+ Hashtable<String, Object> table = new Hashtable<String, Object>();
+ table.put("service.alias.1", "A");
+ ServiceRegistration reg1 = bundleContext1.registerService(A.class.getName(), d, table);
+ assertNotNull(reg1);
+ ServiceReference refA = reg1.getReference();
+ assertNotNull(refA);
+
+ Object a = null;
+ try
+ {
+ checkComplete();
+
+ Object c1 = getBean("C1");
+ a = invoke(c1, "getA", "C1");
+
+ ServiceReference refD = bundleContext1.getServiceReference(C.class.getName());
+ Bundle beanBundle = refD.getBundle();
+ assertNotNull(beanBundle);
+ BundleContext beanBC = beanBundle.getBundleContext();
+ assertNotNull(beanBC);
+ Object service = beanBC.getService(refA);
+ assertSame(a, service);
+
+ KernelControllerContext cCC = getControllerContext("C1", null);
+ change(cCC, ControllerState.INSTANTIATED);
+
+ List as = assertInstanceOf(invoke(d, "getAs", "A"), List.class);
+ assertNotNull(as);
+ assertEmpty(as); // SF is still in use
+ }
+ finally
+ {
+ reg1.unregister();
+ }
+
+ List as = assertInstanceOf(invoke(d, "getAs", "A"), List.class);
+ assertNotNull(as);
+ assertEquals(1, as.size());
+ assertTrue(as.contains(a));
+ }
+ finally
+ {
+ uninstall(bundle1);
+ }
+ }
+ finally
+ {
+ undeploy(bean1);
+ }
+ }
+
public void testFiltering() throws Throwable
{
Deployment bean = addBean("beanA", A.class);
More information about the jboss-cvs-commits
mailing list