diff --git a/cloud-rule-client/pom.xml b/cloud-rule-client/pom.xml
index 4407c5d..8fb72ef 100644
--- a/cloud-rule-client/pom.xml
+++ b/cloud-rule-client/pom.xml
@@ -22,6 +22,18 @@
com.muyu
cloud-rule-common
+
+ com.muyu
+ cloud-rule-remote
+ 1.0.0
+
+
+ com.muyu
+ cloud-rule-remote
+ 1.0.0
+ compile
+
+
diff --git a/cloud-rule-client/src/main/java/com/muyu/client/basic/RuleConfig.java b/cloud-rule-client/src/main/java/com/muyu/client/basic/RuleConfig.java
new file mode 100644
index 0000000..9feca04
--- /dev/null
+++ b/cloud-rule-client/src/main/java/com/muyu/client/basic/RuleConfig.java
@@ -0,0 +1,13 @@
+package com.muyu.client.basic;
+
+import com.muyu.common.core.domain.Result;
+import com.muyu.etl.domain.DataValue;
+import com.muyu.rule.common.domain.RuleEngineVersion;
+
+public interface RuleConfig {
+ public Result findVersionById( Long id);
+
+ public Result testEngine(String className,DataValue dataValue);
+ public Result testEngine(String className,DataValue[] dataValue);
+ public Result DataSetEngine(String className, DataValue[][] dataValues);
+}
diff --git a/cloud-rule-client/src/main/java/com/muyu/client/basic/impl/RuleConfigImpl.java b/cloud-rule-client/src/main/java/com/muyu/client/basic/impl/RuleConfigImpl.java
new file mode 100644
index 0000000..8d7f4cf
--- /dev/null
+++ b/cloud-rule-client/src/main/java/com/muyu/client/basic/impl/RuleConfigImpl.java
@@ -0,0 +1,36 @@
+package com.muyu.client.basic.impl;
+
+import com.muyu.client.basic.RuleConfig;
+import com.muyu.common.core.domain.Result;
+import com.muyu.etl.domain.DataValue;
+import com.muyu.rule.common.domain.RuleEngineVersion;
+import com.muyu.rule.remote.RuleFeign;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RuleConfigImpl implements RuleConfig {
+
+ @Autowired
+ private RuleFeign ruleFeign;
+
+ @Override
+ public Result findVersionById(Long id) {
+ return ruleFeign.findVersionById(id);
+ }
+
+ @Override
+ public Result testEngine(String className, DataValue dataValue) {
+ return ruleFeign.testEngine(className, dataValue);
+ }
+
+ @Override
+ public Result testEngine(String className, DataValue[] dataValue) {
+ return ruleFeign.testEngine(className, dataValue);
+ }
+
+ @Override
+ public Result DataSetEngine(String className, DataValue[][] dataValues) {
+ return ruleFeign.DataSetEngine(className, dataValues);
+ }
+}
diff --git a/cloud-rule-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-rule-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..a6e5665
--- /dev/null
+++ b/cloud-rule-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.muyu.client.basic.impl.RuleConfigImpl
diff --git a/cloud-rule-remote/pom.xml b/cloud-rule-remote/pom.xml
index c87384f..0eb64ea 100644
--- a/cloud-rule-remote/pom.xml
+++ b/cloud-rule-remote/pom.xml
@@ -22,6 +22,12 @@
com.muyu
cloud-rule-common
+
+ com.muyu
+ cloud-common-etl
+ 1.0.0
+ compile
+
diff --git a/cloud-rule-remote/src/main/java/com/muyu/rule/remote/Factory/RuleFactory.java b/cloud-rule-remote/src/main/java/com/muyu/rule/remote/Factory/RuleFactory.java
new file mode 100644
index 0000000..d798f4c
--- /dev/null
+++ b/cloud-rule-remote/src/main/java/com/muyu/rule/remote/Factory/RuleFactory.java
@@ -0,0 +1,44 @@
+package com.muyu.rule.remote.Factory;
+
+import com.muyu.common.core.domain.Result;
+import com.muyu.etl.domain.DataValue;
+
+import com.muyu.rule.common.domain.RuleEngineVersion;
+import com.muyu.rule.remote.RuleFeign;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+@Log4j2
+@Component
+public class RuleFactory implements FallbackFactory {
+
+ @Override
+ public RuleFeign create(Throwable cause) {
+ return new RuleFeign() {
+ @Override
+ public Result findVersionById(Long id) {
+ log.info(cause);
+ return Result.error("网络开小差......");
+ }
+
+ @Override
+ public Result testEngine(String className, DataValue dataValue) {
+ log.info(cause);
+ return Result.error("网络开小差......");
+ }
+
+ @Override
+ public Result testEngine(String className, DataValue[] dataValue) {
+ log.info(cause);
+ return Result.error("网络开小差......");
+ }
+
+ @Override
+ public Result DataSetEngine(String className, DataValue[][] dataValues) {
+ log.info(cause);
+ return Result.error("网络开小差......");
+ }
+ };
+ }
+}
diff --git a/cloud-rule-remote/src/main/java/com/muyu/rule/remote/RuleFeign.java b/cloud-rule-remote/src/main/java/com/muyu/rule/remote/RuleFeign.java
new file mode 100644
index 0000000..e739d5c
--- /dev/null
+++ b/cloud-rule-remote/src/main/java/com/muyu/rule/remote/RuleFeign.java
@@ -0,0 +1,26 @@
+package com.muyu.rule.remote;
+
+import com.muyu.common.core.domain.Result;
+
+import com.muyu.etl.domain.DataValue;
+import com.muyu.rule.common.domain.RuleEngineVersion;
+import com.muyu.rule.remote.Factory.RuleFactory;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@EnableFeignClients
+@FeignClient(value = "cloud-etl-rule",fallbackFactory= RuleFactory.class)
+public interface RuleFeign {
+ @PostMapping("/version/findVersionById/{id}")
+ public Result findVersionById(@PathVariable("id") Long id);
+ @PostMapping("/version/testEngine/{className}")
+ public Result testEngine(@PathVariable("className") String className,@RequestBody DataValue dataValue);
+ @PostMapping("/version/rowEngine/{className}")
+ public Result testEngine(@PathVariable("className") String className,@RequestBody DataValue[] dataValue);
+ @PostMapping("/version/DataSetEngine/{className}")
+ public Result DataSetEngine(@PathVariable("className") String className,@RequestBody DataValue[][] dataValues);
+}
diff --git a/cloud-rule-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-rule-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..491b97a
--- /dev/null
+++ b/cloud-rule-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+com.muyu.rule.remote.RuleFeign
+com.muyu.rule.remote.Factory.RuleFactory