use of org.glassfish.grizzly.http.ContentEncoding in project Payara by payara.
the class GenericGrizzlyListener method configureCompressionEncodings.
protected Set<ContentEncoding> configureCompressionEncodings(Http http) {
final String mode = http.getCompression();
int compressionMinSize = Integer.parseInt(http.getCompressionMinSizeBytes());
CompressionLevel compressionLevel;
try {
compressionLevel = CompressionLevel.getCompressionLevel(mode);
} catch (IllegalArgumentException e) {
try {
// Try to parse compression as an int, which would give the
// minimum compression size
compressionLevel = CompressionLevel.ON;
compressionMinSize = Integer.parseInt(mode);
} catch (Exception ignore) {
compressionLevel = CompressionLevel.OFF;
}
}
final String compressableMimeTypesString = http.getCompressableMimeType();
final String noCompressionUserAgentsString = http.getNoCompressionUserAgents();
final String[] compressableMimeTypes = ((compressableMimeTypesString != null) ? compressableMimeTypesString.split(",") : new String[0]);
final String[] noCompressionUserAgents = ((noCompressionUserAgentsString != null) ? noCompressionUserAgentsString.split(",") : new String[0]);
final ContentEncoding gzipContentEncoding = new GZipContentEncoding(GZipContentEncoding.DEFAULT_IN_BUFFER_SIZE, GZipContentEncoding.DEFAULT_OUT_BUFFER_SIZE, new CompressionEncodingFilter(compressionLevel, compressionMinSize, compressableMimeTypes, noCompressionUserAgents, GZipContentEncoding.getGzipAliases(), compressionLevel != CompressionLevel.OFF));
final ContentEncoding lzmaEncoding = new LZMAContentEncoding(new CompressionEncodingFilter(compressionLevel, compressionMinSize, compressableMimeTypes, noCompressionUserAgents, LZMAContentEncoding.getLzmaAliases(), compressionLevel != CompressionLevel.OFF));
final Set<ContentEncoding> set = new HashSet<ContentEncoding>(2);
set.add(gzipContentEncoding);
set.add(lzmaEncoding);
return set;
}
use of org.glassfish.grizzly.http.ContentEncoding in project Payara by payara.
the class GenericGrizzlyListener method configureHttpProtocol.
@SuppressWarnings({ "deprecation" })
protected void configureHttpProtocol(final ServiceLocator habitat, final NetworkListener networkListener, final Http http, final FilterChainBuilder filterChainBuilder, boolean secure) {
transactionTimeoutMillis = Long.parseLong(http.getRequestTimeoutSeconds()) * 1000;
filterChainBuilder.add(new IdleTimeoutFilter(obtainDelayedExecutor(), getTimeoutSeconds(http), TimeUnit.SECONDS));
final org.glassfish.grizzly.http.HttpServerFilter httpServerFilter = createHttpServerCodecFilter(http);
httpServerFilter.setRemoveHandledContentEncodingHeaders(true);
final Set<ContentEncoding> contentEncodings = configureContentEncodings(http);
for (ContentEncoding contentEncoding : contentEncodings) {
httpServerFilter.addContentEncoding(contentEncoding);
}
// httpServerFilter.getMonitoringConfig().addProbes(
// serverConfig.getMonitoringConfig().getHttpConfig().getProbes());
filterChainBuilder.add(httpServerFilter);
final FileCache fileCache = configureHttpFileCache(http.getFileCache());
fileCache.initialize(obtainDelayedExecutor());
final FileCacheFilter fileCacheFilter = new FileCacheFilter(fileCache);
// fileCache.getMonitoringConfig().addProbes(
// serverConfig.getMonitoringConfig().getFileCacheConfig().getProbes());
filterChainBuilder.add(fileCacheFilter);
final HttpServerFilter webServerFilter = new HttpServerFilter(getHttpServerFilterConfiguration(http), obtainDelayedExecutor());
final HttpHandler httpHandler = getHttpHandler();
httpHandler.setAllowEncodedSlash(GrizzlyConfig.toBoolean(http.getEncodedSlashEnabled()));
webServerFilter.setHttpHandler(httpHandler);
// webServerFilter.getMonitoringConfig().addProbes(
// serverConfig.getMonitoringConfig().getWebServerConfig().getProbes());
filterChainBuilder.add(webServerFilter);
configureHttp2Support(habitat, networkListener, http, filterChainBuilder, secure);
// TODO: evaluate comet/websocket support over SPDY.
configureCometSupport(habitat, networkListener, http, filterChainBuilder);
configureWebSocketSupport(habitat, networkListener, http, filterChainBuilder);
configureAjpSupport(habitat, networkListener, http, filterChainBuilder);
}
Aggregations