Ver código fonte

enhancement #I7K3T1 自带AOP拦截需要增强获取tag等信息

everywhere.z 1 ano atrás
pai
commit
de34fd83e0

+ 3 - 12
liteflow-core/src/main/java/com/yomahub/liteflow/aop/ICmpAroundAspect.java

@@ -8,6 +8,7 @@
  */
 package com.yomahub.liteflow.aop;
 
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.Slot;
 
 /**
@@ -17,18 +18,8 @@ import com.yomahub.liteflow.slot.Slot;
  */
 public interface ICmpAroundAspect {
 
-	/**
-	 * 前置处理
-	 * @param nodeId 节点ID
-	 * @param slot
-	 */
-	void beforeProcess(String nodeId, Slot slot);
+	void beforeProcess(NodeComponent cmp);
 
-	/**
-	 * 后置处理
-	 * @param nodeId 节点ID
-	 * @param slot
-	 */
-	void afterProcess(String nodeId, Slot slot);
+	void afterProcess(NodeComponent cmp);
 
 }

+ 2 - 2
liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java

@@ -142,7 +142,7 @@ public abstract class NodeComponent {
 	public void beforeProcess() {
 		// 全局切面只在spring体系下生效,这里用了spi机制取到相应环境下的实现类
 		// 非spring环境下,全局切面为空实现
-		CmpAroundAspectHolder.loadCmpAroundAspect().beforeProcess(nodeId, this.getSlot());
+		CmpAroundAspectHolder.loadCmpAroundAspect().beforeProcess(this.self);
 	}
 
 	public abstract void process() throws Exception;
@@ -156,7 +156,7 @@ public abstract class NodeComponent {
 	}
 
 	public void afterProcess() {
-		CmpAroundAspectHolder.loadCmpAroundAspect().afterProcess(nodeId, this.getSlot());
+		CmpAroundAspectHolder.loadCmpAroundAspect().afterProcess(this.self);
 	}
 
 	// 是否进入该节点

+ 3 - 2
liteflow-core/src/main/java/com/yomahub/liteflow/spi/CmpAroundAspect.java

@@ -1,5 +1,6 @@
 package com.yomahub.liteflow.spi;
 
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.Slot;
 
 /**
@@ -10,8 +11,8 @@ import com.yomahub.liteflow.slot.Slot;
  */
 public interface CmpAroundAspect extends SpiPriority {
 
-	void beforeProcess(String nodeId, Slot slot);
+	void beforeProcess(NodeComponent cmp);
 
-	void afterProcess(String nodeId, Slot slot);
+	void afterProcess(NodeComponent cmp);
 
 }

+ 3 - 2
liteflow-core/src/main/java/com/yomahub/liteflow/spi/local/LocalCmpAroundAspect.java

@@ -1,5 +1,6 @@
 package com.yomahub.liteflow.spi.local;
 
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.Slot;
 import com.yomahub.liteflow.spi.CmpAroundAspect;
 
@@ -12,12 +13,12 @@ import com.yomahub.liteflow.spi.CmpAroundAspect;
 public class LocalCmpAroundAspect implements CmpAroundAspect {
 
 	@Override
-	public void beforeProcess(String nodeId, Slot slot) {
+	public void beforeProcess(NodeComponent cmp) {
 		// 无spring环境下为空实现
 	}
 
 	@Override
-	public void afterProcess(String nodeId, Slot slot) {
+	public void afterProcess(NodeComponent cmp) {
 		// 无spring环境下为空实现
 	}
 

+ 5 - 4
liteflow-solon-plugin/src/main/java/com/yomahub/liteflow/spi/solon/SolonCmpAroundAspect.java

@@ -2,6 +2,7 @@ package com.yomahub.liteflow.spi.solon;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.yomahub.liteflow.aop.ICmpAroundAspect;
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.Slot;
 import com.yomahub.liteflow.spi.CmpAroundAspect;
 import org.noear.solon.Solon;
@@ -23,16 +24,16 @@ public class SolonCmpAroundAspect implements CmpAroundAspect {
 	}
 
 	@Override
-	public void beforeProcess(String nodeId, Slot slot) {
+	public void beforeProcess(NodeComponent cmp) {
 		if (ObjectUtil.isNotNull(cmpAroundAspect)) {
-			cmpAroundAspect.beforeProcess(nodeId, slot);
+			cmpAroundAspect.beforeProcess(cmp);
 		}
 	}
 
 	@Override
-	public void afterProcess(String nodeId, Slot slot) {
+	public void afterProcess(NodeComponent cmp) {
 		if (ObjectUtil.isNotNull(cmpAroundAspect)) {
-			cmpAroundAspect.afterProcess(nodeId, slot);
+			cmpAroundAspect.afterProcess(cmp);
 		}
 	}
 

+ 5 - 4
liteflow-spring/src/main/java/com/yomahub/liteflow/spi/spring/SpringCmpAroundAspect.java

@@ -1,6 +1,7 @@
 package com.yomahub.liteflow.spi.spring;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.Slot;
 import com.yomahub.liteflow.spi.CmpAroundAspect;
 import com.yomahub.liteflow.spring.ComponentScanner;
@@ -14,16 +15,16 @@ import com.yomahub.liteflow.spring.ComponentScanner;
 public class SpringCmpAroundAspect implements CmpAroundAspect {
 
 	@Override
-	public void beforeProcess(String nodeId, Slot slot) {
+	public void beforeProcess(NodeComponent cmp) {
 		if (ObjectUtil.isNotNull(ComponentScanner.cmpAroundAspect)) {
-			ComponentScanner.cmpAroundAspect.beforeProcess(nodeId, slot);
+			ComponentScanner.cmpAroundAspect.beforeProcess(cmp);
 		}
 	}
 
 	@Override
-	public void afterProcess(String nodeId, Slot slot) {
+	public void afterProcess(NodeComponent cmp) {
 		if (ObjectUtil.isNotNull(ComponentScanner.cmpAroundAspect)) {
-			ComponentScanner.cmpAroundAspect.afterProcess(nodeId, slot);
+			ComponentScanner.cmpAroundAspect.afterProcess(cmp);
 		}
 	}
 

+ 7 - 6
liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/aop/aspect/CmpAspect.java

@@ -2,21 +2,22 @@ package com.yomahub.liteflow.test.aop.aspect;
 
 import cn.hutool.core.util.StrUtil;
 import com.yomahub.liteflow.aop.ICmpAroundAspect;
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.DefaultContext;
 import com.yomahub.liteflow.slot.Slot;
 
 public class CmpAspect implements ICmpAroundAspect {
 
 	@Override
-	public void beforeProcess(String nodeId, Slot slot) {
-		DefaultContext context = slot.getFirstContextBean();
-		context.setData(nodeId, "before");
+	public void beforeProcess(NodeComponent cmp) {
+		DefaultContext context = cmp.getFirstContextBean();
+		context.setData(cmp.getNodeId(), "before");
 	}
 
 	@Override
-	public void afterProcess(String nodeId, Slot slot) {
-		DefaultContext context = slot.getFirstContextBean();
-		context.setData(nodeId, StrUtil.format("{}_{}", context.getData(nodeId), "after"));
+	public void afterProcess(NodeComponent cmp) {
+		DefaultContext context = cmp.getFirstContextBean();
+		context.setData(cmp.getNodeId(), StrUtil.format("{}_{}", context.getData(cmp.getNodeId()), "after"));
 	}
 
 }

+ 7 - 6
liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/aop/aspect/CmpAspect.java

@@ -2,21 +2,22 @@ package com.yomahub.liteflow.test.aop.aspect;
 
 import cn.hutool.core.util.StrUtil;
 import com.yomahub.liteflow.aop.ICmpAroundAspect;
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.DefaultContext;
 import com.yomahub.liteflow.slot.Slot;
 
 public class CmpAspect implements ICmpAroundAspect {
 
 	@Override
-	public void beforeProcess(String nodeId, Slot slot) {
-		DefaultContext context = slot.getFirstContextBean();
-		context.setData(nodeId, "before");
+	public void beforeProcess(NodeComponent cmp) {
+		DefaultContext context = cmp.getFirstContextBean();
+		context.setData(cmp.getNodeId(), "before");
 	}
 
 	@Override
-	public void afterProcess(String nodeId, Slot slot) {
-		DefaultContext context = slot.getFirstContextBean();
-		context.setData(nodeId, StrUtil.format("{}_{}", context.getData(nodeId), "after"));
+	public void afterProcess(NodeComponent cmp) {
+		DefaultContext context = cmp.getFirstContextBean();
+		context.setData(cmp.getNodeId(), StrUtil.format("{}_{}", context.getData(cmp.getNodeId()), "after"));
 	}
 
 }

+ 7 - 6
liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/aop/aspect/CmpAspect.java

@@ -2,21 +2,22 @@ package com.yomahub.liteflow.test.aop.aspect;
 
 import cn.hutool.core.util.StrUtil;
 import com.yomahub.liteflow.aop.ICmpAroundAspect;
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.DefaultContext;
 import com.yomahub.liteflow.slot.Slot;
 
 public class CmpAspect implements ICmpAroundAspect {
 
 	@Override
-	public void beforeProcess(String nodeId, Slot slot) {
-		DefaultContext context = slot.getFirstContextBean();
-		context.setData(nodeId, "before");
+	public void beforeProcess(NodeComponent cmp) {
+		DefaultContext context = cmp.getFirstContextBean();
+		context.setData(cmp.getNodeId(), "before");
 	}
 
 	@Override
-	public void afterProcess(String nodeId, Slot slot) {
-		DefaultContext context = slot.getFirstContextBean();
-		context.setData(nodeId, StrUtil.format("{}_{}", context.getData(nodeId), "after"));
+	public void afterProcess(NodeComponent cmp) {
+		DefaultContext context = cmp.getFirstContextBean();
+		context.setData(cmp.getNodeId(), StrUtil.format("{}_{}", context.getData(cmp.getNodeId()), "after"));
 	}
 
 }

+ 7 - 6
liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/aop/aspect/CmpAspect.java

@@ -2,21 +2,22 @@ package com.yomahub.liteflow.test.aop.aspect;
 
 import cn.hutool.core.util.StrUtil;
 import com.yomahub.liteflow.aop.ICmpAroundAspect;
+import com.yomahub.liteflow.core.NodeComponent;
 import com.yomahub.liteflow.slot.DefaultContext;
 import com.yomahub.liteflow.slot.Slot;
 
 public class CmpAspect implements ICmpAroundAspect {
 
 	@Override
-	public void beforeProcess(String nodeId, Slot slot) {
-		DefaultContext context = slot.getFirstContextBean();
-		context.setData(nodeId, "before");
+	public void beforeProcess(NodeComponent cmp) {
+		DefaultContext context = cmp.getFirstContextBean();
+		context.setData(cmp.getNodeId(), "before");
 	}
 
 	@Override
-	public void afterProcess(String nodeId, Slot slot) {
-		DefaultContext context = slot.getFirstContextBean();
-		context.setData(nodeId, StrUtil.format("{}_{}", context.getData(nodeId), "after"));
+	public void afterProcess(NodeComponent cmp) {
+		DefaultContext context = cmp.getFirstContextBean();
+		context.setData(cmp.getNodeId(), StrUtil.format("{}_{}", context.getData(cmp.getNodeId()), "after"));
 	}
 
 }