From 417f7264fdb431b34adf8358b9dc2ac2bfcb87c1 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Wed, 5 Feb 2014 14:54:02 -0800 Subject: [PATCH] Reorganize the SPDY example - Move the server example to spdy.server - Move the client example to spdy.client - Fix inspection warnings --- .../client}/HttpResponseClientHandler.java | 8 ++--- .../client}/SpdyClient.java | 33 ++++++++++--------- .../client}/SpdyClientInitializer.java | 8 ++--- .../client}/SpdyClientProvider.java | 11 +++---- .../client}/SpdyClientStreamIdHandler.java | 4 +-- .../client}/SpdyFrameLogger.java | 12 +++---- .../client}/package-info.java | 12 +++---- .../spdy/{ => server}/SpdyOrHttpHandler.java | 8 ++--- .../example/spdy/{ => server}/SpdyServer.java | 9 ++--- .../spdy/{ => server}/SpdyServerHandler.java | 8 ++--- .../{ => server}/SpdyServerInitializer.java | 9 +++-- .../spdy/{ => server}/SpdyServerProvider.java | 10 +++--- .../spdy/{ => server}/package-info.java | 12 ++++--- 13 files changed, 72 insertions(+), 72 deletions(-) rename example/src/main/java/io/netty/example/{spdyclient => spdy/client}/HttpResponseClientHandler.java (94%) rename example/src/main/java/io/netty/example/{spdyclient => spdy/client}/SpdyClient.java (79%) rename example/src/main/java/io/netty/example/{spdyclient => spdy/client}/SpdyClientInitializer.java (93%) rename example/src/main/java/io/netty/example/{spdyclient => spdy/client}/SpdyClientProvider.java (87%) rename example/src/main/java/io/netty/example/{spdyclient => spdy/client}/SpdyClientStreamIdHandler.java (93%) rename example/src/main/java/io/netty/example/{spdyclient => spdy/client}/SpdyFrameLogger.java (88%) rename example/src/main/java/io/netty/example/{spdyclient => spdy/client}/package-info.java (78%) rename example/src/main/java/io/netty/example/spdy/{ => server}/SpdyOrHttpHandler.java (98%) rename example/src/main/java/io/netty/example/spdy/{ => server}/SpdyServer.java (88%) rename example/src/main/java/io/netty/example/spdy/{ => server}/SpdyServerHandler.java (97%) rename example/src/main/java/io/netty/example/spdy/{ => server}/SpdyServerInitializer.java (97%) rename example/src/main/java/io/netty/example/spdy/{ => server}/SpdyServerProvider.java (93%) rename example/src/main/java/io/netty/example/spdy/{ => server}/package-info.java (71%) diff --git a/example/src/main/java/io/netty/example/spdyclient/HttpResponseClientHandler.java b/example/src/main/java/io/netty/example/spdy/client/HttpResponseClientHandler.java similarity index 94% rename from example/src/main/java/io/netty/example/spdyclient/HttpResponseClientHandler.java rename to example/src/main/java/io/netty/example/spdy/client/HttpResponseClientHandler.java index 4c51d38f38..29fb74b4b0 100644 --- a/example/src/main/java/io/netty/example/spdyclient/HttpResponseClientHandler.java +++ b/example/src/main/java/io/netty/example/spdy/client/HttpResponseClientHandler.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdyclient; +package io.netty.example.spdy.client; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandlerContext; @@ -69,20 +69,20 @@ public class HttpResponseClientHandler extends SimpleChannelInboundHandler queue() { - return this.queue; + return queue; } } diff --git a/example/src/main/java/io/netty/example/spdyclient/SpdyClient.java b/example/src/main/java/io/netty/example/spdy/client/SpdyClient.java similarity index 79% rename from example/src/main/java/io/netty/example/spdyclient/SpdyClient.java rename to example/src/main/java/io/netty/example/spdy/client/SpdyClient.java index 9625838691..812ea50343 100644 --- a/example/src/main/java/io/netty/example/spdyclient/SpdyClient.java +++ b/example/src/main/java/io/netty/example/spdy/client/SpdyClient.java @@ -13,9 +13,8 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdyclient; +package io.netty.example.spdy.client; -import static java.util.concurrent.TimeUnit.SECONDS; import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; @@ -32,13 +31,15 @@ import io.netty.handler.codec.http.HttpVersion; import java.net.InetSocketAddress; import java.util.concurrent.BlockingQueue; +import static java.util.concurrent.TimeUnit.*; + /** * An SPDY client that allows you to send HTTP GET to a SPDY server. *

* This class must be run with the JVM parameter: {@code java -Xbootclasspath/p: ...}. The * "path_to_npn_boot_jar" is the path on the file system for the NPN Boot Jar file which can be downloaded from Maven at * coordinates org.mortbay.jetty.npn:npn-boot. Different versions applies to different OpenJDK versions. See - * {@link http://www.eclipse.org/jetty/documentation/current/npn-chapter.html Jetty docs} for more information. + * Jetty docs for more information. *

*/ public class SpdyClient { @@ -52,54 +53,54 @@ public class SpdyClient { public SpdyClient(String host, int port) { this.host = host; this.port = port; - this.httpResponseHandler = new HttpResponseClientHandler(); + httpResponseHandler = new HttpResponseClientHandler(); } public void start() { - if (this.channel != null) { + if (channel != null) { System.out.println("Already running!"); return; } - this.workerGroup = new NioEventLoopGroup(); + workerGroup = new NioEventLoopGroup(); Bootstrap b = new Bootstrap(); b.group(workerGroup); b.channel(NioSocketChannel.class); b.option(ChannelOption.SO_KEEPALIVE, true); - b.remoteAddress(new InetSocketAddress(this.host, this.port)); - b.handler(new SpdyClientInitializer(this.httpResponseHandler)); + b.remoteAddress(new InetSocketAddress(host, port)); + b.handler(new SpdyClientInitializer(httpResponseHandler)); // Start the client. - this.channel = b.connect().syncUninterruptibly().channel(); - System.out.println("Connected to [" + this.host + ":" + this.port + "]"); + channel = b.connect().syncUninterruptibly().channel(); + System.out.println("Connected to [" + host + ':' + port + ']'); } public void stop() { try { // Wait until the connection is closed. - this.channel.close().syncUninterruptibly(); + channel.close().syncUninterruptibly(); } finally { - if (this.workerGroup != null) { - this.workerGroup.shutdownGracefully(); + if (workerGroup != null) { + workerGroup.shutdownGracefully(); } } } public ChannelFuture send(HttpRequest request) { // Sends the HTTP request. - return this.channel.writeAndFlush(request); + return channel.writeAndFlush(request); } public HttpRequest get() { HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, ""); - request.headers().set(HttpHeaders.Names.HOST, this.host); + request.headers().set(HttpHeaders.Names.HOST, host); request.headers().set(HttpHeaders.Names.ACCEPT_ENCODING, HttpHeaders.Values.GZIP); return request; } public BlockingQueue httpResponseQueue() { - return this.httpResponseHandler.queue(); + return httpResponseHandler.queue(); } public static void main(String[] args) throws Exception { diff --git a/example/src/main/java/io/netty/example/spdyclient/SpdyClientInitializer.java b/example/src/main/java/io/netty/example/spdy/client/SpdyClientInitializer.java similarity index 93% rename from example/src/main/java/io/netty/example/spdyclient/SpdyClientInitializer.java rename to example/src/main/java/io/netty/example/spdy/client/SpdyClientInitializer.java index 84adabc09a..545cedb193 100644 --- a/example/src/main/java/io/netty/example/spdyclient/SpdyClientInitializer.java +++ b/example/src/main/java/io/netty/example/spdy/client/SpdyClientInitializer.java @@ -13,10 +13,8 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdyclient; +package io.netty.example.spdy.client; -import static io.netty.handler.codec.spdy.SpdyVersion.SPDY_3_1; -import static io.netty.util.internal.logging.InternalLogLevel.INFO; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; @@ -27,10 +25,12 @@ import io.netty.handler.codec.spdy.SpdyHttpDecoder; import io.netty.handler.codec.spdy.SpdyHttpEncoder; import io.netty.handler.codec.spdy.SpdySessionHandler; import io.netty.handler.ssl.SslHandler; +import org.eclipse.jetty.npn.NextProtoNego; import javax.net.ssl.SSLEngine; -import org.eclipse.jetty.npn.NextProtoNego; +import static io.netty.handler.codec.spdy.SpdyVersion.*; +import static io.netty.util.internal.logging.InternalLogLevel.*; public class SpdyClientInitializer extends ChannelInitializer { diff --git a/example/src/main/java/io/netty/example/spdyclient/SpdyClientProvider.java b/example/src/main/java/io/netty/example/spdy/client/SpdyClientProvider.java similarity index 87% rename from example/src/main/java/io/netty/example/spdyclient/SpdyClientProvider.java rename to example/src/main/java/io/netty/example/spdy/client/SpdyClientProvider.java index 621162391f..c4adedf39b 100644 --- a/example/src/main/java/io/netty/example/spdyclient/SpdyClientProvider.java +++ b/example/src/main/java/io/netty/example/spdy/client/SpdyClientProvider.java @@ -13,14 +13,13 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdyclient; +package io.netty.example.spdy.client; -import static io.netty.handler.codec.spdy.SpdyOrHttpChooser.SelectedProtocol.HTTP_1_1; -import static io.netty.handler.codec.spdy.SpdyOrHttpChooser.SelectedProtocol.SPDY_3_1; +import org.eclipse.jetty.npn.NextProtoNego.ClientProvider; import java.util.List; -import org.eclipse.jetty.npn.NextProtoNego.ClientProvider; +import static io.netty.handler.codec.spdy.SpdyOrHttpChooser.SelectedProtocol.*; /** * The Jetty project provides an implementation of the Transport Layer Security (TLS) extension for Next Protocol @@ -33,7 +32,7 @@ import org.eclipse.jetty.npn.NextProtoNego.ClientProvider; * "path_to_npn_boot_jar" is the path on the file system for the NPN Boot Jar file which can be downloaded from Maven * at coordinates org.mortbay.jetty.npn:npn-boot. Different versions applies to different OpenJDK versions. * - * @see http://www.eclipse.org/jetty/documentation/current/npn-chapter.html + * @see Jetty documentation */ public class SpdyClientProvider implements ClientProvider { @@ -54,6 +53,6 @@ public class SpdyClientProvider implements ClientProvider { @Override public void unsupported() { - this.selectedProtocol = HTTP_1_1.protocolName(); + selectedProtocol = HTTP_1_1.protocolName(); } } diff --git a/example/src/main/java/io/netty/example/spdyclient/SpdyClientStreamIdHandler.java b/example/src/main/java/io/netty/example/spdy/client/SpdyClientStreamIdHandler.java similarity index 93% rename from example/src/main/java/io/netty/example/spdyclient/SpdyClientStreamIdHandler.java rename to example/src/main/java/io/netty/example/spdy/client/SpdyClientStreamIdHandler.java index 48486fdd29..32c7ccbc94 100644 --- a/example/src/main/java/io/netty/example/spdyclient/SpdyClientStreamIdHandler.java +++ b/example/src/main/java/io/netty/example/spdy/client/SpdyClientStreamIdHandler.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdyclient; +package io.netty.example.spdy.client; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelOutboundHandlerAdapter; @@ -37,7 +37,7 @@ public class SpdyClientStreamIdHandler extends ChannelOutboundHandlerAdapter { if (acceptOutboundMessage(msg)) { HttpMessage httpMsg = (HttpMessage) msg; if (!httpMsg.headers().contains(SpdyHttpHeaders.Names.STREAM_ID)) { - SpdyHttpHeaders.setStreamId(httpMsg, this.currentStreamId); + SpdyHttpHeaders.setStreamId(httpMsg, currentStreamId); // Client stream IDs are always odd currentStreamId += 2; } diff --git a/example/src/main/java/io/netty/example/spdyclient/SpdyFrameLogger.java b/example/src/main/java/io/netty/example/spdy/client/SpdyFrameLogger.java similarity index 88% rename from example/src/main/java/io/netty/example/spdyclient/SpdyFrameLogger.java rename to example/src/main/java/io/netty/example/spdy/client/SpdyFrameLogger.java index e397959d4d..fd59242180 100644 --- a/example/src/main/java/io/netty/example/spdyclient/SpdyFrameLogger.java +++ b/example/src/main/java/io/netty/example/spdy/client/SpdyFrameLogger.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdyclient; +package io.netty.example.spdy.client; import io.netty.channel.ChannelDuplexHandler; import io.netty.channel.ChannelHandlerContext; @@ -40,7 +40,7 @@ public class SpdyFrameLogger extends ChannelDuplexHandler { throw new NullPointerException("level"); } - this.logger = InternalLoggerFactory.getInstance(getClass()); + logger = InternalLoggerFactory.getInstance(getClass()); this.level = level; } @@ -60,16 +60,16 @@ public class SpdyFrameLogger extends ChannelDuplexHandler { super.write(ctx, msg, promise); } - private boolean acceptMessage(Object msg) throws Exception { + private static boolean acceptMessage(Object msg) throws Exception { return msg instanceof SpdyFrame; } private void log(SpdyFrame msg, Direction d) { - if (logger.isEnabled(this.level)) { + if (logger.isEnabled(level)) { StringBuilder b = new StringBuilder("\n----------------").append(d.name()).append("--------------------\n"); - b.append(msg.toString()); + b.append(msg); b.append("\n------------------------------------"); - logger.log(this.level, b.toString()); + logger.log(level, b.toString()); } } } diff --git a/example/src/main/java/io/netty/example/spdyclient/package-info.java b/example/src/main/java/io/netty/example/spdy/client/package-info.java similarity index 78% rename from example/src/main/java/io/netty/example/spdyclient/package-info.java rename to example/src/main/java/io/netty/example/spdy/client/package-info.java index c454145548..d2984da255 100644 --- a/example/src/main/java/io/netty/example/spdyclient/package-info.java +++ b/example/src/main/java/io/netty/example/spdy/client/package-info.java @@ -16,21 +16,21 @@ /** * This package contains an example SPDY HTTP client. It will behave like a SPDY-enabled browser and you can see the - * SPDY frames flowing in and out using the {@link io.netty.example.spdyclient.SpdyFrameLogger}. + * SPDY frames flowing in and out using the {@link io.netty.example.spdy.client.SpdyFrameLogger}. * *

* This package relies on the Jetty project's implementation of the Transport Layer Security (TLS) extension for Next * Protocol Negotiation (NPN) for OpenJDK 7 is required. NPN allows the application layer to negotiate which * protocol, SPDY or HTTP, to use. *

- * To start, run {@link io.netty.example.spdy.SpdyServer} with the JVM parameter: + * To start, run {@link io.netty.example.spdy.server.SpdyServer} with the JVM parameter: * {@code java -Xbootclasspath/p: ...}. * The "path_to_npn_boot_jar" is the path on the file system for the NPN Boot Jar file which can be downloaded from * Maven at coordinates org.mortbay.jetty.npn:npn-boot. Different versions applies to different OpenJDK versions. - * See {@link http://www.eclipse.org/jetty/documentation/current/npn-chapter.html Jetty docs} for more information. + * See Jetty docs for more + * information. *

- * After that, you can run {@link io.netty.example.spdyclient.SpdyClient}, also settings the JVM parameter + * After that, you can run {@link io.netty.example.spdy.client.SpdyClient}, also settings the JVM parameter * mentioned above. */ -package io.netty.example.spdyclient; - +package io.netty.example.spdy.client; diff --git a/example/src/main/java/io/netty/example/spdy/SpdyOrHttpHandler.java b/example/src/main/java/io/netty/example/spdy/server/SpdyOrHttpHandler.java similarity index 98% rename from example/src/main/java/io/netty/example/spdy/SpdyOrHttpHandler.java rename to example/src/main/java/io/netty/example/spdy/server/SpdyOrHttpHandler.java index fac2fc69d1..b22c070d13 100644 --- a/example/src/main/java/io/netty/example/spdy/SpdyOrHttpHandler.java +++ b/example/src/main/java/io/netty/example/spdy/server/SpdyOrHttpHandler.java @@ -13,15 +13,13 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdy; - -import javax.net.ssl.SSLEngine; +package io.netty.example.spdy.server; import io.netty.channel.ChannelInboundHandler; +import io.netty.handler.codec.spdy.SpdyOrHttpChooser; import org.eclipse.jetty.npn.NextProtoNego; -import io.netty.handler.codec.spdy.SpdyOrHttpChooser; - +import javax.net.ssl.SSLEngine; import java.util.logging.Logger; /** diff --git a/example/src/main/java/io/netty/example/spdy/SpdyServer.java b/example/src/main/java/io/netty/example/spdy/server/SpdyServer.java similarity index 88% rename from example/src/main/java/io/netty/example/spdy/SpdyServer.java rename to example/src/main/java/io/netty/example/spdy/server/SpdyServer.java index 0de13d0481..45bab88c0c 100644 --- a/example/src/main/java/io/netty/example/spdy/SpdyServer.java +++ b/example/src/main/java/io/netty/example/spdy/server/SpdyServer.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdy; +package io.netty.example.spdy.server; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.Channel; @@ -28,11 +28,12 @@ import io.netty.channel.socket.nio.NioServerSocketChannel; * This class must be run with the JVM parameter: {@code java -Xbootclasspath/p: ...}. * The "path_to_npn_boot_jar" is the path on the file system for the NPN Boot Jar file which can be downloaded from * Maven at coordinates org.mortbay.jetty.npn:npn-boot. Different versions applies to different OpenJDK versions. - * See {@link http://www.eclipse.org/jetty/documentation/current/npn-chapter.html Jetty docs} for more information. + * See Jetty docs for more + * information. *

* Once started, you can test the server with your - * {@link http://en.wikipedia.org/wiki/SPDY#Browser_support_and_usage SPDY enabled web browser} by navigating - * to https://localhost:8443/. + * SPDY enabled web browser by navigating + * to https://localhost:8443/ */ public class SpdyServer { diff --git a/example/src/main/java/io/netty/example/spdy/SpdyServerHandler.java b/example/src/main/java/io/netty/example/spdy/server/SpdyServerHandler.java similarity index 97% rename from example/src/main/java/io/netty/example/spdy/SpdyServerHandler.java rename to example/src/main/java/io/netty/example/spdy/server/SpdyServerHandler.java index 9e624b94dd..9f69508142 100644 --- a/example/src/main/java/io/netty/example/spdy/SpdyServerHandler.java +++ b/example/src/main/java/io/netty/example/spdy/server/SpdyServerHandler.java @@ -13,9 +13,7 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdy; - -import java.util.Date; +package io.netty.example.spdy.server; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; @@ -27,6 +25,8 @@ import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.HttpRequest; import io.netty.util.CharsetUtil; +import java.util.Date; + import static io.netty.handler.codec.http.HttpHeaders.Names.*; import static io.netty.handler.codec.http.HttpHeaders.*; import static io.netty.handler.codec.http.HttpResponseStatus.*; @@ -51,7 +51,7 @@ public class SpdyServerHandler extends SimpleChannelInboundHandler { } boolean keepAlive = isKeepAlive(req); - ByteBuf content = Unpooled.copiedBuffer("Hello World " + (new Date()).toString(), CharsetUtil.UTF_8); + ByteBuf content = Unpooled.copiedBuffer("Hello World " + new Date(), CharsetUtil.UTF_8); FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, OK, content); response.headers().set(CONTENT_TYPE, "text/plain; charset=UTF-8"); diff --git a/example/src/main/java/io/netty/example/spdy/SpdyServerInitializer.java b/example/src/main/java/io/netty/example/spdy/server/SpdyServerInitializer.java similarity index 97% rename from example/src/main/java/io/netty/example/spdy/SpdyServerInitializer.java rename to example/src/main/java/io/netty/example/spdy/server/SpdyServerInitializer.java index f9412055a6..33b0dbed01 100644 --- a/example/src/main/java/io/netty/example/spdy/SpdyServerInitializer.java +++ b/example/src/main/java/io/netty/example/spdy/server/SpdyServerInitializer.java @@ -13,17 +13,16 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdy; - -import javax.net.ssl.SSLEngine; - -import org.eclipse.jetty.npn.NextProtoNego; +package io.netty.example.spdy.server; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.example.securechat.SecureChatSslContextFactory; import io.netty.handler.ssl.SslHandler; +import org.eclipse.jetty.npn.NextProtoNego; + +import javax.net.ssl.SSLEngine; /** * Sets up the Netty pipeline diff --git a/example/src/main/java/io/netty/example/spdy/SpdyServerProvider.java b/example/src/main/java/io/netty/example/spdy/server/SpdyServerProvider.java similarity index 93% rename from example/src/main/java/io/netty/example/spdy/SpdyServerProvider.java rename to example/src/main/java/io/netty/example/spdy/server/SpdyServerProvider.java index 15d3fa5b4e..d6292093a5 100644 --- a/example/src/main/java/io/netty/example/spdy/SpdyServerProvider.java +++ b/example/src/main/java/io/netty/example/spdy/server/SpdyServerProvider.java @@ -13,14 +13,14 @@ * License for the specific language governing permissions and limitations * under the License. */ -package io.netty.example.spdy; - -import java.util.Arrays; -import java.util.List; +package io.netty.example.spdy.server; import io.netty.handler.codec.spdy.SpdyOrHttpChooser; import org.eclipse.jetty.npn.NextProtoNego.ServerProvider; +import java.util.Arrays; +import java.util.List; + /** * The Jetty project provides an implementation of the Transport Layer Security (TLS) extension for Next * Protocol Negotiation (NPN) for OpenJDK 7 or greater. NPN allows the application layer to negotiate which @@ -32,7 +32,7 @@ import org.eclipse.jetty.npn.NextProtoNego.ServerProvider; * "path_to_npn_boot_jar" is the path on the file system for the NPN Boot Jar file which can be downloaded from * Maven at coordinates org.mortbay.jetty.npn:npn-boot. Different versions applies to different OpenJDK versions. * - * @see http://www.eclipse.org/jetty/documentation/current/npn-chapter.html + * @see Jetty documentation */ public class SpdyServerProvider implements ServerProvider { diff --git a/example/src/main/java/io/netty/example/spdy/package-info.java b/example/src/main/java/io/netty/example/spdy/server/package-info.java similarity index 71% rename from example/src/main/java/io/netty/example/spdy/package-info.java rename to example/src/main/java/io/netty/example/spdy/server/package-info.java index 5155ee2e85..a5ba39dd74 100644 --- a/example/src/main/java/io/netty/example/spdy/package-info.java +++ b/example/src/main/java/io/netty/example/spdy/server/package-info.java @@ -21,13 +21,15 @@ * Protocol Negotiation (NPN) for OpenJDK 7 is required. NPN allows the application layer to negotiate which * protocol, SPDY or HTTP, to use. *

- * To start, run {@link SpdyServer} with the JVM parameter: {@code java -Xbootclasspath/p: ...}. + * To start, run {@link io.netty.example.spdy.server.SpdyServer} with the JVM parameter: + * {@code java -Xbootclasspath/p: ...}. * The "path_to_npn_boot_jar" is the path on the file system for the NPN Boot Jar file which can be downloaded from * Maven at coordinates org.mortbay.jetty.npn:npn-boot. Different versions applies to different OpenJDK versions. - * See {@link http://www.eclipse.org/jetty/documentation/current/npn-chapter.html Jetty docs} for more information. + * See Jetty docs for more + * information. *

* Once started, you can test the server with your - * {@link http://en.wikipedia.org/wiki/SPDY#Browser_support_and_usage SPDY enabled web browser} by navigating - * to https://localhost:8443/. + * SPDY enabled web browser by navigating + * to https://localhost:8443/ */ -package io.netty.example.spdy; +package io.netty.example.spdy.server;