public void testComponentWithRequiredUpdatedConfigurationAndServicePropertyPropagation() {
DependencyManager m = new DependencyManager(context);
// helper class that ensures certain steps get executed in sequence
Ensure e = new Ensure();
ConfigurationCreator confCreator = new ConfigurationCreator();
Component s1 = m.createComponent()
.setImplementation(new S1(e))
.setInterface(S1.class.getName(), null)
.add(m.createConfigurationDependency()
.setPid("test")
.setPropagate(true));
Component s2 = m.createComponent()
.setImplementation(new S2(e))
.add(m.createServiceDependency()
.setService(S1.class, ("(testkey=testvalue)"))
.setRequired(true)
.setCallbacks("add", "change", null));
Component s3 = m.createComponent()
.setImplementation(confCreator)
.add(m.createServiceDependency()
.setService(ConfigurationAdmin.class)
.setRequired(true));