From a2732c6542d24cb28ee32f612f7c97c9d2216a54 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Tue, 26 Jan 2016 15:03:59 +0100 Subject: [PATCH] [#4755] Make WebSocketClientCompressionHandler @Sharable Motivation: WebSocketClientCompressionHandler is stateless so it should be @Sharable. Modifications: Add @Sharable annotation to WebSocketClientCompressionHandler, make constructor private and add static field to get the instance. Result: Less object creation. --- .../WebSocketClientCompressionHandler.java | 11 ++++++----- .../http/websocketx/client/WebSocketClient.java | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/WebSocketClientCompressionHandler.java b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/WebSocketClientCompressionHandler.java index 3596ab658f..bfd0375acc 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/WebSocketClientCompressionHandler.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/WebSocketClientCompressionHandler.java @@ -15,6 +15,7 @@ */ package io.netty.handler.codec.http.websocketx.extensions.compression; +import io.netty.channel.ChannelHandler; import io.netty.handler.codec.http.websocketx.extensions.WebSocketClientExtensionHandler; /** @@ -23,12 +24,12 @@ import io.netty.handler.codec.http.websocketx.extensions.WebSocketClientExtensio * * See io.netty.example.http.websocketx.client.WebSocketClient for usage. */ -public class WebSocketClientCompressionHandler extends WebSocketClientExtensionHandler { +@ChannelHandler.Sharable +public final class WebSocketClientCompressionHandler extends WebSocketClientExtensionHandler { - /** - * Constructor with default configuration. - */ - public WebSocketClientCompressionHandler() { + public static final WebSocketClientCompressionHandler INSTANCE = new WebSocketClientCompressionHandler(); + + private WebSocketClientCompressionHandler() { super(new PerMessageDeflateClientExtensionHandshaker(), new DeflateFrameClientExtensionHandshaker(false), new DeflateFrameClientExtensionHandshaker(true)); diff --git a/example/src/main/java/io/netty/example/http/websocketx/client/WebSocketClient.java b/example/src/main/java/io/netty/example/http/websocketx/client/WebSocketClient.java index 4c56d6c3ae..8aa3b5cdbc 100644 --- a/example/src/main/java/io/netty/example/http/websocketx/client/WebSocketClient.java +++ b/example/src/main/java/io/netty/example/http/websocketx/client/WebSocketClient.java @@ -113,7 +113,7 @@ public final class WebSocketClient { p.addLast( new HttpClientCodec(), new HttpObjectAggregator(8192), - new WebSocketClientCompressionHandler(), + WebSocketClientCompressionHandler.INSTANCE, handler); } });