Commit Graph

3248 Commits

Author SHA1 Message Date
Trustin Lee
cb718a07c8 Move ChannelFutureFactory.newVoidFuture() to Channel.Unsafe() / Cleanup 2012-05-11 00:57:42 +09:00
Trustin Lee
d02bc1c0d3 Log outbound buffer
- Use uppercase names for outbound events
2012-05-11 00:46:51 +09:00
Trustin Lee
d5b52077fe Remove hexdump option in LoggingHandler and dump always
- Allow a user override the log message instead
- Prettier hex dump
2012-05-11 00:39:44 +09:00
Trustin Lee
da9ecadfc0 Introduce bypass buffer and use it in LoggingHandler
- Added ChannelBufferHolders.(inbound|outbound)BypassBuffer()
  - The holder returned by these methods returns the next handler's
    buffer.  When a handler's new(Inbound|Outbound)Buffer returns
    a bypass holder, your inboundBufferUpdated() and flush()
    implementation should check if the buffer is a bypass and should not
    modify the content of the buffer.
- Channel(Inbound|Outbound)?HandlerAdapter is now abstract.
  - A user has to specify the exact inbound/outbound buffer type
  - It's because there's no way to determine the best buffer type
- Implemented LoggingHandler using the new API.
  - It doesn't dump received or sent messages yet.
- Fixed a bug where DefaultUnsafe.close() does not trigger deregister()
- Fixed a bug where NioSocketChannel.isActive() does not return false
  when closed
2012-05-10 23:19:59 +09:00
Trustin Lee
532672deae Fix unnecessary application of Math.abs() 2012-05-10 21:56:10 +09:00
norman
d56aa76911 Revert "Set source java version to 1.7 where needed. See #312" as it breaks the build
This reverts commit d62977b061.
2012-05-10 10:06:38 +02:00
norman
d62977b061 Set source java version to 1.7 where needed. See #312 2012-05-10 08:09:31 +02:00
Trustin Lee
b4764f6164 Fix infinity loop and timing issues
- Made sure unnecessary interestOps are not OR'd
- Fixed a bug where DefaultChannelFuture.rethrowIfFailed() returns
  silently if the future is not done yet - there's no ways to tell
  the differences between failure and incompleteness.
2012-05-09 23:42:01 +09:00
Trustin Lee
129a2af86a Initial working version of the echo server example
- Optimized AbstractChannelBuffer.discardReadBytes()
- Split ChannelHandlerInvoker into ChannelInboundInvoker and
  ChannelOutboundInvoker
  - Channel implements ChannelOutboundInvoker
  - ChannelOutboundInvoker.nextOut() is now out()
  - ChannelOutboundHandlerContext.out() is now prevOut()
  - Added the outbound operations without future
    parameter to ChannelOutboundInvoker for user convenience
- All async operations which requires a ChannelFuture as a parameter
  now returns ChannelFuture for user convenience
- Added ChannelFutureFactory.newVoidFuture() to allow a user specify
  a dummy future that is of no use
  - I'm unsure if it is actually a good idea to introduce it. It might
    go away later.
- Made the contract of AbstractChannel.doXXX() much simpler and moved
  all common code up to AbstractChannel.DefaultUnsafe
- Added Channel.isOpen()
- Fixed a bug where MultithreadEventLoop always shut down its child
  event loops on construction
- Maybe more changes I don't remember :-)
2012-05-09 22:09:06 +09:00
norman
27358352ac Make sure all MultiCast configuration settings are possible with NIO. See #313 2012-05-09 07:49:18 +02:00
norman
2cd6386a37 Make sure all MultiCast configuration settings are possible with NIO. See #313 2012-05-09 07:45:40 +02:00
Norman Maurer
4b1721af17 Fix regression in ChunkedWriteHandler. See #310 2012-05-06 21:50:15 +02:00
norman
c24eafed48 MemoryAwareThreadPoolExecutor needs to notify ChannelFuture's of the queued ChannelEventRunnable on shutdownNow(). See #309 2012-05-04 14:36:51 +02:00
norman
21a61ce632 Make sure the ChannelFuture's of the MessageEvent's are notified on channelClosed(..) event and on removal of the handler from the ChannelPipeline. See #308 2012-05-04 13:56:34 +02:00
norman
d509425b90 Make sure we fire the event from the io-thread. See #306 2012-05-04 13:49:22 +02:00
norman
781e628dd8 Let ChannelLocal implement Iterable. See #307 2012-05-04 13:23:32 +02:00
norman
ec28cc8ba1 Refactor ChunkedWriteHandler to remove synchronization which can have bad side effects like deadlocks. See #297 and #301 2012-05-04 10:31:06 +02:00
norman
7016b83629 Add @Override annotations 2012-05-04 10:28:57 +02:00
norman
d3c137923f Notify ChannelFuture's of queued writes if the SslHandler gets remove d from the ChannelPipeline. See #306 2012-05-04 10:27:58 +02:00
norman
bc6948c397 Fail all queued writes if the ChunkedWriteHandler is removed from the ChannelPipeline. See #304 2012-05-04 10:26:25 +02:00
norman
2174ce3628 Fail all pending writes on channelClosed(..). See #305 2012-05-04 10:24:28 +02:00
Norman Maurer
f023120a62 Allow to register ChannelFutureListener's that get notified once the inbound of the SSLEngine is closed. See #137 2012-05-03 17:15:03 +02:00
norman
fb52b8a3b2 Make sure ChunkedInput.close() is not called before the write is complete. See #303 2012-05-03 09:24:36 +02:00
Trustin Lee
607d784e5e Retrofit/overhaul the NIO transport with the new API
- Remove large portion of code thanks to the new API
- SocketChannel implementations are instantiated without factories
- Retrofit the existing code with the new API
2012-05-02 21:05:53 +09:00
Norman Maurer
4e528c10fa Fix small race which can lead to resumeTransfer() to not kick in. See #300 2012-05-02 13:15:28 +03:00
Frédéric Brégier
cc0d7d8be5 typo fix! sorry 2012-05-02 12:35:36 +03:00
Frédéric Brégier
62f5623d2a typo fix ! Sorry 2012-05-02 12:33:40 +03:00
Frédéric Brégier
51415ca3ee Merge pull request #296 from fredericBregier/master
Very small fix on skipControlCharacters
2012-05-02 01:41:54 -07:00
Frédéric Brégier
d475a8cc64 Very small fix (readUnsigned while in optimized version it was signed but should be unsigned) 2012-05-02 11:40:28 +03:00
Trustin Lee
9e6f8b46df Retrofit the NIO transport with the new API / improve the new API
- Remove the classes and properties that are not necessary anymore
- Remove SingleThreadEventLoop.newRegistrationTask() and let
  Channel.Unsafe handle registration by itself
