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();
}
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();
}
}
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;
}
Aggregations