public static void copyContentToServletResponse( HttpResponse response, HttpServletResponse servletResponse) throws IOException { servletResponse.setContentLength(response.getContentLength()); IOUtils.copy(response.getResponse(), servletResponse.getOutputStream()); } public static void copyHeadersAndStatusToServletResponse(
public static void copyResponseToServlet(HttpResponse response, HttpServletResponse servletResponse) throws IOException { servletResponse.setStatus(response.getHttpStatusCode()); servletResponse.setContentLength(response.getContentLength()); for (Map.Entry<String, String> header : response.getHeaders().entries()) { servletResponse.addHeader(header.getKey(), header.getValue()); } HttpUtil.setCachingHeaders(servletResponse, (int)(response.getCacheTtl() / 1000L)); IOUtils.copy(response.getResponse(), servletResponse.getOutputStream()); }
public static void copyResponseToServlet(HttpResponse response, HttpServletResponse servletResponse) throws IOException { servletResponse.setStatus(response.getHttpStatusCode()); servletResponse.setContentLength(response.getContentLength()); for (Map.Entry<String, String> header : response.getHeaders().entries()) { servletResponse.addHeader(header.getKey(), header.getValue()); } HttpUtil.setCachingHeaders(servletResponse, (int)response.getCacheTtl()); IOUtils.copy(response.getResponse(), servletResponse.getOutputStream()); }
@Test public void testPreserveBinaryData() throws Exception { byte[] data = { (byte)0x00, (byte)0xDE, (byte)0xEA, (byte)0xDB, (byte)0xEE, (byte)0xF0 }; HttpResponse response = new HttpResponseBuilder() .addHeader("Content-Type", "application/octet-stream") .setResponse(data) .create(); byte[] out = IOUtils.toByteArray(response.getResponse()); assertEquals(data.length, response.getContentLength()); assertTrue(Arrays.equals(data, out)); out = IOUtils.toByteArray(response.getResponse()); assertTrue(Arrays.equals(data, out)); }
protected HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new BMPOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
HttpResponse rewrite(HttpResponse original, OptimizerConfig config) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new JPEGOptimizer(config, builder, JpegImageUtils.getJpegImageData(builder.getContentBytes(), "")) .rewrite(JPEGOptimizer.readJpeg(original.getResponse())); return builder.create(); }
HttpResponse rewrite(HttpResponse original, OptimizerConfig config) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new JPEGOptimizer(config, builder, JpegImageUtils.getJpegImageData(builder.getContentBytes(), "")) .rewrite(JPEGOptimizer.readJpeg(original.getResponse())); return builder.create(); }
protected HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new GIFOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
protected HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new BMPOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
protected HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new GIFOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new PNGOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new PNGOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
protected HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new GIFOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new PNGOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new JPEGOptimizer(new OptimizerConfig(), builder).rewrite( JPEGOptimizer.readJpeg(original.getResponse())); return builder.create(); } }
protected HttpResponse rewrite(HttpResponse original) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new BMPOptimizer(new OptimizerConfig(), builder).rewrite( Sanselan.getBufferedImage(original.getResponse())); return builder.create(); } }
@Test public void testRetainSubsmaplingEnabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/testImage444.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(true, 0.70f)); JpegImageUtils.JpegImageParams params = JpegImageUtils.getJpegImageData(rewritten.getResponse(), ""); assertTrue(rewritten.getContentLength() < resp.getContentLength()); assertEquals(JpegImageUtils.SamplingModes.YUV444, params.getSamplingMode()); }
@Test public void testRetainSubsmaplingEnabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/testImage444.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(true, 0.70f)); JpegImageUtils.JpegImageParams params = JpegImageUtils.getJpegImageData(rewritten.getResponse(), ""); assertTrue(rewritten.getContentLength() < resp.getContentLength()); assertEquals(JpegImageUtils.SamplingModes.YUV444, params.getSamplingMode()); }
@Test public void testRetainSubsmaplingDisabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/testImage444.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(false, 0.70f)); JpegImageUtils.JpegImageParams params = JpegImageUtils.getJpegImageData(rewritten.getResponse(), ""); assertTrue(rewritten.getContentLength() < resp.getContentLength()); assertEquals(JpegImageUtils.SamplingModes.YUV420, params.getSamplingMode()); }
@Test public void testRetainSubsmaplingDisabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/testImage444.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(false, 0.70f)); JpegImageUtils.JpegImageParams params = JpegImageUtils.getJpegImageData(rewritten.getResponse(), ""); assertTrue(rewritten.getContentLength() < resp.getContentLength()); assertEquals(JpegImageUtils.SamplingModes.YUV420, params.getSamplingMode()); }