public ResponseEncodeHandler() { contentEncodingRepository = new ContentEncodingRepository(); List<String> encoders = config.getEncoders(); for(int i = 0; i < encoders.size(); i++) { String encoder = encoders.get(i); if(Constants.ENCODE_GZIP.equals(encoder)) { contentEncodingRepository.addEncodingHandler(encoder, new GzipEncodingProvider(), 100); } else if(Constants.ENCODE_DEFLATE.equals(encoder)) { contentEncodingRepository.addEncodingHandler(encoder, new DeflateEncodingProvider(), 10); } else { throw new RuntimeException("Invalid encoder " + encoder + " for ResponseEncodeHandler."); } } }
@Override public HttpHandler wrap(HttpHandler handler) { return new EncodingHandler(handler, new ContentEncodingRepository() .addEncodingHandler("gzip", new GzipEncodingProvider(), 100) .addEncodingHandler("deflate", new DeflateEncodingProvider(), 10)); } };
@Override public HttpHandler wrap(HttpHandler handler) { return new EncodingHandler(handler, new ContentEncodingRepository() .addEncodingHandler("gzip", new GzipEncodingProvider(), 100) .addEncodingHandler("deflate", new DeflateEncodingProvider(), 10)); } };
@Override public HttpHandler wrap(HttpHandler handler) { return new EncodingHandler(handler, new ContentEncodingRepository() .addEncodingHandler("gzip", new GzipEncodingProvider(), 100) .addEncodingHandler("deflate", new DeflateEncodingProvider(), 10)); } };
private EncodingHandler getGzipEncodeHandler(final DeploymentManager dm) throws ServletException{ // FROM: https://stackoverflow.com/questions/28295752/compressing-undertow-server-responses#28329810 final Predicate sizePredicate = Predicates.parse( "max-content-size[" + Long.toString( 5 * 1024 ) + "]" ); EncodingHandler eh = new EncodingHandler( new ContentEncodingRepository().addEncodingHandler( "gzip", new GzipEncodingProvider(), 50, sizePredicate ) .addEncodingHandler( "deflate", new DeflateEncodingProvider(), 51, sizePredicate ) ).setNext( dm.start() ); return eh; }