Go to file
chhsiao90 0ee36fef00 Accept two ways to start HTTP/2 over clear text
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
2017-03-31 15:21:48 -07:00
.github Use GitHub Issue/PR Template Feature 2016-12-07 11:40:26 -08:00
all [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
bom [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
buffer UnsafeByteBufUtil errors and simplification 2017-03-30 11:52:03 -07:00
codec Adding method to assert XML decoder framing works 2017-03-19 08:08:07 -07:00
codec-dns [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-http Non-latin character broken on HttpHeader by HttpObjectDecoder. 2017-03-28 11:58:30 +02:00
codec-http2 Accept two ways to start HTTP/2 over clear text 2017-03-31 15:21:48 -07:00
codec-memcache [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-mqtt [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-redis [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-smtp [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-socks [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-stomp [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-xml [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
common Ensure test introduced in 5c1c14286d also works on Java9 2017-03-29 22:43:00 +02:00
example Accept two ways to start HTTP/2 over clear text 2017-03-31 15:21:48 -07:00
handler Adding support for Conscrypt (#6271) 2017-03-31 13:55:59 -07:00
handler-proxy [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
license Remove reference to akka code and ArrayDeque which is not part of netty anymore 2017-03-07 21:30:51 +01:00
microbench Replace system.out.println with InternalLoggerFactory 2017-03-28 14:51:59 +02:00
resolver [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
resolver-dns [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
tarball [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
testsuite [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
testsuite-autobahn [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
testsuite-osgi [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
transport fix failure logging of value on channel option set 2017-03-21 22:02:23 -07:00
transport-native-epoll [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
transport-udt [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Use shaded dependency on JCTools instead of copy and paste 2016-06-10 13:19:45 +02:00
.travis.yml Travis CI branch whitelisting 2013-03-11 09:55:43 +09:00
CONTRIBUTING.md Move the pull request guide to the developer guide 2014-03-12 13:13:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Remove reference to akka code and ArrayDeque which is not part of netty anymore 2017-03-07 21:30:51 +01:00
pom.xml Adding support for Conscrypt (#6271) 2017-03-31 13:55:59 -07:00
README.md Updating Branches to look section to match the current branching structure of the project 2016-03-10 22:08:01 +01:00
run-example.sh Add an example client for codec-redis 2016-04-23 11:18:12 -07:00

Netty Project

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

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:

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.