diff --git a/src/main/java/org/jboss/netty/channel/local/LocalClientChannelSink.java b/src/main/java/org/jboss/netty/channel/local/LocalClientChannelSink.java index 39c7f3f780..393ae9a07d 100644 --- a/src/main/java/org/jboss/netty/channel/local/LocalClientChannelSink.java +++ b/src/main/java/org/jboss/netty/channel/local/LocalClientChannelSink.java @@ -76,8 +76,7 @@ final class LocalClientChannelSink extends AbstractChannelSink { future.setSuccess(); break; } - } - else if (e instanceof MessageEvent) { + } else if (e instanceof MessageEvent) { MessageEvent event = (MessageEvent) e; DefaultLocalChannel channel = (DefaultLocalChannel) event.getChannel(); boolean offered = channel.writeBuffer.offer(event); diff --git a/src/main/java/org/jboss/netty/channel/socket/nio/NioSocketChannel.java b/src/main/java/org/jboss/netty/channel/socket/nio/NioSocketChannel.java index 6fc4f11d80..808d72a5ed 100644 --- a/src/main/java/org/jboss/netty/channel/socket/nio/NioSocketChannel.java +++ b/src/main/java/org/jboss/netty/channel/socket/nio/NioSocketChannel.java @@ -194,10 +194,6 @@ class NioSocketChannel extends AbstractChannel super(); } - /* - * (non-Javadoc) - * @see java.util.concurrent.BlockingQueue#offer(java.lang.Object) - */ public boolean offer(MessageEvent e) { boolean success = queue.offer(e); assert success; @@ -219,10 +215,6 @@ class NioSocketChannel extends AbstractChannel return true; } - /* - * (non-Javadoc) - * @see java.util.Queue#poll() - */ public MessageEvent poll() { MessageEvent e = queue.poll(); if (e != null) { diff --git a/src/main/java/org/jboss/netty/example/discard/DiscardClient.java b/src/main/java/org/jboss/netty/example/discard/DiscardClient.java index c924b6a913..db2f8250ef 100644 --- a/src/main/java/org/jboss/netty/example/discard/DiscardClient.java +++ b/src/main/java/org/jboss/netty/example/discard/DiscardClient.java @@ -30,32 +30,10 @@ import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; */ public class DiscardClient { - public static void main(String[] args) throws Exception { - // Print usage if no argument is specified. - if (args.length < 2 || args.length > 3) { - System.err.println( - "Usage: " + DiscardClient.class.getSimpleName() + - " []"); - return; - } - - // Parse options. - final String host = args[0]; - final int port = Integer.parseInt(args[1]); - final int firstMessageSize; - if (args.length == 3) { - firstMessageSize = Integer.parseInt(args[2]); - } else { - firstMessageSize = 256; - } - - new DiscardClient(host, port, firstMessageSize).run(); - } - private final String host; private final int port; private final int firstMessageSize; - + public DiscardClient(String host, int port, int firstMessageSize) { this.host = host; this.port = port; @@ -86,4 +64,26 @@ public class DiscardClient { // Shut down thread pools to exit. bootstrap.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + // Print usage if no argument is specified. + if (args.length < 2 || args.length > 3) { + System.err.println( + "Usage: " + DiscardClient.class.getSimpleName() + + " []"); + return; + } + + // Parse options. + final String host = args[0]; + final int port = Integer.parseInt(args[1]); + final int firstMessageSize; + if (args.length == 3) { + firstMessageSize = Integer.parseInt(args[2]); + } else { + firstMessageSize = 256; + } + + new DiscardClient(host, port, firstMessageSize).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/discard/DiscardServer.java b/src/main/java/org/jboss/netty/example/discard/DiscardServer.java index 99d816c8ec..6b12314b43 100644 --- a/src/main/java/org/jboss/netty/example/discard/DiscardServer.java +++ b/src/main/java/org/jboss/netty/example/discard/DiscardServer.java @@ -29,10 +29,12 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; */ public class DiscardServer { - public static void main(String[] args) throws Exception { - new DiscardServer().run(); - } + private final int port; + public DiscardServer(int port) { + this.port = port; + } + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( @@ -48,6 +50,16 @@ public class DiscardServer { }); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new DiscardServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/echo/EchoClient.java b/src/main/java/org/jboss/netty/example/echo/EchoClient.java index 5203669f64..d9e17ad349 100644 --- a/src/main/java/org/jboss/netty/example/echo/EchoClient.java +++ b/src/main/java/org/jboss/netty/example/echo/EchoClient.java @@ -33,28 +33,6 @@ import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; */ public class EchoClient { - public static void main(String[] args) throws Exception { - // Print usage if no argument is specified. - if (args.length < 2 || args.length > 3) { - System.err.println( - "Usage: " + EchoClient.class.getSimpleName() + - " []"); - return; - } - - // Parse options. - final String host = args[0]; - final int port = Integer.parseInt(args[1]); - final int firstMessageSize; - if (args.length == 3) { - firstMessageSize = Integer.parseInt(args[2]); - } else { - firstMessageSize = 256; - } - - new EchoClient(host, port, firstMessageSize).run(); - } - private final String host; private final int port; private final int firstMessageSize; @@ -89,4 +67,26 @@ public class EchoClient { // Shut down thread pools to exit. bootstrap.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + // Print usage if no argument is specified. + if (args.length < 2 || args.length > 3) { + System.err.println( + "Usage: " + EchoClient.class.getSimpleName() + + " []"); + return; + } + + // Parse options. + final String host = args[0]; + final int port = Integer.parseInt(args[1]); + final int firstMessageSize; + if (args.length == 3) { + firstMessageSize = Integer.parseInt(args[2]); + } else { + firstMessageSize = 256; + } + + new EchoClient(host, port, firstMessageSize).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/echo/EchoServer.java b/src/main/java/org/jboss/netty/example/echo/EchoServer.java index cb11d22baa..5bf0153efa 100644 --- a/src/main/java/org/jboss/netty/example/echo/EchoServer.java +++ b/src/main/java/org/jboss/netty/example/echo/EchoServer.java @@ -29,10 +29,12 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; */ public class EchoServer { - public static void main(String[] args) throws Exception { - new EchoServer().run(); + private final int port; + + public EchoServer(int port) { + this.port = port; } - + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( @@ -48,6 +50,16 @@ public class EchoServer { }); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new EchoServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/factorial/FactorialClient.java b/src/main/java/org/jboss/netty/example/factorial/FactorialClient.java index ecd3046734..95dc08d863 100644 --- a/src/main/java/org/jboss/netty/example/factorial/FactorialClient.java +++ b/src/main/java/org/jboss/netty/example/factorial/FactorialClient.java @@ -29,26 +29,6 @@ import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; */ public class FactorialClient { - public static void main(String[] args) throws Exception { - // Print usage if no argument is specified. - if (args.length != 3) { - System.err.println( - "Usage: " + FactorialClient.class.getSimpleName() + - " "); - return; - } - - // Parse options. - String host = args[0]; - int port = Integer.parseInt(args[1]); - int count = Integer.parseInt(args[2]); - if (count <= 0) { - throw new IllegalArgumentException("count must be a positive integer."); - } - - new FactorialClient(host, port, count).run(); - } - private final String host; private final int port; private final int count; @@ -87,4 +67,24 @@ public class FactorialClient { // Shut down all thread pools to exit. bootstrap.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + // Print usage if no argument is specified. + if (args.length != 3) { + System.err.println( + "Usage: " + FactorialClient.class.getSimpleName() + + " "); + return; + } + + // Parse options. + String host = args[0]; + int port = Integer.parseInt(args[1]); + int count = Integer.parseInt(args[2]); + if (count <= 0) { + throw new IllegalArgumentException("count must be a positive integer."); + } + + new FactorialClient(host, port, count).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/factorial/FactorialServer.java b/src/main/java/org/jboss/netty/example/factorial/FactorialServer.java index 54a114cdce..2cfa7802d1 100644 --- a/src/main/java/org/jboss/netty/example/factorial/FactorialServer.java +++ b/src/main/java/org/jboss/netty/example/factorial/FactorialServer.java @@ -27,10 +27,12 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; */ public class FactorialServer { - public static void main(String[] args) throws Exception { - new FactorialServer().run(); + private final int port; + + public FactorialServer(int port) { + this.port = port; } - + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( @@ -42,6 +44,16 @@ public class FactorialServer { bootstrap.setPipelineFactory(new FactorialServerPipelineFactory()); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new FactorialServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/http/file/HttpStaticFileServer.java b/src/main/java/org/jboss/netty/example/http/file/HttpStaticFileServer.java index 1717acc804..c9099da9d6 100644 --- a/src/main/java/org/jboss/netty/example/http/file/HttpStaticFileServer.java +++ b/src/main/java/org/jboss/netty/example/http/file/HttpStaticFileServer.java @@ -22,7 +22,14 @@ import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; public class HttpStaticFileServer { - public static void main(String[] args) { + + private final int port; + + public HttpStaticFileServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( @@ -33,6 +40,16 @@ public class HttpStaticFileServer { bootstrap.setPipelineFactory(new HttpStaticFileServerPipelineFactory()); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new HttpStaticFileServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/http/snoop/HttpClient.java b/src/main/java/org/jboss/netty/example/http/snoop/HttpClient.java index 73d704e9c4..baa749fe42 100644 --- a/src/main/java/org/jboss/netty/example/http/snoop/HttpClient.java +++ b/src/main/java/org/jboss/netty/example/http/snoop/HttpClient.java @@ -36,15 +36,13 @@ import org.jboss.netty.handler.codec.http.HttpVersion; */ public class HttpClient { - public static void main(String[] args) throws Exception { - if (args.length != 1) { - System.err.println( - "Usage: " + HttpClient.class.getSimpleName() + - " "); - return; - } + private final URI uri; + + public HttpClient(URI uri) { + this.uri = uri; + } - URI uri = new URI(args[0]); + public void run() { String scheme = uri.getScheme() == null? "http" : uri.getScheme(); String host = uri.getHost() == null? "localhost" : uri.getHost(); int port = uri.getPort(); @@ -105,4 +103,16 @@ public class HttpClient { // Shut down executor threads to exit. bootstrap.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + if (args.length != 1) { + System.err.println( + "Usage: " + HttpClient.class.getSimpleName() + + " "); + return; + } + + URI uri = new URI(args[0]); + new HttpClient(uri).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/http/snoop/HttpServer.java b/src/main/java/org/jboss/netty/example/http/snoop/HttpServer.java index c0a16d831f..5baa197b9b 100644 --- a/src/main/java/org/jboss/netty/example/http/snoop/HttpServer.java +++ b/src/main/java/org/jboss/netty/example/http/snoop/HttpServer.java @@ -26,7 +26,14 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; * in a pretty plaintext form. */ public class HttpServer { - public static void main(String[] args) { + + private final int port; + + public HttpServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( @@ -37,6 +44,17 @@ public class HttpServer { bootstrap.setPipelineFactory(new HttpServerPipelineFactory()); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); } + + public static void main(String[] args) { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new HttpServer(port).run(); + } + } diff --git a/src/main/java/org/jboss/netty/example/http/tunnel/HttpTunnelingClientExample.java b/src/main/java/org/jboss/netty/example/http/tunnel/HttpTunnelingClientExample.java index c793dd5147..f3e04ab328 100644 --- a/src/main/java/org/jboss/netty/example/http/tunnel/HttpTunnelingClientExample.java +++ b/src/main/java/org/jboss/netty/example/http/tunnel/HttpTunnelingClientExample.java @@ -16,6 +16,7 @@ package org.jboss.netty.example.http.tunnel; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStreamReader; import java.net.InetSocketAddress; import java.net.URI; @@ -42,18 +43,13 @@ import org.jboss.netty.logging.InternalLogLevel; */ public class HttpTunnelingClientExample { - public static void main(String[] args) throws Exception { - if (args.length != 1) { - System.err.println( - "Usage: " + HttpTunnelingClientExample.class.getSimpleName() + - " "); - System.err.println( - "Example: " + HttpTunnelingClientExample.class.getSimpleName() + - " http://localhost:8080/netty-tunnel"); - return; - } + private final URI uri; + + public HttpTunnelingClientExample(URI uri) { + this.uri = uri; + } - URI uri = new URI(args[0]); + public void run() throws IOException { String scheme = uri.getScheme() == null? "http" : uri.getScheme(); // Configure the client. @@ -114,4 +110,19 @@ public class HttpTunnelingClientExample { // Shut down all threads. b.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + if (args.length != 1) { + System.err.println( + "Usage: " + HttpTunnelingClientExample.class.getSimpleName() + + " "); + System.err.println( + "Example: " + HttpTunnelingClientExample.class.getSimpleName() + + " http://localhost:8080/netty-tunnel"); + return; + } + + URI uri = new URI(args[0]); + new HttpTunnelingClientExample(uri).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServer.java b/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServer.java similarity index 72% rename from src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServer.java rename to src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServer.java index 346bb9d71c..229788352e 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServer.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServer.java @@ -17,9 +17,6 @@ package org.jboss.netty.example.http.websocketx.autobahn; import java.net.InetSocketAddress; import java.util.concurrent.Executors; -import java.util.logging.ConsoleHandler; -import java.util.logging.Level; -import java.util.logging.Logger; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; @@ -28,13 +25,15 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; * A Web Socket echo server for running the autobahn test * suite */ -public class WebSocketServer { - public static void main(String[] args) { - ConsoleHandler ch = new ConsoleHandler(); - ch.setLevel(Level.FINE); - Logger.getLogger("").addHandler(ch); - Logger.getLogger("").setLevel(Level.FINE); +public class AutobahnServer { + + private final int port; + public AutobahnServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); @@ -42,11 +41,21 @@ public class WebSocketServer { // bootstrap.setOption("child.tcpNoDelay", true); // Set up the event pipeline factory. - bootstrap.setPipelineFactory(new WebSocketServerPipelineFactory()); + bootstrap.setPipelineFactory(new AutobahnServerPipelineFactory()); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(9000)); + bootstrap.bind(new InetSocketAddress(port)); - System.out.println("Web Socket Server started on localhost:9000."); + System.out.println("Web Socket Server started at port " + port); + } + + public static void main(String[] args) { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 9000; + } + new AutobahnServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServerHandler.java b/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServerHandler.java similarity index 98% rename from src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServerHandler.java rename to src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServerHandler.java index 49e4a32ed6..bb25dc1880 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServerHandler.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServerHandler.java @@ -47,8 +47,8 @@ import org.jboss.netty.util.CharsetUtil; /** * Handles handshakes and messages */ -public class WebSocketServerHandler extends SimpleChannelUpstreamHandler { - private static final InternalLogger logger = InternalLoggerFactory.getInstance(WebSocketServerHandler.class); +public class AutobahnServerHandler extends SimpleChannelUpstreamHandler { + private static final InternalLogger logger = InternalLoggerFactory.getInstance(AutobahnServerHandler.class); private WebSocketServerHandshaker handshaker; diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServerPipelineFactory.java b/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServerPipelineFactory.java similarity index 90% rename from src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServerPipelineFactory.java rename to src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServerPipelineFactory.java index 6bc8d14c3d..3ee4789a1c 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/WebSocketServerPipelineFactory.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/AutobahnServerPipelineFactory.java @@ -25,14 +25,14 @@ import org.jboss.netty.handler.codec.http.HttpResponseEncoder; /** */ -public class WebSocketServerPipelineFactory implements ChannelPipelineFactory { +public class AutobahnServerPipelineFactory implements ChannelPipelineFactory { public ChannelPipeline getPipeline() throws Exception { // Create a default pipeline implementation. ChannelPipeline pipeline = pipeline(); pipeline.addLast("decoder", new HttpRequestDecoder()); pipeline.addLast("aggregator", new HttpChunkAggregator(65536)); pipeline.addLast("encoder", new HttpResponseEncoder()); - pipeline.addLast("handler", new WebSocketServerHandler()); + pipeline.addLast("handler", new AutobahnServerHandler()); return pipeline; } } diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/package-info.java b/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/package-info.java index 3ca3843a9f..0e542990d9 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/package-info.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/autobahn/package-info.java @@ -47,7 +47,7 @@ * } * * - *

11. Run WebSocketServer in this package. + *

11. Run AutobahnServer in this package. * *

11. Run the test python fuzzing_client.py. Note that the actual test case python code is * located in /usr/local/lib/python2.6/dist-packages/autobahn-0.4.3-py2.6.egg/autobahn/cases diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/client/App.java b/src/main/java/org/jboss/netty/example/http/websocketx/client/App.java deleted file mode 100644 index 9aabd82a32..0000000000 --- a/src/main/java/org/jboss/netty/example/http/websocketx/client/App.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2011 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. - */ - -package org.jboss.netty.example.http.websocketx.client; - -import java.net.URI; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.logging.ConsoleHandler; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.jboss.netty.buffer.ChannelBuffers; -import org.jboss.netty.handler.codec.http.websocketx.CloseWebSocketFrame; -import org.jboss.netty.handler.codec.http.websocketx.PingWebSocketFrame; -import org.jboss.netty.handler.codec.http.websocketx.PongWebSocketFrame; -import org.jboss.netty.handler.codec.http.websocketx.TextWebSocketFrame; -import org.jboss.netty.handler.codec.http.websocketx.WebSocketFrame; -import org.jboss.netty.handler.codec.http.websocketx.WebSocketVersion; - -/** - * A HTTP client demo app - */ -public class App { - - public static void main(String[] args) throws Exception { - new App().runClient(); - } - - /** - * Send and receive some messages using a web socket client - * - * @throws Exception - */ - public void runClient() throws Exception { - - MyCallbackHandler callbackHandler = new MyCallbackHandler(); - WebSocketClientFactory factory = new WebSocketClientFactory(); - - HashMap customHeaders = new HashMap(); - customHeaders.put("MyHeader", "MyValue"); - - // Connect with V13 (RFC 6455). You can change it to V08 or V00. - // If you change it to V00, ping is not supported and remember to change - // HttpResponseDecoder to WebSocketHttpResponseDecoder in the pipeline. - WebSocketClient client = factory.newClient(new URI("ws://localhost:8080/websocket"), WebSocketVersion.V13, - callbackHandler, customHeaders); - - // Connect - System.out.println("WebSocket Client connecting"); - client.connect().awaitUninterruptibly(); - Thread.sleep(200); - - // Send 10 messages and wait for responses - System.out.println("WebSocket Client sending message"); - for (int i = 0; i < 10; i++) { - client.send(new TextWebSocketFrame("Message #" + i)); - } - Thread.sleep(1000); - - // Ping - System.out.println("WebSocket Client sending ping"); - client.send(new PingWebSocketFrame(ChannelBuffers.copiedBuffer(new byte[] { 1, 2, 3, 4, 5, 6 }))); - Thread.sleep(1000); - - // Close - System.out.println("WebSocket Client sending close"); - client.send(new CloseWebSocketFrame()); - Thread.sleep(1000); - - // Disconnect - client.disconnect(); - } - - /** - * Our web socket callback handler for this app - */ - public static class MyCallbackHandler implements WebSocketCallback { - public boolean connected; - public ArrayList messagesReceived = new ArrayList(); - - public MyCallbackHandler() { - } - - public void onConnect(WebSocketClient client) { - System.out.println("WebSocket Client connected!"); - connected = true; - } - - public void onDisconnect(WebSocketClient client) { - System.out.println("WebSocket Client disconnected!"); - connected = false; - } - - public void onMessage(WebSocketClient client, WebSocketFrame frame) { - if (frame instanceof TextWebSocketFrame) { - TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; - System.out.println("WebSocket Client received message:" + textFrame.getText()); - messagesReceived.add(textFrame.getText()); - } else if (frame instanceof PongWebSocketFrame) { - System.out.println("WebSocket Client received pong"); - } else if (frame instanceof CloseWebSocketFrame) { - System.out.println("WebSocket Client received closing"); - } - } - - public void onError(Throwable t) { - System.out.println("WebSocket Client error " + t.toString()); - } - - } - -} diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketCallback.java b/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketCallback.java deleted file mode 100644 index ebf53bc301..0000000000 --- a/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketCallback.java +++ /dev/null @@ -1,67 +0,0 @@ -//The MIT License -// -//Copyright (c) 2009 Carl Bystršm -// -//Permission is hereby granted, free of charge, to any person obtaining a copy -//of this software and associated documentation files (the "Software"), to deal -//in the Software without restriction, including without limitation the rights -//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -//copies of the Software, and to permit persons to whom the Software is -//furnished to do so, subject to the following conditions: -// -//The above copyright notice and this permission notice shall be included in -//all copies or substantial portions of the Software. -// -//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -//THE SOFTWARE. - -package org.jboss.netty.example.http.websocketx.client; - -import org.jboss.netty.handler.codec.http.websocketx.WebSocketFrame; - -/** - * Copied from https://github.com/cgbystrom/netty-tools - * - * Callbacks for the {@link WebSocketClient}. Implement and get notified when events happen. - */ -public interface WebSocketCallback { - - /** - * Called when the client is connected to the server - * - * @param client - * Current client used to connect - */ - void onConnect(WebSocketClient client); - - /** - * Called when the client got disconnected from the server. - * - * @param client - * Current client that was disconnected - */ - void onDisconnect(WebSocketClient client); - - /** - * Called when a message arrives from the server. - * - * @param client - * Current client connected - * @param frame - * Data received from server - */ - void onMessage(WebSocketClient client, WebSocketFrame frame); - - /** - * Called when an unhandled errors occurs. - * - * @param t - * The causing error - */ - void onError(Throwable t); -} diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClient.java b/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClient.java index 79db6c5262..801e930456 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClient.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClient.java @@ -21,34 +21,119 @@ //THE SOFTWARE. package org.jboss.netty.example.http.websocketx.client; +import java.net.InetSocketAddress; +import java.net.URI; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.concurrent.Executors; + +import org.jboss.netty.bootstrap.ClientBootstrap; +import org.jboss.netty.buffer.ChannelBuffers; +import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelFuture; +import org.jboss.netty.channel.ChannelPipeline; +import org.jboss.netty.channel.ChannelPipelineFactory; +import org.jboss.netty.channel.Channels; +import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; +import org.jboss.netty.handler.codec.http.HttpRequestEncoder; +import org.jboss.netty.handler.codec.http.HttpResponseDecoder; +import org.jboss.netty.handler.codec.http.websocketx.CloseWebSocketFrame; +import org.jboss.netty.handler.codec.http.websocketx.PingWebSocketFrame; +import org.jboss.netty.handler.codec.http.websocketx.PongWebSocketFrame; +import org.jboss.netty.handler.codec.http.websocketx.TextWebSocketFrame; +import org.jboss.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; +import org.jboss.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; import org.jboss.netty.handler.codec.http.websocketx.WebSocketFrame; +import org.jboss.netty.handler.codec.http.websocketx.WebSocketVersion; -/** - * Copied from https://github.com/cgbystrom/netty-tools - */ -public interface WebSocketClient { +public class WebSocketClient { - /** - * Connect to server Host and port is setup by the factory. - * - * @return Connect future. Fires when connected. - */ - ChannelFuture connect(); + private final URI uri; + + public WebSocketClient(URI uri) { + this.uri = uri; + } + + public void run() throws Exception { + ClientBootstrap bootstrap = + new ClientBootstrap( + new NioClientSocketChannelFactory( + Executors.newCachedThreadPool(), + Executors.newCachedThreadPool())); - /** - * Disconnect from the server - * - * @return Disconnect future. Fires when disconnected. - */ - ChannelFuture disconnect(); + String protocol = uri.getScheme(); + if (!protocol.equals("ws")) { + throw new IllegalArgumentException("Unsupported protocol: " + protocol); + } - /** - * Send data to server - * - * @param frame - * Data for sending - * @return Write future. Will fire when the data is sent. - */ - ChannelFuture send(WebSocketFrame frame); + HashMap customHeaders = new HashMap(); + customHeaders.put("MyHeader", "MyValue"); + + // Connect with V13 (RFC 6455). You can change it to V08 or V00. + // If you change it to V00, ping is not supported and remember to change + // HttpResponseDecoder to WebSocketHttpResponseDecoder in the pipeline. + final WebSocketClientHandshaker handshaker = + new WebSocketClientHandshakerFactory().newHandshaker( + uri, WebSocketVersion.V13, null, false, customHeaders); + + bootstrap.setPipelineFactory(new ChannelPipelineFactory() { + public ChannelPipeline getPipeline() throws Exception { + ChannelPipeline pipeline = Channels.pipeline(); + + // If you wish to support HyBi V00, you need to use + // WebSocketHttpResponseDecoder instead for + // HttpResponseDecoder. + pipeline.addLast("decoder", new HttpResponseDecoder()); + + pipeline.addLast("encoder", new HttpRequestEncoder()); + pipeline.addLast("ws-handler", new WebSocketClientHandler(handshaker)); + return pipeline; + } + }); + + // Connect + System.out.println("WebSocket Client connecting"); + ChannelFuture future = + bootstrap.connect( + new InetSocketAddress(uri.getHost(), uri.getPort())); + future.awaitUninterruptibly(); + + Channel ch = future.getChannel(); + + handshaker.performOpeningHandshake(ch); + + Thread.sleep(1000); + + // Send 10 messages and wait for responses + System.out.println("WebSocket Client sending message"); + for (int i = 0; i < 10; i++) { + ch.write(new TextWebSocketFrame("Message #" + i)); + } + Thread.sleep(1000); + + // Ping + System.out.println("WebSocket Client sending ping"); + ch.write(new PingWebSocketFrame(ChannelBuffers.copiedBuffer(new byte[] { 1, 2, 3, 4, 5, 6 }))); + Thread.sleep(1000); + + // Close + System.out.println("WebSocket Client sending close"); + ch.write(new CloseWebSocketFrame()); + + // WebSocketClientHandler will close the connection when the server + // responds to the CloseWebSocketFrame. + ch.getCloseFuture().awaitUninterruptibly(); + + bootstrap.releaseExternalResources(); + } + + public static void main(String[] args) throws Exception { + URI uri; + if (args.length > 0) { + uri = new URI(args[0]); + } else { + uri = new URI("ws://localhost:8080/websocket"); + } + new WebSocketClient(uri).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClientFactory.java b/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClientFactory.java deleted file mode 100644 index 1347a5de58..0000000000 --- a/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClientFactory.java +++ /dev/null @@ -1,92 +0,0 @@ -//The MIT License -// -//Copyright (c) 2009 Carl Bystršm -// -//Permission is hereby granted, free of charge, to any person obtaining a copy -//of this software and associated documentation files (the "Software"), to deal -//in the Software without restriction, including without limitation the rights -//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -//copies of the Software, and to permit persons to whom the Software is -//furnished to do so, subject to the following conditions: -// -//The above copyright notice and this permission notice shall be included in -//all copies or substantial portions of the Software. -// -//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -//THE SOFTWARE. - -package org.jboss.netty.example.http.websocketx.client; - -import org.jboss.netty.bootstrap.ClientBootstrap; -import org.jboss.netty.channel.ChannelPipeline; -import org.jboss.netty.channel.ChannelPipelineFactory; -import org.jboss.netty.channel.Channels; -import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; -import org.jboss.netty.handler.codec.http.HttpRequestEncoder; -import org.jboss.netty.handler.codec.http.HttpResponseDecoder; -import org.jboss.netty.handler.codec.http.websocketx.WebSocketVersion; - -import java.net.URI; -import java.util.Map; -import java.util.concurrent.Executors; - -/** - * Copied from https://github.com/cgbystrom/netty-tools - * - * A factory for creating WebSocket clients. The entry point for creating and connecting a client. Can and should be - * used to create multiple instances. - */ -public class WebSocketClientFactory { - - private final NioClientSocketChannelFactory socketChannelFactory = new NioClientSocketChannelFactory( - Executors.newCachedThreadPool(), Executors.newCachedThreadPool()); - - /** - * Create a new WebSocket client - * - * @param url - * URL to connect to. - * @param version - * Web Socket version to support - * @param callback - * Callback interface to receive events - * @param customHeaders - * Map of custom headers to add to the client request - * @return A WebSocket client. Call {@link WebSocketClient#connect()} to connect. - */ - public WebSocketClient newClient(final URI url, final WebSocketVersion version, final WebSocketCallback callback, - final Map customHeaders) { - ClientBootstrap bootstrap = new ClientBootstrap(socketChannelFactory); - - String protocol = url.getScheme(); - if (!protocol.equals("ws") && !protocol.equals("wss")) { - throw new IllegalArgumentException("Unsupported protocol: " + protocol); - } - - final WebSocketClientHandler clientHandler = new WebSocketClientHandler(bootstrap, url, version, callback, - customHeaders); - - bootstrap.setPipelineFactory(new ChannelPipelineFactory() { - - public ChannelPipeline getPipeline() throws Exception { - ChannelPipeline pipeline = Channels.pipeline(); - - // If you wish to support HyBi V00, you need to use - // WebSocketHttpResponseDecoder instead for - // HttpResponseDecoder. - pipeline.addLast("decoder", new HttpResponseDecoder()); - - pipeline.addLast("encoder", new HttpRequestEncoder()); - pipeline.addLast("ws-handler", clientHandler); - return pipeline; - } - }); - - return clientHandler; - } -} diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClientHandler.java b/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClientHandler.java index 3588649734..3d74747bd6 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClientHandler.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/client/WebSocketClientHandler.java @@ -22,68 +22,39 @@ package org.jboss.netty.example.http.websocketx.client; -import java.net.InetSocketAddress; -import java.net.URI; -import java.util.Map; - -import org.jboss.netty.bootstrap.ClientBootstrap; import org.jboss.netty.channel.Channel; -import org.jboss.netty.channel.ChannelFuture; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelStateEvent; import org.jboss.netty.channel.ExceptionEvent; import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.SimpleChannelUpstreamHandler; import org.jboss.netty.handler.codec.http.HttpResponse; +import org.jboss.netty.handler.codec.http.websocketx.CloseWebSocketFrame; +import org.jboss.netty.handler.codec.http.websocketx.PongWebSocketFrame; +import org.jboss.netty.handler.codec.http.websocketx.TextWebSocketFrame; import org.jboss.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import org.jboss.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; import org.jboss.netty.handler.codec.http.websocketx.WebSocketFrame; -import org.jboss.netty.handler.codec.http.websocketx.WebSocketVersion; import org.jboss.netty.util.CharsetUtil; -/** - * Copied from https://github.com/cgbystrom/netty-tools - * - * Handles socket communication for a connected WebSocket client Not intended for end-users. Please use - * {@link WebSocketClient} or {@link WebSocketCallback} for controlling your client. - */ -public class WebSocketClientHandler extends SimpleChannelUpstreamHandler implements WebSocketClient { +public class WebSocketClientHandler extends SimpleChannelUpstreamHandler { - private final ClientBootstrap bootstrap; - private URI url; - private final WebSocketCallback callback; - private Channel channel; - private WebSocketClientHandshaker handshaker; - private final WebSocketVersion version; - private Map customHeaders; + private final WebSocketClientHandshaker handshaker; - public WebSocketClientHandler(ClientBootstrap bootstrap, URI url, WebSocketVersion version, - WebSocketCallback callback, Map customHeaders) { - this.bootstrap = bootstrap; - this.url = url; - this.version = version; - this.callback = callback; - this.customHeaders = customHeaders; - } - - @Override - public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { - channel = e.getChannel(); - this.handshaker = new WebSocketClientHandshakerFactory() - .newHandshaker(url, version, null, false, customHeaders); - handshaker.performOpeningHandshake(channel); + public WebSocketClientHandler(WebSocketClientHandshaker handshaker) { + this.handshaker = handshaker; } @Override public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { - callback.onDisconnect(this); + System.out.println("WebSocket Client disconnected!"); } @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { + Channel ch = ctx.getChannel(); if (!handshaker.isOpeningHandshakeCompleted()) { - handshaker.performClosingHandshake(ctx.getChannel(), (HttpResponse) e.getMessage()); - callback.onConnect(this); + handshaker.performClosingHandshake(ch, (HttpResponse) e.getMessage()); + System.out.println("WebSocket Client connected!"); return; } @@ -94,34 +65,21 @@ public class WebSocketClientHandler extends SimpleChannelUpstreamHandler impleme } WebSocketFrame frame = (WebSocketFrame) e.getMessage(); - callback.onMessage(this, frame); + if (frame instanceof TextWebSocketFrame) { + TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; + System.out.println("WebSocket Client received message: " + textFrame.getText()); + } else if (frame instanceof PongWebSocketFrame) { + System.out.println("WebSocket Client received pong"); + } else if (frame instanceof CloseWebSocketFrame) { + System.out.println("WebSocket Client received closing"); + ch.close(); + } } @Override public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception { final Throwable t = e.getCause(); - callback.onError(t); + t.printStackTrace(); e.getChannel().close(); } - - public ChannelFuture connect() { - return bootstrap.connect(new InetSocketAddress(url.getHost(), url.getPort())); - } - - public ChannelFuture disconnect() { - return channel.close(); - } - - public ChannelFuture send(WebSocketFrame frame) { - return channel.write(frame); - } - - public URI getUrl() { - return url; - } - - public void setUrl(URI url) { - this.url = url; - } - } diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/client/package-info.java b/src/main/java/org/jboss/netty/example/http/websocketx/client/package-info.java index ba4251d901..c4746b0d41 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/client/package-info.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/client/package-info.java @@ -16,9 +16,8 @@ /** *

This is an example web service client. - *

To run this example, you must first start - * org.jboss.netty.example.http.websocketx.server.WebSocketServer - *

Next, run org.jboss.netty.example.http.websocketx.client.App. + *

To run this example, you must first start {@link WebSocketServer} and + * then {@link WebSocketClient}. */ package org.jboss.netty.example.http.websocketx.client; diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/server/WebSocketServer.java b/src/main/java/org/jboss/netty/example/http/websocketx/server/WebSocketServer.java index 2e07d00fa7..0f64c4251a 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/server/WebSocketServer.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/server/WebSocketServer.java @@ -43,12 +43,14 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; * */ public class WebSocketServer { - public static void main(String[] args) { - ConsoleHandler ch = new ConsoleHandler(); - ch.setLevel(Level.FINE); - Logger.getLogger("").addHandler(ch); - Logger.getLogger("").setLevel(Level.FINE); - + + private final int port; + + public WebSocketServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); @@ -57,9 +59,19 @@ public class WebSocketServer { bootstrap.setPipelineFactory(new WebSocketServerPipelineFactory()); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); - System.out - .println("Web Socket Server started on 8080. Open your browser and navigate to http://localhost:8080/"); + System.out.println("Web socket server started at port " + port + '.'); + System.out.println("Open your browser and navigate to http://localhost:" + port + '/'); + } + + public static void main(String[] args) { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new WebSocketServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/http/websocketx/sslserver/WebSocketSslServer.java b/src/main/java/org/jboss/netty/example/http/websocketx/sslserver/WebSocketSslServer.java index e2486dc97f..167259a881 100644 --- a/src/main/java/org/jboss/netty/example/http/websocketx/sslserver/WebSocketSslServer.java +++ b/src/main/java/org/jboss/netty/example/http/websocketx/sslserver/WebSocketSslServer.java @@ -43,11 +43,35 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; * */ public class WebSocketSslServer { + + private final int port; + + public WebSocketSslServer(int port) { + this.port = port; + } + + public void run() { + // Configure the server. + ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory( + Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); + + // Set up the event pipeline factory. + bootstrap.setPipelineFactory(new WebSocketSslServerPipelineFactory()); + + // Bind and start to accept incoming connections. + bootstrap.bind(new InetSocketAddress(port)); + + System.out.println("Web socket server started at port " + port + '.'); + System.out.println("Open your browser and navigate to https://localhost:" + port + '/'); + } + public static void main(String[] args) { - ConsoleHandler ch = new ConsoleHandler(); - ch.setLevel(Level.FINE); - Logger.getLogger("").addHandler(ch); - Logger.getLogger("").setLevel(Level.FINE); + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8443; + } String keyStoreFilePath = System.getProperty("keystore.file.path"); if (keyStoreFilePath == null || keyStoreFilePath.isEmpty()) { @@ -60,18 +84,7 @@ public class WebSocketSslServer { System.out.println("ERROR: System property keystore.file.password not set. Exiting now!"); System.exit(1); } - - // Configure the server. - ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory( - Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); - - // Set up the event pipeline factory. - bootstrap.setPipelineFactory(new WebSocketSslServerPipelineFactory()); - - // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8081)); - - System.out - .println("Web Socket Server started on 8081. Open your browser and navigate to https://localhost:8081/"); + + new WebSocketSslServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/local/LocalExample.java b/src/main/java/org/jboss/netty/example/local/LocalExample.java index c275706fde..52e321e215 100644 --- a/src/main/java/org/jboss/netty/example/local/LocalExample.java +++ b/src/main/java/org/jboss/netty/example/local/LocalExample.java @@ -16,6 +16,7 @@ package org.jboss.netty.example.local; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStreamReader; import org.jboss.netty.bootstrap.ClientBootstrap; @@ -34,9 +35,16 @@ import org.jboss.netty.handler.logging.LoggingHandler; import org.jboss.netty.logging.InternalLogLevel; public class LocalExample { - public static void main(String[] args) throws Exception { + + private final String port; + + public LocalExample(String port) { + this.port = port; + } + + public void run() throws IOException { // Address to bind on / connect to. - LocalAddress socketAddress = new LocalAddress("1"); + LocalAddress socketAddress = new LocalAddress(port); // Configure the server. ServerBootstrap sb = new ServerBootstrap( @@ -94,4 +102,8 @@ public class LocalExample { cb.releaseExternalResources(); sb.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + new LocalExample("1").run(); + } } diff --git a/src/main/java/org/jboss/netty/example/local/LocalExampleMultthreaded.java b/src/main/java/org/jboss/netty/example/local/LocalExampleMultithreaded.java similarity index 92% rename from src/main/java/org/jboss/netty/example/local/LocalExampleMultthreaded.java rename to src/main/java/org/jboss/netty/example/local/LocalExampleMultithreaded.java index 5ff008f987..9c01ea42d8 100644 --- a/src/main/java/org/jboss/netty/example/local/LocalExampleMultthreaded.java +++ b/src/main/java/org/jboss/netty/example/local/LocalExampleMultithreaded.java @@ -32,10 +32,16 @@ import org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor; import org.jboss.netty.handler.logging.LoggingHandler; import org.jboss.netty.logging.InternalLogLevel; -public class LocalExampleMultthreaded { +public class LocalExampleMultithreaded { - public static void main(String[] args) throws Exception { - LocalAddress socketAddress = new LocalAddress("1"); + private final String port; + + public LocalExampleMultithreaded(String port) { + this.port = port; + } + + public void run() { + LocalAddress socketAddress = new LocalAddress(port); OrderedMemoryAwareThreadPoolExecutor eventExecutor = new OrderedMemoryAwareThreadPoolExecutor( @@ -92,4 +98,8 @@ public class LocalExampleMultthreaded { sb.releaseExternalResources(); eventExecutor.shutdownNow(); } + + public static void main(String[] args) throws Exception { + new LocalExampleMultithreaded("1").run(); + } } diff --git a/src/main/java/org/jboss/netty/example/localtime/LocalTimeClient.java b/src/main/java/org/jboss/netty/example/localtime/LocalTimeClient.java index 8864184e77..ae930be3a4 100644 --- a/src/main/java/org/jboss/netty/example/localtime/LocalTimeClient.java +++ b/src/main/java/org/jboss/netty/example/localtime/LocalTimeClient.java @@ -18,6 +18,7 @@ package org.jboss.netty.example.localtime; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.concurrent.Executors; @@ -33,21 +34,18 @@ import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; */ public class LocalTimeClient { - public static void main(String[] args) throws Exception { - // Print usage if necessary. - if (args.length < 3) { - printUsage(); - return; - } - - // Parse options. - String host = args[0]; - int port = Integer.parseInt(args[1]); - Collection cities = parseCities(args, 2); - if (cities == null) { - return; - } + private final String host; + private final int port; + private final Collection cities; + + public LocalTimeClient(String host, int port, Collection cities) { + this.host = host; + this.port = port; + this.cities = new ArrayList(); + this.cities.addAll(cities); + } + public void run() { // Set up. ClientBootstrap bootstrap = new ClientBootstrap( new NioClientSocketChannelFactory( @@ -84,6 +82,24 @@ public class LocalTimeClient { } } + public static void main(String[] args) throws Exception { + // Print usage if necessary. + if (args.length < 3) { + printUsage(); + return; + } + + // Parse options. + String host = args[0]; + int port = Integer.parseInt(args[1]); + Collection cities = parseCities(args, 2); + if (cities == null) { + return; + } + + new LocalTimeClient(host, port, cities).run(); + } + private static void printUsage() { System.err.println( "Usage: " + LocalTimeClient.class.getSimpleName() + diff --git a/src/main/java/org/jboss/netty/example/localtime/LocalTimeServer.java b/src/main/java/org/jboss/netty/example/localtime/LocalTimeServer.java index a0883c3508..b95209eee5 100644 --- a/src/main/java/org/jboss/netty/example/localtime/LocalTimeServer.java +++ b/src/main/java/org/jboss/netty/example/localtime/LocalTimeServer.java @@ -27,7 +27,13 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; */ public class LocalTimeServer { - public static void main(String[] args) throws Exception { + private final int port; + + public LocalTimeServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( @@ -38,6 +44,16 @@ public class LocalTimeServer { bootstrap.setPipelineFactory(new LocalTimeServerPipelineFactory()); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new LocalTimeServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/objectecho/ObjectEchoClient.java b/src/main/java/org/jboss/netty/example/objectecho/ObjectEchoClient.java index 2b5c49d8e6..d09d42b02a 100644 --- a/src/main/java/org/jboss/netty/example/objectecho/ObjectEchoClient.java +++ b/src/main/java/org/jboss/netty/example/objectecho/ObjectEchoClient.java @@ -32,6 +32,37 @@ import org.jboss.netty.handler.codec.serialization.ObjectEncoder; */ public class ObjectEchoClient { + private final String host; + private final int port; + private final int firstMessageSize; + + public ObjectEchoClient(String host, int port, int firstMessageSize) { + this.host = host; + this.port = port; + this.firstMessageSize = firstMessageSize; + } + + public void run() { + // Configure the client. + ClientBootstrap bootstrap = new ClientBootstrap( + new NioClientSocketChannelFactory( + Executors.newCachedThreadPool(), + Executors.newCachedThreadPool())); + + // Set up the pipeline factory. + bootstrap.setPipelineFactory(new ChannelPipelineFactory() { + public ChannelPipeline getPipeline() throws Exception { + return Channels.pipeline( + new ObjectEncoder(), + new ObjectDecoder(), + new ObjectEchoClientHandler(firstMessageSize)); + } + }); + + // Start the connection attempt. + bootstrap.connect(new InetSocketAddress(host, port)); + } + public static void main(String[] args) throws Exception { // Print usage if no argument is specified. if (args.length < 2 || args.length > 3) { @@ -52,23 +83,6 @@ public class ObjectEchoClient { firstMessageSize = 256; } - // Configure the client. - ClientBootstrap bootstrap = new ClientBootstrap( - new NioClientSocketChannelFactory( - Executors.newCachedThreadPool(), - Executors.newCachedThreadPool())); - - // Set up the pipeline factory. - bootstrap.setPipelineFactory(new ChannelPipelineFactory() { - public ChannelPipeline getPipeline() throws Exception { - return Channels.pipeline( - new ObjectEncoder(), - new ObjectDecoder(), - new ObjectEchoClientHandler(firstMessageSize)); - } - }); - - // Start the connection attempt. - bootstrap.connect(new InetSocketAddress(host, port)); + new ObjectEchoClient(host, port, firstMessageSize).run(); } } diff --git a/src/main/java/org/jboss/netty/example/objectecho/ObjectEchoServer.java b/src/main/java/org/jboss/netty/example/objectecho/ObjectEchoServer.java index 39a730d3f9..4bb1b11932 100644 --- a/src/main/java/org/jboss/netty/example/objectecho/ObjectEchoServer.java +++ b/src/main/java/org/jboss/netty/example/objectecho/ObjectEchoServer.java @@ -24,6 +24,7 @@ import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; import org.jboss.netty.example.echo.EchoServer; +import org.jboss.netty.handler.codec.serialization.ClassResolvers; import org.jboss.netty.handler.codec.serialization.ObjectDecoder; import org.jboss.netty.handler.codec.serialization.ObjectEncoder; @@ -31,8 +32,14 @@ import org.jboss.netty.handler.codec.serialization.ObjectEncoder; * Modification of {@link EchoServer} which utilizes Java object serialization. */ public class ObjectEchoServer { + + private final int port; - public static void main(String[] args) throws Exception { + public ObjectEchoServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( @@ -50,6 +57,16 @@ public class ObjectEchoServer { }); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new ObjectEchoServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/portunification/PortUnificationServer.java b/src/main/java/org/jboss/netty/example/portunification/PortUnificationServer.java index 7729a01e81..4f413346bb 100644 --- a/src/main/java/org/jboss/netty/example/portunification/PortUnificationServer.java +++ b/src/main/java/org/jboss/netty/example/portunification/PortUnificationServer.java @@ -33,7 +33,13 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; */ public class PortUnificationServer { - public static void main(String[] args) throws Exception { + private final int port; + + public PortUnificationServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( @@ -48,6 +54,16 @@ public class PortUnificationServer { }); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new PortUnificationServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/proxy/HexDumpProxy.java b/src/main/java/org/jboss/netty/example/proxy/HexDumpProxy.java index 5bfb3b96a3..ecf0f7faaf 100644 --- a/src/main/java/org/jboss/netty/example/proxy/HexDumpProxy.java +++ b/src/main/java/org/jboss/netty/example/proxy/HexDumpProxy.java @@ -26,23 +26,6 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; public class HexDumpProxy { - public static void main(String[] args) throws Exception { - // Validate command line options. - if (args.length != 3) { - System.err.println( - "Usage: " + HexDumpProxy.class.getSimpleName() + - " "); - return; - } - - // Parse command line options. - int localPort = Integer.parseInt(args[0]); - String remoteHost = args[1]; - int remotePort = Integer.parseInt(args[2]); - - new HexDumpProxy(localPort, remoteHost, remotePort).run(); - } - private final int localPort; private final String remoteHost; private final int remotePort; @@ -73,4 +56,21 @@ public class HexDumpProxy { // Start up the server. sb.bind(new InetSocketAddress(localPort)); } + + public static void main(String[] args) throws Exception { + // Validate command line options. + if (args.length != 3) { + System.err.println( + "Usage: " + HexDumpProxy.class.getSimpleName() + + " "); + return; + } + + // Parse command line options. + int localPort = Integer.parseInt(args[0]); + String remoteHost = args[1]; + int remotePort = Integer.parseInt(args[2]); + + new HexDumpProxy(localPort, remoteHost, remotePort).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/qotm/QuoteOfTheMomentClient.java b/src/main/java/org/jboss/netty/example/qotm/QuoteOfTheMomentClient.java index 87f685812f..b48a010c66 100644 --- a/src/main/java/org/jboss/netty/example/qotm/QuoteOfTheMomentClient.java +++ b/src/main/java/org/jboss/netty/example/qotm/QuoteOfTheMomentClient.java @@ -38,7 +38,13 @@ import org.jboss.netty.util.CharsetUtil; */ public class QuoteOfTheMomentClient { - public static void main(String[] args) throws Exception { + private final int port; + + public QuoteOfTheMomentClient(int port) { + this.port = port; + } + + public void run() { DatagramChannelFactory f = new NioDatagramChannelFactory(Executors.newCachedThreadPool()); @@ -74,7 +80,7 @@ public class QuoteOfTheMomentClient { DatagramChannel c = (DatagramChannel) b.bind(new InetSocketAddress(0)); // Broadcast the QOTM request to port 8080. - c.write("QOTM?", new InetSocketAddress("255.255.255.255", 8080)); + c.write("QOTM?", new InetSocketAddress("255.255.255.255", port)); // QuoteOfTheMomentClientHandler will close the DatagramChannel when a // response is received. If the channel is not closed within 5 seconds, @@ -86,4 +92,14 @@ public class QuoteOfTheMomentClient { f.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new QuoteOfTheMomentClient(port).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/qotm/QuoteOfTheMomentServer.java b/src/main/java/org/jboss/netty/example/qotm/QuoteOfTheMomentServer.java index 23142faa42..8530848423 100644 --- a/src/main/java/org/jboss/netty/example/qotm/QuoteOfTheMomentServer.java +++ b/src/main/java/org/jboss/netty/example/qotm/QuoteOfTheMomentServer.java @@ -37,7 +37,13 @@ import org.jboss.netty.util.CharsetUtil; */ public class QuoteOfTheMomentServer { - public static void main(String[] args) throws Exception { + private final int port; + + public QuoteOfTheMomentServer(int port) { + this.port = port; + } + + public void run() { DatagramChannelFactory f = new NioDatagramChannelFactory(Executors.newCachedThreadPool()); @@ -71,6 +77,16 @@ public class QuoteOfTheMomentServer { new FixedReceiveBufferSizePredictorFactory(1024)); // Bind to the port and start the service. - b.bind(new InetSocketAddress(8080)); + b.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new QuoteOfTheMomentServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/securechat/SecureChatClient.java b/src/main/java/org/jboss/netty/example/securechat/SecureChatClient.java index 52f1bb9719..48a3bdae23 100644 --- a/src/main/java/org/jboss/netty/example/securechat/SecureChatClient.java +++ b/src/main/java/org/jboss/netty/example/securechat/SecureChatClient.java @@ -16,6 +16,7 @@ package org.jboss.netty.example.securechat; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStreamReader; import java.net.InetSocketAddress; import java.util.concurrent.Executors; @@ -31,19 +32,15 @@ import org.jboss.netty.example.telnet.TelnetClient; */ public class SecureChatClient { - public static void main(String[] args) throws Exception { - // Print usage if no argument is specified. - if (args.length != 2) { - System.err.println( - "Usage: " + SecureChatClient.class.getSimpleName() + - " "); - return; - } - - // Parse options. - String host = args[0]; - int port = Integer.parseInt(args[1]); + private final String host; + private final int port; + + public SecureChatClient(String host, int port) { + this.host = host; + this.port = port; + } + public void run() throws IOException { // Configure the client. ClientBootstrap bootstrap = new ClientBootstrap( new NioClientSocketChannelFactory( @@ -96,4 +93,20 @@ public class SecureChatClient { // Shut down all thread pools to exit. bootstrap.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + // Print usage if no argument is specified. + if (args.length != 2) { + System.err.println( + "Usage: " + SecureChatClient.class.getSimpleName() + + " "); + return; + } + + // Parse options. + String host = args[0]; + int port = Integer.parseInt(args[1]); + + new SecureChatClient(host, port).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/securechat/SecureChatServer.java b/src/main/java/org/jboss/netty/example/securechat/SecureChatServer.java index 3328ff5466..efcecdffaa 100644 --- a/src/main/java/org/jboss/netty/example/securechat/SecureChatServer.java +++ b/src/main/java/org/jboss/netty/example/securechat/SecureChatServer.java @@ -27,7 +27,13 @@ import org.jboss.netty.example.telnet.TelnetServer; */ public class SecureChatServer { - public static void main(String[] args) throws Exception { + private final int port; + + public SecureChatServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( @@ -38,6 +44,16 @@ public class SecureChatServer { bootstrap.setPipelineFactory(new SecureChatServerPipelineFactory()); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8443; + } + new SecureChatServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/telnet/TelnetClient.java b/src/main/java/org/jboss/netty/example/telnet/TelnetClient.java index d0d4659ea1..aa04e51657 100644 --- a/src/main/java/org/jboss/netty/example/telnet/TelnetClient.java +++ b/src/main/java/org/jboss/netty/example/telnet/TelnetClient.java @@ -16,6 +16,7 @@ package org.jboss.netty.example.telnet; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStreamReader; import java.net.InetSocketAddress; import java.util.concurrent.Executors; @@ -30,19 +31,15 @@ import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; */ public class TelnetClient { - public static void main(String[] args) throws Exception { - // Print usage if no argument is specified. - if (args.length != 2) { - System.err.println( - "Usage: " + TelnetClient.class.getSimpleName() + - " "); - return; - } - - // Parse options. - String host = args[0]; - int port = Integer.parseInt(args[1]); + private final String host; + private final int port; + + public TelnetClient(String host, int port) { + this.host = host; + this.port = port; + } + public void run() throws IOException { // Configure the client. ClientBootstrap bootstrap = new ClientBootstrap( new NioClientSocketChannelFactory( @@ -95,4 +92,20 @@ public class TelnetClient { // Shut down all thread pools to exit. bootstrap.releaseExternalResources(); } + + public static void main(String[] args) throws Exception { + // Print usage if no argument is specified. + if (args.length != 2) { + System.err.println( + "Usage: " + TelnetClient.class.getSimpleName() + + " "); + return; + } + + // Parse options. + String host = args[0]; + int port = Integer.parseInt(args[1]); + + new TelnetClient(host, port).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/telnet/TelnetServer.java b/src/main/java/org/jboss/netty/example/telnet/TelnetServer.java index b07e624410..b433a36a48 100644 --- a/src/main/java/org/jboss/netty/example/telnet/TelnetServer.java +++ b/src/main/java/org/jboss/netty/example/telnet/TelnetServer.java @@ -26,7 +26,13 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; */ public class TelnetServer { - public static void main(String[] args) throws Exception { + private final int port; + + public TelnetServer(int port) { + this.port = port; + } + + public void run() { // Configure the server. ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( @@ -37,6 +43,16 @@ public class TelnetServer { bootstrap.setPipelineFactory(new TelnetServerPipelineFactory()); // Bind and start to accept incoming connections. - bootstrap.bind(new InetSocketAddress(8080)); + bootstrap.bind(new InetSocketAddress(port)); + } + + public static void main(String[] args) throws Exception { + int port; + if (args.length > 0) { + port = Integer.parseInt(args[0]); + } else { + port = 8080; + } + new TelnetServer(port).run(); } } diff --git a/src/main/java/org/jboss/netty/example/uptime/UptimeClient.java b/src/main/java/org/jboss/netty/example/uptime/UptimeClient.java index 0b8d6dc1f7..e7f8be0efa 100644 --- a/src/main/java/org/jboss/netty/example/uptime/UptimeClient.java +++ b/src/main/java/org/jboss/netty/example/uptime/UptimeClient.java @@ -42,19 +42,15 @@ public class UptimeClient { // Reconnect when the server sends nothing for 10 seconds. private static final int READ_TIMEOUT = 10; - public static void main(String[] args) throws Exception { - // Print usage if no argument is specified. - if (args.length != 2) { - System.err.println( - "Usage: " + UptimeClient.class.getSimpleName() + - " "); - return; - } + private final String host; + private final int port; - // Parse options. - String host = args[0]; - int port = Integer.parseInt(args[1]); + public UptimeClient(String host, int port) { + this.host = host; + this.port = port; + } + public void run() { // Initialize the timer that schedules subsequent reconnection attempts. final Timer timer = new HashedWheelTimer(); @@ -85,4 +81,20 @@ public class UptimeClient { // UptimeClientHandler. bootstrap.connect(); } + + public static void main(String[] args) throws Exception { + // Print usage if no argument is specified. + if (args.length != 2) { + System.err.println( + "Usage: " + UptimeClient.class.getSimpleName() + + " "); + return; + } + + // Parse options. + String host = args[0]; + int port = Integer.parseInt(args[1]); + + new UptimeClient(host, port).run(); + } } diff --git a/src/main/java/org/jboss/netty/example/uptime/UptimeClientHandler.java b/src/main/java/org/jboss/netty/example/uptime/UptimeClientHandler.java index 7ae9deb124..544f5b5679 100644 --- a/src/main/java/org/jboss/netty/example/uptime/UptimeClientHandler.java +++ b/src/main/java/org/jboss/netty/example/uptime/UptimeClientHandler.java @@ -83,8 +83,7 @@ public class UptimeClientHandler extends SimpleChannelUpstreamHandler { if (cause instanceof ReadTimeoutException) { // The connection was OK but there was no traffic for last period. println("Disconnecting due to no inbound traffic"); - } - else { + } else { cause.printStackTrace(); } ctx.getChannel().close(); diff --git a/src/main/java/org/jboss/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java b/src/main/java/org/jboss/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java index c5c77785b6..3a878d0ff6 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java @@ -188,4 +188,4 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker { this.setOpenningHandshakeCompleted(true); } -} \ No newline at end of file +} diff --git a/src/main/java/org/jboss/netty/handler/codec/serialization/CachingClassResolver.java b/src/main/java/org/jboss/netty/handler/codec/serialization/CachingClassResolver.java index 23fe49b97e..457e0cc5c8 100644 --- a/src/main/java/org/jboss/netty/handler/codec/serialization/CachingClassResolver.java +++ b/src/main/java/org/jboss/netty/handler/codec/serialization/CachingClassResolver.java @@ -27,10 +27,6 @@ class CachingClassResolver implements ClassResolver { this.classCache = classCache; } - /* - * (non-Javadoc) - * @see org.jboss.netty.handler.codec.serialization.ClassResolver#resolve(java.lang.String) - */ public Class resolve(String className) throws ClassNotFoundException { // Query the cache first. Class clazz; diff --git a/src/main/java/org/jboss/netty/handler/codec/serialization/ClassLoaderClassResolver.java b/src/main/java/org/jboss/netty/handler/codec/serialization/ClassLoaderClassResolver.java index 943d8f62ff..0e0807db1a 100644 --- a/src/main/java/org/jboss/netty/handler/codec/serialization/ClassLoaderClassResolver.java +++ b/src/main/java/org/jboss/netty/handler/codec/serialization/ClassLoaderClassResolver.java @@ -23,11 +23,6 @@ class ClassLoaderClassResolver implements ClassResolver { this.classLoader = classLoader; } - - /* - * (non-Javadoc) - * @see org.jboss.netty.handler.codec.serialization.ClassResolver#resolve(java.lang.String) - */ public Class resolve(String className) throws ClassNotFoundException { try { return classLoader.loadClass(className); diff --git a/src/main/java/org/jboss/netty/handler/codec/serialization/ReferenceMap.java b/src/main/java/org/jboss/netty/handler/codec/serialization/ReferenceMap.java index 2a8add7b3b..7161a3cf8c 100644 --- a/src/main/java/org/jboss/netty/handler/codec/serialization/ReferenceMap.java +++ b/src/main/java/org/jboss/netty/handler/codec/serialization/ReferenceMap.java @@ -38,101 +38,52 @@ abstract class ReferenceMap implements Map { return ref.get(); } - /* - * (non-Javadoc) - * @see java.util.Map#size() - */ public int size() { return delegate.size(); } - - /* - * (non-Javadoc) - * @see java.util.Map#isEmpty() - */ public boolean isEmpty() { return delegate.isEmpty(); } - /* - * (non-Javadoc) - * @see java.util.Map#containsKey(java.lang.Object) - */ public boolean containsKey(Object key) { return delegate.containsKey(key); } - /* - * (non-Javadoc) - * @see java.util.Map#containsValue(java.lang.Object) - */ public boolean containsValue(Object value) { throw new UnsupportedOperationException(); } - /* - * (non-Javadoc) - * @see java.util.Map#get(java.lang.Object) - */ public V get(Object key) { return unfold(delegate.get(key)); } - /* - * (non-Javadoc) - * @see java.util.Map#put(java.lang.Object, java.lang.Object) - */ public V put(K key, V value) { return unfold(delegate.put(key, fold(value))); } - /* - * (non-Javadoc) - * @see java.util.Map#remove(java.lang.Object) - */ public V remove(Object key) { return unfold(delegate.remove(key)); } - /* - * (non-Javadoc) - * @see java.util.Map#putAll(java.util.Map) - */ public void putAll(Map m) { for (Entry entry : m.entrySet()) { delegate.put(entry.getKey(), fold(entry.getValue())); } } - /* - * (non-Javadoc) - * @see java.util.Map#clear() - */ public void clear() { delegate.clear(); } - /* - * (non-Javadoc) - * @see java.util.Map#keySet() - */ public Set keySet() { return delegate.keySet(); } - /* - * (non-Javadoc) - * @see java.util.Map#values() - */ public Collection values() { throw new UnsupportedOperationException(); } - /* - * (non-Javadoc) - * @see java.util.Map#entrySet() - */ public Set> entrySet() { throw new UnsupportedOperationException(); } diff --git a/src/main/java/org/jboss/netty/util/internal/QueueFactory.java b/src/main/java/org/jboss/netty/util/internal/QueueFactory.java index cd5ed57923..c621d07d00 100644 --- a/src/main/java/org/jboss/netty/util/internal/QueueFactory.java +++ b/src/main/java/org/jboss/netty/util/internal/QueueFactory.java @@ -39,7 +39,7 @@ public final class QueueFactory { * @param itemClass the {@link Class} type which will be used as {@link BlockingQueue} items * @return queue the {@link BlockingQueue} implementation */ - public static final BlockingQueue createQueue(Class itemClass) { + public static BlockingQueue createQueue(Class itemClass) { if (useUnsafe) { return new LinkedTransferQueue(); } else { @@ -54,7 +54,7 @@ public final class QueueFactory { * @param itemClass the {@link Class} type which will be used as {@link BlockingQueue} items * @return queue the {@link BlockingQueue} implementation */ - public static final BlockingQueue createQueue(Collection collection, Class itemClass) { + public static BlockingQueue createQueue(Collection collection, Class itemClass) { if (useUnsafe) { return new LinkedTransferQueue(collection); } else {