]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/ServiceBasedTestRepository.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.osgi / src / org / simantics / scl / osgi / internal / ServiceBasedTestRepository.java
diff --git a/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/ServiceBasedTestRepository.java b/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/ServiceBasedTestRepository.java
new file mode 100644 (file)
index 0000000..bcabd50
--- /dev/null
@@ -0,0 +1,28 @@
+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