Search in sources :

Example 1 with InterfaceA

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"));
}
Also used : BlueprintContainer(org.osgi.service.blueprint.container.BlueprintContainer) InterfaceA(org.apache.aries.blueprint.sample.InterfaceA) List(java.util.List) BindingListener(org.apache.aries.blueprint.sample.BindingListener) DestroyTest(org.apache.aries.blueprint.sample.DestroyTest) Test(org.junit.Test)

Example 2 with InterfaceA

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
    }
}
Also used : BlueprintContainer(org.osgi.service.blueprint.container.BlueprintContainer) InterfaceA(org.apache.aries.blueprint.sample.InterfaceA) Hashtable(java.util.Hashtable) ServiceUnavailableException(org.osgi.service.blueprint.container.ServiceUnavailableException) BindingListener(org.apache.aries.blueprint.sample.BindingListener) ServiceRegistration(org.osgi.framework.ServiceRegistration) DestroyTest(org.apache.aries.blueprint.sample.DestroyTest) Test(org.junit.Test)

Aggregations

BindingListener (org.apache.aries.blueprint.sample.BindingListener)2 DestroyTest (org.apache.aries.blueprint.sample.DestroyTest)2 InterfaceA (org.apache.aries.blueprint.sample.InterfaceA)2 Test (org.junit.Test)2 BlueprintContainer (org.osgi.service.blueprint.container.BlueprintContainer)2 Hashtable (java.util.Hashtable)1 List (java.util.List)1 ServiceRegistration (org.osgi.framework.ServiceRegistration)1 ServiceUnavailableException (org.osgi.service.blueprint.container.ServiceUnavailableException)1