From 4e689855f4c44b168697493823a054680b5b79ab Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Wed, 20 Jan 2021 13:20:03 +0800 Subject: [PATCH] --- src/org/redkale/mq/SncpMessageRequest.java | 2 +- src/org/redkale/net/AioTcpProtocolServer.java | 1 - src/org/redkale/net/BioUdpProtocolServer.java | 1 - src/org/redkale/net/NioTcpProtocolServer.java | 1 - src/org/redkale/net/Request.java | 6 +----- src/org/redkale/net/Server.java | 3 --- src/org/redkale/net/http/HttpRequest.java | 6 +++--- src/org/redkale/net/http/HttpServer.java | 9 +++------ src/org/redkale/net/sncp/SncpDynServlet.java | 8 +------- src/org/redkale/net/sncp/SncpRequest.java | 8 ++------ src/org/redkale/net/sncp/SncpServer.java | 9 +++------ 11 files changed, 14 insertions(+), 40 deletions(-) diff --git a/src/org/redkale/mq/SncpMessageRequest.java b/src/org/redkale/mq/SncpMessageRequest.java index 8cbe80a3c..b7f02b8f8 100644 --- a/src/org/redkale/mq/SncpMessageRequest.java +++ b/src/org/redkale/mq/SncpMessageRequest.java @@ -26,7 +26,7 @@ public class SncpMessageRequest extends SncpRequest { @SuppressWarnings("OverridableMethodCallInConstructor") public SncpMessageRequest(SncpContext context, MessageRecord message) { - super(context, null); + super(context); this.message = message; readHeader(ByteBuffer.wrap(message.getContent())); } diff --git a/src/org/redkale/net/AioTcpProtocolServer.java b/src/org/redkale/net/AioTcpProtocolServer.java index 2d5795d1b..ab0701b6d 100644 --- a/src/org/redkale/net/AioTcpProtocolServer.java +++ b/src/org/redkale/net/AioTcpProtocolServer.java @@ -79,7 +79,6 @@ public class AioTcpProtocolServer extends ProtocolServer { AtomicLong createResponseCounter = new AtomicLong(); AtomicLong cycleResponseCounter = new AtomicLong(); ObjectPool responsePool = server.createResponsePool(createResponseCounter, cycleResponseCounter, server.responsePoolSize); - responsePool.setCreator(server.createResponseCreator(bufferPool, responsePool)); final AsynchronousServerSocketChannel serchannel = this.serverChannel; serchannel.accept(null, new CompletionHandler() { diff --git a/src/org/redkale/net/BioUdpProtocolServer.java b/src/org/redkale/net/BioUdpProtocolServer.java index 0191eedb5..713284f43 100644 --- a/src/org/redkale/net/BioUdpProtocolServer.java +++ b/src/org/redkale/net/BioUdpProtocolServer.java @@ -78,7 +78,6 @@ public class BioUdpProtocolServer extends ProtocolServer { AtomicLong createResponseCounter = new AtomicLong(); AtomicLong cycleResponseCounter = new AtomicLong(); ObjectPool responsePool = server.createResponsePool(createResponseCounter, cycleResponseCounter, server.responsePoolSize); - responsePool.setCreator(server.createResponseCreator(bufferPool, responsePool)); final DatagramChannel serchannel = this.serverChannel; final int readTimeoutSeconds = this.context.readTimeoutSeconds; final int writeTimeoutSeconds = this.context.writeTimeoutSeconds; diff --git a/src/org/redkale/net/NioTcpProtocolServer.java b/src/org/redkale/net/NioTcpProtocolServer.java index 156dd1e82..7b4eb07df 100644 --- a/src/org/redkale/net/NioTcpProtocolServer.java +++ b/src/org/redkale/net/NioTcpProtocolServer.java @@ -91,7 +91,6 @@ public class NioTcpProtocolServer extends ProtocolServer { AtomicLong cycleResponseCounter = new AtomicLong(); this.responsePool = server.createResponsePool(createResponseCounter, cycleResponseCounter, server.responsePoolSize); - this.responsePool.setCreator(server.createResponseCreator(bufferPool, responsePool)); this.ioGroup = new NioThreadGroup(server.name, null, Runtime.getRuntime().availableProcessors(), bufferPool, responsePool); this.ioGroup.start(); diff --git a/src/org/redkale/net/Request.java b/src/org/redkale/net/Request.java index c8aa149e2..271f2ce6d 100644 --- a/src/org/redkale/net/Request.java +++ b/src/org/redkale/net/Request.java @@ -9,7 +9,6 @@ import java.nio.ByteBuffer; import java.util.*; import org.redkale.convert.bson.BsonConvert; import org.redkale.convert.json.JsonConvert; -import org.redkale.util.ObjectPool; /** * 协议请求对象 @@ -24,8 +23,6 @@ public abstract class Request { protected final C context; - protected final ObjectPool bufferPool; - protected final BsonConvert bsonConvert; protected final JsonConvert jsonConvert; @@ -48,9 +45,8 @@ public abstract class Request { protected final Map attributes = new HashMap<>(); - protected Request(C context, ObjectPool bufferPool) { + protected Request(C context) { this.context = context; - this.bufferPool = bufferPool; this.bsonConvert = context.getBsonConvert(); this.jsonConvert = context.getJsonConvert(); } diff --git a/src/org/redkale/net/Server.java b/src/org/redkale/net/Server.java index 23277af61..dd9bbb40c 100644 --- a/src/org/redkale/net/Server.java +++ b/src/org/redkale/net/Server.java @@ -368,9 +368,6 @@ public abstract class Server createResponsePool(AtomicLong createCounter, AtomicLong cycleCounter, int responsePoolSize); - //必须在 createResponsePool()之后调用 - protected abstract Creator createResponseCreator(ObjectPool bufferPool, ObjectPool responsePool); - public void shutdown() throws IOException { long s = System.currentTimeMillis(); logger.info(this.getClass().getSimpleName() + "-" + this.protocol + " shutdowning"); diff --git a/src/org/redkale/net/http/HttpRequest.java b/src/org/redkale/net/http/HttpRequest.java index 58f2d2fb4..6a42a4731 100644 --- a/src/org/redkale/net/http/HttpRequest.java +++ b/src/org/redkale/net/http/HttpRequest.java @@ -103,13 +103,13 @@ public class HttpRequest extends Request { Object attachment; //仅供HttpServlet传递Entry使用 - public HttpRequest(HttpContext context, ObjectPool bufferPool) { - super(context, bufferPool); + public HttpRequest(HttpContext context) { + super(context); this.remoteAddrHeader = context.remoteAddrHeader; } public HttpRequest(HttpContext context, HttpSimpleRequest req) { - super(context, null); + super(context); this.remoteAddrHeader = null; if (req != null) { this.rpc = req.rpc; diff --git a/src/org/redkale/net/http/HttpServer.java b/src/org/redkale/net/http/HttpServer.java index 8ebd0ac2e..8b7d162ae 100644 --- a/src/org/redkale/net/http/HttpServer.java +++ b/src/org/redkale/net/http/HttpServer.java @@ -469,11 +469,8 @@ public class HttpServer extends Server createResponsePool(AtomicLong createCounter, AtomicLong cycleCounter, int responsePoolSize) { - return HttpResponse.createPool(createCounter, cycleCounter, responsePoolSize, null); - } - - @Override - protected Creator createResponseCreator(ObjectPool bufferPool, ObjectPool responsePool) { - return (Object... params) -> new HttpResponse(this.context, new HttpRequest(this.context, bufferPool), responsePool, this.respConfig); + ObjectPool pool = HttpResponse.createPool(createCounter, cycleCounter, responsePoolSize, null); + pool.setCreator((Object... params) -> new HttpResponse(this.context, new HttpRequest(this.context), pool, this.respConfig)); + return pool; } } diff --git a/src/org/redkale/net/sncp/SncpDynServlet.java b/src/org/redkale/net/sncp/SncpDynServlet.java index 3c178cd44..c8411203c 100644 --- a/src/org/redkale/net/sncp/SncpDynServlet.java +++ b/src/org/redkale/net/sncp/SncpDynServlet.java @@ -10,12 +10,10 @@ import static org.redkale.net.sncp.SncpRequest.DEFAULT_HEADER; import java.io.*; import java.lang.annotation.*; import java.lang.reflect.*; -import java.nio.*; import java.nio.channels.CompletionHandler; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.*; import java.util.logging.*; import javax.annotation.*; import org.redkale.asm.*; @@ -47,7 +45,6 @@ public final class SncpDynServlet extends SncpServlet { private final HashMap actions = new HashMap<>(); - private Supplier bufferSupplier; public SncpDynServlet(final BsonConvert convert, final String serviceName, final Class serviceOrSourceType, final Service service, final AtomicInteger maxClassNameLength, AtomicInteger maxNameLength) { @@ -113,15 +110,12 @@ public final class SncpDynServlet extends SncpServlet { @Override @SuppressWarnings("unchecked") public void execute(SncpRequest request, SncpResponse response) throws IOException { - if (bufferSupplier == null) { - bufferSupplier = request.getBufferPool(); - } final SncpServletAction action = actions.get(request.getActionid()); //logger.log(Level.FINEST, "sncpdyn.execute: " + request + ", " + (action == null ? "null" : action.method)); if (action == null) { response.finish(SncpResponse.RETCODE_ILLACTIONID, null); //无效actionid } else { - BsonWriter out = bufferSupplier == null ? action.convert.pollBsonWriter() : action.convert.pollBsonWriter(bufferSupplier); + BsonWriter out = action.convert.pollBsonWriter(); out.writeTo(DEFAULT_HEADER); BsonReader in = action.convert.pollBsonReader(); SncpAsyncHandler handler = null; diff --git a/src/org/redkale/net/sncp/SncpRequest.java b/src/org/redkale/net/sncp/SncpRequest.java index 72374f691..29294400f 100644 --- a/src/org/redkale/net/sncp/SncpRequest.java +++ b/src/org/redkale/net/sncp/SncpRequest.java @@ -46,15 +46,11 @@ public class SncpRequest extends Request { private byte[] addrbytes = new byte[6]; - protected SncpRequest(SncpContext context, ObjectPool bufferPool) { - super(context, bufferPool); + protected SncpRequest(SncpContext context) { + super(context); this.convert = context.getBsonConvert(); } - protected ObjectPool getBufferPool() { - return this.bufferPool; - } - @Override protected int readHeader(ByteBuffer buffer) { if (buffer.remaining() < HEADER_SIZE) { diff --git a/src/org/redkale/net/sncp/SncpServer.java b/src/org/redkale/net/sncp/SncpServer.java index 03029b4e9..8f39b66b9 100644 --- a/src/org/redkale/net/sncp/SncpServer.java +++ b/src/org/redkale/net/sncp/SncpServer.java @@ -145,12 +145,9 @@ public class SncpServer extends Server createResponsePool(AtomicLong createCounter, AtomicLong cycleCounter, int responsePoolSize) { - return SncpResponse.createPool(createCounter, cycleCounter, responsePoolSize, null); - } - - @Override - protected Creator createResponseCreator(ObjectPool bufferPool, ObjectPool responsePool) { - return (Object... params) -> new SncpResponse(this.context, new SncpRequest(this.context, bufferPool), responsePool); + ObjectPool pool = SncpResponse.createPool(createCounter, cycleCounter, responsePoolSize, null); + pool.setCreator((Object... params) -> new SncpResponse(this.context, new SncpRequest(this.context), pool)); + return pool; } }