From f086029b5138917f862c630e13633bfcb59b4c83 Mon Sep 17 00:00:00 2001 From: Francis Dong Date: Sat, 4 Sep 2021 22:07:31 +0800 Subject: [PATCH] Remove redundant result in the step context while there is no for-loop component #299 --- fizz-core/src/main/java/we/fizz/Pipeline.java | 5 +---- fizz-core/src/main/java/we/fizz/Step.java | 5 +---- fizz-core/src/main/java/we/fizz/component/circle/Circle.java | 5 +++++ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/fizz-core/src/main/java/we/fizz/Pipeline.java b/fizz-core/src/main/java/we/fizz/Pipeline.java index 14fe0f5..0b22468 100644 --- a/fizz-core/src/main/java/we/fizz/Pipeline.java +++ b/fizz-core/src/main/java/we/fizz/Pipeline.java @@ -175,10 +175,7 @@ public class Pipeline { StepContextPosition stepCtxPos = new StepContextPosition(step.getName()); return ComponentHelper.run(components, stepContext, stepCtxPos, (ctx, pos) -> { step.beforeRun(stepContext, null); - return createStep(step).flatMap(r -> { - ctx.addStepCircleResult(pos.getStepName()); - return Mono.just(r); - }); + return createStep(step); }).flatMap(sr -> { if (sr instanceof ComponentResult) { return Mono.just(stepResponse); diff --git a/fizz-core/src/main/java/we/fizz/Step.java b/fizz-core/src/main/java/we/fizz/Step.java index f98054d..4c7d0b4 100644 --- a/fizz-core/src/main/java/we/fizz/Step.java +++ b/fizz-core/src/main/java/we/fizz/Step.java @@ -141,10 +141,7 @@ public class Step { StepContextPosition stepCtxPos = new StepContextPosition(name, requestName); Mono result = ComponentHelper.run(components, stepContext, stepCtxPos, (ctx, pos) -> { if (input.needRun(ctx)) { - return input.run().flatMap(r -> { - ctx.addRequestCircleResult(pos.getStepName(), pos.getRequestName()); - return Mono.just(r); - }); + return input.run(); } return Mono.just(new HashMap()); }).flatMap(r -> { diff --git a/fizz-core/src/main/java/we/fizz/component/circle/Circle.java b/fizz-core/src/main/java/we/fizz/component/circle/Circle.java index eff9e0b..57ec2c3 100644 --- a/fizz-core/src/main/java/we/fizz/component/circle/Circle.java +++ b/fizz-core/src/main/java/we/fizz/component/circle/Circle.java @@ -288,6 +288,11 @@ public class Circle implements IComponent { return Mono.just(new CircleItemResult(ctxNode, nextItem2, null)); } return f.apply(stepContext, stepCtxPos).flatMap(r -> { + if (stepCtxPos.getRequestName() != null) { + stepContext.addRequestCircleResult(stepCtxPos.getStepName(), stepCtxPos.getRequestName()); + } else { + stepContext.addStepCircleResult(stepCtxPos.getStepName()); + } ONode ctxNode2 = ComponentHelper.toONode(stepContext); if (this.breakCircle(cItem.getIndex(), ctxNode2, stepContext, stepCtxPos)) { return Mono.empty();