- Channel.Unsafe.localAddress() and remoteAddress()
  - JdkChannel is replaced by Channel.Unsafe.
2012-05-02 15:01:58 +09:00
norman
202df0618c Remove workaround for ipv6 link-localaddresses as it not work on most os / jdk versions. See #267 and #295 2012-05-02 07:39:02 +02:00
Trustin Lee
5dda9d1840 Retrofit the socket channel API with the new API 2012-05-02 14:07:50 +09:00
Frédéric Brégier
3edef63fa8 Merge pull request #294 from fredericBregier/master
For Improvement Issues #290 and #290, plus the defect issue #291
2012-05-01 10:13:42 -07:00
Trustin Lee
e65e496fc0 Clear Channel.eventLoop on deregistration 2012-05-01 23:19:31 +09:00
Trustin Lee
1356a0b61e Replace Channel.Unsafe.setEventLoop() with register()
- Added AbstractChannel.doRegister()
2012-05-01 23:18:29 +09:00
Norman Maurer
b2e77beb46 We need to set the exception on each MessageEvent. See #293 2012-05-01 12:00:36 +02:00
Trustin Lee
a83b9704fa Make sure ChannelFutureListeners are invoked from an event loop thread 2012-05-01 18:31:17 +09:00
Trustin Lee
0682421ce1 Remove unused classes
- ChannelPipelineFactory will be replaced with sometime else when I
  refactory the bootstrap package
- FileRegion is going away.  A user can deregister a channel and perform
  such operations by him/herself.  If this turns out to be too
  difficult, I'll introduce a new 'sendfile' operation to the outbound
  handler.
2012-05-01 18:23:59 +09:00
Trustin Lee
1b5960a1a8 Add ClientChannelConfig and move connectTimeoutMillis there 2012-05-01 18:17:12 +09:00
Trustin Lee
f4423ac555 Remove unused configuration properties and their related classes 2012-05-01 17:53:38 +09:00
Trustin Lee
c34d63d159 Fix compilation errors in ChannelGroup and its related types
- Also removed the operations not valid anymore
2012-05-01 17:49:41 +09:00
Trustin Lee
825d7964c9 Add ChannelFutureFactory & removeClosureListener()
- Channel and ChannelHandlerContext extends ChannelFutureFactory.
- Added Channel.removeClosureListener()
2012-05-01 17:48:24 +09:00
Trustin Lee
368156f5d0 Another round of the new API design
- Channel now creates a ChannelPipeline by itself

  I find no reason to allow a user to use one's own pipeline
  implementation since I saw nobody does except for the cases where a
  user wants to add a user attribute to a channel, which is now covered
  by AttributeMap.

- Removed ChannelEvent and its subtypes because they are replaced by
  direct method invocation.
- Replaced ChannelSink with Channel.unsafe()
- Various getter renaming (e.g. Channel.getId() -> Channel.id())
- Added ChannelHandlerInvoker interface
- Implemented AbstractChannel and AbstractServerChannel
- Some other changes I don't remember
2012-05-01 17:19:41 +09:00
Frédéric Brégier
502e469c45 Add Exception to the exception class name 2012-05-01 00:18:42 +03:00
Frédéric Brégier
1bf17c7c87 Add Exception to name of the Exception ;-) 2012-05-01 00:14:42 +03:00
Norman Maurer
2a70df1c1c Optimize AbstractNioWorker.cleanUpWriteBuffer(..). See #293 2012-04-30 20:26:44 +02:00
Frédéric Brégier
675bccc9ea Update codec-http/src/main/java/io/netty/handler/codec/http/HttpPostRequestDecoder.java 2012-04-30 13:06:53 +03:00
Frédéric Brégier
a524396475 Optimize Buffer access while decoding by going through backend array when possible (divide by almost 2 the time spent in decoding) 2012-04-30 13:02:46 +03:00
Frédéric Brégier
c83323f748 Add the SeekAheadOptimize class to enable faster seek of bytes values in HttpPostRequestDecoder 2012-04-30 12:38:07 +03:00
Frédéric Brégier
d9085e9e37 Fix in addContent when switching from MemoryAttribute if it is done when last buffer added, in order to not close immediately the underlying file before adding the last buffer. 2012-04-30 12:33:10 +03:00