From 601b31433d2a227393e9307ff02fb6b7ef2ac467 Mon Sep 17 00:00:00 2001 From: limbo Date: Sun, 23 Aug 2026 01:17:48 +0800 Subject: [PATCH] fix: precompute default modules in context decorators --- .../plugin/divide/context/DivideShenyuContextDecorator.java | 4 +++- .../divide/context/DivideShenyuContextDecoratorTest.java | 2 ++ .../websocket/context/WebSocketShenyuContextDecorator.java | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/context/DivideShenyuContextDecorator.java b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/context/DivideShenyuContextDecorator.java index 199548c508b6..727854aba0fa 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/context/DivideShenyuContextDecorator.java +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/context/DivideShenyuContextDecorator.java @@ -30,6 +30,8 @@ */ public class DivideShenyuContextDecorator implements ShenyuContextDecorator { + private static final String DEFAULT_MODULE = PluginEnum.DIVIDE.getName() + "-" + RpcTypeEnum.HTTP.getName(); + @Override public ShenyuContext decorator(final ShenyuContext shenyuContext, final MetaData metaData) { String path = shenyuContext.getPath(); @@ -37,7 +39,7 @@ public ShenyuContext decorator(final ShenyuContext shenyuContext, final MetaData shenyuContext.setRealUrl(path); shenyuContext.setRpcType(RpcTypeEnum.HTTP.getName()); shenyuContext.setModule(Optional.ofNullable(metaData).map(MetaData::getAppName) - .orElse(String.format("%s-%s", PluginEnum.DIVIDE.getName(), shenyuContext.getRpcType()))); + .orElse(DEFAULT_MODULE)); return shenyuContext; } } diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/test/java/org/apache/shenyu/plugin/divide/context/DivideShenyuContextDecoratorTest.java b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/test/java/org/apache/shenyu/plugin/divide/context/DivideShenyuContextDecoratorTest.java index f609f52ae906..31dbf40361a2 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/test/java/org/apache/shenyu/plugin/divide/context/DivideShenyuContextDecoratorTest.java +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/test/java/org/apache/shenyu/plugin/divide/context/DivideShenyuContextDecoratorTest.java @@ -19,6 +19,7 @@ import org.apache.shenyu.common.dto.MetaData; import org.apache.shenyu.plugin.api.context.ShenyuContext; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -54,5 +55,6 @@ public void decoratorTest() { ShenyuContext decorator = divideShenyuContextDecorator.decorator(shenyuContext, metaData); assert MOCK_CONTEXT_PATH.equals(decorator.getMethod()); assert MOCK_CONTEXT_PATH.equals(decorator.getRealUrl()); + Assertions.assertEquals("divide-http", decorator.getModule()); } } diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-websocket/src/main/java/org/apache/shenyu/plugin/websocket/context/WebSocketShenyuContextDecorator.java b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-websocket/src/main/java/org/apache/shenyu/plugin/websocket/context/WebSocketShenyuContextDecorator.java index 910f1c5e44bc..3ec64cab5be4 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-websocket/src/main/java/org/apache/shenyu/plugin/websocket/context/WebSocketShenyuContextDecorator.java +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-websocket/src/main/java/org/apache/shenyu/plugin/websocket/context/WebSocketShenyuContextDecorator.java @@ -29,6 +29,8 @@ * The type WebSocket shenyu context decorator. */ public class WebSocketShenyuContextDecorator implements ShenyuContextDecorator { + + private static final String DEFAULT_MODULE = PluginEnum.WEB_SOCKET.getName() + "-" + RpcTypeEnum.WEB_SOCKET.getName(); @Override public ShenyuContext decorator(final ShenyuContext shenyuContext, final MetaData metaData) { @@ -37,7 +39,7 @@ public ShenyuContext decorator(final ShenyuContext shenyuContext, final MetaData shenyuContext.setRealUrl(path); shenyuContext.setRpcType(RpcTypeEnum.WEB_SOCKET.getName()); shenyuContext.setModule(Optional.ofNullable(metaData).map(MetaData::getAppName) - .orElse(String.format("%s-%s", PluginEnum.WEB_SOCKET.getName(), shenyuContext.getRpcType()))); + .orElse(DEFAULT_MODULE)); return shenyuContext; }