Go to file
Scott Mitchell 28bd5a55c8 HTTP/2 Prevent modification of activeStreams while iterating
Motivation:
The Http2Connection interface exposes an activeStreams() method which allows direct iteration over the underlying collection. There are a few places that make copies of this collection to avoid modification while iterating, and a few places that do not make copies. The copy operation can be expensive on hot code paths and also we are not consistently iterating over the activeStreams collection.

Modifications:
- The Http2Connection interface should reduce the exposure of the underlying collection and just expose what is necessary for the interface to function.  This is just a means to iterate over the collection.
- The DefaultHttp2Connection should use this new interface and protect it's internal state while iteration is occurring.

Result:
Reduction in surface area of the Http2Connection interface.  Consistent iteration of the set of active streams.  Concurrent modification exceptions are handled in 1 encapsulated spot.
2015-04-07 21:00:24 -07:00
all [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
buffer HTTP/2 Decoder reduce preface conditional checks 2015-03-28 19:06:10 -07:00
codec Add support for byte order to LengthFieldPrepender 2015-03-13 18:37:58 +01:00
codec-dns [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
codec-http Safely encode Strings to ASCII 2015-03-18 15:53:52 +09:00
codec-http2 HTTP/2 Prevent modification of activeStreams while iterating 2015-04-07 21:00:24 -07:00
codec-memcache Returns after encoding each message not do check following instance types 2015-03-19 20:43:10 +01:00
codec-mqtt [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
codec-socks [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
codec-stomp [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
codec-xml [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
common Avoid object allocations for HTTP2 child streams. 2015-04-03 11:49:01 -07:00
example HTTP/2 Decoder reduce preface conditional checks 2015-03-28 19:06:10 -07:00
handler Fix incorrect null value check in TrafficCounter 2015-04-06 18:49:51 +02:00
handler-proxy [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
license Integrate non-blocking XML parser as Netty codec (#2806) 2015-02-19 14:17:17 +01:00
microbench Cleaning up the initialization of Http2ConnectionHandler 2015-03-30 11:22:25 -07:00
resolver Use InetSocketAddress.getHostName() instead of getHostString() 2015-03-10 11:45:56 +09:00
resolver-dns [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
tarball [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
testsuite [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
testsuite-osgi [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
transport Small typos fixes in Channel's Javadoc 2015-03-21 16:09:55 +01:00
transport-native-epoll First load RuntimeException to prevent segfault on error 2015-03-13 18:28:49 +01:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
transport-udt [maven-release-plugin] prepare for next development iteration 2015-03-03 08:30:59 -05:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Exclude bin directory from git Motivation: 2014-08-27 06:33:22 +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:17:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Integrate non-blocking XML parser as Netty codec (#2806) 2015-02-19 14:17:17 +01:00
pom.xml Add supported for X509ExtendedTrustManager when using OpenSslEngine 2015-03-30 09:05:28 +02:00
README.md Add a link to the 'native transports' page 2014-07-21 12:10:16 -07:00
run-example.sh Add logLevel property to enable different log levels for the examples. 2014-11-21 10:49:27 +09: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

The 'master' branch is where the development of the latest major version lives on. The development of all other 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.