/** * 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(executor); jsonRenderer.initId(RendererRegistry.jsonRendererId); register(jsonRenderer.getId(), jsonRenderer); // Add xml renderer Renderer xmlRenderer = new XmlRenderer(executor); xmlRenderer.initId(xmlRendererId); register(xmlRenderer.getId(), xmlRenderer); // Add page templates renderer Renderer pageRenderer = new PageTemplatesXmlRenderer(executor); pageRenderer.initId(pageRendererId); register(pageRenderer.getId(), pageRenderer); // add application renderers for (Renderer renderer : renderers) register(renderer.getId(), renderer); freeze(); }