use of org.osgi.service.blueprint.container.BlueprintContainer in project aries by apache.
the class TestReferences method testListReferences.
@Test
public void testListReferences() throws Exception {
BlueprintContainer blueprintContainer = Helper.getBlueprintContainerForBundle(context(), "org.apache.aries.blueprint.sample");
assertNotNull(blueprintContainer);
BindingListener listener = (BindingListener) blueprintContainer.getComponentInstance("listBindingListener");
assertNull(listener.getA());
assertNull(listener.getReference());
List<?> refs = (List<?>) blueprintContainer.getComponentInstance("ref-list");
assertNotNull(refs);
assertTrue(refs.isEmpty());
InterfaceA testService = new InterfaceA() {
public String hello(String msg) {
return "Hello " + msg + "!";
}
};
bundleContext.registerService(InterfaceA.class.getName(), testService, null);
waitForAsynchronousHandling();
assertNotNull(listener.getA());
assertNotNull(listener.getReference());
assertEquals(1, refs.size());
InterfaceA a = (InterfaceA) refs.get(0);
assertNotNull(a);
assertEquals("Hello world!", a.hello("world"));
}
use of org.osgi.service.blueprint.container.BlueprintContainer in project aries by apache.
the class TestReferences method testUnaryReference.
@SuppressWarnings("rawtypes")
@Test
public void testUnaryReference() throws Exception {
BlueprintContainer blueprintContainer = Helper.getBlueprintContainerForBundle(context(), "org.apache.aries.blueprint.sample");
assertNotNull(blueprintContainer);
BindingListener listener = (BindingListener) blueprintContainer.getComponentInstance("bindingListener");
assertNull(listener.getA());
assertNull(listener.getReference());
InterfaceA a = (InterfaceA) blueprintContainer.getComponentInstance("ref2");
try {
a.hello("world");
fail("A ServiceUnavailableException should have been thrown");
} catch (ServiceUnavailableException e) {
// Ignore, expected
}
ServiceRegistration reg1 = bundleContext.registerService(InterfaceA.class.getName(), new InterfaceA() {
public String hello(String msg) {
return "Hello " + msg + "!";
}
}, null);
waitForAsynchronousHandling();
assertNotNull(listener.getA());
assertNotNull(listener.getReference());
assertEquals("Hello world!", a.hello("world"));
Hashtable<String, Object> props = new Hashtable<String, Object>();
props.put(Constants.SERVICE_RANKING, Integer.valueOf(1));
ServiceRegistration reg2 = bundleContext.registerService(InterfaceA.class.getName(), new InterfaceA() {
public String hello(String msg) {
return "Good morning " + msg + "!";
}
}, props);
waitForAsynchronousHandling();
assertNotNull(listener.getA());
assertNotNull(listener.getReference());
assertEquals("Hello world!", a.hello("world"));
reg1.unregister();
waitForAsynchronousHandling();
assertNotNull(listener.getA());
assertNotNull(listener.getReference());
assertEquals("Good morning world!", a.hello("world"));
reg2.unregister();
waitForAsynchronousHandling();
assertNull(listener.getA());
assertNull(listener.getReference());
try {
a.hello("world");
fail("A ServiceUnavailableException should have been thrown");
} catch (ServiceUnavailableException e) {
// Ignore, expected
}
}
use of org.osgi.service.blueprint.container.BlueprintContainer in project aries by apache.
the class SpringExtenderTest method testSpringBundle.
@Test
public void testSpringBundle() throws Exception {
try {
context().getService(BeanCItf.class, 1);
fail("The service should not be registered");
} catch (RuntimeException e) {
// Expected
}
Bundle bundles = context().getBundleByName("org.apache.aries.blueprint.testbundlee");
assertNotNull(bundles);
bundles.start();
BlueprintContainer container = startBundleBlueprint("org.apache.aries.blueprint.testbundlee");
assertNotNull(container);
BeanCItf beanC1 = context().getService(BeanCItf.class, "(name=BeanC-1)");
assertEquals(1, beanC1.getInitialized());
BeanCItf beanC2 = context().getService(BeanCItf.class, "(name=BeanC-2)");
assertEquals(1, beanC2.getInitialized());
}
use of org.osgi.service.blueprint.container.BlueprintContainer in project aries by apache.
the class AbstractBlueprintIntegrationTest method startBundleBlueprint.
protected BlueprintContainer startBundleBlueprint(String symbolicName) throws BundleException {
Bundle b = context().getBundleByName(symbolicName);
assertNotNull("Bundle " + symbolicName + " not found", b);
b.start();
BlueprintContainer beanContainer = Helper.getBlueprintContainerForBundle(context(), symbolicName);
assertNotNull(beanContainer);
return beanContainer;
}
Aggregations