/** Configure the Grizzly HTTP FileCache mechanism */ protected FileCache configureHttpFileCache(org.glassfish.grizzly.config.dom.FileCache cache) { final FileCache fileCache = new FileCache(); if (cache != null) { fileCache.setEnabled(GrizzlyConfig.toBoolean(cache.getEnabled())); fileCache.setSecondsMaxAge(Integer.parseInt(cache.getMaxAgeSeconds())); fileCache.setMaxCacheEntries(Integer.parseInt(cache.getMaxFilesCount())); fileCache.setMaxLargeFileCacheSize(Integer.parseInt(cache.getMaxCacheSizeBytes())); } else { fileCache.setEnabled(false); } return fileCache; }
protected void configureCometSupport( final ServiceLocator habitat, final NetworkListener networkListener, final Http http, final FilterChainBuilder filterChainBuilder) { if (GrizzlyConfig.toBoolean(http.getCometSupportEnabled())) { final AddOn cometAddOn = loadAddOn(habitat, "comet", "org.glassfish.grizzly.comet.CometAddOn"); if (cometAddOn != null) { configureElement(habitat, networkListener, http, cometAddOn); cometAddOn.setup(null, filterChainBuilder); isCometEnabled = true; } } }
@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(), Integer.parseInt(http.getTimeoutSeconds()), TimeUnit.SECONDS)); final org.glassfish.grizzly.http.HttpServerFilter httpServerFilter = createHttpServerCodecFilter(http); 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); configureSpdySupport(habitat, networkListener, http.getSpdy(), filterChainBuilder, secure); // TODO: evaluate comet/websocket support over SPDY. configureCometSupport(habitat, networkListener, http, filterChainBuilder); configureWebSocketSupport(habitat, networkListener, http, filterChainBuilder); configureAjpSupport(habitat, networkListener, http, filterChainBuilder); }