1. 单测替换为默认的执行器

2. String类型的className使用Class代替
This commit is contained in:
daiqi
2022-02-10 20:32:35 +08:00
parent e4cebf0cee
commit 237803cb8f
6 changed files with 38 additions and 18 deletions

View File

@@ -0,0 +1,20 @@
package com.yomahub.liteflow.test.nodeExecutor;
import com.yomahub.liteflow.core.NodeComponent;
import com.yomahub.liteflow.entity.data.DataBus;
import com.yomahub.liteflow.entity.data.Slot;
import com.yomahub.liteflow.entity.executor.NodeExecutor;
/**
* 自定义默认的节点执行器
*/
public class CustomerDefaultNodeExecutor extends NodeExecutor {
@Override
public void execute(NodeComponent instance) throws Exception {
Slot slot = DataBus.getSlot(instance.getSlotIndex());
LOG.info("使用customerDefaultNodeExecutor进行执行");
slot.setData("customerDefaultNodeExecutor", this.getClass());
super.execute(instance);
}
}

View File

@@ -35,10 +35,10 @@ public class LiteflowNodeExecutorSpringbootTest extends BaseTest {
// 默认执行器测试
@Test
public void testDefaultExecutor() {
public void testCustomerDefaultNodeExecutor() {
LiteflowResponse<DefaultSlot> response = flowExecutor.execute2Resp("chain1", "arg");
Assert.assertTrue(response.isSuccess());
Assert.assertEquals(DefaultNodeExecutor.class, response.getSlot().getData("defaultNodeExecutor"));
Assert.assertEquals(CustomerDefaultNodeExecutor.class, response.getSlot().getData("customerDefaultNodeExecutor"));
Assert.assertEquals("a", response.getSlot().getExecuteStepStr());
}
@@ -47,7 +47,7 @@ public class LiteflowNodeExecutorSpringbootTest extends BaseTest {
public void testDefaultExecutorForRetry() {
LiteflowResponse<DefaultSlot> response = flowExecutor.execute2Resp("chain2", "arg");
Assert.assertTrue(response.isSuccess());
Assert.assertEquals(DefaultNodeExecutor.class, response.getSlot().getData("defaultNodeExecutor"));
Assert.assertEquals(CustomerDefaultNodeExecutor.class, response.getSlot().getData("customerDefaultNodeExecutor"));
Assert.assertEquals("b==>b==>b", response.getSlot().getExecuteStepStr());
}

View File

@@ -10,6 +10,7 @@ package com.yomahub.liteflow.test.nodeExecutor.cmp;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.annotation.LiteflowRetry;
import com.yomahub.liteflow.core.NodeComponent;
import com.yomahub.liteflow.entity.executor.NodeExecutor;
import com.yomahub.liteflow.test.nodeExecutor.CustomerNodeExecutor;
@LiteflowComponent("c")
@@ -22,7 +23,7 @@ public class CCmp extends NodeComponent {
}
@Override
public String getNodeExecutorClass() {
return CustomerNodeExecutor.class.getName();
public Class<? extends NodeExecutor> getNodeExecutorClass() {
return CustomerNodeExecutor.class;
}
}

View File

@@ -1,6 +1,7 @@
/**
* <p>Title: liteflow</p>
* <p>Description: 轻量级的组件式流程框架</p>
*
* @author Bryan.Zhang
* @email weenyc31@163.com
* @Date 2020/4/1
@@ -10,21 +11,21 @@ package com.yomahub.liteflow.test.nodeExecutor.cmp;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.annotation.LiteflowRetry;
import com.yomahub.liteflow.core.NodeComponent;
import com.yomahub.liteflow.test.nodeExecutor.CustomerNodeExecutor;
import com.yomahub.liteflow.entity.executor.NodeExecutor;
import com.yomahub.liteflow.test.nodeExecutor.CustomerNodeExecutorAndCustomRetry;
@LiteflowComponent("d")
@LiteflowRetry(retry = 5, forExceptions = {NullPointerException.class})
public class DCmp extends NodeComponent {
@Override
public void process() {
System.out.println("DCmp executed!");
throw new NullPointerException("demo exception");
}
@Override
public void process() {
System.out.println("DCmp executed!");
throw new NullPointerException("demo exception");
}
@Override
public String getNodeExecutorClass() {
return CustomerNodeExecutorAndCustomRetry.class.getName();
}
@Override
public Class<? extends NodeExecutor> getNodeExecutorClass() {
return CustomerNodeExecutorAndCustomRetry.class;
}
}

View File

@@ -1,4 +1,4 @@
liteflow.rule-source=nodeExecutor/flow.xml
liteflow.retry-count=3
liteflow.slot-size=512
liteflow.node-executor-class=com.yomahub.liteflow.entity.executor.DefaultNodeExecutor
liteflow.node-executor-class=com.yomahub.liteflow.test.nodeExecutor.CustomerDefaultNodeExecutor