package com.firefly.codec.http2.stream; import com.firefly.net.SSLContextFactory; import com.firefly.net.tcp.ssl.SelfSignedCertificateOpenSSLContextFactory; public class HTTP2Configuration { // TCP settings private com.firefly.net.Config tcpConfiguration = new com.firefly.net.Config(); // SSL/TLS settings private boolean isSecureConnectionEnabled; private SSLContextFactory sslContextFactory = new SelfSignedCertificateOpenSSLContextFactory(); // HTTP settings private int maxDynamicTableSize = 4096; private int streamIdleTimeout = 10 * 1000; private String flowControlStrategy = "buffer"; private int initialStreamSendWindow = FlowControlStrategy.DEFAULT_WINDOW_SIZE; private int initialSessionRecvWindow = FlowControlStrategy.DEFAULT_WINDOW_SIZE; private int maxConcurrentStreams = -1; private int maxHeaderBlockFragment = 0; private int maxRequestHeadLength = 4 * 1024; private int maxRequestTrailerLength = 4 * 1024; private int maxResponseHeadLength = 4 * 1024; private int maxResponseTrailerLength = 4 * 1024; private String characterEncoding = "UTF-8"; public com.firefly.net.Config getTcpConfiguration() { return tcpConfiguration; } public void setTcpConfiguration(com.firefly.net.Config tcpConfiguration) { this.tcpConfiguration = tcpConfiguration; } public int getMaxDynamicTableSize() { return maxDynamicTableSize; } public void setMaxDynamicTableSize(int maxDynamicTableSize) { this.maxDynamicTableSize = maxDynamicTableSize; } public int getStreamIdleTimeout() { return streamIdleTimeout; } public void setStreamIdleTimeout(int streamIdleTimeout) { this.streamIdleTimeout = streamIdleTimeout; } public String getFlowControlStrategy() { return flowControlStrategy; } public void setFlowControlStrategy(String flowControlStrategy) { this.flowControlStrategy = flowControlStrategy; } public int getInitialSessionRecvWindow() { return initialSessionRecvWindow; } public void setInitialSessionRecvWindow(int initialSessionRecvWindow) { this.initialSessionRecvWindow = initialSessionRecvWindow; } public int getInitialStreamSendWindow() { return initialStreamSendWindow; } public void setInitialStreamSendWindow(int initialStreamSendWindow) { this.initialStreamSendWindow = initialStreamSendWindow; } public int getMaxConcurrentStreams() { return maxConcurrentStreams; } public void setMaxConcurrentStreams(int maxConcurrentStreams) { this.maxConcurrentStreams = maxConcurrentStreams; } public int getMaxHeaderBlockFragment() { return maxHeaderBlockFragment; } public void setMaxHeaderBlockFragment(int maxHeaderBlockFragment) { this.maxHeaderBlockFragment = maxHeaderBlockFragment; } public int getMaxRequestHeadLength() { return maxRequestHeadLength; } public void setMaxRequestHeadLength(int maxRequestHeadLength) { this.maxRequestHeadLength = maxRequestHeadLength; } public int getMaxResponseHeadLength() { return maxResponseHeadLength; } public void setMaxResponseHeadLength(int maxResponseHeadLength) { this.maxResponseHeadLength = maxResponseHeadLength; } public int getMaxRequestTrailerLength() { return maxRequestTrailerLength; } public void setMaxRequestTrailerLength(int maxRequestTrailerLength) { this.maxRequestTrailerLength = maxRequestTrailerLength; } public int getMaxResponseTrailerLength() { return maxResponseTrailerLength; } public void setMaxResponseTrailerLength(int maxResponseTrailerLength) { this.maxResponseTrailerLength = maxResponseTrailerLength; } public String getCharacterEncoding() { return characterEncoding; } public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; } public boolean isSecureConnectionEnabled() { return isSecureConnectionEnabled; } public void setSecureConnectionEnabled(boolean isSecureConnectionEnabled) { this.isSecureConnectionEnabled = isSecureConnectionEnabled; } public SSLContextFactory getSslContextFactory() { return sslContextFactory; } public void setSslContextFactory(SSLContextFactory sslContextFactory) { this.sslContextFactory = sslContextFactory; } }