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;
         }
     }
 }

Reply via email to