From 96ca60685f99287a69ca8894edd633855f7b9add Mon Sep 17 00:00:00 2001 From: abhishek Date: Fri, 14 Jul 2023 09:06:49 +0530 Subject: [PATCH 1/7] Changs for Bug: https://github.com/apache/apisix-java-plugin-runner/issues/254 --- .../plugin/runner/handler/RpcCallHandler.java | 33 +++------- .../apisix/plugin/runner/PostRequest.java | 24 ++----- .../apisix/plugin/runner/PostResponse.java | 66 ++++++++++++------- 3 files changed, 59 insertions(+), 64 deletions(-) diff --git a/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java b/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java index f054ccfe..e5ef76fc 100644 --- a/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java +++ b/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java @@ -17,39 +17,22 @@ package org.apache.apisix.plugin.runner.handler; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.Map; -import java.util.Objects; -import java.util.Queue; -import java.util.Set; - import com.google.common.cache.Cache; import io.github.api7.A6.Err.Code; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; -import org.apache.apisix.plugin.runner.A6Conf; -import org.apache.apisix.plugin.runner.A6ErrRequest; -import org.apache.apisix.plugin.runner.A6ErrResponse; -import org.apache.apisix.plugin.runner.A6Request; -import org.apache.apisix.plugin.runner.ExtraInfoRequest; -import org.apache.apisix.plugin.runner.ExtraInfoResponse; -import org.apache.apisix.plugin.runner.HttpRequest; -import org.apache.apisix.plugin.runner.HttpResponse; -import org.apache.apisix.plugin.runner.PostRequest; -import org.apache.apisix.plugin.runner.PostResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.util.CollectionUtils; import lombok.RequiredArgsConstructor; - +import org.apache.apisix.plugin.runner.*; import org.apache.apisix.plugin.runner.constants.Constants; import org.apache.apisix.plugin.runner.filter.PluginFilter; import org.apache.apisix.plugin.runner.filter.PluginFilterChain; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.CollectionUtils; + +import java.util.*; @RequiredArgsConstructor public class RpcCallHandler extends SimpleChannelInboundHandler { @@ -168,7 +151,7 @@ private void handleHttpRespCall(ChannelHandlerContext ctx, PostRequest request) // save HttpCallRequest postReq = request; - postResp = new PostResponse(postReq.getRequestId()); + postResp = new PostResponse(postReq.getRequestId(), request.getUpstreamHeaders()); confToken = postReq.getConfToken(); A6Conf conf = cache.getIfPresent(confToken); @@ -229,7 +212,7 @@ private void handleExtraInfo(ChannelHandlerContext ctx, ExtraInfoResponse reques } } else if (EXTRA_INFO_RESP_BODY_KEY.equals(varsKey)) { if (!Objects.isNull(postReq)) { - postReq.setBody(result); + postReq.setBody( new String(result)); } } else { diff --git a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java index 88315f59..26b7258e 100644 --- a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java +++ b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java @@ -23,10 +23,7 @@ import org.springframework.util.CollectionUtils; import java.nio.ByteBuffer; -import java.nio.charset.Charset; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; +import java.util.*; public class PostRequest implements A6Request { private final Req req; @@ -35,11 +32,11 @@ public class PostRequest implements A6Request { private Map config; - private Map headers; + private Map> headers; private Integer status; - private byte[] body; + private String body; private Map vars; @@ -76,12 +73,13 @@ public String getConfig(PluginFilter filter) { return config.getOrDefault(filter.name(), null); } - public Map getUpstreamHeaders() { + public Map> getUpstreamHeaders() { if (Objects.isNull(headers)) { headers = new HashMap<>(); for (int i = 0; i < req.headersLength(); i++) { TextEntry header = req.headers(i); - headers.put(header.name(), header.value()); + headers.putIfAbsent(header.name(), new ArrayList<>()); + headers.get(header.name()).add(header.value()); } } return headers; @@ -95,19 +93,11 @@ public Integer getUpstreamStatusCode() { } public void setBody(String body) { - this.body = body.getBytes(); - } - - public void setBody(byte[] body) { this.body = body; } public String getBody() { - return new String(body); - } - - public String getBody(Charset charset) { - return new String(body, charset); + return body; } public String getVars(String key) { diff --git a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java index 127de5a0..6f16c9be 100644 --- a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java +++ b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java @@ -26,11 +26,8 @@ import org.springframework.util.StringUtils; import java.nio.ByteBuffer; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; +import java.util.*; public class PostResponse implements A6Response { @@ -42,13 +39,11 @@ public class PostResponse implements A6Response { private Integer statusCode; - private Map headers; + private Map> headers; - private Charset charset; - - public PostResponse(long requestId) { + public PostResponse(long requestId, Map> headers) { this.requestId = requestId; - this.charset = StandardCharsets.UTF_8; + this.headers = headers!=null ? new HashMap<>(headers) : new HashMap<>(); } @Override @@ -57,22 +52,33 @@ public ByteBuffer encode() { int bodyIndex = -1; if (StringUtils.hasText(body)) { - byte[] bodyBytes = body.getBytes(this.charset); + byte[] bodyBytes = body.getBytes(StandardCharsets.UTF_8); bodyIndex = Resp.createBodyVector(builder, bodyBytes); } int headerIndex = -1; if (!CollectionUtils.isEmpty(headers)) { - int[] headerTexts = new int[headers.size()]; + int hsize = 0; + for(String hkey: headers.keySet()){ + List headerValues = headers.get(hkey); + hsize += CollectionUtils.isEmpty(headerValues) ? 0 : headerValues.size(); + } + + int[] headerTexts = new int[hsize]; int i = -1; - for (Map.Entry header : headers.entrySet()) { + for (Map.Entry> header : headers.entrySet()) { int key = builder.createString(header.getKey()); - int value = 0; - if (!Objects.isNull(header.getValue())) { - value = builder.createString(header.getValue()); + List headerValues = header.getValue(); + if(!CollectionUtils.isEmpty(headerValues)){ + for(String hv: headerValues){ + int value = 0; + if (!Objects.isNull(hv)) { + value = builder.createString(hv); + } + int text = TextEntry.createTextEntry(builder, key, value); + headerTexts[++i] = text; + } } - int text = TextEntry.createTextEntry(builder, key, value); - headerTexts[++i] = text; } headerIndex = Resp.createHeadersVector(builder, headerTexts); } @@ -116,7 +122,27 @@ public void setHeader(String headerKey, String headerValue) { if (Objects.isNull(headers)) { headers = new HashMap<>(); } - headers.put(headerKey, headerValue); + + headers.put(headerKey, new ArrayList<>()); + headers.get(headerKey).add(headerValue); + } + + public void addHeader(String headerKey, String headerValue) { + if (headerKey == null) { + logger.warn("headerKey is null, ignore it"); + return; + } + + if (Objects.isNull(headers)) { + headers = new HashMap<>(); + } + + headers.putIfAbsent(headerKey, new ArrayList<>()); + headers.get(headerKey).add(headerValue); + } + + public Map> headers(){ + return headers; } public void setBody(String body) { @@ -126,8 +152,4 @@ public void setBody(String body) { public void setStatusCode(int statusCode) { this.statusCode = statusCode; } - - public void setCharset(Charset charset) { - this.charset = charset; - } } From dfb22aa79a6eaa09213c907aa68d0c04b4c87521 Mon Sep 17 00:00:00 2001 From: abhishek Date: Tue, 18 Jul 2023 22:31:33 +0530 Subject: [PATCH 2/7] Changs for Bug: https://github.com/apache/apisix-java-plugin-runner/issues/254 --- .../plugin/runner/handler/RpcCallHandler.java | 2 +- .../apache/apisix/plugin/runner/PostRequest.java | 13 +++++++++++-- .../apache/apisix/plugin/runner/PostResponse.java | 7 +++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java b/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java index e5ef76fc..0253c5be 100644 --- a/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java +++ b/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java @@ -212,7 +212,7 @@ private void handleExtraInfo(ChannelHandlerContext ctx, ExtraInfoResponse reques } } else if (EXTRA_INFO_RESP_BODY_KEY.equals(varsKey)) { if (!Objects.isNull(postReq)) { - postReq.setBody( new String(result)); + postReq.setBody(result); } } else { diff --git a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java index 26b7258e..a1c762bc 100644 --- a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java +++ b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java @@ -23,6 +23,7 @@ import org.springframework.util.CollectionUtils; import java.nio.ByteBuffer; +import java.nio.charset.Charset; import java.util.*; public class PostRequest implements A6Request { @@ -36,7 +37,7 @@ public class PostRequest implements A6Request { private Integer status; - private String body; + private byte[] body; private Map vars; @@ -93,11 +94,19 @@ public Integer getUpstreamStatusCode() { } public void setBody(String body) { + this.body = body.getBytes(); + } + + public void setBody(byte[] body) { this.body = body; } public String getBody() { - return body; + return new String(body); + } + + public String getBody(Charset charset) { + return new String(body, charset); } public String getVars(String key) { diff --git a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java index 6f16c9be..d2f4a6d3 100644 --- a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java +++ b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java @@ -26,6 +26,7 @@ import org.springframework.util.StringUtils; import java.nio.ByteBuffer; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.*; @@ -41,9 +42,12 @@ public class PostResponse implements A6Response { private Map> headers; + private Charset charset; + public PostResponse(long requestId, Map> headers) { this.requestId = requestId; this.headers = headers!=null ? new HashMap<>(headers) : new HashMap<>(); + this.charset = StandardCharsets.UTF_8; } @Override @@ -152,4 +156,7 @@ public void setBody(String body) { public void setStatusCode(int statusCode) { this.statusCode = statusCode; } + public void setCharset(Charset charset) { + this.charset = charset; + } } From 84b6753f81f41577d1b844860fa0cf9536f0c4ef Mon Sep 17 00:00:00 2001 From: abhishek Date: Tue, 18 Jul 2023 22:53:03 +0530 Subject: [PATCH 3/7] Changs for Bug: https://github.com/apache/apisix-java-plugin-runner/issues/254 Test case fixes --- .../apisix/plugin/runner/handler/PostFilterTest.java | 4 ++-- .../org/apache/apisix/plugin/runner/PostResponse.java | 2 +- .../apache/apisix/plugin/runner/PostResponseTest.java | 10 +++++----- .../apisix/plugin/runner/filter/ResponseFilter.java | 6 ++++-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/runner-core/src/test/java/org/apache/apisix/plugin/runner/handler/PostFilterTest.java b/runner-core/src/test/java/org/apache/apisix/plugin/runner/handler/PostFilterTest.java index 98b7e9e0..c2912bce 100644 --- a/runner-core/src/test/java/org/apache/apisix/plugin/runner/handler/PostFilterTest.java +++ b/runner-core/src/test/java/org/apache/apisix/plugin/runner/handler/PostFilterTest.java @@ -82,7 +82,7 @@ public void postFilter(PostRequest request, PostResponse response, PluginFilterC System.out.println("do post filter: UpStreamFilter, order: " + chain.getIndex()); System.out.println("do post filter: UpStreamFilter, conf: " + request.getConfig(this)); System.out.println("do post filter: UpStreamFilter, upstreamStatusCode: " + request.getUpstreamStatusCode()); - for (Map.Entry header : request.getUpstreamHeaders().entrySet()) { + for (Map.Entry> header : request.getUpstreamHeaders().entrySet()) { System.out.println("do post filter: UpStreamFilter, upstreamHeader key: " + header.getKey()); System.out.println("do post filter: UpStreamFilter, upstreamHeader value: " + header.getValue()); } @@ -150,6 +150,6 @@ void doPostFilter() { Assertions.assertTrue(bytes.toString().contains("do post filter: UpStreamFilter, conf: {\"conf_key1\":\"conf_value1\",\"conf_key2\":2}")); Assertions.assertTrue(bytes.toString().contains("do post filter: UpStreamFilter, upstreamStatusCode: 418")); Assertions.assertTrue(bytes.toString().contains("do post filter: UpStreamFilter, upstreamHeader key: headerKey")); - Assertions.assertTrue(bytes.toString().contains("do post filter: UpStreamFilter, upstreamHeader value: headerValue")); + Assertions.assertTrue(bytes.toString().contains("do post filter: UpStreamFilter, upstreamHeader value: [headerValue]")); } } diff --git a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java index d2f4a6d3..29a37a04 100644 --- a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java +++ b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java @@ -56,7 +56,7 @@ public ByteBuffer encode() { int bodyIndex = -1; if (StringUtils.hasText(body)) { - byte[] bodyBytes = body.getBytes(StandardCharsets.UTF_8); + byte[] bodyBytes = body.getBytes(this.charset); bodyIndex = Resp.createBodyVector(builder, bodyBytes); } diff --git a/runner-plugin-sdk/src/test/java/org/apache/apisix/plugin/runner/PostResponseTest.java b/runner-plugin-sdk/src/test/java/org/apache/apisix/plugin/runner/PostResponseTest.java index 1c8a4de8..c534f701 100644 --- a/runner-plugin-sdk/src/test/java/org/apache/apisix/plugin/runner/PostResponseTest.java +++ b/runner-plugin-sdk/src/test/java/org/apache/apisix/plugin/runner/PostResponseTest.java @@ -23,9 +23,7 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import java.util.*; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -37,8 +35,9 @@ void testEncodeWithSetCharset() { long requestId = 1L; String body = "dummy body"; Charset charset = StandardCharsets.UTF_16; + Map> headers = new HashMap<>(); - PostResponse postResponse = new PostResponse(requestId); + PostResponse postResponse = new PostResponse(requestId, headers); postResponse.setBody(body); postResponse.setCharset(charset); @@ -53,8 +52,9 @@ void testEncodeWithoutSetCharset() { long requestId = 1L; String body = "dummy body"; Charset charset = StandardCharsets.UTF_8; + Map> headers = new HashMap<>(); - PostResponse postResponse = new PostResponse(requestId); + PostResponse postResponse = new PostResponse(requestId, headers); postResponse.setBody(body); ByteBuffer encoded = postResponse.encode(); diff --git a/sample/src/main/java/org/apache/apisix/plugin/runner/filter/ResponseFilter.java b/sample/src/main/java/org/apache/apisix/plugin/runner/filter/ResponseFilter.java index 7a45aa32..e45fa4d9 100644 --- a/sample/src/main/java/org/apache/apisix/plugin/runner/filter/ResponseFilter.java +++ b/sample/src/main/java/org/apache/apisix/plugin/runner/filter/ResponseFilter.java @@ -21,8 +21,10 @@ import org.apache.apisix.plugin.runner.PostRequest; import org.apache.apisix.plugin.runner.PostResponse; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import java.util.HashMap; +import java.util.List; import java.util.Map; @Component @@ -39,8 +41,8 @@ public void postFilter(PostRequest request, PostResponse response, PluginFilterC Map conf = new HashMap<>(); conf = gson.fromJson(configStr, conf.getClass()); - Map headers = request.getUpstreamHeaders(); - String contentType = headers.get("Content-Type"); + Map> headers = request.getUpstreamHeaders(); + String contentType = CollectionUtils.isEmpty(headers.get("Content-Type")) ? null : headers.get("Content-Type").get(0); Integer upstreamStatusCode = request.getUpstreamStatusCode(); response.setStatusCode(Double.valueOf(conf.get("response_code").toString()).intValue()); From 08fb475c321cec1bf918e0d5521e3bb91036ba13 Mon Sep 17 00:00:00 2001 From: abhishek Date: Wed, 9 Aug 2023 10:01:37 +0530 Subject: [PATCH 4/7] Changs for Bug: https://github.com/apache/apisix-java-plugin-runner/issues/254 --- .../apisix/plugin/runner/PostRequest.java | 6 +++++- .../apisix/plugin/runner/PostResponse.java | 17 +++++++++++------ .../apisix/plugin/runner/PostResponseTest.java | 6 +++++- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java index a1c762bc..6a10fe5d 100644 --- a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java +++ b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostRequest.java @@ -24,7 +24,11 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.ArrayList; public class PostRequest implements A6Request { private final Req req; diff --git a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java index 29a37a04..083d5ca1 100644 --- a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java +++ b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java @@ -28,7 +28,11 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.ArrayList; public class PostResponse implements A6Response { @@ -46,7 +50,7 @@ public class PostResponse implements A6Response { public PostResponse(long requestId, Map> headers) { this.requestId = requestId; - this.headers = headers!=null ? new HashMap<>(headers) : new HashMap<>(); + this.headers = headers != null ? new HashMap<>(headers) : new HashMap<>(); this.charset = StandardCharsets.UTF_8; } @@ -63,7 +67,7 @@ public ByteBuffer encode() { int headerIndex = -1; if (!CollectionUtils.isEmpty(headers)) { int hsize = 0; - for(String hkey: headers.keySet()){ + for (String hkey: headers.keySet()) { List headerValues = headers.get(hkey); hsize += CollectionUtils.isEmpty(headerValues) ? 0 : headerValues.size(); } @@ -73,8 +77,8 @@ public ByteBuffer encode() { for (Map.Entry> header : headers.entrySet()) { int key = builder.createString(header.getKey()); List headerValues = header.getValue(); - if(!CollectionUtils.isEmpty(headerValues)){ - for(String hv: headerValues){ + if (!CollectionUtils.isEmpty(headerValues)) { + for (String hv: headerValues) { int value = 0; if (!Objects.isNull(hv)) { value = builder.createString(hv); @@ -145,7 +149,7 @@ public void addHeader(String headerKey, String headerValue) { headers.get(headerKey).add(headerValue); } - public Map> headers(){ + public Map> headers() { return headers; } @@ -156,6 +160,7 @@ public void setBody(String body) { public void setStatusCode(int statusCode) { this.statusCode = statusCode; } + public void setCharset(Charset charset) { this.charset = charset; } diff --git a/runner-plugin-sdk/src/test/java/org/apache/apisix/plugin/runner/PostResponseTest.java b/runner-plugin-sdk/src/test/java/org/apache/apisix/plugin/runner/PostResponseTest.java index c534f701..2b2ba854 100644 --- a/runner-plugin-sdk/src/test/java/org/apache/apisix/plugin/runner/PostResponseTest.java +++ b/runner-plugin-sdk/src/test/java/org/apache/apisix/plugin/runner/PostResponseTest.java @@ -23,7 +23,11 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; import static org.junit.jupiter.api.Assertions.assertTrue; From 09055ae8dff93783a3c50ec81de7b76c6cc3863c Mon Sep 17 00:00:00 2001 From: abhishek Date: Wed, 9 Aug 2023 23:52:35 +0530 Subject: [PATCH 5/7] Changs for Bug: https://github.com/apache/apisix-java-plugin-runner/issues/254 --- .../java/org/apache/apisix/plugin/runner/PostResponse.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java index 083d5ca1..f4736f1c 100644 --- a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java +++ b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/PostResponse.java @@ -135,7 +135,7 @@ public void setHeader(String headerKey, String headerValue) { headers.get(headerKey).add(headerValue); } - public void addHeader(String headerKey, String headerValue) { + private void addHeader(String headerKey, String headerValue) { if (headerKey == null) { logger.warn("headerKey is null, ignore it"); return; @@ -149,7 +149,7 @@ public void addHeader(String headerKey, String headerValue) { headers.get(headerKey).add(headerValue); } - public Map> headers() { + private Map> headers() { return headers; } From 6c36457ed0edbfa21936e66608d018ba2f7c4708 Mon Sep 17 00:00:00 2001 From: abhishek Date: Wed, 9 Aug 2023 23:54:23 +0530 Subject: [PATCH 6/7] Changs for Bug: https://github.com/apache/apisix-java-plugin-runner/issues/254 --- .../apisix/plugin/runner/handler/RpcCallHandler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java b/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java index 0253c5be..3ba645d8 100644 --- a/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java +++ b/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java @@ -32,7 +32,15 @@ import org.slf4j.LoggerFactory; import org.springframework.util.CollectionUtils; -import java.util.*; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import java.util.HashSet; +import java.util.Collection; +import java.util.Objects; + @RequiredArgsConstructor public class RpcCallHandler extends SimpleChannelInboundHandler { From 9b6f076de455fcf67ba421a102dd2568abd93b01 Mon Sep 17 00:00:00 2001 From: abhishek Date: Thu, 17 Aug 2023 23:20:41 +0530 Subject: [PATCH 7/7] Changes for Bug: https://github.com/apache/apisix-java-plugin-runner/issues/254 --- .../apisix/plugin/runner/handler/RpcCallHandler.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java b/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java index 3ba645d8..4876356e 100644 --- a/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java +++ b/runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java @@ -24,7 +24,16 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import lombok.RequiredArgsConstructor; -import org.apache.apisix.plugin.runner.*; +import org.apache.apisix.plugin.runner.A6Conf; +import org.apache.apisix.plugin.runner.A6Request; +import org.apache.apisix.plugin.runner.HttpRequest; +import org.apache.apisix.plugin.runner.PostRequest; +import org.apache.apisix.plugin.runner.HttpResponse; +import org.apache.apisix.plugin.runner.PostResponse; +import org.apache.apisix.plugin.runner.A6ErrRequest; +import org.apache.apisix.plugin.runner.A6ErrResponse; +import org.apache.apisix.plugin.runner.ExtraInfoResponse; +import org.apache.apisix.plugin.runner.ExtraInfoRequest; import org.apache.apisix.plugin.runner.constants.Constants; import org.apache.apisix.plugin.runner.filter.PluginFilter; import org.apache.apisix.plugin.runner.filter.PluginFilterChain; @@ -41,7 +50,6 @@ import java.util.Collection; import java.util.Objects; - @RequiredArgsConstructor public class RpcCallHandler extends SimpleChannelInboundHandler {