This is an automated email from the ASF dual-hosted git repository.

hefengen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new b612264a16 [type: feature] Plugin of life cycle (#5031)
b612264a16 is described below

commit b612264a162350a7b6ea497bac26d5a74f8bdd1e
Author: Sinsy <[email protected]>
AuthorDate: Fri Aug 18 09:33:38 2023 +0800

    [type: feature] Plugin of life cycle (#5031)
    
    * feat: life cycle
    
    * fix: ci
    
    * fix: ci
    
    * fix: ci
    
    ---------
    
    Co-authored-by: likeguo <[email protected]>
    Co-authored-by: moremind <[email protected]>
---
 .../java/org/apache/shenyu/plugin/api/ShenyuPlugin.java  | 16 ++++++++++++++++
 .../org/apache/shenyu/web/handler/ShenyuWebHandler.java  |  5 ++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git 
a/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/ShenyuPlugin.java
 
b/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/ShenyuPlugin.java
index 616ffd2807..14981936f6 100644
--- 
a/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/ShenyuPlugin.java
+++ 
b/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/ShenyuPlugin.java
@@ -127,5 +127,21 @@ public interface ShenyuPlugin {
     default boolean skipExceptHttpLike(ServerWebExchange exchange) {
         return !skip(exchange, RpcTypeEnum.HTTP, RpcTypeEnum.SPRING_CLOUD);
     }
+
+    /**
+     * Plugin before operation.
+     *
+     * @param exchange context
+     */
+    default void before(ServerWebExchange exchange) {
+    }
+
+    /**
+     * Plugin after operation.
+     *
+     * @param exchange context
+     */
+    default void after(ServerWebExchange exchange) {
+    }
 }
 
diff --git 
a/shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java 
b/shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java
index a69eed2d1b..29eacc64b9 100644
--- 
a/shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java
+++ 
b/shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java
@@ -258,7 +258,10 @@ public final class ShenyuWebHandler implements WebHandler, 
ApplicationListener<P
                     if (skip) {
                         return this.execute(exchange);
                     }
-                    return plugin.execute(exchange, this);
+                    plugin.before(exchange);
+                    Mono<Void> execute = plugin.execute(exchange, this);
+                    plugin.after(exchange);
+                    return execute;
                 }
                 return Mono.empty();
             });

Reply via email to