Search in sources :

Example 21 with ComponentMetadata

use of org.osgi.service.blueprint.reflect.ComponentMetadata in project aries by apache.

the class ParserTest method testParseComponent.

public void testParseComponent() throws Exception {
    ComponentDefinitionRegistry registry = parse("/test-simple-component.xml");
    assertNotNull(registry);
    ComponentMetadata component = registry.getComponentDefinition("pojoA");
    assertNotNull(component);
    assertEquals("pojoA", component.getId());
    assertTrue(component instanceof BeanMetadata);
    BeanMetadata local = (BeanMetadata) component;
    List<String> deps = local.getDependsOn();
    assertNotNull(deps);
    assertEquals(2, deps.size());
    assertTrue(deps.contains("pojoB"));
    assertTrue(deps.contains("pojoC"));
    assertEquals("org.apache.aries.blueprint.pojos.PojoA", local.getClassName());
    List<BeanArgument> params = local.getArguments();
    assertNotNull(params);
    assertEquals(6, params.size());
    BeanArgument param = params.get(0);
    assertNotNull(param);
    assertEquals(-1, param.getIndex());
    assertNull(param.getValueType());
    assertNotNull(param.getValue());
    assertTrue(param.getValue() instanceof ValueMetadata);
    assertEquals("val0", ((ValueMetadata) param.getValue()).getStringValue());
    assertNull(((ValueMetadata) param.getValue()).getType());
    param = params.get(1);
    assertNotNull(param);
    assertEquals(-1, param.getIndex());
    assertNull(param.getValueType());
    assertNotNull(param.getValue());
    assertTrue(param.getValue() instanceof RefMetadata);
    assertEquals("val1", ((RefMetadata) param.getValue()).getComponentId());
    param = params.get(2);
    assertNotNull(param);
    assertEquals(-1, param.getIndex());
    assertNull(param.getValueType());
    assertNotNull(param.getValue());
    assertTrue(param.getValue() instanceof NullMetadata);
    param = params.get(3);
    assertNotNull(param);
    assertEquals(-1, param.getIndex());
    assertEquals("java.lang.String", param.getValueType());
    assertNotNull(param.getValue());
    assertTrue(param.getValue() instanceof ValueMetadata);
    assertEquals("val3", ((ValueMetadata) param.getValue()).getStringValue());
    assertNull(((ValueMetadata) param.getValue()).getType());
    param = params.get(4);
    assertNotNull(param);
    assertEquals(-1, param.getIndex());
    assertNull(param.getValueType());
    assertNotNull(param.getValue());
    assertTrue(param.getValue() instanceof CollectionMetadata);
    CollectionMetadata array = (CollectionMetadata) param.getValue();
    assertNull(array.getValueType());
    assertNotNull(array.getValues());
    assertEquals(3, array.getValues().size());
    assertTrue(array.getValues().get(0) instanceof ValueMetadata);
    assertTrue(array.getValues().get(1) instanceof ComponentMetadata);
    assertTrue(array.getValues().get(2) instanceof NullMetadata);
    param = params.get(5);
    assertNotNull(param);
    assertEquals(-1, param.getIndex());
    assertNull(param.getValueType());
    assertNotNull(param.getValue());
    assertTrue(param.getValue() instanceof RefMetadata);
    assertEquals("pojoB", ((RefMetadata) param.getValue()).getComponentId());
    assertEquals(null, local.getInitMethod());
    assertEquals(null, local.getDestroyMethod());
    // test pojoB
    ComponentMetadata pojoB = registry.getComponentDefinition("pojoB");
    assertNotNull(pojoB);
    assertEquals("pojoB", pojoB.getId());
    assertTrue(pojoB instanceof BeanMetadata);
    BeanMetadata pojoBLocal = (BeanMetadata) pojoB;
    assertEquals("initPojo", pojoBLocal.getInitMethod());
    //        assertEquals("", pojoBLocal.getDestroyMethod());
    params = pojoBLocal.getArguments();
    assertNotNull(params);
    assertEquals(2, params.size());
    param = params.get(0);
    assertNotNull(param);
    assertEquals(1, param.getIndex());
    param = params.get(1);
    assertNotNull(param);
    assertEquals(0, param.getIndex());
}
Also used : BeanArgument(org.osgi.service.blueprint.reflect.BeanArgument) CollectionMetadata(org.osgi.service.blueprint.reflect.CollectionMetadata) RefMetadata(org.osgi.service.blueprint.reflect.RefMetadata) BeanMetadata(org.osgi.service.blueprint.reflect.BeanMetadata) ValueMetadata(org.osgi.service.blueprint.reflect.ValueMetadata) ComponentMetadata(org.osgi.service.blueprint.reflect.ComponentMetadata) NullMetadata(org.osgi.service.blueprint.reflect.NullMetadata)

