Aias00 opened a new issue, #8011:
URL: https://github.com/apache/shenyu/issues/8011

   ## Description
   
   Follow-up to the plugin orchestration review against master `34f2ed036` and 
design PR #8007 (`f2839049c`). Parent proposal: #7993. Owning 
implementation/design task: #7994. Related tasks: #7995, #7996, #8001.
   
   This issue refines the existing work breakdown; it does not assert that 
GRAPH execution is already implemented or that the proposed design has been 
accepted. HTTP/RPC API aggregation and parallel plugin execution remain out of 
scope.
   
   ## Problem
   
   A CHOICE edge to grpc or dubbo does not change ShenyuContext.rpcType, 
resolve RPC metadata or transform arguments. GlobalPlugin establishes context 
before downstream skip checks. PR #8007's valid CHOICE example compares 
req_method with grpc, but RequestMethodParameterData returns the incoming HTTP 
method (for example GET/POST), not the gateway RPC type. The example therefore 
cannot establish a valid HTTP-to-gRPC branch.
   
   ## Code and design evidence
   
   - 
[contract](https://github.com/apache/shenyu/blob/f2839049ca3873cde0b0c8fe6ff519c040dc905a/docs/plugin-graph-orchestration.md)
 ยง16.2
   - [metadata/protocol 
resolution](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-global/src/main/java/org/apache/shenyu/plugin/global/DefaultShenyuContextBuilder.java)
   - [request-method condition 
extractor](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/condition/data/RequestMethodParameterData.java)
   - [gRPC skip and metadata 
requirements](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/src/main/java/org/apache/shenyu/plugin/grpc/GrpcPlugin.java)
   - [RPC parameter 
preparation](https://github.com/apache/shenyu/blob/34f2ed036/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-transform/src/main/java/org/apache/shenyu/plugin/transform/RpcParamTransformPlugin.java)
   
   ## Task List
   
   - State that graph branching selects middleware paths and does not 
implicitly perform protocol conversion or API composition.
   - Replace the invalid example with executable same-protocol branches, or 
define a supported rpcType condition extractor and demonstrate all required 
metadata/parameter dependencies.
   - Compile/reject unknown condition names, operators and match strategies 
using actual installed SPI support.
   - Define request-time behavior when a protocol-specific plugin is skipped; 
do not count a structurally present but skipped node as a completed call.
   
   ## Acceptance criteria
   
   - POST is never interpreted as grpc merely because a branch targets a grpc 
node.
   - Documentation conditions resolve to real SPI extractors and strategies.
   - Tests cover HTTP and RPC contexts, skipped protocol nodes, missing 
metadata and valid branch selection without implicit conversion.
   
   ## Dependencies and sequencing
   
   Resolve the contract portion in #7994 / PR #8007 before depending 
implementation hardens this assumption. Deliver code and integration coverage 
under #7994 and the related tasks above. Existing issue dependencies remain in 
effect; this issue adds a focused review requirement rather than a duplicate 
full implementation task.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to