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