private boolean renderTrace() throws IOException { if (getExecution().trace().getTraceLevel() == 0) return false; jsonWriter.beginField("trace"); try { getExecution().trace().traceNode().accept(new TraceRenderingVisitor(jsonWriter)); } catch (WrappedIOException e) { throw e.getCause(); } jsonWriter.endField(); return true; }
@Override public final void data(Data data) throws IOException { if (! shouldRender(data)) return; jsonWriter.beginArrayValue(); jsonWriter.beginObject(); jsonWriter.beginField("data"); renderValue(data,jsonWriter); jsonWriter.endField(); jsonWriter.endObject(); jsonWriter.endArrayValue(); }
renderTrace(); if ( ! list.request().errors().isEmpty() && ! rendered(list.request())) { jsonWriter.beginField("errors"); jsonWriter.beginArray(); jsonWriter.beginObject(); jsonWriter.beginField("error").value(error.toString()).endField(); jsonWriter.beginField("stacktrace").value(stackTraceAsString(error.getCause())).endField(); jsonWriter.endObject();
public AbstractProcessingHandler(ChainRegistry<COMPONENT> chainRegistry, ComponentRegistry<Renderer> renderers, Executor executor, AccessLog accessLog, Metric metric) { super(executor, accessLog, metric, true); renderingExecutor = executor; this.chainRegistry = chainRegistry; this.renderers = renderers; // Default is the one with id "default", or the ProcessingRenderer if there is no such renderer Renderer defaultRenderer = renderers.getComponent(ComponentSpecification.fromString(DEFAULT_RENDERER_ID)); if (defaultRenderer == null) { defaultRenderer = new ProcessingRenderer(); renderers.register(ComponentId.fromString(DEFAULT_RENDERER_ID), defaultRenderer); } this.defaultRenderer = defaultRenderer; }