Search in sources :

Example 31 with Factory

use of org.apache.felix.ipojo.Factory in project felix by apache.

the class TestComp5 method setUp.

@Before
public void setUp() {
    tataFactory = (ComponentFactory) ipojoHelper.getFactory("tata");
    totoFactory = (ComponentFactory) ipojoHelper.getFactory("toto");
    tataFactory2 = (ComponentFactory) ipojoHelper.getFactory("comp-6");
    tataFactory2.stop();
    tataFactory.stop();
    Properties props = new Properties();
    props.put("instance.name", "toto provider");
    try {
        totoProv = totoFactory.createComponentInstance(props);
    } catch (Exception e) {
        e.printStackTrace();
    }
    Properties props3 = new Properties();
    props3.put("instance.name", "toto provider 2");
    try {
        totoProv2 = totoFactory.createComponentInstance(props3);
    } catch (Exception e) {
        e.printStackTrace();
    }
    totoProv.stop();
    totoProv2.stop();
    Factory factory = ipojoHelper.getFactory("comp-5");
    Properties props2 = new Properties();
    props2.put("instance.name", "ff");
    try {
        under = factory.createComponentInstance(props2);
    } catch (Exception e) {
        e.printStackTrace();
        fail("Cannot create an instance from comp-5 : " + e.getMessage());
    }
}
Also used : Factory(org.apache.felix.ipojo.Factory) ComponentFactory(org.apache.felix.ipojo.ComponentFactory) Properties(java.util.Properties) Before(org.junit.Before)

Example 32 with Factory

use of org.apache.felix.ipojo.Factory in project felix by apache.

the class TestComp6 method setUp.

