Trustin Lee
b5989e2449
Reduce exception instantiation overhead in SslHandler / Reduce unnecessary empty array creation
...
- Added EmptyArrays as an internal utility class
2013-04-24 09:32:53 +09:00
Trustin Lee
94aad58627
Fix incorrect name validation in AbstractHttpData
...
- Fixes #1228
2013-04-23 19:26:50 +09:00
Trustin Lee
9fe5048175
No need to make CaseIgnoringComparator public
...
.. because it's unsed only internally
2013-04-23 18:40:49 +09:00
Norman Maurer
9c4bfa44d9
[ #1294 ] Make sure ByteBuf is released once written to channel
2013-04-22 11:04:56 +02:00
Norman Maurer
c987dd556e
[ #1295 ] Make sure retain(..) returns the correct WebSocketFrame type
2013-04-21 13:00:50 +02:00
Norman Maurer
ca5554dfe7
[ #1236 ] Fix problem where adding a new ChannelHandler could block the eventloop
...
This change also introduce a few other changes which was needed:
* ChannelHandler.beforeAdd(...) and ChannelHandler.beforeRemove(...) were removed
* ChannelHandler.afterAdd(...) -> handlerAdded(...)
* ChannelHandler.afterRemoved(...) -> handlerRemoved(...)
* SslHandler.handshake() -> SslHandler.hanshakeFuture() as the handshake is triggered automatically after
the Channel becomes active
2013-04-19 07:00:50 +02:00
Trustin Lee
70eee55a48
Revamp HttpContentEncoder
...
- Use state machine to simplify the code
- Always produce a chunked response for simplicity
- Change the signature of beginEncode() - HttpContent was simply unnecessary.
- Add more test cases
- Fixes #1280
2013-04-17 12:51:22 +09:00
Trustin Lee
4b1df148a6
Fix a bug where HttpContentEncoder does not update 'Content-Length' and 'Transfer-Encoding' correctly
...
- Add 'Content-Length' and remove 'Transfer-Encoding' in case of FullHttpMessage
- Remove 'Content-Length' and add 'Transfer-Encoding: chunked' in case of non-full HttpMessage
- Fixes #1275
2013-04-16 11:49:47 +09:00
Norman Maurer
d8387fa4c3
[ #858 ] Merge ChannelPipeline.replaceAndForward into replace and removeAndForward into remove
2013-04-13 18:19:33 +02:00
Trustin Lee
b58e6787ee
Fix typo
2013-04-10 10:41:23 +09:00
irelandKen
9308625b2c
Update FullHttpMessage.java
...
I think FullHttpMessage = HttpMessage + LastHttpContent,
not that FullHttpMessage = FullHttpMessage + LastHttpContent
2013-04-08 21:12:19 +02:00
Norman Maurer
ded09fc778
No need t let SpdyOrHttpChooser extends ChannelDuplexHandler
2013-04-08 06:45:10 +02:00
Norman Maurer
3305a7df82
Also provide implementation for flush out of the box
2013-04-07 11:54:13 +02:00
Andrei Pozolotin
a3e760a003
fix #1234 - duplicate package-info.java errors in eclipse requires release of netty-build v 19 and netty-parent update.
2013-04-05 05:38:05 +09:00
Norman Maurer
af4b71a00e
Remove special handling of Object[] in codec framework (a.k.a unfolding)
...
- Fixes #1229
- Primarily written by @normanmaurer and revised by @trustin
This commit removes the notion of unfolding from the codec framework
completely. Unfolding was introduced in Netty 3.x to work around the
shortcoming of the codec framework where encode() and decode() did not
allow generating multiple messages.
Such a shortcoming can be fixed by changing the signature of encode()
and decode() instead of introducing an obscure workaround like
unfolding. Therefore, we changed the signature of them in 4.0.
The change is simple, but backward-incompatible. encode() and decode()
do not return anything. Instead, the codec framework will pass a
MessageBuf<Object> so encode() and decode() can add the generated
messages into the MessageBuf.
2013-04-03 21:44:54 +09:00
Trustin Lee
f95dbb7a4d
Make HttpPostRequestDecoder.addHttpData() and getFileUpload() protected
...
.. so that a user can extend it to get notified when changes are made
2013-04-02 16:07:31 +09:00
Norman Maurer
d9ac6638f4
[ #1221 ] Make sure HttpObjectAggregator 100-Continue buffer is not released
2013-04-02 07:38:46 +02:00
Prajwal Tuladhar
05850da863
enable checkstyle for test source directory and fix checkstyle errors
2013-03-30 13:18:57 +01:00
Jeff Pinner
b4b0be4e53
SPDY: allow multiple notification of closeSessionFuture
2013-03-28 15:15:09 +01:00
Norman Maurer
14a47075be
[ #1211 ] Fail ChannelPromise on SpdyProtocolException like it was before in 3.x
2013-03-28 07:20:34 +01:00
Norman Maurer
a97cca50df
[ #1212 ] Fire handshake status events to notify the user about handshake states
2013-03-28 06:57:04 +01:00
Norman Maurer
4a9ab4f57c
Add WebSocketFrameAggregator which takes care to aggregate fragmented websocket frames
2013-03-27 07:46:11 +01:00
Norman Maurer
71727e42de
[ #1210 ] Allow to use derived buffers with DefaultBufferHolder and so fix broken SpdySessionHandler
2013-03-27 07:30:12 +01:00
Norman Maurer
20d76610da
[ #1204 ] Correctly detect lastChunk in HttpPostRequestDecoder
2013-03-25 08:32:52 +01:00
Norman Maurer
f76e38592d
[ #1201 ] Correctly handle mix of not compressed and compressed requests
2013-03-25 08:13:12 +01:00
Norman Maurer
59012390f6
Fix version numbering
2013-03-25 08:01:11 +01:00
Norman Maurer
7d7b676eeb
[maven-release-plugin] prepare for next development iteration
2013-03-22 15:20:35 +01:00
Norman Maurer
60fc7dac4d
[maven-release-plugin] prepare release netty-4.0.0.CR1
2013-03-22 15:20:11 +01:00
Norman Maurer
4bd9c0195f
Add a handler that makes writing websocket clients much easier
2013-03-22 12:11:35 +01:00
Trustin Lee
d3327e7f46
Fix inspector warnings
2013-03-18 13:10:55 +09:00
ursa
ecaba68348
Fix bug in memory-based HTTP data content initialization with input stream, add test (port from branch 3).
...
- Fixes #1170
2013-03-18 13:05:40 +09:00
Trustin Lee
2a87950784
[maven-release-plugin] prepare for next development iteration
2013-03-16 18:41:36 +09:00
Trustin Lee
adfb29330b
[maven-release-plugin] prepare release netty-4.0.0.Beta3
2013-03-16 18:40:59 +09:00
Norman Maurer
d9c3f4bc05
[ #1159 ] Make sure we not produce an empty bytebuf on decodeLast(..)
2013-03-14 12:45:24 +01:00
Trustin Lee
6e0e38f09f
Fix test failures
2013-03-12 14:43:38 +09:00
Trustin Lee
c660002b4e
Add DecoderResult.UNFINISHED to represent the case where a decoder generated a message that was not decoded completely / Remove partial failure in DecoderResult which is not very useful but confusing
2013-03-12 13:04:53 +09:00
Norman Maurer
acde9a3f8e
Fix a NoSuchElementException when WebSocketClientHandshaker is used with HttpRequestEncoder. This time for real
2013-03-11 14:39:41 +01:00
Norman Maurer
978cf0d98a
Fix a NoSuchElementException when WebSocketClientHandshaker is used with HttpRequestEncoder
2013-03-11 13:54:03 +01:00
Norman Maurer
fd3f923b52
Allow to specify the used buffer type for ChannelInboundByteBufHandler and ChannelOutboundByteBufHandler by configuration. As default it tries to use a direct ByteBuf
2013-03-08 08:20:46 +01:00
Trustin Lee
a9a29bdf3f
Use I/O buffer whenever possible now that our direct buffers are as fast as heap buffers
2013-03-08 11:21:08 +09:00
Norman Maurer
6ac9b17ddd
Make WebSocket codec also work when HttpClientCodec and HttpServerCodec is used.
...
Also refactor the handshakers to share more code and make it easier to implement a new one and less error-prone
2013-03-08 08:46:47 +09:00
Trustin Lee
a8a7c4f576
Provide a way to implement an ChannelInbound/OutboundMessageHandler conveniently without extending an adapter class
...
- Add ChannelHandlerUtil and move the core logic of ChannelInbound/OutboundMessageHandler to ChannelHandlerUtil
- Add ChannelHandlerUtil.SingleInbound/OutboundMessageHandler and make ChannelInbound/OutboundMessageHandlerAdapter implement them. This is a backward incompatible change because it forces all handler methods to be public (was protected previously)
- Fixes : #1119
2013-03-05 17:27:53 +09:00
Justin Santa Barbara
6246825fda
[ #1100 ] Fix SPDY codec to work again in 4.x
2013-02-28 11:35:38 +01:00
Norman Maurer
b6038534cc
[ #1101 ] Fix NPE which accour when send a 100-continue response and using the HttpContentEncoder
2013-02-28 07:13:21 +01:00
Norman Maurer
977b6f3a28
[ #1101 ] Fix NPE which accour when send a 100-continue response and using the HttpContentDecoder
2013-02-28 07:06:39 +01:00
Trustin Lee
49aa907bd0
[maven-release-plugin] prepare for next development iteration
2013-02-26 16:55:07 -08:00
Trustin Lee
5026c2f359
[maven-release-plugin] prepare release netty-4.0.0.Beta2
2013-02-26 16:54:53 -08:00
Trustin Lee
671f9d48d4
Use ConcurrentHashMapV8 wherever possible
...
- Fixes #1052
2013-02-26 15:54:51 -08:00
Trustin Lee
f67441354a
Move logging classes from internal to internal.logging
...
.. because internal is crowded
2013-02-26 14:54:25 -08:00
Norman Maurer
eb2aa7f6d4
Cleanup
2013-02-26 08:01:18 +01:00
Norman Maurer
a03bd5105a
[##1064] Fix problem where the LastHttpContent was changed to HttpContent and so the end was never detected
2013-02-26 07:47:30 +01:00
Norman Maurer
30e7ab2f7d
[ #1089 ] Correctly offer FullHttpContent if it is used to construct HttpPostRequestDecoder
2013-02-26 07:33:04 +01:00
Trustin Lee
9e67cce932
Use BufUtil.retain() where possible
2013-02-21 13:58:13 -08:00
Norman Maurer
43ff36cef0
Cleanup
2013-02-21 19:31:05 +01:00
Norman Maurer
00310d96af
[ #1067 ] Fix bug which can cause IllegalBufferAccessException when using aggregator and deflater the same time
2013-02-21 06:48:53 +01:00
Atsuhiko Yamanaka
8fdf788cbd
[ #1012 ] Replace forked jzlib with official jzlib and add a test.
2013-02-20 12:49:05 +01:00
Trustin Lee
d68a04a879
[maven-release-plugin] prepare for next development iteration
2013-02-14 12:56:24 -08:00
Trustin Lee
59e638f8f5
[maven-release-plugin] prepare release netty-4.0.0.Beta1
2013-02-14 12:56:15 -08:00
Trustin Lee
1011227b88
Remove apiviz tags - we are focusing on user guide instead and putting diagrams there
2013-02-14 12:09:16 -08:00
Norman Maurer
54435a908f
Make internal class final and package private
2013-02-14 09:36:27 +01:00
Norman Maurer
5370573400
Change ReferenceCounted.retain* to return itself and so allow method chaining
2013-02-14 07:39:44 +01:00
Norman Maurer
fcba55329c
[ #1046 ] Make sure HttpContentEncoder calls ByteBuf.retain() if needed
2013-02-12 20:32:27 +01:00
Trustin Lee
b4f4b95739
Move io.netty.logging to io.netty.internal / Move Signal out of internal because we use it in Channel*MessageAdapters
2013-02-11 20:08:18 +09:00
Trustin Lee
a91c6596c4
Add TODO
2013-02-11 19:43:53 +09:00
Trustin Lee
a2e5cd94be
Prettify APIviz / Tighten visibility / Move subclasses to top level / Remove unused UnknownSocksMessage
2013-02-11 19:42:23 +09:00
Trustin Lee
bf0bfe9a69
Fix inspector warnings
2013-02-11 16:52:43 +09:00
Norman Maurer
0e47fb50e2
Tighten up visibility
2013-02-11 07:26:10 +01:00
Trustin Lee
4f6d05365a
Fix a race condition in reference counter implementation / Reference count never goes below 0
2013-02-10 14:22:14 +09:00
Trustin Lee
2f1a0b0593
Remove freeInbound/OutboundMessage(), replaced by ReferenceCounted.retain/release()
...
- Related: #1029
2013-02-10 13:31:31 +09:00
Trustin Lee
b9996908b1
Implement reference counting
...
- Related: #1029
- Replace Freeable with ReferenceCounted
- Add AbstractReferenceCounted
- Add AbstractReferenceCountedByteBuf
- Add AbstractDerivedByteBuf
- Add EmptyByteBuf
2013-02-10 13:10:09 +09:00
Trustin Lee
27190fcb7f
Fix a bug where HttpContentDecoder emits duplicate HttpMessage or raises NPE
2013-02-10 01:35:01 +09:00
Trustin Lee
2ac7983471
Do not trigger inboundBufferUpdated unnecessarily / Fix a bug in WebSocketServerProtocolHandlerTest / Fix a bug in forbiddenHttpRequestResponder()
2013-02-09 20:32:49 +09:00
Norman Maurer
42b21222dc
[ #1025 ] Allow to add extra headers to the websocket handshake response
2013-02-08 19:54:05 +01:00
Trustin Lee
ee189d1da7
Use finer grained type parameter in SPDY
2013-02-08 17:57:20 +09:00
Trustin Lee
82c46180c9
Tighten access modifier of encode/decode()
2013-02-08 17:37:16 +09:00
Trustin Lee
76eb40a4d2
Make ChannelOutboundMessageHandlerAdapter similar to ChannelInboundMessageHandlerAdapter
2013-02-08 17:07:01 +09:00
Trustin Lee
1640b1fea6
Automatically detect the message types in MessageToMessageCodec
2013-02-08 16:12:32 +09:00
Trustin Lee
fa1b49de98
More robust automatic messageType detection for ChannelInboundMessageHandlerAdapter and MessageToMessageDecoder
2013-02-08 15:45:17 +09:00
Trustin Lee
e5616c85c4
Automatic messageType detection for ChannelInboundMessageHandlerAdapter
2013-02-08 13:48:47 +09:00
Trustin Lee
d4742bbe16
Clean up abstract ChannelHandler impls / Remove ChannelHandlerContext.hasNext*()
...
- Rename ChannelHandlerAdapter to ChannelDuplexHandler
- Add ChannelHandlerAdapter that implements only ChannelHandler
- Rename CombinedChannelHandler to CombinedChannelDuplexHandler and
improve runtime validation
- Remove ChannelInbound/OutboundHandlerAdapter which are not useful
- Make ChannelOutboundByteHandlerAdapter similar to
ChannelInboundByteHandlerAdapter
- Make the tail and head handler of DefaultChannelPipeline accept both
bytes and messages. ChannelHandlerContext.hasNext*() were removed
because they always return true now.
- Removed various unnecessary null checks.
- Correct method/field names:
inboundBufferSuspended -> channelReadSuspended
2013-02-07 23:47:45 +09:00
Norman Maurer
582c6be456
[ #1023 ] WebSocketClientHandshaker00 now also work with non heap buffers
2013-02-07 14:21:11 +01:00
ursa
f09b85f4e7
Add test for HttpPostRequestDecoder: validate '\r' symbols in the end of binary stream are parsed correctly.
2013-02-06 20:21:56 +01:00
Norman Maurer
fd75615d7a
[ #870 ] Convert all modules into osgi bundles
2013-02-06 07:57:11 +01:00
ursa
992d431a95
Fix line-end detection for binary streams upload.
...
- Related: #1016
2013-02-06 11:54:05 +09:00
Trustin Lee
2ec932798f
Replace .readable() and .writable() to .isReadable() and .isWritable()
2013-01-31 18:24:33 +01:00
Trustin Lee
42c65cca3a
Make MessageBuf bounded
...
- Move common methods from ByteBuf to Buf
- Rename ensureWritableBytes() to ensureWritable()
- Rename readable() to isReadable()
- Rename writable() to isWritable()
- Add isReadable(int) and isWritable(int)
- Add AbstractMessageBuf
- Rewrite DefaultMessageBuf and QueueBackedMessageBuf
- based on Josh Bloch's public domain ArrayDeque impl
2013-01-31 18:11:06 +01:00
Norman Maurer
ec013bf2d3
[ #983 ] Force the user to implement an actual ChannelInboundHandler or ChannelOutboundHandler
...
For this ChannelInboundHandler* and ChannelOutboundHandler* was made package private
2013-01-31 15:50:27 +01:00
Courtney Robinson
2d9cc9f63b
Allow to specify the mode the encoder uses for form params. This allows it to be used with OAUTH
...
The OAuth 1 spec has small deviations from UrlEncoder.encode's output.
+ Percent encodes the parameters
+ Added tests to verify
+ See relevant OAuth section
http://oauth.net/core/1.0/#encoding_parameters
+ Detailed explanation http://hueniverse.com/oauth/guide/authentication/
2013-01-31 07:49:34 +01:00
Norman Maurer
97ea338bce
[ #971 ] Fix a bug where the HttpContentCompressor was try to start compressing on an empty response
2013-01-30 20:58:07 +01:00
Norman Maurer
cff2edf75d
Remove not used enum
2013-01-30 19:02:29 +01:00
Norman Maurer
3843cfd702
[SPDY] Factor out headers into extra class like we did in http and support method chaining where possible
2013-01-30 08:23:07 +01:00
Norman Maurer
238e03f75b
Add setters and getters back to Http Objects
...
* This is done because we noticed that the previous change limit the usage more then it gave us any benefit. Now it is possible
again to rewrite the url on the fly or reuse the objects when writing a proxy and so limit the GC pressure.
* Fixes also #979
2013-01-30 07:42:18 +01:00
Trustin Lee
c5ccaee506
Fix a bug in HttpPostRequestDecoder where character encoding is ignored when reading a line
...
- Fixed #992 (backported from 3)
- 9650cda163
- b38bde2d2b
2013-01-29 15:59:15 +09:00
Norman Maurer
d7bfd44e10
[ #982 ] [ #977 ] [ #858 ] Allow to transfer the content a ChannelHandlers inbound/outbound buffer on removal/replacement
...
This changes the behavior of the ChannelPipeline.remove(..) and ChannelPipeline.replace(..) methods in that way
that after invocation it is not possible anymore to access any data in the inbound or outbound buffer. This is
because it empty it now to prevent side-effects. If a user want to preserve the content and forward it to the
next handler in the pipeline it is adviced to use one of the new methods which where introduced.
- ChannelPipeline.removeAndForward(..)
- ChannelPipeline.replaceAndForward(..)
2013-01-28 10:25:38 +01:00
Norman Maurer
29bed32a89
[ #963 ] Fix invalid free-up of messages if they are only passed-throught in HttpContentEncoder and HttpContentDecoder
2013-01-21 10:41:23 +01:00
Norman Maurer
c1e827fd72
[ #942 ] Add an option to disable decoding of chunked transfer encoding in HttpObjectDecoder
2013-01-20 10:40:54 +01:00
Trustin Lee
b60e0b6a51
Modernize InternalLogger API and enable logging framework autodetection
...
- Borrow SLF4J API which is the best of the best
- InternalLoggerFactory now automatically detects the logging framework
using static class loading. It tries SLF4J, Log4J, and then falls back
to java.util.logging.
- Remove OsgiLogger because it is very likely that OSGi container
already provides a bridge for existing logging frameworks
- Remove JBossLogger because the latest JBossLogger implementation seems
to implement SLF4J binding
- Upgrade SLF4J to 1.7.2
- Remove tests for the untestable logging frameworks
- Remove TestAny
2013-01-19 20:50:52 +09:00
Norman Maurer
e8636050ca
[ #864 ] Switch to single decoding mode on the protocol upgrade to prevent races
2013-01-18 09:56:17 +01:00
Trustin Lee
cfa300f431
Fix APIviz panic
2013-01-18 14:12:35 +09:00
Norman Maurer
8a9e602a66
Prevent possible ClassCastException
2013-01-17 09:37:17 +01:00