fail("Invalid filter : " + e);
}
}
public void testLevelTwo1() {
ServiceContext sc1 = Utils.getServiceContext(empty);
Factory fact = Utils.getFactoryByName(sc1, "composite.empty");
Properties p = new Properties();
p.put("instance.name","empty2");
ComponentInstance empty2 = null;
try {
empty2 = fact.createComponentInstance(p);
} catch(Exception e) {
fail("Cannot instantiate empty2 instance : " + e.getMessage());
}
ServiceContext sc2 = Utils.getServiceContext(empty2);
Factory fact1 = Utils.getFactoryByName(sc2, "COMPO-SimpleCheckServiceProvider");
Properties props = new Properties();
props.put("instance.name","client");
ComponentInstance client = null;
try {
client = fact1.createComponentInstance(props);
} catch(Exception e) { fail("Cannot instantiate the client : " + e.getMessage()); }
Factory fact2 = Utils.getFactoryByName(sc2, "COMPO-FooProviderType-1");
Properties props2 = new Properties();
props2.put("instance.name","provider");
ComponentInstance provider = null;
try {
provider = fact2.createComponentInstance(props2);
} catch(Exception e) {
fail("Cannot instantiate the provider : " + e.getMessage());
}
ServiceReference ref = sc2.getServiceReference(CheckService.class.getName());
CheckService check = (CheckService) sc2.getService(ref);
assertTrue("Check invocation", check.check());
sc2.ungetService(ref);
// Check visibility
assertNotNull("Check foo service visible inside the composite 2", sc2.getServiceReference(FooService.class.getName()));
assertNotNull("Check check service visible inside the composite 2", sc2.getServiceReference(CheckService.class.getName()));
// Check invisibilty
assertNull("Check foo service invisible inside the composite 1", sc1.getServiceReference(FooService.class.getName()));
assertNull("Check check service invisible inside the composite 1", sc1.getServiceReference(CheckService.class.getName()));
assertNull("Check foo service invisible inside the global", getContext().getServiceReference(FooService.class.getName()));
try {
assertNull("Check check service invisible inside the context", getContext().getServiceReferences(CheckService.class.getName(), "(instance.name=client)"));
} catch (InvalidSyntaxException e) {
fail("Invalid filter : " + e);
}
client.dispose();
provider.dispose();
assertNull("Check foo service visible inside the composite 2", sc2.getServiceReference(FooService.class.getName()));
assertNull("Check check service visible inside the composite 2", sc2.getServiceReference(CheckService.class.getName()));
assertNull("Check foo service invisible inside the composite 1", sc1.getServiceReference(FooService.class.getName()));
assertNull("Check check service invisible inside the composite 1", sc1.getServiceReference(CheckService.class.getName()));
assertNull("Check foo service invisible inside the global", getContext().getServiceReference(FooService.class.getName()));
try {
assertNull("Check check service invisible inside the context", getContext().getServiceReferences(CheckService.class.getName(), "(instance.name=client)"));