diff --git a/transport/src/main/java/io/netty/channel/socket/aio/AbstractAioChannel.java b/transport/src/main/java/io/netty/channel/aio/AbstractAioChannel.java similarity index 92% rename from transport/src/main/java/io/netty/channel/socket/aio/AbstractAioChannel.java rename to transport/src/main/java/io/netty/channel/aio/AbstractAioChannel.java index 23c1762196..bf41b52a29 100755 --- a/transport/src/main/java/io/netty/channel/socket/aio/AbstractAioChannel.java +++ b/transport/src/main/java/io/netty/channel/aio/AbstractAioChannel.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; import io.netty.channel.AbstractChannel; import io.netty.channel.Channel; @@ -21,7 +21,6 @@ import io.netty.channel.ChannelPromise; import io.netty.channel.EventLoop; import java.net.ConnectException; -import java.net.InetSocketAddress; import java.net.SocketAddress; import java.nio.channels.AsynchronousChannel; import java.util.concurrent.ScheduledFuture; @@ -31,7 +30,7 @@ import java.util.concurrent.TimeUnit; * Abstract base class for {@link Channel} implementations that use the new {@link AsynchronousChannel} which is part * of NIO.2. */ -abstract class AbstractAioChannel extends AbstractChannel { +public abstract class AbstractAioChannel extends AbstractChannel { protected volatile AsynchronousChannel ch; @@ -60,16 +59,6 @@ abstract class AbstractAioChannel extends AbstractChannel { this.ch = ch; } - @Override - public InetSocketAddress localAddress() { - return (InetSocketAddress) super.localAddress(); - } - - @Override - public InetSocketAddress remoteAddress() { - return (InetSocketAddress) super.remoteAddress(); - } - /** * Return the underlying {@link AsynchronousChannel}. Be aware this should only be called after it was set as * otherwise it will throw an {@link IllegalStateException}. @@ -149,13 +138,13 @@ abstract class AbstractAioChannel extends AbstractChannel { } } - protected void connectFailed(Throwable t) { + public void connectFailed(Throwable t) { connectPromise.setFailure(t); pipeline().fireExceptionCaught(t); closeIfClosed(); } - protected void connectSuccess() { + public void connectSuccess() { assert eventLoop().inEventLoop(); assert connectPromise != null; try { diff --git a/transport/src/main/java/io/netty/channel/socket/aio/AioChannelFinder.java b/transport/src/main/java/io/netty/channel/aio/AioChannelFinder.java similarity index 97% rename from transport/src/main/java/io/netty/channel/socket/aio/AioChannelFinder.java rename to transport/src/main/java/io/netty/channel/aio/AioChannelFinder.java index 3cf77ba774..2ba0bfb345 100644 --- a/transport/src/main/java/io/netty/channel/socket/aio/AioChannelFinder.java +++ b/transport/src/main/java/io/netty/channel/aio/AioChannelFinder.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; /** * Allow to fine the {@link AbstractAioChannel} for a task. diff --git a/transport/src/main/java/io/netty/channel/socket/aio/AioCompletionHandler.java b/transport/src/main/java/io/netty/channel/aio/AioCompletionHandler.java similarity index 95% rename from transport/src/main/java/io/netty/channel/socket/aio/AioCompletionHandler.java rename to transport/src/main/java/io/netty/channel/aio/AioCompletionHandler.java index a1be026d4d..6dd06e8e54 100644 --- a/transport/src/main/java/io/netty/channel/socket/aio/AioCompletionHandler.java +++ b/transport/src/main/java/io/netty/channel/aio/AioCompletionHandler.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; import io.netty.channel.Channel; import io.netty.channel.EventLoop; @@ -23,7 +23,7 @@ import java.nio.channels.CompletionHandler; /** * Special {@link CompletionHandler} which makes sure that the callback methods gets executed in the {@link EventLoop} */ -abstract class AioCompletionHandler implements CompletionHandler { +public abstract class AioCompletionHandler implements CompletionHandler { /** * See {@link CompletionHandler#completed(Object, Object)} diff --git a/transport/src/main/java/io/netty/channel/socket/aio/AioEventLoop.java b/transport/src/main/java/io/netty/channel/aio/AioEventLoop.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/aio/AioEventLoop.java rename to transport/src/main/java/io/netty/channel/aio/AioEventLoop.java index 8cec51bbda..9d0e15f34f 100644 --- a/transport/src/main/java/io/netty/channel/socket/aio/AioEventLoop.java +++ b/transport/src/main/java/io/netty/channel/aio/AioEventLoop.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; diff --git a/transport/src/main/java/io/netty/channel/socket/aio/AioEventLoopGroup.java b/transport/src/main/java/io/netty/channel/aio/AioEventLoopGroup.java similarity index 97% rename from transport/src/main/java/io/netty/channel/socket/aio/AioEventLoopGroup.java rename to transport/src/main/java/io/netty/channel/aio/AioEventLoopGroup.java index 3bb2e2d48f..87708a194e 100644 --- a/transport/src/main/java/io/netty/channel/socket/aio/AioEventLoopGroup.java +++ b/transport/src/main/java/io/netty/channel/aio/AioEventLoopGroup.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; import io.netty.channel.Channel; import io.netty.channel.ChannelTaskScheduler; @@ -59,7 +59,11 @@ public class AioEventLoopGroup extends MultithreadEventLoopGroup { } private final AioExecutorService groupExecutor = new AioExecutorService(); - final AsynchronousChannelGroup group; + private final AsynchronousChannelGroup group; + + public AsynchronousChannelGroup channelGroup() { + return group; + } /** * Create a new instance which use the default number of threads of {@link #DEFAULT_POOL_SIZE}. diff --git a/transport/src/main/java/io/netty/channel/socket/aio/ReflectiveAioChannelFinder.java b/transport/src/main/java/io/netty/channel/aio/ReflectiveAioChannelFinder.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/aio/ReflectiveAioChannelFinder.java rename to transport/src/main/java/io/netty/channel/aio/ReflectiveAioChannelFinder.java index 6dd9bc7838..9299202e34 100644 --- a/transport/src/main/java/io/netty/channel/socket/aio/ReflectiveAioChannelFinder.java +++ b/transport/src/main/java/io/netty/channel/aio/ReflectiveAioChannelFinder.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; import java.lang.reflect.Field; import java.util.HashMap; diff --git a/transport/src/main/java/io/netty/channel/socket/aio/UnsafeAioChannelFinder.java b/transport/src/main/java/io/netty/channel/aio/UnsafeAioChannelFinder.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/aio/UnsafeAioChannelFinder.java rename to transport/src/main/java/io/netty/channel/aio/UnsafeAioChannelFinder.java index 58d0a2ece3..94fa97b2aa 100644 --- a/transport/src/main/java/io/netty/channel/socket/aio/UnsafeAioChannelFinder.java +++ b/transport/src/main/java/io/netty/channel/aio/UnsafeAioChannelFinder.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; import io.netty.util.internal.PlatformDependent; diff --git a/transport/src/main/java/io/netty/channel/aio/package-info.java b/transport/src/main/java/io/netty/channel/aio/package-info.java new file mode 100644 index 0000000000..f21c64e56a --- /dev/null +++ b/transport/src/main/java/io/netty/channel/aio/package-info.java @@ -0,0 +1,23 @@ +/* + * Copyright 2012 The Netty Project + * + * The Netty Project licenses this file to you under the Apache License, + * version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +/** + * NIO2-based channel + * API implementation - recommended for a large number of connections (>= 1000). + * + * NIO2 is only supported on Java 7+. + */ +package io.netty.channel.aio; diff --git a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioByteChannel.java b/transport/src/main/java/io/netty/channel/nio/AbstractNioByteChannel.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/nio/AbstractNioByteChannel.java rename to transport/src/main/java/io/netty/channel/nio/AbstractNioByteChannel.java index 890d68a41b..0eb790996c 100755 --- a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioByteChannel.java +++ b/transport/src/main/java/io/netty/channel/nio/AbstractNioByteChannel.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.nio; +package io.netty.channel.nio; import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; @@ -30,7 +30,7 @@ import java.nio.channels.SelectionKey; import java.nio.channels.WritableByteChannel; /** - * {@link AbstractNioChannel} base class for {@link Channel}s that operate on bytes. + * {@link io.netty.channel.nio.AbstractNioChannel} base class for {@link Channel}s that operate on bytes. */ public abstract class AbstractNioByteChannel extends AbstractNioChannel { diff --git a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioChannel.java b/transport/src/main/java/io/netty/channel/nio/AbstractNioChannel.java similarity index 96% rename from transport/src/main/java/io/netty/channel/socket/nio/AbstractNioChannel.java rename to transport/src/main/java/io/netty/channel/nio/AbstractNioChannel.java index 4e7fbd5f7f..3a2316eb9d 100755 --- a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioChannel.java +++ b/transport/src/main/java/io/netty/channel/nio/AbstractNioChannel.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.nio; +package io.netty.channel.nio; import io.netty.channel.AbstractChannel; import io.netty.channel.Channel; @@ -25,7 +25,6 @@ import io.netty.logging.InternalLoggerFactory; import java.io.IOException; import java.net.ConnectException; -import java.net.InetSocketAddress; import java.net.SocketAddress; import java.nio.channels.CancelledKeyException; import java.nio.channels.SelectableChannel; @@ -91,16 +90,6 @@ public abstract class AbstractNioChannel extends AbstractChannel { return ch.isOpen(); } - @Override - public InetSocketAddress localAddress() { - return (InetSocketAddress) super.localAddress(); - } - - @Override - public InetSocketAddress remoteAddress() { - return (InetSocketAddress) super.remoteAddress(); - } - @Override public NioUnsafe unsafe() { return (NioUnsafe) super.unsafe(); @@ -126,7 +115,7 @@ public abstract class AbstractNioChannel extends AbstractChannel { /** * Return {@code true} if the input of this {@link Channel} is shutdown */ - boolean isInputShutdown() { + protected boolean isInputShutdown() { return inputShutdown; } diff --git a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioMessageChannel.java b/transport/src/main/java/io/netty/channel/nio/AbstractNioMessageChannel.java similarity index 96% rename from transport/src/main/java/io/netty/channel/socket/nio/AbstractNioMessageChannel.java rename to transport/src/main/java/io/netty/channel/nio/AbstractNioMessageChannel.java index 373f223662..228e955937 100755 --- a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioMessageChannel.java +++ b/transport/src/main/java/io/netty/channel/nio/AbstractNioMessageChannel.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.nio; +package io.netty.channel.nio; import io.netty.buffer.MessageBuf; import io.netty.channel.Channel; @@ -24,7 +24,7 @@ import java.nio.channels.SelectableChannel; import java.nio.channels.SelectionKey; /** - * {@link AbstractNioChannel} base class for {@link Channel}s that operate on messages. + * {@link io.netty.channel.nio.AbstractNioChannel} base class for {@link Channel}s that operate on messages. */ public abstract class AbstractNioMessageChannel extends AbstractNioChannel { diff --git a/transport/src/main/java/io/netty/channel/socket/nio/NioEventLoop.java b/transport/src/main/java/io/netty/channel/nio/NioEventLoop.java similarity index 99% rename from transport/src/main/java/io/netty/channel/socket/nio/NioEventLoop.java rename to transport/src/main/java/io/netty/channel/nio/NioEventLoop.java index 994c23eeca..c90252f56e 100644 --- a/transport/src/main/java/io/netty/channel/socket/nio/NioEventLoop.java +++ b/transport/src/main/java/io/netty/channel/nio/NioEventLoop.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.nio; +package io.netty.channel.nio; import io.netty.channel.Channel; @@ -21,7 +21,7 @@ import io.netty.channel.ChannelException; import io.netty.channel.ChannelTaskScheduler; import io.netty.channel.EventLoopException; import io.netty.channel.SingleThreadEventLoop; -import io.netty.channel.socket.nio.AbstractNioChannel.NioUnsafe; +import io.netty.channel.nio.AbstractNioChannel.NioUnsafe; import io.netty.logging.InternalLogger; import io.netty.logging.InternalLoggerFactory; diff --git a/transport/src/main/java/io/netty/channel/socket/nio/NioEventLoopGroup.java b/transport/src/main/java/io/netty/channel/nio/NioEventLoopGroup.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/nio/NioEventLoopGroup.java rename to transport/src/main/java/io/netty/channel/nio/NioEventLoopGroup.java index 4062099f20..527445357c 100644 --- a/transport/src/main/java/io/netty/channel/socket/nio/NioEventLoopGroup.java +++ b/transport/src/main/java/io/netty/channel/nio/NioEventLoopGroup.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.nio; +package io.netty.channel.nio; import io.netty.channel.Channel; import io.netty.channel.ChannelTaskScheduler; diff --git a/transport/src/main/java/io/netty/channel/socket/nio/NioTask.java b/transport/src/main/java/io/netty/channel/nio/NioTask.java similarity index 97% rename from transport/src/main/java/io/netty/channel/socket/nio/NioTask.java rename to transport/src/main/java/io/netty/channel/nio/NioTask.java index 859ec43fe6..1d0f2c6b21 100644 --- a/transport/src/main/java/io/netty/channel/socket/nio/NioTask.java +++ b/transport/src/main/java/io/netty/channel/nio/NioTask.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.nio; +package io.netty.channel.nio; import java.nio.channels.SelectableChannel; import java.nio.channels.SelectionKey; diff --git a/transport/src/main/java/io/netty/channel/socket/nio/SelectorUtil.java b/transport/src/main/java/io/netty/channel/nio/SelectorUtil.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/nio/SelectorUtil.java rename to transport/src/main/java/io/netty/channel/nio/SelectorUtil.java index e5d43cc348..cb3510bc75 100644 --- a/transport/src/main/java/io/netty/channel/socket/nio/SelectorUtil.java +++ b/transport/src/main/java/io/netty/channel/nio/SelectorUtil.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.nio; +package io.netty.channel.nio; import io.netty.logging.InternalLogger; import io.netty.logging.InternalLoggerFactory; diff --git a/transport/src/main/java/io/netty/channel/nio/package-info.java b/transport/src/main/java/io/netty/channel/nio/package-info.java new file mode 100644 index 0000000000..0469a9dc40 --- /dev/null +++ b/transport/src/main/java/io/netty/channel/nio/package-info.java @@ -0,0 +1,21 @@ +/* + * Copyright 2012 The Netty Project + * + * The Netty Project licenses this file to you under the Apache License, + * version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +/** + * NIO-based channel + * API implementation - recommended for a large number of connections (>= 1000). + */ +package io.netty.channel.nio; diff --git a/transport/src/main/java/io/netty/channel/socket/oio/AbstractOioByteChannel.java b/transport/src/main/java/io/netty/channel/oio/AbstractOioByteChannel.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/oio/AbstractOioByteChannel.java rename to transport/src/main/java/io/netty/channel/oio/AbstractOioByteChannel.java index 2c86d7bca0..8992048db0 100755 --- a/transport/src/main/java/io/netty/channel/socket/oio/AbstractOioByteChannel.java +++ b/transport/src/main/java/io/netty/channel/oio/AbstractOioByteChannel.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.oio; +package io.netty.channel.oio; import io.netty.buffer.BufType; import io.netty.buffer.ByteBuf; @@ -40,7 +40,7 @@ public abstract class AbstractOioByteChannel extends AbstractOioChannel { super(parent, id); } - boolean isInputShutdown() { + protected boolean isInputShutdown() { return inputShutdown; } diff --git a/transport/src/main/java/io/netty/channel/socket/oio/AbstractOioChannel.java b/transport/src/main/java/io/netty/channel/oio/AbstractOioChannel.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/oio/AbstractOioChannel.java rename to transport/src/main/java/io/netty/channel/oio/AbstractOioChannel.java index 3154776914..6b5258db9f 100644 --- a/transport/src/main/java/io/netty/channel/socket/oio/AbstractOioChannel.java +++ b/transport/src/main/java/io/netty/channel/oio/AbstractOioChannel.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.oio; +package io.netty.channel.oio; import io.netty.channel.AbstractChannel; import io.netty.channel.Channel; diff --git a/transport/src/main/java/io/netty/channel/socket/oio/AbstractOioMessageChannel.java b/transport/src/main/java/io/netty/channel/oio/AbstractOioMessageChannel.java similarity index 91% rename from transport/src/main/java/io/netty/channel/socket/oio/AbstractOioMessageChannel.java rename to transport/src/main/java/io/netty/channel/oio/AbstractOioMessageChannel.java index 93e6c386e8..cd55ecf0e9 100755 --- a/transport/src/main/java/io/netty/channel/socket/oio/AbstractOioMessageChannel.java +++ b/transport/src/main/java/io/netty/channel/oio/AbstractOioMessageChannel.java @@ -13,14 +13,13 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.oio; +package io.netty.channel.oio; import io.netty.buffer.MessageBuf; import io.netty.channel.Channel; import io.netty.channel.ChannelPipeline; import java.io.IOException; -import java.net.InetSocketAddress; /** * Abstract base class for OIO which reads and writes objects from/to a Socket @@ -34,16 +33,6 @@ public abstract class AbstractOioMessageChannel extends AbstractOioChannel { super(parent, id); } - @Override - public InetSocketAddress localAddress() { - return (InetSocketAddress) super.localAddress(); - } - - @Override - public InetSocketAddress remoteAddress() { - return (InetSocketAddress) super.remoteAddress(); - } - @Override protected void doRead() { final ChannelPipeline pipeline = pipeline(); diff --git a/transport/src/main/java/io/netty/channel/socket/oio/OioByteStreamChannel.java b/transport/src/main/java/io/netty/channel/oio/OioByteStreamChannel.java similarity index 99% rename from transport/src/main/java/io/netty/channel/socket/oio/OioByteStreamChannel.java rename to transport/src/main/java/io/netty/channel/oio/OioByteStreamChannel.java index 2fdc90f5b2..88bf8abf54 100644 --- a/transport/src/main/java/io/netty/channel/socket/oio/OioByteStreamChannel.java +++ b/transport/src/main/java/io/netty/channel/oio/OioByteStreamChannel.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.oio; +package io.netty.channel.oio; import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; diff --git a/transport/src/main/java/io/netty/channel/socket/oio/OioEventLoop.java b/transport/src/main/java/io/netty/channel/oio/OioEventLoop.java similarity index 98% rename from transport/src/main/java/io/netty/channel/socket/oio/OioEventLoop.java rename to transport/src/main/java/io/netty/channel/oio/OioEventLoop.java index 3a7d2d153b..59634274dc 100644 --- a/transport/src/main/java/io/netty/channel/socket/oio/OioEventLoop.java +++ b/transport/src/main/java/io/netty/channel/oio/OioEventLoop.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.oio; +package io.netty.channel.oio; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; diff --git a/transport/src/main/java/io/netty/channel/socket/oio/OioEventLoopGroup.java b/transport/src/main/java/io/netty/channel/oio/OioEventLoopGroup.java similarity index 99% rename from transport/src/main/java/io/netty/channel/socket/oio/OioEventLoopGroup.java rename to transport/src/main/java/io/netty/channel/oio/OioEventLoopGroup.java index 163045ed1a..d95d93e588 100644 --- a/transport/src/main/java/io/netty/channel/socket/oio/OioEventLoopGroup.java +++ b/transport/src/main/java/io/netty/channel/oio/OioEventLoopGroup.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.oio; +package io.netty.channel.oio; import io.netty.channel.Channel; diff --git a/transport/src/main/java/io/netty/channel/oio/package-info.java b/transport/src/main/java/io/netty/channel/oio/package-info.java new file mode 100644 index 0000000000..948e8492ad --- /dev/null +++ b/transport/src/main/java/io/netty/channel/oio/package-info.java @@ -0,0 +1,21 @@ +/* + * Copyright 2012 The Netty Project + * + * The Netty Project licenses this file to you under the Apache License, + * version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +/** + * Old blocking I/O based channel API implementation - recommended for + * a small number of connections (< 1000). + */ +package io.netty.channel.oio; diff --git a/transport/src/main/java/io/netty/channel/socket/aio/AioServerSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/aio/AioServerSocketChannel.java index 2a6ca60703..cb0cbb2b11 100755 --- a/transport/src/main/java/io/netty/channel/socket/aio/AioServerSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/aio/AioServerSocketChannel.java @@ -20,12 +20,16 @@ import io.netty.channel.ChannelException; import io.netty.channel.ChannelMetadata; import io.netty.channel.ChannelPromise; import io.netty.channel.EventLoop; +import io.netty.channel.aio.AbstractAioChannel; +import io.netty.channel.aio.AioCompletionHandler; +import io.netty.channel.aio.AioEventLoopGroup; import io.netty.channel.socket.ServerSocketChannel; import io.netty.channel.socket.ServerSocketChannelConfig; import io.netty.logging.InternalLogger; import io.netty.logging.InternalLoggerFactory; import java.io.IOException; +import java.net.InetSocketAddress; import java.net.SocketAddress; import java.nio.channels.AsynchronousChannelGroup; import java.nio.channels.AsynchronousCloseException; @@ -77,6 +81,16 @@ public class AioServerSocketChannel extends AbstractAioChannel implements Server config = new AioServerSocketChannelConfig(this, channel); } + @Override + public InetSocketAddress localAddress() { + return (InetSocketAddress) super.localAddress(); + } + + @Override + public InetSocketAddress remoteAddress() { + return (InetSocketAddress) super.remoteAddress(); + } + @Override protected AsynchronousServerSocketChannel javaChannel() { return (AsynchronousServerSocketChannel) super.javaChannel(); @@ -153,7 +167,8 @@ public class AioServerSocketChannel extends AbstractAioChannel implements Server protected Runnable doRegister() throws Exception { Runnable task = super.doRegister(); if (ch == null) { - AsynchronousServerSocketChannel channel = newSocket(((AioEventLoopGroup) eventLoop().parent()).group); + AsynchronousServerSocketChannel channel = + newSocket(((AioEventLoopGroup) eventLoop().parent()).channelGroup()); ch = channel; config.assign(channel); } diff --git a/transport/src/main/java/io/netty/channel/socket/aio/AioSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/aio/AioSocketChannel.java index f039d06096..519d18a267 100755 --- a/transport/src/main/java/io/netty/channel/socket/aio/AioSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/aio/AioSocketChannel.java @@ -25,6 +25,9 @@ import io.netty.channel.ChannelPipeline; import io.netty.channel.ChannelPromise; import io.netty.channel.EventLoop; import io.netty.channel.FileRegion; +import io.netty.channel.aio.AbstractAioChannel; +import io.netty.channel.aio.AioCompletionHandler; +import io.netty.channel.aio.AioEventLoopGroup; import io.netty.channel.socket.ChannelInputShutdownEvent; import io.netty.channel.socket.ServerSocketChannel; import io.netty.channel.socket.SocketChannel; @@ -102,6 +105,16 @@ public class AioSocketChannel extends AbstractAioChannel implements SocketChanne config = new DefaultAioSocketChannelConfig(this, ch); } + @Override + public InetSocketAddress localAddress() { + return (InetSocketAddress) super.localAddress(); + } + + @Override + public InetSocketAddress remoteAddress() { + return (InetSocketAddress) super.remoteAddress(); + } + @Override public ServerSocketChannel parent() { return (ServerSocketChannel) super.parent(); @@ -201,7 +214,7 @@ public class AioSocketChannel extends AbstractAioChannel implements SocketChanne protected Runnable doRegister() throws Exception { super.doRegister(); if (ch == null) { - ch = newSocket(((AioEventLoopGroup) eventLoop().parent()).group); + ch = newSocket(((AioEventLoopGroup) eventLoop().parent()).channelGroup()); config.assign(javaChannel()); } diff --git a/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java b/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java index ad647aa3eb..c4c14334a2 100755 --- a/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java @@ -22,6 +22,7 @@ import io.netty.channel.ChannelException; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelMetadata; import io.netty.channel.ChannelPromise; +import io.netty.channel.nio.AbstractNioMessageChannel; import io.netty.channel.socket.DatagramChannelConfig; import io.netty.channel.socket.DatagramPacket; import io.netty.channel.socket.InternetProtocolFamily; @@ -268,6 +269,16 @@ public final class NioDatagramChannel return 1; } + @Override + public InetSocketAddress localAddress() { + return (InetSocketAddress) super.localAddress(); + } + + @Override + public InetSocketAddress remoteAddress() { + return (InetSocketAddress) super.remoteAddress(); + } + @Override public ChannelFuture joinGroup(InetAddress multicastAddress) { return joinGroup(multicastAddress, newPromise()); diff --git a/transport/src/main/java/io/netty/channel/socket/nio/NioServerSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/nio/NioServerSocketChannel.java index 314375eb22..4a5407e353 100755 --- a/transport/src/main/java/io/netty/channel/socket/nio/NioServerSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/nio/NioServerSocketChannel.java @@ -19,6 +19,7 @@ import io.netty.buffer.BufType; import io.netty.buffer.MessageBuf; import io.netty.channel.ChannelException; import io.netty.channel.ChannelMetadata; +import io.netty.channel.nio.AbstractNioMessageChannel; import io.netty.channel.socket.DefaultServerSocketChannelConfig; import io.netty.channel.socket.ServerSocketChannelConfig; @@ -57,6 +58,11 @@ public class NioServerSocketChannel extends AbstractNioMessageChannel config = new DefaultServerSocketChannelConfig(this, javaChannel().socket()); } + @Override + public InetSocketAddress localAddress() { + return (InetSocketAddress) super.localAddress(); + } + @Override public ChannelMetadata metadata() { return METADATA; diff --git a/transport/src/main/java/io/netty/channel/socket/nio/NioSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/nio/NioSocketChannel.java index 7a1bd795e5..7dbd10e78e 100755 --- a/transport/src/main/java/io/netty/channel/socket/nio/NioSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/nio/NioSocketChannel.java @@ -23,6 +23,7 @@ import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelMetadata; import io.netty.channel.ChannelPromise; import io.netty.channel.EventLoop; +import io.netty.channel.nio.AbstractNioByteChannel; import io.netty.channel.socket.DefaultSocketChannelConfig; import io.netty.channel.socket.ServerSocketChannel; import io.netty.channel.socket.SocketChannelConfig; @@ -30,6 +31,7 @@ import io.netty.logging.InternalLogger; import io.netty.logging.InternalLoggerFactory; import java.io.IOException; +import java.net.InetSocketAddress; import java.net.SocketAddress; import java.nio.channels.SelectionKey; import java.nio.channels.SocketChannel; @@ -125,6 +127,16 @@ public class NioSocketChannel extends AbstractNioByteChannel implements io.netty return super.isInputShutdown(); } + @Override + public InetSocketAddress localAddress() { + return (InetSocketAddress) super.localAddress(); + } + + @Override + public InetSocketAddress remoteAddress() { + return (InetSocketAddress) super.remoteAddress(); + } + @Override public boolean isOutputShutdown() { return javaChannel().socket().isOutputShutdown() || !isActive(); diff --git a/transport/src/main/java/io/netty/channel/socket/oio/OioDatagramChannel.java b/transport/src/main/java/io/netty/channel/socket/oio/OioDatagramChannel.java index 4fef3a9b0a..64cb7f3329 100755 --- a/transport/src/main/java/io/netty/channel/socket/oio/OioDatagramChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/oio/OioDatagramChannel.java @@ -26,6 +26,7 @@ import io.netty.channel.socket.DatagramChannel; import io.netty.channel.socket.DatagramChannelConfig; import io.netty.channel.socket.DatagramPacket; import io.netty.channel.socket.DefaultDatagramChannelConfig; +import io.netty.channel.oio.AbstractOioMessageChannel; import io.netty.logging.InternalLogger; import io.netty.logging.InternalLoggerFactory; @@ -147,6 +148,16 @@ public class OioDatagramChannel extends AbstractOioMessageChannel socket.bind(localAddress); } + @Override + public InetSocketAddress localAddress() { + return (InetSocketAddress) super.localAddress(); + } + + @Override + public InetSocketAddress remoteAddress() { + return (InetSocketAddress) super.remoteAddress(); + } + @Override protected void doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception { diff --git a/transport/src/main/java/io/netty/channel/socket/oio/OioServerSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/oio/OioServerSocketChannel.java index 0aef126143..0771412729 100755 --- a/transport/src/main/java/io/netty/channel/socket/oio/OioServerSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/oio/OioServerSocketChannel.java @@ -20,6 +20,7 @@ import io.netty.buffer.MessageBuf; import io.netty.channel.ChannelException; import io.netty.channel.ChannelMetadata; import io.netty.channel.socket.ServerSocketChannel; +import io.netty.channel.oio.AbstractOioMessageChannel; import io.netty.logging.InternalLogger; import io.netty.logging.InternalLoggerFactory; @@ -108,6 +109,11 @@ public class OioServerSocketChannel extends AbstractOioMessageChannel config = new DefaultOioServerSocketChannelConfig(this, socket); } + @Override + public InetSocketAddress localAddress() { + return (InetSocketAddress) super.localAddress(); + } + @Override public ChannelMetadata metadata() { return METADATA; diff --git a/transport/src/main/java/io/netty/channel/socket/oio/OioSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/oio/OioSocketChannel.java index 662621114c..9fb6226d31 100755 --- a/transport/src/main/java/io/netty/channel/socket/oio/OioSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/oio/OioSocketChannel.java @@ -23,6 +23,7 @@ import io.netty.channel.ChannelPromise; import io.netty.channel.EventLoop; import io.netty.channel.socket.ServerSocketChannel; import io.netty.channel.socket.SocketChannel; +import io.netty.channel.oio.OioByteStreamChannel; import io.netty.logging.InternalLogger; import io.netty.logging.InternalLoggerFactory; diff --git a/transport/src/test/java/io/netty/channel/socket/aio/AbstractAioChannelFinderTest.java b/transport/src/test/java/io/netty/channel/aio/AbstractAioChannelFinderTest.java similarity index 98% rename from transport/src/test/java/io/netty/channel/socket/aio/AbstractAioChannelFinderTest.java rename to transport/src/test/java/io/netty/channel/aio/AbstractAioChannelFinderTest.java index fb2d315e4b..bfdeca75f8 100644 --- a/transport/src/test/java/io/netty/channel/socket/aio/AbstractAioChannelFinderTest.java +++ b/transport/src/test/java/io/netty/channel/aio/AbstractAioChannelFinderTest.java @@ -1,4 +1,4 @@ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; import static org.junit.Assert.*; import static org.easymock.EasyMock.*; diff --git a/transport/src/test/java/io/netty/channel/socket/aio/AioEventLoopTest.java b/transport/src/test/java/io/netty/channel/aio/AioEventLoopTest.java similarity index 92% rename from transport/src/test/java/io/netty/channel/socket/aio/AioEventLoopTest.java rename to transport/src/test/java/io/netty/channel/aio/AioEventLoopTest.java index d0a17f40ee..5890a11dd9 100644 --- a/transport/src/test/java/io/netty/channel/socket/aio/AioEventLoopTest.java +++ b/transport/src/test/java/io/netty/channel/aio/AioEventLoopTest.java @@ -13,11 +13,12 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; import io.netty.channel.AbstractEventLoopTest; import io.netty.channel.EventLoopGroup; import io.netty.channel.socket.ServerSocketChannel; +import io.netty.channel.socket.aio.AioServerSocketChannel; public class AioEventLoopTest extends AbstractEventLoopTest { @Override diff --git a/transport/src/test/java/io/netty/channel/socket/aio/ReflectiveAioChannelFinderTest.java b/transport/src/test/java/io/netty/channel/aio/ReflectiveAioChannelFinderTest.java similarity index 95% rename from transport/src/test/java/io/netty/channel/socket/aio/ReflectiveAioChannelFinderTest.java rename to transport/src/test/java/io/netty/channel/aio/ReflectiveAioChannelFinderTest.java index addb0f13e2..818ceae935 100644 --- a/transport/src/test/java/io/netty/channel/socket/aio/ReflectiveAioChannelFinderTest.java +++ b/transport/src/test/java/io/netty/channel/aio/ReflectiveAioChannelFinderTest.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; public class ReflectiveAioChannelFinderTest extends AbstractAioChannelFinderTest { diff --git a/transport/src/test/java/io/netty/channel/socket/aio/UnsafeAioChannelFinderTest.java b/transport/src/test/java/io/netty/channel/aio/UnsafeAioChannelFinderTest.java similarity index 95% rename from transport/src/test/java/io/netty/channel/socket/aio/UnsafeAioChannelFinderTest.java rename to transport/src/test/java/io/netty/channel/aio/UnsafeAioChannelFinderTest.java index 0a8d11530c..7405f2ddb4 100644 --- a/transport/src/test/java/io/netty/channel/socket/aio/UnsafeAioChannelFinderTest.java +++ b/transport/src/test/java/io/netty/channel/aio/UnsafeAioChannelFinderTest.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.aio; +package io.netty.channel.aio; public class UnsafeAioChannelFinderTest extends AbstractAioChannelFinderTest { diff --git a/transport/src/test/java/io/netty/channel/socket/nio/NioEventLoopTest.java b/transport/src/test/java/io/netty/channel/nio/NioEventLoopTest.java similarity index 88% rename from transport/src/test/java/io/netty/channel/socket/nio/NioEventLoopTest.java rename to transport/src/test/java/io/netty/channel/nio/NioEventLoopTest.java index 197cc8bb33..e75491e65f 100644 --- a/transport/src/test/java/io/netty/channel/socket/nio/NioEventLoopTest.java +++ b/transport/src/test/java/io/netty/channel/nio/NioEventLoopTest.java @@ -13,10 +13,12 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.channel.socket.nio; +package io.netty.channel.nio; import io.netty.channel.AbstractEventLoopTest; import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.channel.socket.ServerSocketChannel; public class NioEventLoopTest extends AbstractEventLoopTest {