Author: marrs
Date: Sat Nov 21 21:41:03 2009
New Revision: 883001
URL: http://svn.apache.org/viewvc?rev=883001&view=rev
Log:
Extended the test.
Modified:
felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dependencymanager/test/ConfigurationDependencyTest.java
Modified:
felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dependencymanager/test/ConfigurationDependencyTest.java
URL:
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dependencymanager/test/ConfigurationDependencyTest.java?rev=883001&r1=883000&r2=883001&view=diff
==============================================================================
---
felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dependencymanager/test/ConfigurationDependencyTest.java
(original)
+++
felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dependencymanager/test/ConfigurationDependencyTest.java
Sat Nov 21 21:41:03 2009
@@ -55,20 +55,23 @@
}
@Test
- public void testComponentWithRequiredConfiguration(BundleContext context) {
+ public void
testComponentWithRequiredConfigurationAndServicePropertyPropagation(BundleContext
context) {
DependencyManager m = new DependencyManager(context, new
Logger(context));
// helper class that ensures certain steps get executed in sequence
Ensure e = new Ensure();
// create a service provider and consumer
- Service s1 = m.createService().setImplementation(new
ConfigurationConsumer(e)).add(m.createConfigurationDependency().setPid("test"));
+ Service s1 = m.createService().setImplementation(new
ConfigurationConsumer(e)).setInterface(Runnable.class.getName(),
null).add(m.createConfigurationDependency().setPid("test").setPropagate(true));
Service s2 = m.createService().setImplementation(new
ConfigurationCreator(e)).add(m.createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true));
+ Service s3 = m.createService().setImplementation(new
ConfiguredServiceConsumer(e)).add(m.createServiceDependency().setService(Runnable.class,
("(testkey=testvalue)")).setRequired(true));
m.add(s1);
m.add(s2);
- e.waitForStep(2, 2000);
+ m.add(s3);
+ e.waitForStep(4, 2000);
m.remove(s1);
m.remove(s2);
+ m.remove(s3);
// ensure we executed all steps inside the component instance
- e.step(3);
+ e.step(5);
}
}
@@ -94,7 +97,7 @@
}
}
-class ConfigurationConsumer implements ManagedService {
+class ConfigurationConsumer implements ManagedService, Runnable {
private final Ensure m_ensure;
public ConfigurationConsumer(Ensure e) {
@@ -109,4 +112,22 @@
}
}
}
-}
\ No newline at end of file
+
+ public void run() {
+ m_ensure.step(4);
+ }
+}
+
+class ConfiguredServiceConsumer {
+ private final Ensure m_ensure;
+ private volatile Runnable m_runnable;
+
+ public ConfiguredServiceConsumer(Ensure e) {
+ m_ensure = e;
+ }
+
+ public void start() {
+ m_ensure.step(3);
+ m_runnable.run();
+ }
+}