Example 22 with ComponentMetadata

use of org.osgi.service.blueprint.reflect.ComponentMetadata in project aries by apache.

the class ParserTest method testCustomNodes.

public void testCustomNodes() throws Exception {
    ComponentDefinitionRegistry registry = parse("/test-custom-nodes.xml", new TestNamespaceHandlerSet());
    ComponentMetadata metadata;
    metadata = registry.getComponentDefinition("fooService");
    assertNotNull(metadata);
    assertTrue(metadata instanceof MyLocalComponentMetadata);
    MyLocalComponentMetadata comp1 = (MyLocalComponentMetadata) metadata;
    assertEquals(true, comp1.getCacheReturnValues());
    assertEquals("getVolatile", comp1.getOperation());
    metadata = registry.getComponentDefinition("barService");
    assertNotNull(metadata);
    assertTrue(metadata instanceof BeanMetadata);
    BeanMetadata comp2 = (BeanMetadata) metadata;
    assertEquals(1, comp2.getProperties().size());
    BeanProperty propertyMetadata = comp2.getProperties().get(0);
    assertEquals("localCache", propertyMetadata.getName());
    Metadata propertyValue = propertyMetadata.getValue();
    assertTrue(propertyValue instanceof BeanMetadata);
    BeanMetadata innerComp = (BeanMetadata) propertyValue;
    assertEquals("org.apache.aries.CacheProperty", innerComp.getClassName());
    metadata = registry.getComponentDefinition("myCache");
    assertNotNull(metadata);
    assertTrue(metadata instanceof BeanMetadata);
    BeanMetadata comp3 = (BeanMetadata) metadata;
    assertEquals("org.apache.aries.Cache", comp3.getClassName());
}
Also used : BeanMetadata(org.osgi.service.blueprint.reflect.BeanMetadata) CollectionMetadata(org.osgi.service.blueprint.reflect.CollectionMetadata) ValueMetadata(org.osgi.service.blueprint.reflect.ValueMetadata) Metadata(org.osgi.service.blueprint.reflect.Metadata) BeanMetadata(org.osgi.service.blueprint.reflect.BeanMetadata) RefMetadata(org.osgi.service.blueprint.reflect.RefMetadata) ComponentMetadata(org.osgi.service.blueprint.reflect.ComponentMetadata) NullMetadata(org.osgi.service.blueprint.reflect.NullMetadata) ComponentMetadata(org.osgi.service.blueprint.reflect.ComponentMetadata) BeanProperty(org.osgi.service.blueprint.reflect.BeanProperty)

Example 23 with ComponentMetadata

use of org.osgi.service.blueprint.reflect.ComponentMetadata in project aries by apache.

the class ParserTest method testScopes.

