use of org.apache.aries.blueprint.sample.InterfaceA 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.apache.aries.blueprint.sample.InterfaceA 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
}
}
Aggregations