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
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
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
Trustin Lee
5dda9d1840
Retrofit the socket channel API with the new API
2012-05-02 14:07:50 +09: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
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
Trustin Lee
f57ef3d414
Add ChannelBufferHolder.toString()
2012-04-29 21:51:12 +09:00
Trustin Lee
3804f3cbbb
Remove ChannelLocal (deprecated)
2012-04-29 20:40:58 +09:00
Trustin Lee
447545bb19
Remove the methods related with half-close
2012-04-29 18:49:44 +09:00
Trustin Lee
470e7da5d7
Add MultithreadEventLoop
...
- Add EventLoopException to wrap the exceptions while an event loop does
something
- Make EventLoop.register() return EventLoop so that the caller knows
the actual EventLoop that will handle the Channel even if the caller
called register() from MultithreadEventLoop
2012-04-29 18:40:55 +09:00
Trustin Lee
e76e2aeac8
Add missing @Override annotation
2012-04-29 17:59:42 +09:00
Trustin Lee
cdd1ba93f0
Second round of new channel handler API design
...
- Rename ChannelReader to ChannelInboundHandler
- Rename ChannelWriter to ChannelOutboundHandler
- Introduce ChannelBufferHolder instead of adding the common super type
of message buffers and byte buffers
- This is more type-safe and natural.
- Remove the notification methods for buffer closure (might add back
later when revisiting half-closed connection support)
2012-04-29 17:53:50 +09:00
Trustin Lee
22a815eaf8
Revamp channel handler API
...
- Merged LifeCycleAwareChannelHandler into ChannelHandler
- Replaced ChannelUpstreamHandler and ChannelDownstreamHandler with
ChannelReader and ChannelWriter
- These two new interfaces are much more type-safe than its ancestor.
- Simplified channel state model as described in #68
- Handler creates send/receive buffer.
- Previously, Netty created them, but it led to more memory copies and
inflexibility. I'm going to allow a handler to create a bounded
queue for example.
- It currently uses Queue<T> but I'll define a new interface and make
ChannelBuffer implement it (e.g. Queue<Byte>)
- Introduced AttributeMap which replaces attachments in Channel and
ChannelHandlerContext and ChannelLocal
2012-04-12 17:39:01 +09:00
norman
97561315fd
Add final keyword
2012-04-11 10:54:53 +02:00
norman
16c625cfd0
Allow to share a WorkerPool for boss and worker threads but also allow to have them separate. See #240
2012-04-11 10:54:41 +02:00
norman
f88cd3120d
Fix a bug which lead to only use two threads for all tasks all the time, even if the WorkerPool contained more. See #240
2012-04-11 10:54:27 +02:00
norman
d0f432b4d4
Accept all ready sockets for the SelectionKey. See #240
2012-04-10 11:20:23 +02:00
Norman Maurer
07ff3d76cd
Await for close of the channels. See #235
2012-04-10 08:17:38 +02:00
Norman Maurer
019d942a28
Correct javadoc. See #235
2012-04-10 08:17:21 +02:00
Norman Maurer
7eaf635059
Take care of releasing the local channel when releaseExternalResources() is called. See #235
2012-04-10 08:16:58 +02:00
Norman Maurer
a847ec1d88
Add test case to show that issue #235 is due some incorrect usage
2012-04-10 08:16:40 +02:00
Norman Maurer
33c085b9b9
Make sure Future get notified before event is fired. See #254
2012-04-07 22:03:58 +02:00
norman
db87c6ea37
Make sure Channel connected event is not fired on connect failure. See #249
2012-04-04 07:41:38 +02:00
Trustin Lee
049fb35bc1
Add Channel.deregister()
2012-04-03 22:29:26 +09:00
Trustin Lee
5a63cc4e1a
Allow specifying a non-default SelectorProvider
2012-04-03 22:25:01 +09:00
Trustin Lee
a8647d6dc8
AbstractNioWorker -> SelectorEventLoop
2012-04-03 22:21:11 +09:00
Trustin Lee
0d8afa7a4c
attach -> register
2012-04-03 22:19:35 +09:00
Trustin Lee
116054a364
Initial incomplete checkin of the event loop API
2012-04-03 22:03:04 +09:00
norman
805270c5d9
Finish support for UDP Multicast in UDP. See #216
2012-04-03 12:04:33 +02:00
Norman Maurer
9c1f3c6fe8
Fix UDP nio impl and add simple tests
2012-04-02 21:02:41 +02:00
Norman Maurer
dd6069c681
Fix broken UDP support. This got broken in 3.4.0.Alpha1
2012-04-02 19:37:28 +02:00
norman
023227917f
cleanup
2012-04-02 15:27:40 +02:00
norman
221a77409a
Only use the source address to join a multicast group if it was specified. See #216
2012-04-02 15:25:40 +02:00
norman
7f8408065b
Fix UDP Multicast writes. See #237
2012-04-02 14:22:13 +02:00
norman
b350e8d289
Fix UDP Multicast writes. See #237
2012-04-02 14:20:40 +02:00
norman
9b90e3191a
Finish support of NIO UDP multicast. This also change the methods to
...
return a ChannelFuture. See #216
2012-04-02 11:57:32 +02:00
norman
72f9f502bb
Add support for UDP multicast in NIO. See #216
...
Add some javadocs. See #216
Use the correct key to lookup MembershipKey. See #216
2012-04-02 11:14:31 +02:00
norman
373c356067
Merge branch 'sctp_refactoring'
...
Conflicts:
transport/src/main/java/io/netty/channel/socket/nio/NioWorker.java
2012-04-02 11:02:54 +02:00
Norman Maurer
c02d38a728
:Correctly handle interestedOps changes
2012-03-30 21:56:46 +02:00
Norman Maurer
f154c480e0
:Correctly handle interestedOps changes
2012-03-30 21:15:43 +02:00
Norman Maurer
732b11e7d5
Fix race
2012-03-30 16:23:10 +03:00
norman
4afd038fc0
Fix race
2012-03-30 15:21:26 +02:00
norman
c3e51af849
Check before casting
2012-03-30 14:29:26 +02:00
norman
a85f22e173
Code cleanup
2012-03-30 11:21:26 +02:00
norman
a60eecaa0c
Refactor sctp to share code with nio
2012-03-30 11:07:43 +02:00
Trustin Lee
fd0b0a4e2b
Code cleanup
2012-03-30 12:48:28 +09:00
Norman Maurer
b98516536e
Introduce the JdkChannel interface and implementation. This will allow
...
us to also share all our nio code in the SCTP implementation.
2012-03-29 17:07:19 +02:00
norman
b145a8a0d4
add some todo and comment a failing test on windows. This test also
...
fails in master branch. See #240
2012-03-29 13:51:40 +02:00
norman
dded63b22c
Make sure we use the same Worker in the client during its lifetime. See
...
#240
2012-03-29 12:02:29 +02:00
Norman Maurer
60d9364604
First round of remove the boss-thread. See #240
2012-03-28 20:19:39 +02:00
norman
0c3a33f83b
Add no-args constructor for simple use-cases
2012-03-27 09:29:43 +02:00
norman
d68b104969
Make sure AbstractNioWorker.setInterestOps(..) will notify the future
...
and the handlers in all cases. See #238
2012-03-20 15:18:33 +01:00
Norman Maurer
6e68577d54
Merge pull request #225 from netty/workerpool
...
Support of sharing a WorkerPool between Factories
2012-03-20 01:44:28 -07:00
norman
fd3d98cf62
Fix UDP Multicast writes. See #237
2012-03-20 09:43:00 +01:00
Norman Maurer
59ff76bd66
add javadocs
2012-03-07 17:55:37 +01:00
Norman Maurer
875d5ce513
Allow to force the execution of the Runnable in a async fashion even if
...
the IO-Thread is the current Thread
2012-03-07 17:52:49 +01:00
norman
e207af30a3
Make sure AbstractNioWorker gets started if needed
2012-03-07 15:37:33 +01:00
norman
6375b84c9d
Change Worker.executeInIoThread() to not need a Channel as paramater
2012-03-07 14:13:48 +01:00
norman
e8c64ea593
Make classes public
2012-03-07 13:30:45 +01:00
norman
0b0edea6bc
Make classes public
2012-03-07 13:29:55 +01:00
Norman Maurer
fd7e165fb6
Commit missing file
2012-03-06 20:06:29 +01:00
Norman Maurer
caff7c941b
Checkstyle fixes
2012-03-06 19:31:47 +01:00
Norman Maurer
bc47850bbe
Allow to obtain the Worker that was used to serve the IO of a Channel
2012-03-06 19:26:32 +01:00
Norman Maurer
e0e87ce2bc
Allow to share Workers by using a WorkerPool.
2012-03-06 19:26:10 +01:00
Norman Maurer
66f8de91b1
Make it more clear in the javadocs that you should use *Later methods to
...
send upstream events from a ChannelDownstreamHandler
2012-03-03 19:14:36 +01:00
Trustin Lee
9e8f8ac08c
Fix NPE in AbstractNioWorker / Uncomment setUseClientMode()
2012-03-01 14:27:32 -08:00
Trustin Lee
4158152b24
Trigger exceptionCaught event from the middle of the pipline ( #210 )
...
.. because the previous handlers have no interest in the exceptions
raised by the next handlers.
2012-02-29 14:02:12 -08:00
Trustin Lee
40e7a5d948
Clean up and Add missing JavaDoc
2012-02-29 13:53:26 -08:00
Trustin Lee
c62b47228e
Fix build failure
2012-02-29 13:26:35 -08:00
Norman Maurer
1589dadcce
Better handling of canceling. See #210 and #209
2012-02-29 21:37:26 +01:00
Norman Maurer
a545157f4b
Respect canceled tasks. See #209 and #210
2012-02-29 21:23:31 +01:00
Norman Maurer
8579f09c59
Merge pull request #210 from netty/threading_fix
...
Merge in fix for threading (related to #140 and #187 ). This also includes the new feature that allow to submit a Runnable that gets executed later in the io thread.
2012-02-29 12:11:46 -08:00
Norman Maurer
5f465da38d
Add final keyword
2012-02-29 21:08:18 +01:00
Norman Maurer
4df3c61233
Allow to submit a Runnable that get execute in the io-thread. This is
...
also used to workout flaws in the thread-model. See #209 #140 #187
2012-02-29 21:07:02 +01:00
Norman Maurer
0d66a36a14
Merge branch 'master' of ssh://github.com/netty/netty
2012-02-28 16:53:28 +01:00
Norman Maurer
40771f6faf
add empty line
2012-02-28 14:21:47 +01:00
Norman Maurer
19358ee246
Workaround for JDK NIO bug. See #203
2012-02-28 14:19:29 +01:00
Trustin Lee
2984f26f97
Decreased all selector timeout from 500 ms to 10 ms
...
See #204
2012-02-27 13:02:42 -08:00
Trustin Lee
4612568687
Fix #204 - Increate the granularity of connect timeout in NIO
...
* Changed the Selector timeout from 500 to 10 so that the timeout is checked every 10 milliseconds
2012-02-27 12:56:18 -08:00
Norman Maurer
0beaa107b4
Fix assert usage. Thanks Trustin for review
2012-02-27 20:45:46 +01:00
Norman Maurer
cfe7b49594
Cleaner impl of AbstractNioChannelSink and AbstractOioChannelSink. See
...
#140 and #187
2012-02-25 17:11:14 +01:00
Norman Maurer
f2d1f1e8ad
Also fix the exception handling if a ChannelHandler throws an Exception
...
based of if its a io thread or not. See #187 and #140
2012-02-25 15:54:33 +01:00
Norman Maurer
ef64e8c332
oio and nio transport now make sure that a upstream event get only
...
executed from an io thread. See #140 and #187
2012-02-25 15:12:58 +01:00
Norman Maurer
c4a437e16b
Fix later sending of exceptionCaught events. See #187 and #140
2012-02-25 14:30:10 +01:00
Norman Maurer
04a6ff92af
Add static helper methods to fire upstream events later. See #187 and
...
#140
2012-02-25 14:28:43 +01:00
Norman Maurer
301a17c029
Rename method to better reflect its usage and update some javadocs. See
...
#187 and #140
2012-02-25 14:19:11 +01:00
Norman Maurer
c2bc463d61
Optimize the handling of fireEventLater if the current thread is the
...
worker thread. See #187 and #140
2012-02-24 22:03:32 +01:00
Norman Maurer
5fdd2dea12
Make it possible to schedule upstream events to get fired later in the
...
io-thread. This is the first part of #140 and #187
2012-02-24 20:26:50 +01:00
norman
2e36932097
Merge branch 'master' into remove_duplication
...
Conflicts:
transport/src/main/java/io/netty/channel/socket/nio/NioDatagramWorker.java
transport/src/main/java/io/netty/channel/socket/nio/NioWorker.java
2012-02-21 08:25:59 +01:00
Norman Maurer
eafd8343eb
Remove some casting. See #186
2012-02-19 13:59:09 +01:00
Jestan Nirojan
7dbb8d2b8f
fixed checkstyle build failures
2012-02-19 12:38:39 +05:30
Jestan Nirojan
20d7379c53
merge upstream master
2012-02-19 12:37:50 +05:30
Norman Maurer
812a9026b8
Start to refactor nio transport to share more code. See #186
2012-02-18 23:02:56 +01:00
Norman Maurer
65be9ebd44
Start to refactor oio transport to share more code. See #186
2012-02-17 20:33:18 +01:00
norman
479def20bd
Check if logging level is enabled before log. See #192
2012-02-17 10:37:41 +01:00
Jestan Nirojan
97a38872f5
added separate bind method in client bootstrap, to support multi homing in sctp
2012-02-17 01:47:24 +05:30
norman
1b099acde0
Introduce a new interface that specify methods for ChannelConfig that
...
are used in the scope of NIO. This allows to share some code and make it
easier later to cast. See #186
2012-02-16 15:40:32 +01:00
Norman Maurer
28a8bb8b2e
Remove StaticChannelPipeline. See #168
2012-01-31 15:50:35 +01:00
Norman Maurer
fda1524953
Remove unused import
2012-01-31 15:45:42 +01:00
Norman Maurer
8c6820be64
Fix possible NPE which will be thrown if the Buffer was set to null and after that Exception was thrown. See #166
2012-01-31 11:10:32 +01:00
Norman Maurer
6c68773ad4
Remove not-needed call of ByteBuffer.clear(). See #161
2012-01-24 20:47:30 +01:00
Trustin Lee
40ef4d2ccf
Fix #153 : Add ChannelFuture.rethrowIfFailed()
2012-01-19 13:33:37 +09:00
zhen9ao
2fff088480
fix for issue #149
2012-01-16 12:52:08 +08:00
Trustin Lee
a3efcaf043
Add missing package-info.java
2012-01-15 00:44:16 +09:00
Trustin Lee
d40bd5e7f2
Rename IOStream example / Code cleanup
2012-01-15 00:43:28 +09:00
Trustin Lee
303c1b5f79
Overall cleanup / Add lost old jzlib headers
2012-01-13 17:41:18 +09:00
norman
e714ec12b8
Remove close(..) call which gave us troubles with
...
ClosedChannelException. See #142 and #138
2012-01-11 16:56:31 +01:00
Trustin Lee
ebfc4513e0
Apply checkstyle to the build
...
Please note that the build will fail at the moment due to various checkstyle
violations which should be fixed soon
2012-01-11 20:16:14 +09:00
Trustin Lee
8663716d38
Issue #60 : Make the project multi-module
...
Split the project into the following modules:
* common
* buffer
* codec
* codec-http
* transport
* transport-*
* handler
* example
* testsuite (integration tests that involve 2+ modules)
* all (does nothing yet, but will make it generate netty.jar)
This commit also fixes the compilation errors with transport-sctp on
non-Linux systems. It will at least compile without complaints.
2011-12-28 19:44:04 +09:00