From 40fdd3147c73891537171800a3cff9a3e9752957 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=91=E5=B9=B4=E6=A2=A6=E4=B8=8E=E7=A0=96?=
<2847127106@qq.com>
Date: Mon, 9 Sep 2024 17:04:23 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 36 ++
Dockerfile | 15 +
etl-rule-common/pom.xml | 33 ++
.../com/muyu/etl/rule/basic/BasicEngine.java | 22 +
.../abstracts/DataEngineRowActuator.java | 31 ++
.../abstracts/DataEngineRowsActuator.java | 31 ++
.../abstracts/DataEngineValueActuator.java | 34 ++
.../basic/handler/BasicEngineHandler.java | 24 ++
.../rule/basic/handler/EngineRowHandler.java | 27 ++
.../rule/basic/handler/EngineRowsHandler.java | 23 ++
.../basic/handler/EngineValueHandler.java | 56 +++
.../etl/rule/domain/DataStructureResp.java | 10 +
.../com/muyu/etl/rule/domain/RuleInfo.java | 82 ++++
.../com/muyu/etl/rule/domain/RuleVersion.java | 93 +++++
.../rule/domain/constants/RuleConstants.java | 14 +
.../etl/rule/domain/req/DataSourceAddReq.java | 63 +++
.../etl/rule/domain/req/DataSqlField.java | 25 ++
.../muyu/etl/rule/domain/req/DataTestReq.java | 30 ++
.../etl/rule/domain/req/EtlRuleEngineReq.java | 25 ++
.../etl/rule/domain/req/EtlRuleListReq.java | 43 ++
.../etl/rule/domain/req/EtlRuleSaveReq.java | 43 ++
.../domain/req/ExecutionRuleVersionReq.java | 34 ++
.../etl/rule/domain/req/WriteFileReq.java | 37 ++
.../etl/rule/domain/resp/EtlRuleListResp.java | 72 ++++
.../engine/bean/annotation/EngineParam.java | 15 +
.../engine/bean/constant/FileConstants.java | 13 +
.../etl/rule/engine/core/EngineContainer.java | 124 ++++++
.../etl/rule/engine/core/EngineExecution.java | 82 ++++
.../core/classLoad/ExternalClassLoader.java | 29 ++
.../core/classLoad/JavaBinaryClassLoader.java | 133 ++++++
.../core/complier/SourceCodeCompiler.java | 106 +++++
.../etl/rule/engine/util/FileLoadUtil.java | 197 +++++++++
.../etl/rule/engine/util/PropertiesUtil.java | 54 +++
.../muyu/etl/rule/util/EnginePackUtil.java | 38 ++
etl-rule-remote/pom.xml | 29 ++
.../etl/rule/remote/RemoteRuleVersion.java | 28 ++
.../factory/RemoteRuleVersionBackFactory.java | 32 ++
...ot.autoconfigure.AutoConfiguration.imports | 1 +
etl-rule-server/pom.xml | 128 ++++++
.../etl/rule/ENGINE_NOT_NULL_NAME_V1.java | 33 ++
.../etl/rule/EtlRuleEngineApplication.java | 17 +
.../muyu/etl/rule/config/EngineConfig.java | 52 +++
.../rule/controller/RuleInfoController.java | 125 ++++++
.../controller/RuleVersionController.java | 266 ++++++++++++
.../muyu/etl/rule/mapper/RuleInfoMapper.java | 19 +
.../etl/rule/mapper/RuleVersionMapper.java | 17 +
.../muyu/etl/rule/operation/ArrayUtil.java | 89 ++++
.../etl/rule/service/IRuleInfoService.java | 37 ++
.../etl/rule/service/IRuleVersionService.java | 131 ++++++
.../service/impl/RuleInfoServiceImpl.java | 69 ++++
.../service/impl/RuleVersionServiceImpl.java | 383 ++++++++++++++++++
etl-rule-server/src/main/resources/banner.txt | 2 +
.../src/main/resources/bootstrap.yml | 56 +++
.../src/main/resources/logback/dev.xml | 74 ++++
.../src/main/resources/logback/prod.xml | 81 ++++
.../src/main/resources/logback/test.xml | 81 ++++
.../main/resources/mapper/RuleInfoMapper.xml | 111 +++++
.../resources/mapper/RuleVersionMapper.xml | 116 ++++++
pom.xml | 35 ++
59 files changed, 3706 insertions(+)
create mode 100644 .gitignore
create mode 100644 Dockerfile
create mode 100644 etl-rule-common/pom.xml
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/basic/BasicEngine.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineRowActuator.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineRowsActuator.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineValueActuator.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/basic/handler/BasicEngineHandler.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/basic/handler/EngineRowHandler.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/basic/handler/EngineRowsHandler.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/basic/handler/EngineValueHandler.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/DataStructureResp.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/RuleInfo.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/RuleVersion.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/constants/RuleConstants.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/req/DataSourceAddReq.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/req/DataSqlField.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/req/DataTestReq.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/req/EtlRuleEngineReq.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/req/EtlRuleListReq.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/req/EtlRuleSaveReq.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/req/ExecutionRuleVersionReq.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/req/WriteFileReq.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/domain/resp/EtlRuleListResp.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/bean/annotation/EngineParam.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/bean/constant/FileConstants.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/core/EngineContainer.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/core/EngineExecution.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/core/classLoad/ExternalClassLoader.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/core/classLoad/JavaBinaryClassLoader.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/core/complier/SourceCodeCompiler.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/util/FileLoadUtil.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/engine/util/PropertiesUtil.java
create mode 100644 etl-rule-common/src/main/java/com/muyu/etl/rule/util/EnginePackUtil.java
create mode 100644 etl-rule-remote/pom.xml
create mode 100644 etl-rule-remote/src/main/java/com/muyu/etl/rule/remote/RemoteRuleVersion.java
create mode 100644 etl-rule-remote/src/main/java/com/muyu/etl/rule/remote/factory/RemoteRuleVersionBackFactory.java
create mode 100644 etl-rule-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
create mode 100644 etl-rule-server/pom.xml
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/ENGINE_NOT_NULL_NAME_V1.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/EtlRuleEngineApplication.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/config/EngineConfig.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/controller/RuleInfoController.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/controller/RuleVersionController.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/mapper/RuleInfoMapper.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/mapper/RuleVersionMapper.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/operation/ArrayUtil.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/service/IRuleInfoService.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/service/IRuleVersionService.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/service/impl/RuleInfoServiceImpl.java
create mode 100644 etl-rule-server/src/main/java/com/muyu/etl/rule/service/impl/RuleVersionServiceImpl.java
create mode 100644 etl-rule-server/src/main/resources/banner.txt
create mode 100644 etl-rule-server/src/main/resources/bootstrap.yml
create mode 100644 etl-rule-server/src/main/resources/logback/dev.xml
create mode 100644 etl-rule-server/src/main/resources/logback/prod.xml
create mode 100644 etl-rule-server/src/main/resources/logback/test.xml
create mode 100644 etl-rule-server/src/main/resources/mapper/RuleInfoMapper.xml
create mode 100644 etl-rule-server/src/main/resources/mapper/RuleVersionMapper.xml
create mode 100644 pom.xml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..32b6e28
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,36 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/
+logs/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..ffab0fb
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,15 @@
+FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/dragonwell:17.0.4.0.4.8-standard-ga-8.6
+
+#定义时区参数
+ENV TZ=Asia/Shanghai
+#设置时区
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
+
+VOLUME ["/home/logs/cloud-etl-server","/home/uploadPath"]
+
+#拷贝执行jar包文件
+COPY ./etl-rule-server/target/cloud-rule-engine.jar /home/app.jar
+
+#构建启动命令
+ENTRYPOINT ["java","-Dfile.encoding=utf-8","-jar","-Xbootclasspath/a:$toolspath/tools.jar"]
+CMD ["/home/app.jar"]
diff --git a/etl-rule-common/pom.xml b/etl-rule-common/pom.xml
new file mode 100644
index 0000000..06fe533
--- /dev/null
+++ b/etl-rule-common/pom.xml
@@ -0,0 +1,33 @@
+
+
+ 4.0.0
+
+ com.muyu
+ cloud-rule-engine
+ 3.6.5
+
+
+ etl-rule-common
+ 3.6.5
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.muyu
+ cloud-etl-common
+ 3.6.5
+
+
+ com.muyu
+ cloud-common-core
+
+
+
+
diff --git a/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/BasicEngine.java b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/BasicEngine.java
new file mode 100644
index 0000000..335979a
--- /dev/null
+++ b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/BasicEngine.java
@@ -0,0 +1,22 @@
+package com.muyu.etl.rule.basic;
+
+import com.muyu.etl.rule.basic.handler.BasicEngineHandler;
+
+/**
+ * @Author WangXin
+ * @Data 2024/8/29
+ * @Description 规则引擎基准
+ * @Version 1.0.0
+ */
+public interface BasicEngine {
+
+ public void set(V value);
+
+ public V get();
+
+ public default void remove() {
+ BasicEngineHandler.remove();
+ }
+
+ public void execution();
+}
diff --git a/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineRowActuator.java b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineRowActuator.java
new file mode 100644
index 0000000..6a219d3
--- /dev/null
+++ b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineRowActuator.java
@@ -0,0 +1,31 @@
+package com.muyu.etl.rule.basic.abstracts;
+
+import com.muyu.etl.domain.DataStructure;
+import com.muyu.etl.rule.basic.BasicEngine;
+import com.muyu.etl.rule.basic.handler.EngineRowHandler;
+
+/**
+ * @Author WangXin
+ * @Data 2024/8/29
+ * @Description 数据行处理对象
+ * @Version 1.0.0
+ */
+public abstract class DataEngineRowActuator implements BasicEngine {
+
+ @Override
+ public void set(DataStructure[] values) {
+ EngineRowHandler.set(values);
+ }
+
+ @Override
+ public DataStructure[] get() {
+ return EngineRowHandler.get();
+ }
+
+ @Override
+ public void execution() {
+ this.run();
+ }
+
+ public abstract void run();
+}
diff --git a/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineRowsActuator.java b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineRowsActuator.java
new file mode 100644
index 0000000..e2e4379
--- /dev/null
+++ b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineRowsActuator.java
@@ -0,0 +1,31 @@
+package com.muyu.etl.rule.basic.abstracts;
+
+import com.muyu.etl.domain.DataStructure;
+import com.muyu.etl.rule.basic.BasicEngine;
+import com.muyu.etl.rule.basic.handler.EngineRowHandler;
+import com.muyu.etl.rule.basic.handler.EngineRowsHandler;
+
+/**
+ * @Author WangXin
+ * @Data 2024/8/29
+ * @Description 数据组处理对象
+ * @Version 1.0.0
+ */
+public abstract class DataEngineRowsActuator implements BasicEngine {
+ @Override
+ public void set(DataStructure[][] values) {
+ EngineRowsHandler.set(values);
+ }
+
+ @Override
+ public DataStructure[][] get() {
+ return EngineRowsHandler.get();
+ }
+
+ @Override
+ public void execution() {
+ this.run();
+ }
+
+ public abstract void run();
+}
diff --git a/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineValueActuator.java b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineValueActuator.java
new file mode 100644
index 0000000..372360a
--- /dev/null
+++ b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/abstracts/DataEngineValueActuator.java
@@ -0,0 +1,34 @@
+package com.muyu.etl.rule.basic.abstracts;
+
+import com.muyu.etl.domain.DataStructure;
+import com.muyu.etl.rule.basic.BasicEngine;
+import com.muyu.etl.rule.basic.handler.BasicEngineHandler;
+import com.muyu.etl.rule.basic.handler.EngineValueHandler;
+
+/**
+ * @Author WangXin
+ * @Data 2024/8/29
+ * @Description 数据值处理对象
+ * @Version 1.0.0
+ */
+public abstract class DataEngineValueActuator implements BasicEngine {
+
+
+ @Override
+ public void set(DataStructure dataStructure) {
+ EngineValueHandler.set(dataStructure);
+ }
+
+ @Override
+ public DataStructure get() {
+ return EngineValueHandler.get();
+ }
+
+
+ @Override
+ public void execution() {
+ this.run();
+ }
+
+ public abstract void run();
+}
diff --git a/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/handler/BasicEngineHandler.java b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/handler/BasicEngineHandler.java
new file mode 100644
index 0000000..247bb59
--- /dev/null
+++ b/etl-rule-common/src/main/java/com/muyu/etl/rule/basic/handler/BasicEngineHandler.java
@@ -0,0 +1,24 @@
+package com.muyu.etl.rule.basic.handler;
+
+/**
+ * @Author WangXin
+ * @Data 2024/8/29
+ * @Description 规则引擎作用域
+ * @Version 1.0.0
+ */
+public class BasicEngineHandler {
+
+ private static final ThreadLocal