doReturn(session).when(actionContext).session(); baos = new ByteArrayOutputStream(); when(response.outputStream()).thenReturn(baos); when(response.writeContent(anyString())).thenAnswer(new Answer<H.Response>() { @Override public H.Response answer(InvocationOnMock invocationOnMock) throws Throwable {
@Override protected void merge(Map<String, Object> renderArgs, H.Response response) { if (Act.isDev()) { super.merge(renderArgs, response); return; } Writer writer = response.writer(); try { tmpl.process(renderArgs, writer); } catch (Exception e) { throw E.unexpected(e, "Error output freemarker template"); } finally { IO.close(writer); } }
resp.header(CACHE_CONTROL, "max-age=86400").etag(this.etag); AlwaysNotModified.INSTANCE.handle(context); } else { .contentType(contentType) .header(CACHE_CONTROL, "max-age=86400") .etag(this.etag) .writeContent(buffer.duplicate()); resp.contentType(contentType).header(CACHE_CONTROL, "max-age=86400").etag(reqEtag); AlwaysNotModified.INSTANCE.handle(context); return; .commitContentType() .header(CACHE_CONTROL, "public, max-age=7200") .etag(etags.get(path)) .writeContent(buffer.duplicate()); return;
resp.header(CACHE_CONTROL, "max-age=86400").etag(this.etag); AlwaysNotModified.INSTANCE.handle(context); } else { .contentType(contentType) .header(CACHE_CONTROL, "max-age=86400") .etag(this.etag) .writeContent(buffer.duplicate()); resp.contentType(contentType).header(CACHE_CONTROL, "max-age=86400").etag(reqEtag); AlwaysNotModified.INSTANCE.handle(context); return; .commitContentType() .header(CACHE_CONTROL, "public, max-age=7200") .etag(etags.get(path)) .writeContent(buffer.duplicate()); return;
@Override protected void merge(Map<String, Object> renderArgs, H.Response response) { if (Act.isDev()) { super.merge(renderArgs, response); return; } Template beetlTemplate = getTemplate(); beetlTemplate.binding(renderArgs); view.templateModifier.apply(beetlTemplate); if (view.directByteOutput) { OutputStream os = response.outputStream(); try { beetlTemplate.renderTo(response.outputStream()); } finally { IO.close(os); } } else { Writer writer = response.writer(); try { beetlTemplate.renderTo(writer); } finally { IO.close(writer); } } }
@Override public void apply(H.Request req, H.Response resp) { try { applyCookies(resp); applyHeaders(resp); resp.contentType(contentType); if (!resp.containsHeader(CONTENT_DISPOSITION)) { resp.contentDisposition(null, true); } applyStatus(resp); applyBeforeCommitHandler(req, resp); Img.source(img).writeTo(resp.outputStream(), contentType); } catch (Exception e) { throw E.unexpected(e); } finally { try { resp.commit(); applyAfterCommitHandler(req, resp); } finally { clearThreadLocals(); } } }
@Override public void render(Object result, ActionContext context) { MimeType mimeType = MimeType.findByContentType(context.accept().contentType()); E.illegalStateIfNot(mimeType.test(MimeType.Trait.excel)); H.Response resp = context.resp(); resp.contentDisposition(context.attachmentName(), false); ExcelWriter.Builder builder = ExcelWriter.builder() .dateFormat(context.dateFormatPattern(true)) .filter(filter(context)) .headerMap(headerMapping(context)) .fieldStylePatterns(excelDataFormatManager().fieldStyleLookup) .headerTransformer(Keyword.Style.READABLE.asTransformer()); if (mimeType.test(MimeType.Trait.xlsx)) { builder.asXlsx(); } builder.build().write(result, context.resp().outputStream()); }
@Override public void apply(H.Request req, H.Response resp) { try { applyCookies(resp); applyHeaders(resp); resp.contentType(contentType); if (!resp.containsHeader(CONTENT_DISPOSITION)) { resp.contentDisposition(null, true); } applyStatus(resp); applyBeforeCommitHandler(req, resp); Img.source(img).writeTo(resp.outputStream(), contentType); } catch (Exception e) { throw E.unexpected(e); } finally { try { resp.commit(); applyAfterCommitHandler(req, resp); } finally { clearThreadLocals(); } } }
private void renderCode(H.Response response) { response.contentType("image/png"); Map<EncodeHintType, Object> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, Act.appConfig().encoding()); hints.put(EncodeHintType.MARGIN, 0); ErrorCorrectionLevel level = errorCorrectionLevel(); if (null != level) { hints.put(EncodeHintType.ERROR_CORRECTION, level); } MultiFormatWriter writer = new MultiFormatWriter(); try { BitMatrix bitMatrix = writer.encode(getMessage(), barcodeFormat(), width, height, hints); MatrixToImageWriter.writeToStream(bitMatrix, "png", response.outputStream()); } catch (Exception e) { throw E.unexpected(e); } }
@Override public void handle(ActionContext context) { Object ticket = secureTicketCodec.createTicket(context.session()); H.Format accept = context.accept(); H.Response resp = context.prepareRespForResultEvaluation(); resp.contentType(accept.contentType()); String content; if (H.Format.JSON == accept) { Map<String, Object> map = C.Map("ticket", ticket); content = JSON.toJSONString(map); } else if (H.Format.XML == accept) { content = S.concat("<?xml version=\"1.0\" ?><ticket>", ticket.toString(), "</ticket>"); } else { content = ticket.toString(); } resp.writeContent(content); }
private void renderCode(H.Response response) { response.contentType("image/png"); Map<EncodeHintType, Object> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, Act.appConfig().encoding()); hints.put(EncodeHintType.MARGIN, 0); ErrorCorrectionLevel level = errorCorrectionLevel(); if (null != level) { hints.put(EncodeHintType.ERROR_CORRECTION, level); } MultiFormatWriter writer = new MultiFormatWriter(); try { BitMatrix bitMatrix = writer.encode(getMessage(), barcodeFormat(), width, height, hints); MatrixToImageWriter.writeToStream(bitMatrix, "png", response.outputStream()); } catch (Exception e) { throw E.unexpected(e); } }
@Override protected void merge(Map<String, Object> renderArgs, H.Response response) { if (directWrite) { Writer writer = response.writer(); try { mustache.execute(writer, renderArgs); } catch (RuntimeException e) { throw new MustacheTemplateException(e); } finally { IO.close(writer); } } else { super.merge(renderArgs, response); } }
@Override protected void merge(Map<String, Object> renderArgs, H.Response response) { Context context = new Context(renderArgs); InputStream is = IO.inputStream(resource); try { Transformer transformer = TransformerFactory.createTransformer(is, response.outputStream()); JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator)transformer.getTransformationConfig().getExpressionEvaluator(); JexlFunctionManager funcMgr = Act.getInstance(JexlFunctionManager.class); evaluator.getJexlEngine().setFunctions(funcMgr.functions()); JxlsHelper.getInstance().processTemplate(context, transformer); } catch (IOException e) { throw new InternalServerError(e, "Error processing excel template: %s", resource.getPath()); } }
@Override public void handle(ActionContext context) { Object ticket = secureTicketCodec.createTicket(context.session()); H.Format accept = context.accept(); H.Response resp = context.prepareRespForResultEvaluation(); resp.contentType(accept.contentType()); String content; if (H.Format.JSON == accept) { Map<String, Object> map = C.Map("ticket", ticket); content = JSON.toJSONString(map); } else if (H.Format.XML == accept) { content = S.concat("<?xml version=\"1.0\" ?><ticket>", ticket.toString(), "</ticket>"); } else { content = ticket.toString(); } resp.writeContent(content); }
protected void merge(Map<String, Object> renderArgs, H.Response response) { String result = render(renderArgs); response.writeContent(result); }
@Override public void handle(ActionContext context) { H.Response resp = context.resp(); resp.contentType(contentType); resp.writeContent(buffer.duplicate()); }
@Override public Sender getSender() { H.Response response = ctx().resp(); if (response.writerCreated()) { return new BlockingSenderImpl(exchange, new WriterOutputStream(response.writer())); } else { return new BlockingSenderImpl(exchange, response.outputStream()); } }