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); final Set<ContentEncoding> contentEncodings = configureContentEncodings(http); for (ContentEncoding contentEncoding : contentEncodings) { httpServerFilter.addContentEncoding(contentEncoding); final FileCache fileCache = configureHttpFileCache(http.getFileCache()); fileCache.initialize(obtainDelayedExecutor()); final FileCacheFilter fileCacheFilter = new FileCacheFilter(fileCache); getHttpServerFilterConfiguration(http), obtainDelayedExecutor()); final HttpHandler httpHandler = getHttpHandler(); httpHandler.setAllowEncodedSlash(GrizzlyConfig.toBoolean(http.getEncodedSlashEnabled())); webServerFilter.setHttpHandler(httpHandler); configureHttp2Support(habitat, networkListener, http, filterChainBuilder, secure); configureCometSupport(habitat, networkListener, http, filterChainBuilder); configureWebSocketSupport(habitat, networkListener, http, filterChainBuilder); configureAjpSupport(habitat, networkListener, http, filterChainBuilder);
private org.glassfish.grizzly.http.HttpServerFilter createHttpServerCodecFilter( final Http http) { int maxRequestHeaders = MimeHeaders.MAX_NUM_HEADERS_DEFAULT; int maxResponseHeaders = MimeHeaders.MAX_NUM_HEADERS_DEFAULT; boolean isChunkedEnabled = true; int headerBufferLengthBytes = org.glassfish.grizzly.http.HttpServerFilter.DEFAULT_MAX_HTTP_PACKET_HEADER_SIZE; String defaultResponseType = null; if (http != null) { isChunkedEnabled = Boolean.parseBoolean(http.getChunkingEnabled()); headerBufferLengthBytes = Integer.parseInt(http.getHeaderBufferLengthBytes()); defaultResponseType = http.getDefaultResponseType(); maxRequestHeaders = Integer.parseInt(http.getMaxRequestHeaders()); maxResponseHeaders = Integer.parseInt(http.getMaxResponseHeaders()); } return createHttpServerCodecFilter(http, isChunkedEnabled, headerBufferLengthBytes, defaultResponseType, configureKeepAlive(http), obtainDelayedExecutor(), maxRequestHeaders, maxResponseHeaders); }
@Override public void configure(final ServiceLocator habitat, final NetworkListener networkListener) throws IOException { setName(networkListener.getName()); setAddress(InetAddress.getByName(networkListener.getAddress())); setPort(Integer.parseInt(networkListener.getPort())); configureDelayedExecutor(); final FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless(); configureTransport(networkListener, networkListener.findTransport(), filterChainBuilder); configureProtocol(habitat, networkListener, networkListener.findProtocol(), filterChainBuilder); configureThreadPool(habitat, networkListener, networkListener.findThreadPool()); rootFilterChain = filterChainBuilder.build(); transport.setProcessor(rootFilterChain); }
public void setupNetwork() throws IOException { validateConfig(config); synchronized (listeners) { for (final NetworkListener listener : config.getNetworkListeners().getNetworkListener()) { final GenericGrizzlyListener grizzlyListener = new GenericGrizzlyListener(); grizzlyListener.configure(serviceLocator, listener); listeners.add(grizzlyListener); try { grizzlyListener.start(); } catch (IOException e) { LOGGER.log(Level.SEVERE, e.getMessage(), e); } } } }
Integer.parseInt(http.getHeaderBufferLengthBytes()), http.getDefaultResponseType(), configureKeepAlive(http), delayedExecutor, maxRequestHeaders, maxResponseHeaders); final Set<ContentEncoding> contentEncodings = configureContentEncodings(http); for (ContentEncoding contentEncoding : contentEncodings) { httpServerFilter.addContentEncoding(contentEncoding); final FileCache fileCache = configureHttpFileCache(http.getFileCache()); fileCache.initialize(transport.getMemoryManager(), delayedExecutor); final FileCacheFilter fileCacheFilter = new FileCacheFilter(fileCache); final HttpServerFilter webServerFilter = new HttpServerFilter(getHttpServerFilterConfiguration(http), delayedExecutor); final HttpHandler httpHandler = getHttpHandler(); httpHandler.setAllowEncodedSlash(GrizzlyConfig.toBoolean(http.getEncodedSlashEnabled())); webServerFilter.setHttpHandler(httpHandler); configureSpdySupport(habitat, networkListener, http.getSpdy(), filterChainBuilder, secure); configureCometSupport(habitat, networkListener, http, filterChainBuilder); configureWebSocketSupport(habitat, networkListener, http, filterChainBuilder); configureAjpSupport(habitat, networkListener, http, filterChainBuilder);
configureHttpProtocol(habitat, networkListener, http, puFilter = Utils.newInstance(habitat, PUFilter.class, puFilterClassname, puFilterClassname); configureElement(habitat, networkListener, pu, puFilter); } catch (Exception e) { LOGGER.log(Level.WARNING, final ProtocolFinder protocolFinder = Utils.newInstance(habitat, ProtocolFinder.class, finderClassname, finderClassname); configureElement(habitat, networkListener, finderConfig, protocolFinder); final Protocol subProtocol = finderConfig.findProtocol(); if (subProtocol.getHttp() != null) { final Filter addedSSLFilter = configureSsl( habitat, getSsl(subProtocol), subProtocolFilterChainBuilder); configureSubProtocol(habitat, networkListener, subProtocol, extraSslPUFilterChainBuilder); } finally { subProtocolFilterChainBuilder.build()); } else { configureSubProtocol(habitat, networkListener, subProtocol, subProtocolFilterChainBuilder); puFilter.register(protocolFinder, subProtocolFilterChainBuilder.build());
configureHttpProtocol(habitat, networkListener, http, puFilter = Utils.newInstance(habitat, PUFilter.class, puFilterClassname, puFilterClassname); configureElement(habitat, networkListener, pu, puFilter); } catch (Exception e) { logger.log(Level.WARNING, final ProtocolFinder protocolFinder = Utils.newInstance(habitat, ProtocolFinder.class, finderClassname, finderClassname); configureElement(habitat, networkListener, finderConfig, protocolFinder); final Protocol subProtocol = finderConfig.findProtocol(); final FilterChainBuilder subProtocolFilterChainBuilder = final Filter addedSSLFilter = configureSsl( habitat, getSsl(subProtocol), subProtocolFilterChainBuilder); configureSubProtocol(habitat, networkListener, subProtocol, extraSslPUFilterChainBuilder); } finally { subProtocolFilterChainBuilder.build()); } else { configureSubProtocol(habitat, networkListener, subProtocol, subProtocolFilterChainBuilder); puFilter.register(protocolFinder, subProtocolFilterChainBuilder.build());
public void setupNetwork() throws IOException { validateConfig(config); synchronized (listeners) { AbstractMemoryManager amm = null; for (final NetworkListener listener : config.getNetworkListeners().getNetworkListener()) { final GenericGrizzlyListener grizzlyListener = new GenericGrizzlyListener(); grizzlyListener.configure(habitat, listener); final MemoryManager mm = grizzlyListener.transport.getMemoryManager(); if (mm instanceof AbstractMemoryManager) { amm = (AbstractMemoryManager) mm; } listeners.add(grizzlyListener); final Thread thread = new DefaultWorkerThread(Grizzly.DEFAULT_ATTRIBUTE_BUILDER, grizzlyListener.getName(), amm != null ? amm.createThreadLocalPool() : null, new ListenerRunnable(grizzlyListener)); thread.setDaemon(true); thread.start(); } try { Thread.sleep(1000); // wait for the system to finish setting up the listener } catch (InterruptedException e) { logger.warning(e.getMessage()); throw new RuntimeException(e.getMessage()); } } }
if (!configureElement(habitat, networkListener, threadPool, customThreadPool)) { logger.log(Level.INFO, configureThreadPoolConfig(networkListener, threadPool))); } catch (NumberFormatException ex) { logger.log(Level.WARNING, "Invalid thread-pool attribute", ex);
public <E> List<E> getFilters(Class<E> clazz) { return getFilters(clazz, rootFilterChain, new ArrayList<E>(2)); }
@Override protected ServerFilterConfiguration getHttpServerFilterConfiguration(Http http) { // Set the default Glassfish error page generator final ServerFilterConfiguration config = super.getHttpServerFilterConfiguration(http); config.setDefaultErrorPageGenerator(new GlassfishErrorPageGenerator()); return config; }
@Override protected KeepAlive configureKeepAlive(Http http) { final KeepAlive keepAlive = super.configureKeepAlive(http); keepAlive.getMonitoringConfig().addProbes(new KeepAliveMonitor( grizzlyService.getMonitoring(), name, keepAlive)); return keepAlive; }
@Override protected FileCache configureHttpFileCache(org.glassfish.grizzly.config.dom.FileCache cache) { final FileCache fileCache = super.configureHttpFileCache(cache); fileCache.getMonitoringConfig().addProbes(new FileCacheMonitor( grizzlyService.getMonitoring(), name, fileCache)); return fileCache; }
@Override protected ThreadPoolConfig configureThreadPoolConfig(final NetworkListener networkListener, final ThreadPool threadPool) { final ThreadPoolConfig config = super.configureThreadPoolConfig( networkListener, threadPool); config.getInitialMonitoringConfig().addProbes(new ThreadPoolMonitor( grizzlyService.getMonitoring(), name, config)); return config; }
@Override protected void configureTransport(final NetworkListener networkListener, final Transport transportConfig, final FilterChainBuilder filterChainBuilder) { super.configureTransport(networkListener, transportConfig, filterChainBuilder); transport.getConnectionMonitoringConfig().addProbes(new ConnectionMonitor( grizzlyService.getMonitoring(), name, transport)); }
super.configureHttpProtocol(habitat, networkListener, http, filterChainBuilder, securityEnabled); final Protocol protocol = http.getParent(); for (NetworkListener listener : protocol.findNetworkListeners()) { super.configureHttpProtocol(habitat, networkListener, http, filterChainBuilder, securityEnabled);
if (!configureElement(habitat, networkListener, threadPool, customThreadPool)) { LOGGER.log(Level.INFO, configureThreadPoolConfig(networkListener, threadPool)); transport.setWorkerThreadPool(workerExecutorService); } catch (NumberFormatException ex) {
public <E> List<E> getFilters(Class<E> clazz) { return getFilters(clazz, rootFilterChain, new ArrayList<E>(2)); }
@Override public void configure(final ServiceLocator habitat, final NetworkListener networkListener) throws IOException { setName(networkListener.getName()); setAddress(InetAddress.getByName(networkListener.getAddress())); setPort(Integer.parseInt(networkListener.getPort())); final FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless(); configureTransport(networkListener, networkListener.findTransport(), filterChainBuilder); configureProtocol(habitat, networkListener, networkListener.findProtocol(), filterChainBuilder); configureThreadPool(habitat, networkListener, networkListener.findThreadPool()); rootFilterChain = filterChainBuilder.build(); transport.setProcessor(rootFilterChain); }
@SuppressWarnings({"unchecked"}) public static <E> List<E> getFilters(Class<E> clazz, FilterChain filterChain, List<E> filters) { for (final Filter filter : filterChain) { if (clazz.isAssignableFrom(filter.getClass())) { filters.add((E) filter); } if (PUFilter.class.isAssignableFrom(filter.getClass())) { final Set<PUProtocol> puProtocols = ((PUFilter) filter).getProtocols(); for (PUProtocol puProtocol : puProtocols) { getFilters(clazz, puProtocol.getFilterChain(), filters); } } } return filters; }