diff --git a/transport/src/main/java/io/netty/bootstrap/AbstractBootstrap.java b/transport/src/main/java/io/netty/bootstrap/AbstractBootstrap.java index 86d51c6cc0..13494e5cba 100644 --- a/transport/src/main/java/io/netty/bootstrap/AbstractBootstrap.java +++ b/transport/src/main/java/io/netty/bootstrap/AbstractBootstrap.java @@ -102,21 +102,21 @@ public abstract class AbstractBootstrap> { } /** - * See {@link #localAddress(SocketAddress)} + * @see {@link #localAddress(SocketAddress)} */ public B localAddress(int port) { return localAddress(new InetSocketAddress(port)); } /** - * See {@link #localAddress(SocketAddress)} + * @see {@link #localAddress(SocketAddress)} */ public B localAddress(String host, int port) { return localAddress(new InetSocketAddress(host, port)); } /** - * See {@link #localAddress(SocketAddress)} + * @see {@link #localAddress(SocketAddress)} */ public B localAddress(InetAddress host, int port) { return localAddress(new InetSocketAddress(host, port)); @@ -249,6 +249,7 @@ public abstract class AbstractBootstrap> { return attrs; } + @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append(getClass().getSimpleName()); @@ -308,6 +309,7 @@ public abstract class AbstractBootstrap> { } } + @Override public String toString() { return clazz.getSimpleName() + ".class"; } diff --git a/transport/src/main/java/io/netty/bootstrap/Bootstrap.java b/transport/src/main/java/io/netty/bootstrap/Bootstrap.java index 160c5455d9..385dd154ef 100644 --- a/transport/src/main/java/io/netty/bootstrap/Bootstrap.java +++ b/transport/src/main/java/io/netty/bootstrap/Bootstrap.java @@ -50,7 +50,7 @@ public class Bootstrap extends AbstractBootstrap { } /** - * See {@link #remoteAddress(SocketAddress)} + * @see {@link #remoteAddress(SocketAddress)} */ public Bootstrap remoteAddress(String host, int port) { remoteAddress = new InetSocketAddress(host, port); @@ -58,7 +58,7 @@ public class Bootstrap extends AbstractBootstrap { } /** - * See {@link #remoteAddress(SocketAddress)} + * @see {@link #remoteAddress(SocketAddress)} */ public Bootstrap remoteAddress(InetAddress host, int port) { remoteAddress = new InetSocketAddress(host, port); @@ -96,7 +96,7 @@ public class Bootstrap extends AbstractBootstrap { } /** - * See {@link #connect()} + * @see {@link #connect()} */ public ChannelFuture connect(ChannelFuture future) { validate(future); @@ -166,6 +166,8 @@ public class Bootstrap extends AbstractBootstrap { /** * Create a new {@link Bootstrap} which has the identical configuration with this {@link Bootstrap}. * This method is useful when you make multiple connections with similar settings. + * + * Be aware that if you call {@link #shutdown()} on one of them it will shutdown shared resources. */ public Bootstrap duplicate() { validate(); diff --git a/transport/src/main/java/io/netty/bootstrap/ServerBootstrap.java b/transport/src/main/java/io/netty/bootstrap/ServerBootstrap.java index f42073dbd9..5c76b1c2e7 100644 --- a/transport/src/main/java/io/netty/bootstrap/ServerBootstrap.java +++ b/transport/src/main/java/io/netty/bootstrap/ServerBootstrap.java @@ -119,6 +119,10 @@ public class ServerBootstrap extends AbstractBootstrap { return this; } + /** + * Set the specific {@link AttributeKey} with the given value on every child {@link Channel}. If the value is + * {@code null} the {@link AttributeKey} is removed + */ public ServerBootstrap childAttr(AttributeKey childKey, T value) { if (childKey == null) { throw new NullPointerException("childKey"); diff --git a/transport/src/main/java/io/netty/channel/group/ChannelGroup.java b/transport/src/main/java/io/netty/channel/group/ChannelGroup.java index 5e855ffef9..fc8502a034 100644 --- a/transport/src/main/java/io/netty/channel/group/ChannelGroup.java +++ b/transport/src/main/java/io/netty/channel/group/ChannelGroup.java @@ -20,6 +20,7 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelStateHandlerAdapter; import io.netty.channel.ServerChannel; import io.netty.util.CharsetUtil; @@ -75,12 +76,12 @@ import java.util.Set; * b.releaseExternalResources(); * } * - * public class MyHandler extends {@link SimpleChannelUpstreamHandler} { + * public class MyHandler extends {@link ChannelStateHandlerAdapter} { * {@code @Override} - * public void channelOpen({@link ChannelHandlerContext} ctx, {@link ChannelStateEvent} e) { - * // Add all open channels to the global group so that they are + * public void channelActive({@link ChannelHandlerContext} ctx) { * // closed on shutdown. * allChannels.add(e.getChannel()); + * super.channelActive(ctx); * } * } * diff --git a/transport/src/main/java/io/netty/channel/group/ChannelGroupFuture.java b/transport/src/main/java/io/netty/channel/group/ChannelGroupFuture.java index 47a9eaba5b..fe604486d2 100644 --- a/transport/src/main/java/io/netty/channel/group/ChannelGroupFuture.java +++ b/transport/src/main/java/io/netty/channel/group/ChannelGroupFuture.java @@ -73,29 +73,26 @@ import java.util.concurrent.TimeUnit; *
  * // BAD - NEVER DO THIS
  * {@code @Override}
- * public void messageReceived({@link ChannelHandlerContext} ctx, {@link MessageEvent} e) {
- *     if (e.getMessage() instanceof ShutdownMessage) {
- *         {@link ChannelGroup} allChannels = MyServer.getAllChannels();
- *         {@link ChannelGroupFuture} future = allChannels.close();
- *         future.awaitUninterruptibly();
- *         // Perform post-shutdown operation
- *         // ...
- *     }
+ * public void messageReceived({@link ChannelHandlerContext} ctx, ShutdownMessage msg) {
+ *     {@link ChannelGroup} allChannels = MyServer.getAllChannels();
+ *     {@link ChannelGroupFuture} future = allChannels.close();
+ *     future.awaitUninterruptibly();
+ *     // Perform post-shutdown operation
+ *     // ...
+ *
  * }
  *
  * // GOOD
  * {@code @Override}
- * public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
- *     if (e.getMessage() instanceof ShutdownMessage) {
- *         {@link ChannelGroup} allChannels = MyServer.getAllChannels();
- *         {@link ChannelGroupFuture} future = allChannels.close();
- *         future.addListener(new {@link ChannelGroupFutureListener}() {
- *             public void operationComplete({@link ChannelGroupFuture} future) {
- *                 // Perform post-closure operation
- *                 // ...
- *             }
- *         });
- *     }
+ * public void messageReceived(ChannelHandlerContext ctx, ShutdownMessage msg) {
+ *     {@link ChannelGroup} allChannels = MyServer.getAllChannels();
+ *     {@link ChannelGroupFuture} future = allChannels.close();
+ *     future.addListener(new {@link ChannelGroupFutureListener}() {
+ *         public void operationComplete({@link ChannelGroupFuture} future) {
+ *             // Perform post-closure operation
+ *             // ...
+ *         }
+ *     });
  * }
  * 
*