0ee36fef00
Motivation: HTTP/2 support two ways to start on a no-tls tcp connection, http/1.1 upgrade and prior knowlege methodology to start HTTP/2. Currently, the http2-server from example only support starting by upgrade. I think we can do a simple dispatch by peek first bytes from inbound that match to prior knowledge preface or not and determine which handlers to set into pipeline. Modifications: Add ClearTextHttp2ServerUpgradeHandler to support start HTTP/2 via clear text with two approach. And update example/http2-server to support this functionality. Result: netty HTTP/2 and the example http2-server accept for two ways to start HTTP/2 over clear text. Fixed memory leak problem Update fields to final Rename ClearText to cleartext Addressed comments for code improvement - Always prefer static, final, and private if possible - Add UnstableApi annotation - Used EmbeddedChannel.readInbound instead of unhandled inbound handler - More assertion Update javadoc for CleartextHttp2ServerUpgradeHandler Rename ClearTextHttp2ServerUpgradeHandler to CleartextHttp2ServerUpgradeHandler Removed redundant code about configure pipeline nit: PriorKnowledgeHandler Removed Mockito.spy, investigate conn state instead Add Http2UpgradeEvent Check null of the constructor arguments Rename Http2UpgradeEvent to PriorKnowledgeUpgradeEvent Update unit test |
||
---|---|---|
.github | ||
all | ||
bom | ||
buffer | ||
codec | ||
codec-dns | ||
codec-haproxy | ||
codec-http | ||
codec-http2 | ||
codec-memcache | ||
codec-mqtt | ||
codec-redis | ||
codec-smtp | ||
codec-socks | ||
codec-stomp | ||
codec-xml | ||
common | ||
example | ||
handler | ||
handler-proxy | ||
license | ||
microbench | ||
resolver | ||
resolver-dns | ||
tarball | ||
testsuite | ||
testsuite-autobahn | ||
testsuite-osgi | ||
transport | ||
transport-native-epoll | ||
transport-rxtx | ||
transport-sctp | ||
transport-udt | ||
.fbprefs | ||
.gitignore | ||
.travis.yml | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
NOTICE.txt | ||
pom.xml | ||
README.md | ||
run-example.sh |
Netty Project
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
Links
How to build
For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.
You require the following to build Netty:
- Latest stable Oracle JDK 7
- Latest stable Apache Maven
- If you are on Linux, you need additional development packages installed on your system, because you'll build the native transport.
Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+) is enough to run your Netty-based application.
Branches to look
Development of all versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>
. For example, the development of 3.9 and 4.0 resides in the branch '3.9' and the branch '4.0' respectively.