diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/remoting/MultiProtocolRemotingServer.java b/proxy/src/main/java/org/apache/rocketmq/proxy/remoting/MultiProtocolRemotingServer.java index 9f94c248ff..1142132b78 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/remoting/MultiProtocolRemotingServer.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/remoting/MultiProtocolRemotingServer.java @@ -52,10 +52,10 @@ public class MultiProtocolRemotingServer extends NettyRemotingServer { this.nettyServerConfig = nettyServerConfig; this.remotingProtocolHandler = new RemotingProtocolHandler( - this.getEncoder(), - this.getDistributionHandler(), - this.getConnectionManageHandler(), - this.getServerHandler()); + this::getEncoder, + this::getDistributionHandler, + this::getConnectionManageHandler, + this::getServerHandler); this.http2ProtocolProxyHandler = new Http2ProtocolProxyHandler(); } diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/remoting/RemotingProtocolHandler.java b/proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/remoting/RemotingProtocolHandler.java index 2d1a04d0e0..49fea89cdd 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/remoting/RemotingProtocolHandler.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/remoting/protocol/remoting/RemotingProtocolHandler.java @@ -19,6 +19,7 @@ package org.apache.rocketmq.proxy.remoting.protocol.remoting; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; +import java.util.function.Supplier; import org.apache.rocketmq.proxy.remoting.protocol.ProtocolHandler; import org.apache.rocketmq.remoting.netty.NettyDecoder; import org.apache.rocketmq.remoting.netty.NettyEncoder; @@ -27,19 +28,19 @@ import org.apache.rocketmq.remoting.netty.RemotingCodeDistributionHandler; public class RemotingProtocolHandler implements ProtocolHandler { - private final NettyEncoder encoder; - private final RemotingCodeDistributionHandler remotingCodeDistributionHandler; - private final NettyRemotingServer.NettyConnectManageHandler connectionManageHandler; - private final NettyRemotingServer.NettyServerHandler serverHandler; + private final Supplier encoderSupplier; + private final Supplier remotingCodeDistributionHandlerSupplier; + private final Supplier connectionManageHandlerSupplier; + private final Supplier serverHandlerSupplier; - public RemotingProtocolHandler(NettyEncoder encoder, - RemotingCodeDistributionHandler remotingCodeDistributionHandler, - NettyRemotingServer.NettyConnectManageHandler connectionManageHandler, - NettyRemotingServer.NettyServerHandler serverHandler) { - this.encoder = encoder; - this.remotingCodeDistributionHandler = remotingCodeDistributionHandler; - this.connectionManageHandler = connectionManageHandler; - this.serverHandler = serverHandler; + public RemotingProtocolHandler(Supplier encoderSupplier, + Supplier remotingCodeDistributionHandlerSupplier, + Supplier connectionManageHandlerSupplier, + Supplier serverHandlerSupplier) { + this.encoderSupplier = encoderSupplier; + this.remotingCodeDistributionHandlerSupplier = remotingCodeDistributionHandlerSupplier; + this.connectionManageHandlerSupplier = connectionManageHandlerSupplier; + this.serverHandlerSupplier = serverHandlerSupplier; } @Override @@ -50,11 +51,11 @@ public class RemotingProtocolHandler implements ProtocolHandler { @Override public void config(ChannelHandlerContext ctx, ByteBuf msg) { ctx.pipeline().addLast( - this.encoder, + this.encoderSupplier.get(), new NettyDecoder(), - this.remotingCodeDistributionHandler, - this.connectionManageHandler, - this.serverHandler + this.remotingCodeDistributionHandlerSupplier.get(), + this.connectionManageHandlerSupplier.get(), + this.serverHandlerSupplier.get() ); } }