public void testScopes() throws Exception {
    ComponentDefinitionRegistry registry = parse("/test-scopes.xml", new TestNamespaceHandlerSet());
    ComponentMetadata metadata = registry.getComponentDefinition("fooService");
    assertNotNull(metadata);
    assertTrue(metadata instanceof BeanMetadata);
    BeanMetadata bm = (BeanMetadata) metadata;
    assertNull(bm.getScope());
    metadata = registry.getComponentDefinition("barService");
    assertNotNull(metadata);
    assertTrue(metadata instanceof BeanMetadata);
    bm = (BeanMetadata) metadata;
    assertEquals("prototype", bm.getScope());
    metadata = registry.getComponentDefinition("bazService");
    assertNotNull(metadata);
    assertTrue(metadata instanceof BeanMetadata);
    bm = (BeanMetadata) metadata;
    assertEquals("singleton", bm.getScope());
    metadata = registry.getComponentDefinition("booService");
    assertNotNull(metadata);
    assertTrue(metadata instanceof BeanMetadata);
    bm = (BeanMetadata) metadata;
    assertEquals("{http://test.org}boo", bm.getScope());
}
Also used : BeanMetadata(org.osgi.service.blueprint.reflect.BeanMetadata) ComponentMetadata(org.osgi.service.blueprint.reflect.ComponentMetadata)

Example 24 with ComponentMetadata

use of org.osgi.service.blueprint.reflect.ComponentMetadata in project aries by apache.

the class BlueprintContainerImpl method getMetadata.

private <T extends ComponentMetadata> void getMetadata(Class<T> clazz, Metadata component, Collection<T> metadatas) {
    if (component == null) {
        return;
    }
    if (clazz.isInstance(component)) {
        metadatas.add(clazz.cast(component));
    }
    if (component instanceof BeanMetadata) {
        getMetadata(clazz, ((BeanMetadata) component).getFactoryComponent(), metadatas);
        for (BeanArgument arg : ((BeanMetadata) component).getArguments()) {
            getMetadata(clazz, arg.getValue(), metadatas);
        }
        for (BeanProperty prop : ((BeanMetadata) component).getProperties()) {
            getMetadata(clazz, prop.getValue(), metadatas);
        }
    }
    if (component instanceof CollectionMetadata) {
        for (Metadata m : ((CollectionMetadata) component).getValues()) {
            getMetadata(clazz, m, metadatas);
        }
    }
    if (component instanceof MapMetadata) {
        for (MapEntry m : ((MapMetadata) component).getEntries()) {
            getMetadata(clazz, m.getKey(), metadatas);
            getMetadata(clazz, m.getValue(), metadatas);
        }
    }
    if (component instanceof PropsMetadata) {
        for (MapEntry m : ((PropsMetadata) component).getEntries()) {
            getMetadata(clazz, m.getKey(), metadatas);
            getMetadata(clazz, m.getValue(), metadatas);
        }
    }
    if (component instanceof ServiceReferenceMetadata) {
        for (ReferenceListener l : ((ServiceReferenceMetadata) component).getReferenceListeners()) {
            getMetadata(clazz, l.getListenerComponent(), metadatas);
        }
    }
    if (component instanceof ServiceMetadata) {
        getMetadata(clazz, ((ServiceMetadata) component).getServiceComponent(), metadatas);
        for (MapEntry m : ((ServiceMetadata) component).getServiceProperties()) {
            getMetadata(clazz, m.getKey(), metadatas);
            getMetadata(clazz, m.getValue(), metadatas);
        }
        for (RegistrationListener l : ((ServiceMetadata) component).getRegistrationListeners()) {
            getMetadata(clazz, l.getListenerComponent(), metadatas);
        }
    }
}
Also used : BeanArgument(org.osgi.service.blueprint.reflect.BeanArgument) PropsMetadata(org.osgi.service.blueprint.reflect.PropsMetadata) RegistrationListener(org.osgi.service.blueprint.reflect.RegistrationListener) CollectionMetadata(org.osgi.service.blueprint.reflect.CollectionMetadata) MapEntry(org.osgi.service.blueprint.reflect.MapEntry) ExtendedBeanMetadata(org.apache.aries.blueprint.ExtendedBeanMetadata) BeanMetadata(org.osgi.service.blueprint.reflect.BeanMetadata) CollectionMetadata(org.osgi.service.blueprint.reflect.CollectionMetadata) Metadata(org.osgi.service.blueprint.reflect.Metadata) PropsMetadata(org.osgi.service.blueprint.reflect.PropsMetadata) ServiceMetadata(org.osgi.service.blueprint.reflect.ServiceMetadata) RefMetadata(org.osgi.service.blueprint.reflect.RefMetadata) ComponentMetadata(org.osgi.service.blueprint.reflect.ComponentMetadata) ServiceReferenceMetadata(org.osgi.service.blueprint.reflect.ServiceReferenceMetadata) ExtendedBeanMetadata(org.apache.aries.blueprint.ExtendedBeanMetadata) BeanMetadata(org.osgi.service.blueprint.reflect.BeanMetadata) MapMetadata(org.osgi.service.blueprint.reflect.MapMetadata) ReferenceListener(org.osgi.service.blueprint.reflect.ReferenceListener) MapMetadata(org.osgi.service.blueprint.reflect.MapMetadata) ServiceReferenceMetadata(org.osgi.service.blueprint.reflect.ServiceReferenceMetadata) ServiceMetadata(org.osgi.service.blueprint.reflect.ServiceMetadata) BeanProperty(org.osgi.service.blueprint.reflect.BeanProperty)

