Search in sources :

Example 16 with ComponentDeclaration

use of org.apache.felix.dm.ComponentDeclaration in project felix by apache.

the class FELIX4158_DependencyDeclarationTest method testResourceDependencyDeclaration.

public void testResourceDependencyDeclaration() throws MalformedURLException {
    DependencyManager m = getDM();
    Component c = m.createComponent().setImplementation(new Object()).add(m.createResourceDependency().setResource(new URL("file://localhost/path/to/file1.txt")));
    ComponentDeclaration cd = c.getComponentDeclaration();
    ComponentDependencyDeclaration[] cdds = cd.getComponentDependencies();
    Assert.assertNotNull(cdds);
    Assert.assertNotNull(cdds.length == 1);
    Assert.assertEquals(cdds[0].getName(), "file://localhost/path/to/file1.txt");
    Assert.assertNotNull(cdds[0].getSimpleName());
    Assert.assertEquals(cdds[0].getSimpleName(), "file://localhost/path/to/file1.txt");
    Assert.assertNull(cdds[0].getFilter());
    m.clear();
}
Also used : ComponentDeclaration(org.apache.felix.dm.ComponentDeclaration) DependencyManager(org.apache.felix.dm.DependencyManager) ComponentDependencyDeclaration(org.apache.felix.dm.ComponentDependencyDeclaration) Component(org.apache.felix.dm.Component) URL(java.net.URL)

Example 17 with ComponentDeclaration

use of org.apache.felix.dm.ComponentDeclaration in project felix by apache.

the class DMCommand method printCircularDependencies.

private void printCircularDependencies(List<CircularDependency> circularDependencies) {
    for (CircularDependency c : circularDependencies) {
        System.out.print(" *");
        for (ComponentDeclaration cd : c.getComponents()) {
            System.out.print(" -> " + cd.getName());
        }
        System.out.println();
    }
}
Also used : ComponentDeclaration(org.apache.felix.dm.ComponentDeclaration) CircularDependency(org.apache.felix.dm.diagnostics.CircularDependency)

Example 18 with ComponentDeclaration

use of org.apache.felix.dm.ComponentDeclaration in project felix by apache.

the class DependencyGraph method componentProvidesDependency.

private boolean componentProvidesDependency(ComponentNode componentNode, DependencyNode dependencyNode) {
    ComponentDeclaration cd = componentNode.getComponentDeclaration();
    String dependencyName = dependencyNode.getDependencyDeclaration().getName();
    String simpleName = getSimpleName(dependencyName);
    Properties properties = parseProperties(dependencyName);
    String componentName = cd.getName();
    String simpleComponentName = componentName;
    int cuttOff = simpleComponentName.indexOf("(");
    if (cuttOff != -1) {
        simpleComponentName = simpleComponentName.substring(0, cuttOff).trim();
    }
    for (String serviceName : simpleComponentName.split(",")) {
        if (simpleName.equals(serviceName.trim()) && doPropertiesMatch(properties, parseProperties(componentName))) {
            return true;
        }
    }
    return false;
}
Also used : ComponentDeclaration(org.apache.felix.dm.ComponentDeclaration) Properties(java.util.Properties)

Aggregations

ComponentDeclaration (org.apache.felix.dm.ComponentDeclaration)18 Component (org.apache.felix.dm.Component)13 DependencyManager (org.apache.felix.dm.DependencyManager)12 ComponentDependencyDeclaration (org.apache.felix.dm.ComponentDependencyDeclaration)8 DependencyGraph (org.apache.felix.dm.diagnostics.DependencyGraph)6 CircularDependency (org.apache.felix.dm.diagnostics.CircularDependency)4 ArrayList (java.util.ArrayList)2 Properties (java.util.Properties)2 ServiceDependency (org.apache.felix.dm.ServiceDependency)2 MissingDependency (org.apache.felix.dm.diagnostics.MissingDependency)2 URL (java.net.URL)1 Map (java.util.Map)1 StringTokenizer (java.util.StringTokenizer)1 Descriptor (org.apache.felix.service.command.Descriptor)1 Bundle (org.osgi.framework.Bundle)1 Filter (org.osgi.framework.Filter)1 InvalidSyntaxException (org.osgi.framework.InvalidSyntaxException)1 LogService (org.osgi.service.log.LogService)1