aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-07-04 15:32:33 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-07-04 15:32:33 +0200
commit629b0329fbedf764e938c892a0a6ef29ed2a125f (patch)
tree92049c09a91ee1344583387209ddea6e206d23e1 /container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java
parent1cd8287f435ae60afdbc4178bcc585836183dcb8 (diff)
Don't use separate renderer threads in unit tests
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java22
1 files changed, 20 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java b/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java
index b60c58fd90f..c1b15ecbbc2 100644
--- a/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java
+++ b/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java
@@ -13,6 +13,7 @@ import com.yahoo.search.Result;
import java.util.Collection;
import java.util.Collections;
+import java.util.concurrent.Executor;
/**
* Holds all configured and built-in renderers.
@@ -31,15 +32,32 @@ public final class RendererRegistry extends ComponentRegistry<com.yahoo.processi
this(Collections.emptyList());
}
+ /**
+ * Creates a registry containing the built-in renderers only, using a custom executor.
+ * Using a custom executor is useful for tests to avoid creating new threads for each renderer registry:
+ * Use MoreExecutors.directExecutor().
+ */
+ public RendererRegistry(Executor executor) {
+ this(Collections.emptyList(), executor);
+ }
+
/** Creates a registry of the given renderers plus the built-in ones */
public RendererRegistry(Collection<Renderer> renderers) {
+ this(renderers, null);
+ }
+
+ /**
+ * Creates a registry of the given renderers plus the built-in ones, using a custom executor.
+ * Using a custom executor is useful for tests to avoid creating new threads for each renderer registry.
+ */
+ public RendererRegistry(Collection<Renderer> renderers, Executor executor) {
// add json renderer
- Renderer jsonRenderer = new JsonRenderer();
+ Renderer jsonRenderer = new JsonRenderer(executor);
jsonRenderer.initId(RendererRegistry.jsonRendererId);
register(jsonRenderer.getId(), jsonRenderer);
// Add xml renderer
- Renderer xmlRenderer = new DefaultRenderer();
+ Renderer xmlRenderer = new DefaultRenderer(executor);
xmlRenderer.initId(xmlRendererId);
register(xmlRenderer.getId(), xmlRenderer);