@Before
public void setUp() {
    tataFactory = (ComponentFactory) ipojoHelper.getFactory("tata");
    totoFactory = (ComponentFactory) ipojoHelper.getFactory("toto");
    tataFactory.stop();
    Properties props = new Properties();
    props.put("instance.name", "toto provider");
    try {
        totoProv = totoFactory.createComponentInstance(props);
    } catch (Exception e) {
        e.printStackTrace();
    }
    Properties props3 = new Properties();
    props3.put("instance.name", "toto provider 2");
    try {
        totoProv2 = totoFactory.createComponentInstance(props3);
    } catch (Exception e) {
        e.printStackTrace();
    }
    totoProv.stop();
    totoProv2.stop();
    Factory factory = ipojoHelper.getFactory("comp-6");
    Properties props2 = new Properties();
    props2.put("instance.name", "ff");
    try {
        under = factory.createComponentInstance(props2);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : Factory(org.apache.felix.ipojo.Factory) ComponentFactory(org.apache.felix.ipojo.ComponentFactory) Properties(java.util.Properties) Before(org.junit.Before)

Example 33 with Factory

use of org.apache.felix.ipojo.Factory in project felix by apache.

the class TestComp7 method setUp.

@Before
public void setUp() {
    tataFactory = (ComponentFactory) ipojoHelper.getFactory("tata");
    totoFactory = (ComponentFactory) ipojoHelper.getFactory("toto");
    tataFactory2 = (ComponentFactory) ipojoHelper.getFactory("comp-6");
    tataFactory2.stop();
    Properties props = new Properties();
    props.put("instance.name", "toto provider");
    try {
        totoProv = totoFactory.createComponentInstance(props);
    } catch (Exception e) {
        e.printStackTrace();
    }
    Properties props3 = new Properties();
    props3.put("instance.name", "toto provider 2");
    try {
        totoProv2 = totoFactory.createComponentInstance(props3);
    } catch (Exception e) {
        e.printStackTrace();
    }
    totoProv.stop();
    totoProv2.stop();
    Factory factory = ipojoHelper.getFactory("comp-7");
    Properties props2 = new Properties();
    props2.put("instance.name", "ff");
    try {
        under = factory.createComponentInstance(props2);
    } catch (Exception e) {
        e.printStackTrace();
    }
    tataFactory.stop();
}
Also used : Factory(org.apache.felix.ipojo.Factory) ComponentFactory(org.apache.felix.ipojo.ComponentFactory) Properties(java.util.Properties) Before(org.junit.Before)

Example 34 with Factory

use of org.apache.felix.ipojo.Factory in project felix by apache.

the class TestGetComponentInstance method testGetComponentInstance.

/**
 * Check if a pojo can correctly be cast in POJO.
 * Check the getComponentInstance method.
 */
@Test
public void testGetComponentInstance() throws NoSuchFieldException, IllegalAccessException, NoSuchMethodException {
    String factName = "Manipulation-FooProviderType-1";
    String compName = "FooProvider-1";
    ServiceReference ref = null;
    // Get the factory to create a component instance
    Factory fact = ipojoHelper.getFactory(factName);
    assertNotNull("Cannot find the factory FooProvider-1", fact);
    Properties props = new Properties();
    props.put("instance.name", compName);
    ComponentInstance ci = null;
    try {
        ci = fact.createComponentInstance(props);
    } catch (Exception e1) {
        fail(e1.getMessage());
    }
    assertEquals("Check instance name", compName, ci.getInstanceName());
    // Get a FooService provider
    ref = ipojoHelper.getServiceReferenceByName(FooService.class.getName(), compName);
    assertNotNull("FS not available", ref);
    // Get foo object
    FooService fs = (FooService) osgiHelper.getServiceObject(ref);
    // Cast to POJO
    Pojo pojo = (Pojo) fs;
    Field im = fs.getClass().getDeclaredField("__IM");
    assertNotNull(im);
    im.setAccessible(true);
    assertNotNull(im.get(fs));
    Method method = fs.getClass().getMethod("getComponentInstance");
    assertNotNull(method);
    // GetComponentInstance
    ComponentInstance instance = pojo.getComponentInstance();
    assertNotNull(instance);
    assertEquals("Check component instance name", instance.getInstanceName(), compName);
    assertEquals("Check component factory name", instance.getFactory().getName(), factName);
    assertNotNull("Instance description not null", instance.getInstanceDescription());
    PrimitiveInstanceDescription id = (PrimitiveInstanceDescription) instance.getInstanceDescription();
    assertTrue("Check instance state", id.getState() == ComponentInstance.VALID);
    assertEquals("Check created pojo count", id.getCreatedObjects().length, 1);
    assertEquals("Check instance description name", id.getName(), compName);
    ci.dispose();
    // Check that there is no more FooService
    ref = osgiHelper.getServiceReference(FooService.class.getName());
    assertNull("FS available, but component instance stopped", ref);
}
Also used : FooService(org.apache.felix.ipojo.runtime.core.services.FooService) Field(java.lang.reflect.Field) Pojo(org.apache.felix.ipojo.Pojo) ComponentInstance(org.apache.felix.ipojo.ComponentInstance) Factory(org.apache.felix.ipojo.Factory) Method(java.lang.reflect.Method) Properties(java.util.Properties) PrimitiveInstanceDescription(org.apache.felix.ipojo.PrimitiveInstanceDescription) ServiceReference(org.osgi.framework.ServiceReference) Test(org.junit.Test) BaseTest(org.ow2.chameleon.testing.helpers.BaseTest)

Example 35 with Factory

use of org.apache.felix.ipojo.Factory in project felix by apache.

the class TestHandlerBindingAndIgnoreAnnotation method testFooHandlerBinding.

@Test
public void testFooHandlerBinding() {
    /*
        HandlerFactory handlerFactory = ipojoHelper.getHandlerFactory("com.acme:foo");
        assertNotNull(handlerFactory);
        assertEquals(Factory.VALID, handlerFactory.getState());
*/
    // verify component's factory is here
    // verify BazService has been published
    // --> verify instance has been created
    Factory factory = ipojoHelper.getFactory(FACTORY_NAME);
    assertNotNull(factory);
    assertEquals(Factory.VALID, factory.getState());
    List<HandlerBindingTestService> services = osgiHelper.getServiceObjects(HandlerBindingTestService.class);
    assertEquals(1, services.size());
    HandlerBindingTestService baz = services.get(0);
    assertEquals("Bonjour", baz.get("greeting"));
    assertEquals("Welcome", baz.get("welcome"));
    assertNull(baz.get("ignored"));
    ipojoHelper.dispose();
}
Also used : HandlerBindingTestService(org.apache.felix.ipojo.runtime.core.services.HandlerBindingTestService) Factory(org.apache.felix.ipojo.Factory) HandlerFactory(org.apache.felix.ipojo.HandlerFactory) Test(org.junit.Test) BaseTest(org.ow2.chameleon.testing.helpers.BaseTest)

Aggregations

Factory (org.apache.felix.ipojo.Factory)111 Properties (java.util.Properties)88 Test (org.junit.Test)71 ComponentInstance (org.apache.felix.ipojo.ComponentInstance)53 Before (org.junit.Before)33 ServiceReference (org.osgi.framework.ServiceReference)29 FooService (org.apache.felix.ipojo.runtime.core.services.FooService)17 InvalidSyntaxException (org.osgi.framework.InvalidSyntaxException)17 ComponentFactory (org.apache.felix.ipojo.ComponentFactory)14 ServiceContext (org.apache.felix.ipojo.ServiceContext)13 CheckService (org.apache.felix.ipojo.runtime.core.services.CheckService)11 IOException (java.io.IOException)6 HandlerFactory (org.apache.felix.ipojo.HandlerFactory)6 Architecture (org.apache.felix.ipojo.architecture.Architecture)4 HandlerDescription (org.apache.felix.ipojo.architecture.HandlerDescription)4 InstanceDescription (org.apache.felix.ipojo.architecture.InstanceDescription)4 CompositeInstanceDescription (org.apache.felix.ipojo.composite.CompositeInstanceDescription)4 CompositeManager (org.apache.felix.ipojo.composite.CompositeManager)4 ProvidedServiceDescription (org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceDescription)4 ProvidedServiceHandlerDescription (org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandlerDescription)4