diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/FlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/FlowParser.java index cb4455a11..7d89d3443 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/FlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/FlowParser.java @@ -2,7 +2,6 @@ package com.yomahub.liteflow.parser; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.StrUtil; import com.yomahub.liteflow.entity.flow.Condition; import com.yomahub.liteflow.entity.flow.ThenCondition; import com.yomahub.liteflow.entity.flow.WhenCondition; @@ -10,6 +9,8 @@ import com.yomahub.liteflow.enums.ConditionTypeEnum; import com.yomahub.liteflow.exception.ConfigErrorException; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.util.Assert; +import org.springframework.util.ResourceUtils; import java.io.IOException; import java.util.ArrayList; @@ -73,7 +74,11 @@ public abstract class FlowParser { * @throws IOException */ protected Resource[] matchRuleResources(final String ruleSource) throws IOException { - final String locationPattern = StrUtil.format("classpath:{}",ruleSource); + Assert.notNull(ruleSource, "rule source must not be null"); + String locationPattern = ruleSource; + if (!locationPattern.startsWith(ResourceUtils.CLASSPATH_URL_PREFIX)) { + locationPattern = ResourceUtils.CLASSPATH_URL_PREFIX + locationPattern; + } PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = resolver.getResources(locationPattern); if(ArrayUtil.isEmpty(resources)) {