This is an automated email from the ASF dual-hosted git repository.
tzssangglass pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/apisix-java-plugin-runner.git
The following commit(s) were added to refs/heads/main by this push:
new 3da21b9 chore: support run on macos (#103)
3da21b9 is described below
commit 3da21b98fc435dc239af6f1d8a9ceebdd6f1686f
Author: tzssangglass <[email protected]>
AuthorDate: Fri Dec 31 20:25:30 2021 +0800
chore: support run on macos (#103)
---
.../plugin/runner/server/ApplicationRunner.java | 50 ++++++++++++++--------
.../src/main/resources/application.properties | 4 +-
.../plugin/runner/filter/PluginFilterChain.java | 3 --
3 files changed, 33 insertions(+), 24 deletions(-)
diff --git
a/runner-core/src/main/java/org/apache/apisix/plugin/runner/server/ApplicationRunner.java
b/runner-core/src/main/java/org/apache/apisix/plugin/runner/server/ApplicationRunner.java
index 2d3fc20..169fff1 100644
---
a/runner-core/src/main/java/org/apache/apisix/plugin/runner/server/ApplicationRunner.java
+++
b/runner-core/src/main/java/org/apache/apisix/plugin/runner/server/ApplicationRunner.java
@@ -22,8 +22,12 @@ import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.EventLoopGroup;
+import io.netty.channel.epoll.Epoll;
import io.netty.channel.epoll.EpollEventLoopGroup;
import io.netty.channel.epoll.EpollServerDomainSocketChannel;
+import io.netty.channel.kqueue.KQueue;
+import io.netty.channel.kqueue.KQueueEventLoopGroup;
+import io.netty.channel.kqueue.KQueueServerDomainSocketChannel;
import io.netty.channel.unix.DomainSocketAddress;
import io.netty.channel.unix.DomainSocketChannel;
import io.netty.handler.logging.LoggingHandler;
@@ -84,10 +88,22 @@ public class ApplicationRunner implements CommandLineRunner
{
}
public void start(String path) throws Exception {
- EventLoopGroup group = new EpollEventLoopGroup();
+ EventLoopGroup group;
+ ServerBootstrap bootstrap = new ServerBootstrap();
+ if (KQueue.isAvailable()) {
+ group = new KQueueEventLoopGroup();
+
bootstrap.group(group).channel(KQueueServerDomainSocketChannel.class);
+ } else if (Epoll.isAvailable()) {
+ group = new EpollEventLoopGroup();
+
bootstrap.group(group).channel(EpollServerDomainSocketChannel.class);
+ } else {
+ String errMsg = "java runner is only support epoll or kqueue";
+ logger.warn(errMsg);
+ throw new RuntimeException(errMsg);
+ }
+
try {
- ServerBootstrap bootstrap = new ServerBootstrap();
- initServerBootstrap(group, bootstrap);
+ initServerBootstrap(bootstrap);
ChannelFuture future = bootstrap.bind(new
DomainSocketAddress(path)).sync();
Runtime.getRuntime().exec("chmod 777 " + socketFile);
logger.warn("java runner is listening on the socket file: {}",
socketFile);
@@ -98,21 +114,19 @@ public class ApplicationRunner implements
CommandLineRunner {
}
}
- private ServerBootstrap initServerBootstrap(EventLoopGroup group,
ServerBootstrap bootstrap) {
- return bootstrap.group(group)
- .channel(EpollServerDomainSocketChannel.class)
- .childHandler(new ChannelInitializer<DomainSocketChannel>() {
- @Override
- protected void initChannel(DomainSocketChannel channel) {
- channel.pipeline().addFirst("logger", new
LoggingHandler())
- .addAfter("logger", "payloadEncoder", new
PayloadEncoder())
- .addAfter("payloadEncoder", "delayedDecoder",
new BinaryProtocolDecoder())
- .addLast("payloadDecoder", new
PayloadDecoder())
- .addAfter("payloadDecoder",
"prepareConfHandler", createConfigReqHandler(cache, beanProvider))
- .addAfter("prepareConfHandler",
"hTTPReqCallHandler", createA6HttpHandler(cache));
-
- }
- });
+ private void initServerBootstrap(ServerBootstrap bootstrap) {
+ bootstrap.childHandler(new ChannelInitializer<DomainSocketChannel>() {
+ @Override
+ protected void initChannel(DomainSocketChannel channel) {
+ channel.pipeline().addFirst("logger", new LoggingHandler())
+ .addAfter("logger", "payloadEncoder", new
PayloadEncoder())
+ .addAfter("payloadEncoder", "delayedDecoder", new
BinaryProtocolDecoder())
+ .addLast("payloadDecoder", new PayloadDecoder())
+ .addAfter("payloadDecoder", "prepareConfHandler",
createConfigReqHandler(cache, beanProvider))
+ .addAfter("prepareConfHandler", "hTTPReqCallHandler",
createA6HttpHandler(cache));
+
+ }
+ });
}
@Override
diff --git a/runner-core/src/main/resources/application.properties
b/runner-core/src/main/resources/application.properties
index 3d3a7dc..de48d80 100644
--- a/runner-core/src/main/resources/application.properties
+++ b/runner-core/src/main/resources/application.properties
@@ -16,6 +16,4 @@
#
#
-#spring.rsocket.server.port=7000
-
-#logging.level.root=DEBUG
+# logging.level.root=DEBUG
diff --git
a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/filter/PluginFilterChain.java
b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/filter/PluginFilterChain.java
index e33d0a9..1b3087b 100644
---
a/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/filter/PluginFilterChain.java
+++
b/runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/filter/PluginFilterChain.java
@@ -51,9 +51,6 @@ public class PluginFilterChain {
PluginFilterChain next = new PluginFilterChain(this,
this.index + 1);
filter.filter(request, response, next);
- } else {
- //TODO log error
- return;
}
}
}