Trustin Lee
a58533fdad
Due to the recent changes with AsynchronousChannelGroup use, there's no
...
need to schedule read operation later.
2012-07-09 00:04:55 +09:00
Trustin Lee
ee019d344e
Fix potential NPE in AioEventLoop / Always notify flush futures
2012-07-08 22:44:15 +09:00
Trustin Lee
e7c6ca945f
Fix potential NPE / Use discardReadBytes instead of clear()
2012-07-08 22:22:35 +09:00
Trustin Lee
c77f107f5f
Made the AIO transport faster / Fixed a bug in SingleThreadEventLoopTest
...
- Used reflection hack to dispatch the tasks submitted by JDK
efficiently. Without hack, there's higher chance of additional
context switches.
- Server side performance improved to the expected level.
- Client side performance issue still under investigation
2012-07-08 21:49:15 +09:00
Trustin Lee
bf62add6c7
Clean up
...
- Removed unnecessary 'closed' flag and redundant close() calls, etc.
2012-07-08 15:12:15 +09:00
Trustin Lee
b79e0b0882
Fix another data race
2012-07-08 14:43:34 +09:00
Trustin Lee
b97b3c602b
Add missing license header
2012-07-08 02:26:37 +09:00
Trustin Lee
cef7dfc02f
Made the AIO transport adhere to Netty thread model strictly
...
- Fixed data races
- Simplified channel creation using dummy AsyncChannelGroup
2012-07-08 00:53:56 +09:00
Trustin Lee
613834f326
Fix data corruption in the AIO transport
2012-07-07 21:29:03 +09:00
Trustin Lee
2bc26fbc70
Remove seemingly an ad-hoc test class
2012-07-07 18:49:21 +09:00
Trustin Lee
3a84b9dc71
Make test suite mostly pass by avoiding ClosedChannelException
...
- SSL echo test still fails
2012-07-07 15:34:14 +09:00
Trustin Lee
aea3ed85bd
Allow AIO channel's config is accessible as early as possible
2012-07-07 15:25:55 +09:00
Trustin Lee
c0f4f75c6d
Use SOMAXCONN as the default backlog if possible
2012-07-07 15:05:10 +09:00
Trustin Lee
ec88f6617c
Fix compilation error and warning
2012-07-07 14:48:34 +09:00
Trustin Lee
fae3861c3a
Fix a compiler warning
2012-07-07 14:46:43 +09:00
Trustin Lee
de40a8d09b
Fix another compilation error
2012-07-07 14:45:18 +09:00
Trustin Lee
c57e903c4d
Fix more compilation errors
2012-07-07 14:44:06 +09:00
Trustin Lee
0941d617d9
Fix a compilation error
2012-07-07 14:42:18 +09:00
Trustin Lee
42380b54b3
Revert file mode
2012-07-07 14:39:35 +09:00
Trustin Lee
9535401632
Revert unnecessary change in Bootstrap
2012-07-07 14:37:44 +09:00
Trustin Lee
b86e2730cc
Remove unused classes in util.internal
2012-07-07 14:30:26 +09:00
Trustin Lee
81eaea77bd
Add DatagramChannel.isConnected()
...
.. because there is no way for a user with isActive to know if
DatagramChannel is connected or not
2012-07-07 14:30:24 +09:00
Trustin Lee
a5bb2c7f77
Add ChannelMetadata and remove unnecessary disconnect() impls
...
- Add Channel.metadata() and remove Channel.bufferType()
- DefaultPipeline automatically redirects disconnect() request to
close() if the channel has no disconnect operation
- Remove unnecessary disconnect() implementations
2012-07-07 14:30:24 +09:00
Trustin Lee
faf529166f
Increase the timeout of LocalTransportThreadModelTest to 1 minute
2012-07-07 14:30:24 +09:00
Norman Maurer
c165a38e15
Revert as it should be in nio2 branch "Commit first round of classes to support nio2/async channel api. Still work in progress.. See #396 "
...
This reverts commit 18aaae3c2e
.
2012-07-07 14:30:24 +09:00
norman
31cebd7ce2
No need for AtomicBoolean as we run in the eventloop. See #396
2012-07-03 15:30:15 +02:00
norman
eccc28965e
Make sure the ComplationHandler stuff is handled in the eventloop. See #396
2012-07-03 15:25:28 +02:00
norman
7d33846690
Trigger the read() after the registration was complete. See #396
2012-07-03 13:10:29 +02:00
norman
e58d657421
Supress exception logging if the exception was expected. See #396
2012-07-03 12:01:52 +02:00
norman
c3770a0fba
Revert "Check that eventloop's were setup correctly. See #396 "
...
This reverts commit 82834c2f34
.
2012-07-03 11:50:50 +02:00
Norman Maurer
82834c2f34
Check that eventloop's were setup correctly. See #396
2012-07-01 22:39:33 +02:00
Norman Maurer
12112ac857
Use the correct outbound buffer for flush the writes. See #396
2012-07-01 22:32:45 +02:00
Norman Maurer
0562aad91f
Make sure all pending writes are flushed. See #396
2012-07-01 22:20:36 +02:00
Norman Maurer
8c0146fbd8
Supress warnings
2012-07-01 21:50:44 +02:00
Norman Maurer
e1cbcd6456
Remove left-overs. See #396
2012-07-01 21:50:17 +02:00
Trustin Lee
5caf78acc0
Fix a bug where channelActive is not fired for an accepted channel
2012-06-18 17:22:06 +09:00
Norman Maurer
127e9c1d1e
Calling clear is wrong. See #396
2012-06-17 20:28:47 +02:00
Norman Maurer
7412c371f2
Fix writes. See #396
2012-06-17 13:12:15 +02:00
Norman Maurer
22bc8fecca
Implement the right interfaces
2012-06-17 11:07:21 +02:00
Norman Maurer
5d1e710adc
Package was renamed. See #396
2012-06-16 22:31:43 +02:00
Norman Maurer
70c4f59c45
Some clean. See #396
2012-06-16 22:29:25 +02:00
Norman Maurer
314ac37732
Rename classes from Async* -> Aio*. See #396
2012-06-16 21:20:57 +02:00
Norman Maurer
67be5aeda8
Rename package from nio2 -> aio. See #396
2012-06-16 21:18:25 +02:00
Norman Maurer
ffc6551acc
Adjust name. See #396
2012-06-16 21:17:45 +02:00
Norman Maurer
2ff22ff4c3
Add javadocs and also handle writes correctly. See #396
2012-06-16 21:16:54 +02:00
Norman Maurer
70baea35da
Make reads work like expected with AOI. See #396
2012-06-16 20:51:45 +02:00
Norman Maurer
f8ef5d5d78
Next round for async channel api support a.k.a nio2. See See #396
2012-06-14 21:02:47 +02:00
Norman Maurer
032912d938
Commit first round of classes to support nio2/async channel api. Still work in progress.. See #396
2012-06-13 22:24:16 +02:00
Trustin Lee
8b7af2ca3b
Generate Javadoc with APIviz
2012-06-13 12:11:11 +09:00
Trustin Lee
90b12ba5d2
Fix a ClassCastException in EmbeddedMessageChannel
2012-06-12 21:09:33 +09:00
Trustin Lee
dfce95dd5a
Remove unused type
2012-06-12 18:09:05 +09:00
Trustin Lee
660e4548a6
Fix an unexpected RejectedExecutionException
...
- Ensure to run all remaining tasks before marking the executor as
'shut down'.
2012-06-12 17:41:06 +09:00
Trustin Lee
3393629eed
Log the cause of exceptionCaught event when failed to notify
2012-06-12 17:25:27 +09:00
Trustin Lee
3b562c917d
Move ChannelBufferType to netty-buffers and rename it to ChannelBufType
...
- Also add ChannelBuf.type()
2012-06-12 17:05:28 +09:00
Trustin Lee
ecd0ae5406
Prefer MessageBuf over Queue where possible
...
- Also replaced thread safe queues with non-thread-safe ones where
possible
- Unpooled.wrappedBuffer(Queue<T>) does not wrap MessageBuf anymore
2012-06-12 17:02:00 +09:00
Trustin Lee
e1faea035e
Automatic clean-up with Eclipse
...
- Mostly import organization & whitespace removal
2012-06-11 23:04:04 +09:00
Trustin Lee
6211e53e86
Code clean-up based on IntelliJ code analysis
2012-06-11 22:54:28 +09:00
Trustin Lee
876847fd20
Merge MessageBufs and ByteBufs into Unpooled
...
- e.g. Unpooled.messageBuffer()
- It will make much more sense once we introduce pooling:
- i.e. Pooled.buffer()
2012-06-11 17:02:29 +09:00
Trustin Lee
d27a27c980
Fix a bug where channelInactive() is not triggered for local transport
2012-06-11 11:59:00 +09:00
Trustin Lee
cf0259661e
Fix a race condition where local channel's closeFuture is notified early
...
- Added AbstractChannel.doPreClose() to allow a transport to perform
a task before closeFuture is notified
2012-06-11 11:53:43 +09:00
Trustin Lee
632542e0cd
Make a CPU-intensive test pass on a slow machine
2012-06-11 11:42:11 +09:00
Trustin Lee
f3bbb7291e
Remove a bad assertion
2012-06-11 11:39:44 +09:00
Trustin Lee
9dce123938
Use MessageBuf instead of Queue wherever possible in channel API
2012-06-11 10:43:47 +09:00
Norman Maurer
ad4f05f5d6
Add missing license headers
2012-06-10 20:31:31 +02:00
Trustin Lee
574d84e98e
Remove ChannelBufferHolder / Add more handler interfaces for type safety
...
- ChannelInboundHandler and ChannelOutboundHandler does not have a type
parameter anymore.
- User should implement ChannelInboundMessageHandler or
ChannelOutboundMessageHandler.
2012-06-10 12:22:32 +09:00
Trustin Lee
a849d11877
ChannelBuffers -> ByteBufs / Add MessageBuf & ChannelBuf
...
- Add MessageBuf which replaces java.util.Queue
- Add ChannelBuf which is common type of ByteBuf and ChannelBuf
- ChannelBuffers was renamed to ByteBufs
- Add MessageBufs
- All these changes are going to replace ChannelBufferHolder.
2012-06-10 11:31:39 +09:00
Trustin Lee
5164d91255
Rename ChannelBuffer to ByteBuf as discussed before
...
- ChannelBuffer gives a perception that it's a buffer of a
channel, but channel's buffer is now a byte buffer or a message
buffer. Therefore letting it be as is is going to be confusing.
2012-06-10 11:08:43 +09:00
Trustin Lee
87f52aa604
Ensure that a user implements flush() or inboundBufferUpdated()
...
- Also prohibited a user from overriding
ChannelInbound(Byte|Message)HandlerAdapter. If a user wants to do
that, he or she should extend ChannelInboundHandlerAdapter instead.
2012-06-10 10:48:11 +09:00
Trustin Lee
e376888d48
Replace 'Stream' with 'Byte'
...
- In computing, 'stream' means both byte stream and message stream,
which is confusing.
- Also, we were already mixing stream and byte in some places and
it's better use the terms consistently.
(e.g. inboundByteBuffer & inbound stream)
2012-06-09 21:05:59 +09:00
Trustin Lee
24e1f936a8
ChannelType -> ChannelBufferType / Optimize DefaultChannelPipeline
...
- Channel.type() -> bufferType()
- Use simpler bit mask operation for pipeline traversal
2012-06-09 09:44:30 +09:00
Trustin Lee
5661bff062
Rename SocketAddresses to NetworkConstants
2012-06-09 08:44:56 +09:00
Trustin Lee
a507ea97ef
Move some logic from DefaultChannelPipeline to DefaultChannelHandlerContext
...
- Using the fact that head is always non-null, we can remove some code
in DefaultChannelPipeline and move some to
DefaultChannelHandlerContext
2012-06-08 23:11:15 +09:00
Trustin Lee
468a3228a4
Fit every line into 120 columns
2012-06-08 19:28:12 +09:00
Trustin Lee
353357fbd5
Moved AsyncPipelineModification to a new file
2012-06-08 12:44:47 +09:00
Trustin Lee
493e77a5a7
Remove trailing whitespace
2012-06-08 11:14:47 +09:00
Trustin Lee
8970ee751c
Fix a weird compilation error in DefaultChannelPipeline
...
probably a compiler bug - working around
2012-06-08 10:57:38 +09:00
Trustin Lee
50fafdc3d3
Rewrite SslHandler / Reduce the chance of OIO-OIO dead lock
...
- SslHandler always begins handshake unless startTls is true
- Removed issueHandshake property
- If a user wants to start handshake later, he/she has to add
SslHandler later.
- Removed enableRenegotiation property
- JDK upgrade fixes the security vulnerability - no need to complicate
our code
- Some property name changes
- getSSLEngineInboundCloseFuture() -> sslCloseFuture()
- Updated securechat example
- Added timeout for handshake and close_notify for better security
- However, it's currently hard-coded. Will make it a property later.
2012-06-08 01:22:35 +09:00
Trustin Lee
4a23c2a6eb
Fix checkstyle errors
2012-06-07 22:01:59 +09:00
Trustin Lee
10f7a31908
Fixed SpdySessionHandlerTest / Fixed NPE in EmbeddedChannel
...
- Some tests like SpdySessionHandlerTest accesses outbound buffer
even before the outbound buffer is initialized by
AbstractEmbeddedChannel's subclasses, leading to NPE at <init>.
To fix this problem, subclasses now pass the outbound buffer as
a constructor parameter to AbstractEmbeddedChannel.
2012-06-07 21:33:31 +09:00
Trustin Lee
994038975a
Port HttpContentEncoder/Decoder to use EmbeddedStreamChannel / Cleanup
...
- Removed unused constructor parameter in AbstractChannel
- Re-enabled GZIP encoding in HTTP snoop example
2012-06-07 21:06:56 +09:00
Trustin Lee
3442ff90e8
Ported all tests in netty-codec to the new embedder
2012-06-07 20:17:26 +09:00
Trustin Lee
7bc10f2eba
Replace codec embedder with EmbeddedChannel which can test any handlers
...
- Added EventExecutor.inEventLoop(Thread) and replaced executor identity
comparison in DefaultChannelPipeline with it - more elegant IMO
- Removed the test classes that needs rewrite or is of no use
2012-06-07 19:39:37 +09:00
Trustin Lee
8701e24b9a
Add back Channel(Inbound|Outbound)(Message|Stream)HandlerAdapter
...
- they are useful when creating an anonymous class
- Also added back CombinedChannelHandler with extra constraints
2012-06-07 17:49:45 +09:00
Trustin Lee
aab71ccd8a
Remove Channel(Inbound|Outbound)HandlerAdapter which does nothing
...
- Thanks to the recent refactoring, Channel(Inbound|Outbound)Handler-
Adapter ended up having empty body. No need to keep.
2012-06-07 17:25:15 +09:00
Trustin Lee
09570db091
Fixed a bug where ChannelInitializer can trigger the same event twice
2012-06-07 17:06:13 +09:00
Trustin Lee
6b819fb993
Fix a NPE in DefaultChannelPipeline.write(...)
...
- Also re-enabled logging handler in the echo example
2012-06-07 17:00:21 +09:00
Trustin Lee
ea0c9cfe79
Post-overhaul fixes / Split LoggingHandler into three
...
- LoggingHandler now only logs state and operations
- StreamLoggingHandler and MessageLoggingHandler log the buffer content
- Added ChannelOperationHandlerAdapter
- Used by WriteTimeoutHandler
2012-06-07 16:56:21 +09:00
Trustin Lee
5e93d206ff
Overhaul - Split ChannelHandler & Merge ChannelHandlerContext
...
- Extracted some handler methods from ChannelInboundHandler into
ChannelStateHandler
- Extracted some handler methods from ChannelOutboundHandler into
ChannelOperationHandler
- Moved exceptionCaught and userEventTriggered are now in
ChannelHandler
- Channel(Inbound|Outbound)HandlerContext is merged into
ChannelHandlerContext
- ChannelHandlerContext adds direct access methods for inboud and
outbound buffers
- The use of ChannelBufferHolder is minimal now.
- Before: inbound().byteBuffer()
- After: inboundByteBuffer()
- Simpler and better performance
- Bypass buffer types were removed because it just does not work at all
with the thread model.
- All handlers that uses a bypass buffer are broken. Will fix soon.
- CombinedHandlerAdapter does not make sense anymore either because
there are four handler interfaces to consider and often the two
handlers will implement the same handler interface such as
ChannelStateHandler. Thinking of better ways to provide this feature
2012-06-07 14:52:33 +09:00
Trustin Lee
4831eb49da
Fix a test failure in LocalChannelRegistryTest
2012-06-07 08:54:37 +09:00
Trustin Lee
843a94b989
Fix compilation errors ( #384 )
...
- ECJ worked fine with the old code, but the official compiler does not
2012-06-06 23:02:47 +09:00
norman
caa35c9772
Rethrow the Throwable which accoured while execution the modification in the EventExecutor
2012-06-05 11:34:47 +02:00
norman
4eb42125a7
Make sure we can't deadlock even if the ChannelPipeline modification is executed by the EventExecutor
2012-06-05 11:21:44 +02:00
Trustin Lee
c2e65016fd
Fixed some checkstyle errors
2012-06-04 13:43:02 -07:00
Trustin Lee
1eced1e9e3
Update license headers
2012-06-04 13:31:44 -07:00
Trustin Lee
36dbbc4867
Fix a test failure
2012-06-04 12:14:42 -07:00
Trustin Lee
4630905b92
Do not wrap exceptions if possible
2012-06-04 12:10:13 -07:00
Trustin Lee
b9fc67c9b8
Get the executor of the context earlier if possible.
2012-06-04 11:59:31 -07:00
Trustin Lee
b322e98712
Remove unnecessary parameters and fields / Clean-up
2012-06-04 11:56:00 -07:00
Norman Maurer
6b637ab22f
No need for a custom Runnable implementation, just use EventExecutor.submit(..).get(). Thanks @trusting for review
2012-06-04 20:49:31 +02:00
Norman Maurer
ecea558e03
Add missing synchronized
2012-06-04 20:40:17 +02:00