mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-14 12:12:08 +08:00
enhancement #ICUEG9 JDK支持度更加平滑
This commit is contained in:
@@ -1,15 +0,0 @@
|
|||||||
package com.yomahub.liteflow.annotation;
|
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Bryan.Zhang
|
|
||||||
*/
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target(ElementType.METHOD)
|
|
||||||
@Documented
|
|
||||||
public @interface LFAliasFor {
|
|
||||||
|
|
||||||
String value() default "";
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.yomahub.liteflow.annotation;
|
package com.yomahub.liteflow.annotation;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.MirrorFor;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -20,10 +22,10 @@ import java.lang.annotation.*;
|
|||||||
*/
|
*/
|
||||||
public @interface LiteflowRetry {
|
public @interface LiteflowRetry {
|
||||||
|
|
||||||
@LFAliasFor("retry")
|
@MirrorFor(attribute = "retry")
|
||||||
int value() default 0;
|
int value() default 0;
|
||||||
|
|
||||||
@LFAliasFor("value")
|
@MirrorFor(attribute = "value")
|
||||||
int retry() default 0;
|
int retry() default 0;
|
||||||
|
|
||||||
Class<? extends Exception>[] forExceptions() default { Exception.class };
|
Class<? extends Exception>[] forExceptions() default { Exception.class };
|
||||||
|
|||||||
@@ -1,69 +0,0 @@
|
|||||||
package com.yomahub.liteflow.annotation.util;
|
|
||||||
|
|
||||||
import cn.hutool.core.annotation.AnnotationUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import com.yomahub.liteflow.annotation.LFAliasFor;
|
|
||||||
|
|
||||||
import java.lang.annotation.Annotation;
|
|
||||||
import java.lang.reflect.AnnotatedElement;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 注解工具类
|
|
||||||
* 此工具类带缓存
|
|
||||||
*
|
|
||||||
* @author Bryan.Zhang
|
|
||||||
*/
|
|
||||||
public class AnnoUtil {
|
|
||||||
|
|
||||||
private static Map<String, Annotation> annoCacheMap = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
public static <A extends Annotation> A getAnnotation(AnnotatedElement annotatedElement, Class<A> annotationType) {
|
|
||||||
String cacheKey = StrUtil.format("{}-{}", annotatedElement, annotationType.getSimpleName());
|
|
||||||
|
|
||||||
if (annoCacheMap.containsKey(cacheKey)){
|
|
||||||
return (A)annoCacheMap.get(cacheKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
A annotation = AnnotationUtil.getAnnotation(annotatedElement, annotationType);
|
|
||||||
if (ObjectUtil.isNull(annotation)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, String> aliasMap = new HashMap<>();
|
|
||||||
Map<String, Object> defaultValueMap = new HashMap<>();
|
|
||||||
Arrays.stream(ReflectUtil.getMethods(annotationType)).forEach(method -> {
|
|
||||||
LFAliasFor aliasFor = AnnotationUtil.getAnnotation(method, LFAliasFor.class);
|
|
||||||
if (ObjectUtil.isNotNull(aliasFor)) {
|
|
||||||
aliasMap.put(method.getName(), aliasFor.value());
|
|
||||||
defaultValueMap.put(method.getName(), getDefaultValue(annotationType, method.getName()));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
aliasMap.forEach((key, value1) -> {
|
|
||||||
Object value = ReflectUtil.invoke(annotation, key);
|
|
||||||
Object defaultValue = defaultValueMap.get(key);
|
|
||||||
if (ObjectUtil.notEqual(value, defaultValue)) {
|
|
||||||
AnnotationUtil.setValue(annotation, value1, value);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
annoCacheMap.put(cacheKey, annotation);
|
|
||||||
|
|
||||||
return annotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <A extends Annotation> Object getDefaultValue(Class<A> annotationType, String property) {
|
|
||||||
try {
|
|
||||||
return annotationType.getMethod(property).getDefaultValue();
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.yomahub.liteflow.context;
|
package com.yomahub.liteflow.context;
|
||||||
|
|
||||||
import com.yomahub.liteflow.annotation.LFAliasFor;
|
import cn.hutool.core.annotation.MirrorFor;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
@@ -15,10 +15,10 @@ import java.lang.annotation.*;
|
|||||||
@Documented
|
@Documented
|
||||||
public @interface ContextBean {
|
public @interface ContextBean {
|
||||||
|
|
||||||
@LFAliasFor("name")
|
@MirrorFor(attribute = "name")
|
||||||
String value() default "";
|
String value() default "";
|
||||||
|
|
||||||
@LFAliasFor("value")
|
@MirrorFor(attribute = "value")
|
||||||
String name() default "";
|
String name() default "";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.yomahub.liteflow.core;
|
package com.yomahub.liteflow.core;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.annotation.LiteflowRetry;
|
import com.yomahub.liteflow.annotation.LiteflowRetry;
|
||||||
import com.yomahub.liteflow.annotation.util.AnnoUtil;
|
|
||||||
import com.yomahub.liteflow.common.ChainConstant;
|
import com.yomahub.liteflow.common.ChainConstant;
|
||||||
import com.yomahub.liteflow.enums.NodeTypeEnum;
|
import com.yomahub.liteflow.enums.NodeTypeEnum;
|
||||||
import com.yomahub.liteflow.flow.executor.NodeExecutor;
|
import com.yomahub.liteflow.flow.executor.NodeExecutor;
|
||||||
@@ -53,7 +53,7 @@ public class ComponentInitializer {
|
|||||||
|
|
||||||
// 先从组件上取@RetryCount标注,如果没有,则看全局配置,全局配置如果不配置的话,默认是0
|
// 先从组件上取@RetryCount标注,如果没有,则看全局配置,全局配置如果不配置的话,默认是0
|
||||||
// 默认retryForExceptions为Exception.class
|
// 默认retryForExceptions为Exception.class
|
||||||
LiteflowRetry liteFlowRetryAnnotation = AnnoUtil.getAnnotation(nodeComponent.getClass(), LiteflowRetry.class);
|
LiteflowRetry liteFlowRetryAnnotation = AnnotationUtil.getAnnotationAlias(nodeComponent.getClass(), LiteflowRetry.class);
|
||||||
LiteflowConfig liteflowConfig = LiteflowConfigGetter.get();
|
LiteflowConfig liteflowConfig = LiteflowConfigGetter.get();
|
||||||
if (liteFlowRetryAnnotation != null) {
|
if (liteFlowRetryAnnotation != null) {
|
||||||
nodeComponent.setRetryCount(liteFlowRetryAnnotation.retry());
|
nodeComponent.setRetryCount(liteFlowRetryAnnotation.retry());
|
||||||
|
|||||||
@@ -8,12 +8,12 @@
|
|||||||
*/
|
*/
|
||||||
package com.yomahub.liteflow.flow;
|
package com.yomahub.liteflow.flow;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.collection.ListUtil;
|
import cn.hutool.core.collection.ListUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.annotation.FallbackCmp;
|
import com.yomahub.liteflow.annotation.FallbackCmp;
|
||||||
import com.yomahub.liteflow.annotation.util.AnnoUtil;
|
|
||||||
import com.yomahub.liteflow.builder.el.LiteFlowChainELBuilder;
|
import com.yomahub.liteflow.builder.el.LiteFlowChainELBuilder;
|
||||||
import com.yomahub.liteflow.core.ComponentInitializer;
|
import com.yomahub.liteflow.core.ComponentInitializer;
|
||||||
import com.yomahub.liteflow.core.NodeComponent;
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
@@ -397,7 +397,7 @@ public class FlowBus {
|
|||||||
// 判断是否是降级组件,如果是则添加到 fallbackNodeMap
|
// 判断是否是降级组件,如果是则添加到 fallbackNodeMap
|
||||||
private static void addFallbackNode(Node node) {
|
private static void addFallbackNode(Node node) {
|
||||||
NodeComponent nodeComponent = node.getInstance();
|
NodeComponent nodeComponent = node.getInstance();
|
||||||
FallbackCmp fallbackCmp = AnnoUtil.getAnnotation(nodeComponent.getClass(), FallbackCmp.class);
|
FallbackCmp fallbackCmp = AnnotationUtil.getAnnotation(nodeComponent.getClass(), FallbackCmp.class);
|
||||||
if (fallbackCmp == null) {
|
if (fallbackCmp == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.yomahub.liteflow.script.annotation;
|
package com.yomahub.liteflow.script.annotation;
|
||||||
|
|
||||||
import com.yomahub.liteflow.annotation.LFAliasFor;
|
import cn.hutool.core.annotation.MirrorFor;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
@@ -16,10 +16,10 @@ import java.lang.annotation.*;
|
|||||||
@Inherited
|
@Inherited
|
||||||
public @interface ScriptBean {
|
public @interface ScriptBean {
|
||||||
|
|
||||||
@LFAliasFor("name")
|
@MirrorFor(attribute = "name")
|
||||||
String value() default "";
|
String value() default "";
|
||||||
|
|
||||||
@LFAliasFor("value")
|
@MirrorFor(attribute = "value")
|
||||||
String name() default "";
|
String name() default "";
|
||||||
|
|
||||||
String[] includeMethodName() default {};
|
String[] includeMethodName() default {};
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.yomahub.liteflow.script.annotation;
|
package com.yomahub.liteflow.script.annotation;
|
||||||
|
|
||||||
import com.yomahub.liteflow.annotation.LFAliasFor;
|
|
||||||
|
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Inherited;
|
import java.lang.annotation.Inherited;
|
||||||
@@ -20,7 +18,6 @@ import java.lang.annotation.Target;
|
|||||||
@Inherited
|
@Inherited
|
||||||
public @interface ScriptMethod {
|
public @interface ScriptMethod {
|
||||||
|
|
||||||
@LFAliasFor("name")
|
|
||||||
String value() default "";
|
String value() default "";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,13 +7,12 @@
|
|||||||
*/
|
*/
|
||||||
package com.yomahub.liteflow.slot;
|
package com.yomahub.liteflow.slot;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
import cn.hutool.core.lang.Tuple;
|
import cn.hutool.core.lang.Tuple;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.BooleanUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.annotation.util.AnnoUtil;
|
|
||||||
import com.yomahub.liteflow.context.ContextBean;
|
import com.yomahub.liteflow.context.ContextBean;
|
||||||
import com.yomahub.liteflow.log.LFLog;
|
import com.yomahub.liteflow.log.LFLog;
|
||||||
import com.yomahub.liteflow.log.LFLoggerManager;
|
import com.yomahub.liteflow.log.LFLoggerManager;
|
||||||
@@ -84,7 +83,7 @@ public class DataBus {
|
|||||||
|
|
||||||
public static int offerSlotByBean(List<Object> contextList) {
|
public static int offerSlotByBean(List<Object> contextList) {
|
||||||
List<Tuple> contextBeanList = contextList.stream().filter(Objects::nonNull).map(object -> {
|
List<Tuple> contextBeanList = contextList.stream().filter(Objects::nonNull).map(object -> {
|
||||||
ContextBean contextBean = AnnoUtil.getAnnotation(object.getClass(), ContextBean.class);
|
ContextBean contextBean = AnnotationUtil.getAnnotationAlias(object.getClass(), ContextBean.class);
|
||||||
String contextKey;
|
String contextKey;
|
||||||
if (contextBean != null && StrUtil.isNotBlank(contextBean.value())){
|
if (contextBean != null && StrUtil.isNotBlank(contextBean.value())){
|
||||||
contextKey = contextBean.value();
|
contextKey = contextBean.value();
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.yomahub.liteflow.annotation;
|
package com.yomahub.liteflow.annotation;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.MirrorFor;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -14,10 +16,10 @@ import java.lang.annotation.*;
|
|||||||
@Inherited
|
@Inherited
|
||||||
public @interface LiteflowComponent {
|
public @interface LiteflowComponent {
|
||||||
|
|
||||||
@LFAliasFor("id")
|
@MirrorFor(attribute = "id")
|
||||||
String value() default "";
|
String value() default "";
|
||||||
|
|
||||||
@LFAliasFor("value")
|
@MirrorFor(attribute = "value")
|
||||||
String id() default "";
|
String id() default "";
|
||||||
|
|
||||||
String name() default "";
|
String name() default "";
|
||||||
|
|||||||
@@ -3,17 +3,14 @@ package com.yomahub.liteflow.spi.solon;
|
|||||||
import cn.hutool.core.annotation.AnnotationUtil;
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.annotation.*;
|
import com.yomahub.liteflow.annotation.*;
|
||||||
import com.yomahub.liteflow.annotation.util.AnnoUtil;
|
|
||||||
import com.yomahub.liteflow.core.proxy.DeclWarpBean;
|
import com.yomahub.liteflow.core.proxy.DeclWarpBean;
|
||||||
import com.yomahub.liteflow.core.proxy.MethodWrapBean;
|
import com.yomahub.liteflow.core.proxy.MethodWrapBean;
|
||||||
import com.yomahub.liteflow.core.proxy.ParameterWrapBean;
|
import com.yomahub.liteflow.core.proxy.ParameterWrapBean;
|
||||||
import com.yomahub.liteflow.enums.NodeTypeEnum;
|
import com.yomahub.liteflow.enums.NodeTypeEnum;
|
||||||
import com.yomahub.liteflow.exception.CmpDefinitionException;
|
import com.yomahub.liteflow.exception.CmpDefinitionException;
|
||||||
import com.yomahub.liteflow.exception.NotSupportDeclException;
|
|
||||||
import com.yomahub.liteflow.spi.DeclComponentParser;
|
import com.yomahub.liteflow.spi.DeclComponentParser;
|
||||||
import org.noear.solon.Solon;
|
import org.noear.solon.Solon;
|
||||||
import org.noear.solon.annotation.Component;
|
import org.noear.solon.annotation.Component;
|
||||||
import org.noear.solon.core.BeanWrap;
|
|
||||||
|
|
||||||
import java.lang.reflect.Parameter;
|
import java.lang.reflect.Parameter;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -39,14 +36,14 @@ public class SolonDeclComponentParser implements DeclComponentParser {
|
|||||||
method -> AnnotationUtil.getAnnotation(method, LiteflowMethod.class) != null
|
method -> AnnotationUtil.getAnnotation(method, LiteflowMethod.class) != null
|
||||||
).map(method -> {
|
).map(method -> {
|
||||||
LiteflowMethod liteflowMethod = AnnotationUtil.getAnnotation(method, LiteflowMethod.class);
|
LiteflowMethod liteflowMethod = AnnotationUtil.getAnnotation(method, LiteflowMethod.class);
|
||||||
LiteflowRetry liteflowRetry = AnnotationUtil.getAnnotation(method, LiteflowRetry.class);
|
LiteflowRetry liteflowRetry = AnnotationUtil.getAnnotationAlias(method, LiteflowRetry.class);
|
||||||
|
|
||||||
String currNodeId = null;
|
String currNodeId = null;
|
||||||
String currNodeName = null;
|
String currNodeName = null;
|
||||||
if (nodeId == null){
|
if (nodeId == null){
|
||||||
if (StrUtil.isBlank(liteflowMethod.nodeId())){
|
if (StrUtil.isBlank(liteflowMethod.nodeId())){
|
||||||
LiteflowComponent liteflowComponent = AnnoUtil.getAnnotation(clazz, LiteflowComponent.class);
|
LiteflowComponent liteflowComponent = AnnotationUtil.getAnnotationAlias(clazz, LiteflowComponent.class);
|
||||||
Component component = AnnoUtil.getAnnotation(clazz, Component.class);
|
Component component = AnnotationUtil.getAnnotation(clazz, Component.class);
|
||||||
|
|
||||||
if(liteflowComponent != null){
|
if(liteflowComponent != null){
|
||||||
currNodeId = liteflowComponent.value();
|
currNodeId = liteflowComponent.value();
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.yomahub.liteflow.annotation;
|
package com.yomahub.liteflow.annotation;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.MirrorFor;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.core.annotation.AliasFor;
|
import org.springframework.core.annotation.AliasFor;
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
@@ -18,12 +19,10 @@ import java.lang.annotation.*;
|
|||||||
public @interface LiteflowComponent {
|
public @interface LiteflowComponent {
|
||||||
|
|
||||||
@AliasFor(annotation = Component.class, attribute = "value")
|
@AliasFor(annotation = Component.class, attribute = "value")
|
||||||
@LFAliasFor("id")
|
String value() default "";
|
||||||
String value() default "";
|
|
||||||
|
|
||||||
@AliasFor(annotation = Component.class, attribute = "value")
|
@AliasFor(annotation = Component.class, attribute = "value")
|
||||||
@LFAliasFor("value")
|
String id() default "";
|
||||||
String id() default "";
|
|
||||||
|
|
||||||
String name() default "";
|
String name() default "";
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.yomahub.liteflow.process.impl;
|
package com.yomahub.liteflow.process.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.yomahub.liteflow.annotation.util.AnnoUtil;
|
|
||||||
import com.yomahub.liteflow.process.LiteflowScannerProcessStep;
|
import com.yomahub.liteflow.process.LiteflowScannerProcessStep;
|
||||||
import com.yomahub.liteflow.process.context.LiteflowScannerProcessStepContext;
|
import com.yomahub.liteflow.process.context.LiteflowScannerProcessStepContext;
|
||||||
import com.yomahub.liteflow.process.enums.LiteflowScannerProcessStepEnum;
|
import com.yomahub.liteflow.process.enums.LiteflowScannerProcessStepEnum;
|
||||||
@@ -24,7 +24,7 @@ public class ScriptBeanProcess implements LiteflowScannerProcessStep {
|
|||||||
public boolean filter(LiteflowScannerProcessStepContext ctx) {
|
public boolean filter(LiteflowScannerProcessStepContext ctx) {
|
||||||
Class clazz = ctx.getClazz();
|
Class clazz = ctx.getClazz();
|
||||||
|
|
||||||
ScriptBean outPut = AnnoUtil.getAnnotation(clazz, ScriptBean.class);
|
ScriptBean outPut = AnnotationUtil.getAnnotationAlias(clazz, ScriptBean.class);
|
||||||
ctx.setOutPut(outPut);
|
ctx.setOutPut(outPut);
|
||||||
|
|
||||||
return ObjectUtil.isNotNull(outPut);
|
return ObjectUtil.isNotNull(outPut);
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.yomahub.liteflow.process.impl;
|
package com.yomahub.liteflow.process.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
import cn.hutool.core.collection.CollStreamUtil;
|
import cn.hutool.core.collection.CollStreamUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.annotation.util.AnnoUtil;
|
|
||||||
import com.yomahub.liteflow.process.LiteflowScannerProcessStep;
|
import com.yomahub.liteflow.process.LiteflowScannerProcessStep;
|
||||||
import com.yomahub.liteflow.process.context.LiteflowScannerProcessStepContext;
|
import com.yomahub.liteflow.process.context.LiteflowScannerProcessStepContext;
|
||||||
import com.yomahub.liteflow.process.enums.LiteflowScannerProcessStepEnum;
|
import com.yomahub.liteflow.process.enums.LiteflowScannerProcessStepEnum;
|
||||||
@@ -34,7 +34,7 @@ public class ScriptMethodBeanProcess implements LiteflowScannerProcessStep {
|
|||||||
Class clazz = ctx.getClazz();
|
Class clazz = ctx.getClazz();
|
||||||
|
|
||||||
List<Method> outPut = Arrays.stream(clazz.getMethods()).filter(method -> {
|
List<Method> outPut = Arrays.stream(clazz.getMethods()).filter(method -> {
|
||||||
ScriptMethod scriptMethod = AnnoUtil.getAnnotation(method, ScriptMethod.class);
|
ScriptMethod scriptMethod = AnnotationUtil.getAnnotation(method, ScriptMethod.class);
|
||||||
return ObjectUtil.isNotNull(scriptMethod) && StrUtil.isNotEmpty(scriptMethod.value());
|
return ObjectUtil.isNotNull(scriptMethod) && StrUtil.isNotEmpty(scriptMethod.value());
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ public class ScriptMethodBeanProcess implements LiteflowScannerProcessStep {
|
|||||||
LOG.info("script method[{}] has been found", beanName);
|
LOG.info("script method[{}] has been found", beanName);
|
||||||
|
|
||||||
Map<String, List<Method>> scriptMethodsGroupByValue = CollStreamUtil.groupBy(scriptMethods, method -> {
|
Map<String, List<Method>> scriptMethodsGroupByValue = CollStreamUtil.groupBy(scriptMethods, method -> {
|
||||||
ScriptMethod scriptMethod = AnnoUtil.getAnnotation(method, ScriptMethod.class);
|
ScriptMethod scriptMethod = AnnotationUtil.getAnnotation(method, ScriptMethod.class);
|
||||||
return scriptMethod.value();
|
return scriptMethod.value();
|
||||||
}, Collectors.toList());
|
}, Collectors.toList());
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
package com.yomahub.liteflow.spi.spring;
|
package com.yomahub.liteflow.spi.spring;
|
||||||
|
|
||||||
import cn.hutool.core.annotation.AnnotationUtil;
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.annotation.*;
|
import com.yomahub.liteflow.annotation.*;
|
||||||
import com.yomahub.liteflow.annotation.util.AnnoUtil;
|
|
||||||
import com.yomahub.liteflow.core.proxy.DeclWarpBean;
|
import com.yomahub.liteflow.core.proxy.DeclWarpBean;
|
||||||
import com.yomahub.liteflow.core.proxy.MethodWrapBean;
|
import com.yomahub.liteflow.core.proxy.MethodWrapBean;
|
||||||
import com.yomahub.liteflow.core.proxy.ParameterWrapBean;
|
import com.yomahub.liteflow.core.proxy.ParameterWrapBean;
|
||||||
@@ -13,13 +11,13 @@ import com.yomahub.liteflow.exception.CmpDefinitionException;
|
|||||||
import com.yomahub.liteflow.spi.DeclComponentParser;
|
import com.yomahub.liteflow.spi.DeclComponentParser;
|
||||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||||
|
import org.springframework.core.annotation.AnnotationUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.lang.reflect.Parameter;
|
import java.lang.reflect.Parameter;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
@@ -40,14 +38,14 @@ public class SpringDeclComponentParser implements DeclComponentParser {
|
|||||||
method -> AnnotationUtil.getAnnotation(method, LiteflowMethod.class) != null
|
method -> AnnotationUtil.getAnnotation(method, LiteflowMethod.class) != null
|
||||||
).map(method -> {
|
).map(method -> {
|
||||||
LiteflowMethod liteflowMethod = AnnotationUtil.getAnnotation(method, LiteflowMethod.class);
|
LiteflowMethod liteflowMethod = AnnotationUtil.getAnnotation(method, LiteflowMethod.class);
|
||||||
LiteflowRetry liteflowRetry = AnnotationUtil.getAnnotation(method, LiteflowRetry.class);
|
LiteflowRetry liteflowRetry = AnnotationUtil.getAnnotationAlias(method, LiteflowRetry.class);
|
||||||
|
|
||||||
String currNodeId = null;
|
String currNodeId = null;
|
||||||
String currNodeName = null;
|
String currNodeName = null;
|
||||||
if (nodeId == null){
|
if (nodeId == null){
|
||||||
if (StrUtil.isBlank(liteflowMethod.nodeId())){
|
if (StrUtil.isBlank(liteflowMethod.nodeId())){
|
||||||
LiteflowComponent liteflowComponent = AnnoUtil.getAnnotation(clazz, LiteflowComponent.class);
|
LiteflowComponent liteflowComponent = AnnotationUtils.getAnnotation(clazz, LiteflowComponent.class);
|
||||||
Component component = AnnoUtil.getAnnotation(clazz, Component.class);
|
Component component = AnnotationUtil.getAnnotation(clazz, Component.class);
|
||||||
|
|
||||||
if(liteflowComponent != null){
|
if(liteflowComponent != null){
|
||||||
currNodeId = liteflowComponent.value();
|
currNodeId = liteflowComponent.value();
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -52,7 +52,7 @@
|
|||||||
<dom4j.version>2.1.4</dom4j.version>
|
<dom4j.version>2.1.4</dom4j.version>
|
||||||
<curator.version>5.3.0</curator.version>
|
<curator.version>5.3.0</curator.version>
|
||||||
<junit.version>5.8.2</junit.version>
|
<junit.version>5.8.2</junit.version>
|
||||||
<hutool.version>5.8.26</hutool.version>
|
<hutool.version>5.8.39</hutool.version>
|
||||||
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
|
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
|
||||||
<curator-test.version>5.1.0</curator-test.version>
|
<curator-test.version>5.1.0</curator-test.version>
|
||||||
<zkclient.version>0.10</zkclient.version>
|
<zkclient.version>0.10</zkclient.version>
|
||||||
|
|||||||
Reference in New Issue
Block a user