Go to file
buchgr 3613d15bca Split Http2MultiplexCodec into Frame- and MultiplexCodec + Tests. Fixes #4914
Motivation:

Quote from issue 4914:
"Http2MultiplexCodec currently does two things: mapping the existing h2 API to frames and managing the child channels.

It would be better if the two parts were separated. This would allow less-coupled development of the HTTP/2 handlers (flow control could be its own handler, for instance) and allow applications to insert themselves between all streams and the codec, which permits custom logic and could be used, in part, to implement custom frame types.

It would also greatly ease testing, as the child channel could be tested by itself without dealing with how frames are encoded on the wire."

Modifications:

- Split the Http2MultiplexCodec into Http2FrameCodec and Http2MultiplexCodec. The Http2FrameCodec interacts with the existing HTTP/2 callback-based API, while the Http2MulitplexCodec is completely independent of it and simply multiplexes Http2StreamFrames to the child channels. Additionally, the Http2Codec handler is introduced, which is a convenience class that simply sets up the Http2FrameCodec and Http2MultiplexCodec in the channel pipeline and removes itself.

- Improved test coverage quite a bit.

Result:

- The original Http2MultiplexCodec is split into Http2FrameCodec and Http2MultiplexCodec.
- More tests for higher confidence in the code.
2016-06-29 07:22:09 +02:00
all Update dependencies and plugins to latest possible versions. 2016-06-27 13:35:35 +02:00
buffer Test that CompositeByteBuf releases its components 2016-06-27 19:21:12 +02:00
codec Update dependencies and plugins to latest possible versions. 2016-06-27 13:35:35 +02:00
codec-dns Pluggable resource leak detector 2016-06-20 11:14:44 +02:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
codec-http Remove usages of deprecated methods group() and childGroup(). 2016-06-21 14:06:57 +02:00
codec-http2 Split Http2MultiplexCodec into Frame- and MultiplexCodec + Tests. Fixes #4914 2016-06-29 07:22:09 +02:00
codec-memcache [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
codec-mqtt Fix typo in the assert description in MqttCodecTest 2016-06-14 23:31:53 -07:00
codec-redis [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
codec-smtp [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
codec-socks [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
codec-stomp [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
codec-xml [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
common HpackUtil.equals performance improvement 2016-06-27 14:37:39 -07:00
example Split Http2MultiplexCodec into Frame- and MultiplexCodec + Tests. Fixes #4914 2016-06-29 07:22:09 +02:00
handler Add support for KeyManagerFactory when using SslProvider.OpenSsl. 2016-06-28 09:34:01 +02:00
handler-proxy Fix HTTP version and Host header in HttpProxyHandler 2016-06-22 16:26:56 +02:00
license added support for Protobuf codec nano runtime 2016-01-19 21:39:17 +01:00
microbench HpackUtil.equals performance improvement 2016-06-27 14:37:39 -07:00
resolver [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
resolver-dns DnsNameResolver should not bind locally. Fixes #5457 Motivation: Dns resolution failures happen when using the DnsNameResolver and the JVM is not authorized to bind datagram channels. The current DnsNameResolver binds locally a DatagramChannel which is not necessary (and not always permitted). 2016-06-28 15:39:42 +02:00
tarball [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
testsuite [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02:00
testsuite-osgi Update dependencies and plugins to latest possible versions. 2016-06-27 13:35:35 +02:00
transport Allow to inject RejectedExecutionHandler for different EventLoops and EventExecutors 2016-06-24 17:08:30 +02:00
transport-native-epoll Allow to inject RejectedExecutionHandler for different EventLoops and EventExecutors 2016-06-24 17:08:30 +02:00
transport-rxtx Use shaded dependency on JCTools instead of copy and paste 2016-06-10 13:19:45 +02:00
transport-sctp Use shaded dependency on JCTools instead of copy and paste 2016-06-10 13:19:45 +02:00
transport-udt [maven-release-plugin] prepare for next development iteration 2016-06-07 18:52:34 +02: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 added support for Protobuf codec nano runtime 2016-01-19 21:39:17 +01:00
pom.xml Expose session ticket statistics. 2016-06-27 19:36:45 +02: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.