--- /dev/null
+package org.simantics.scl.osgi.internal;\r
+\r
+import java.util.Collection;\r
+\r
+import org.osgi.framework.BundleContext;\r
+import org.osgi.util.tracker.ServiceTracker;\r
+import org.simantics.scl.compiler.testing.TestRunnable;\r
+import org.simantics.scl.compiler.testing.repository.TestRepository;\r
+\r
+public class ServiceBasedTestRepository implements TestRepository {\r
+\r
+ ServiceTracker<TestRepository, TestRepository> repositories;\r
+\r
+ public ServiceBasedTestRepository(BundleContext context) {\r
+ repositories = new ServiceTracker<TestRepository, TestRepository>(\r
+ context, TestRepository.class, null);\r
+ repositories.open();\r
+ }\r
+\r
+ @Override\r
+ public void collectTests(Collection<TestRunnable> tests) {\r
+ Object[] services = repositories.getServices();\r
+ if(services != null)\r
+ for(Object repository : services)\r
+ ((TestRepository)repository).collectTests(tests);\r
+ }\r
+ \r
+}\r