Example 25 with ComponentMetadata

use of org.osgi.service.blueprint.reflect.ComponentMetadata in project aries by apache.

the class BlueprintContainerImpl method getMetadata.

public <T extends ComponentMetadata> Collection<T> getMetadata(Class<T> clazz) {
    Collection<T> metadatas = new ArrayList<T>();
    for (String name : componentDefinitionRegistry.getComponentDefinitionNames()) {
        ComponentMetadata component = componentDefinitionRegistry.getComponentDefinition(name);
        getMetadata(clazz, component, metadatas);
    }
    metadatas = Collections.unmodifiableCollection(metadatas);
    return metadatas;
}
Also used : ArrayList(java.util.ArrayList) ComponentMetadata(org.osgi.service.blueprint.reflect.ComponentMetadata)

Aggregations

ComponentMetadata (org.osgi.service.blueprint.reflect.ComponentMetadata)54 BeanMetadata (org.osgi.service.blueprint.reflect.BeanMetadata)22 Metadata (org.osgi.service.blueprint.reflect.Metadata)19 ValueMetadata (org.osgi.service.blueprint.reflect.ValueMetadata)18 RefMetadata (org.osgi.service.blueprint.reflect.RefMetadata)17 ServiceMetadata (org.osgi.service.blueprint.reflect.ServiceMetadata)17 CollectionMetadata (org.osgi.service.blueprint.reflect.CollectionMetadata)15 ArrayList (java.util.ArrayList)14 ComponentDefinitionException (org.osgi.service.blueprint.container.ComponentDefinitionException)14 MapMetadata (org.osgi.service.blueprint.reflect.MapMetadata)14 Element (org.w3c.dom.Element)14 ServiceReferenceMetadata (org.osgi.service.blueprint.reflect.ServiceReferenceMetadata)13 NullMetadata (org.osgi.service.blueprint.reflect.NullMetadata)12 ReferenceListMetadata (org.osgi.service.blueprint.reflect.ReferenceListMetadata)12 ReferenceMetadata (org.osgi.service.blueprint.reflect.ReferenceMetadata)12 Node (org.w3c.dom.Node)12 IdRefMetadata (org.osgi.service.blueprint.reflect.IdRefMetadata)11 PropsMetadata (org.osgi.service.blueprint.reflect.PropsMetadata)10 NodeList (org.w3c.dom.NodeList)10 NonNullMetadata (org.osgi.service.blueprint.reflect.NonNullMetadata)9