diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/pom.xml b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/pom.xml
index 9754afe..e6944aa 100644
--- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/pom.xml
+++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/pom.xml
@@ -89,6 +89,11 @@
com.muyu
muyu-common-swagger
+
+ io.github.classgraph
+ classgraph
+ 4.1.7
+
diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/RuleEngineVersionController.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/RuleEngineVersionController.java
index 9f287d0..8872324 100644
--- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/RuleEngineVersionController.java
+++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/controller/RuleEngineVersionController.java
@@ -100,4 +100,29 @@ public class RuleEngineVersionController extends BaseController
{
return toAjax(ruleEngineVersionService.deleteRuleEngineVersionByIds(ids));
}
+
+ /**
+ * 删除规则版本
+ */
+ @RequiresPermissions("engine:version:update")
+ @Log(title = "规则版本", businessType = BusinessType.DELETE)
+ @PostMapping("/saveCoding")
+ public Result saveCoding(@RequestBody RuleEngineVersion ruleEngineVersion)
+ {
+ return toAjax(ruleEngineVersionService.saveCoding(ruleEngineVersion));
+ }
+
+
+ /**
+ * 测试引擎版本
+ */
+ @RequiresPermissions("engine:version:update")
+ @Log(title = "规则版本", businessType = BusinessType.DELETE)
+ @PostMapping("/testEngine")
+ public Result testEngine(@RequestBody String codeIng) throws Exception {
+ return toAjax(ruleEngineVersionService.testEngine(codeIng));
+ }
+
+
+
}
diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/RuleEngineVersionService.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/RuleEngineVersionService.java
index 48ffdba..1195a47 100644
--- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/RuleEngineVersionService.java
+++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/RuleEngineVersionService.java
@@ -60,4 +60,18 @@ public interface RuleEngineVersionService extends IService
* @return 结果
*/
public int deleteRuleEngineVersionById(Long id);
+
+ /**
+ * 初始化保存规则版本
+ * @param ruleEngineVersion
+ * @return boolean
+ */
+ boolean saveCoding(RuleEngineVersion ruleEngineVersion);
+
+ /**
+ * 测试引擎版本
+ * @param codeIng
+ * @return
+ */
+ public boolean testEngine(String codeIng) throws Exception;
}
diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java
index 60d3c9b..8ab6903 100644
--- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java
+++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java
@@ -1,14 +1,18 @@
package com.muyu.engine.service.impl;
import java.io.*;
+import java.lang.reflect.Method;
import java.util.List;
import com.alibaba.nacos.shaded.com.google.common.base.Supplier;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.DateUtils;
import com.muyu.engine.domain.RuleEngine;
import com.muyu.engine.service.RuleEngineService;
+import io.lettuce.core.dynamic.support.ReflectionUtils;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -26,8 +30,7 @@ import javax.servlet.ServletException;
*/
@Service
@Log4j2
-public class RuleEngineVersionServiceImpl extends ServiceImpl implements RuleEngineVersionService
-{
+public class RuleEngineVersionServiceImpl extends ServiceImpl implements RuleEngineVersionService {
@Autowired
private RuleEngineVersionMapper ruleEngineVersionMapper;
@Autowired
@@ -40,8 +43,7 @@ public class RuleEngineVersionServiceImpl extends ServiceImpl selectRuleEngineVersionList(Long ruleEngineId)
- {
- return list(new LambdaQueryWrapper(){{
- eq(RuleEngineVersion::getRuleEngineId,ruleEngineId);
+ public List selectRuleEngineVersionList(Long ruleEngineId) {
+ return list(new LambdaQueryWrapper() {{
+ eq(RuleEngineVersion::getRuleEngineId, ruleEngineId);
}});
}
@@ -66,8 +67,7 @@ public class RuleEngineVersionServiceImpl extends ServiceImpl() {{
-// eq(Scope::getRuleEngineId, ruleEngine.getId());
-// eq(Scope::getValue, "taskContext");
-// }});
-// String code = scope.getCode();
-// String path = code.substring(code.indexOf("com"), code.indexOf(";")).replaceAll("/.", "/").trim();
-// String fileName = code.substring(code.indexOf("class") + 6, code.indexOf("{")).trim();
-// String name = path+"."+fileName;
-// String javaPackageName = name.replace(".", File.separator)+".java";
-// String javaAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" +javaPackageName;
-// String jarAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/target/classes/com/muyu/engine/controller";
-// Process process = Runtime.getRuntime().exec("javac -classpath "+ jarAbsolutePath+ " " + javaAbsolutePath);
-// try {
-// int exitVal = process.waitFor();
-// System.out.println("Process exitValue: " + exitVal);
-// ClassLoader classLoader = ReflectionUtils.class.getClassLoader();
-// Class aClass = classLoader.loadClass(name);
-// Object o = aClass.newInstance();
-// Method[] methods = aClass.getMethods();
-// for (Method method : methods) {
-// method.invoke(o,null);
-// }
-// } catch (Exception e) {
-// log.error(e.getMessage());
-// }
- return true;
- }
-
/**
- * 引擎流程并执行测试
- *
- * @param id
+ * @param ruleEngineVersion
* @return
*/
-// @Override
- public boolean init(Long id) throws ServletException {
- RuleEngine ruleEngine = ruleEngineService.getById(id);
- if (ruleEngine.getIsActivate().contains("no")) throw new ServletException("未激活");
- if (ruleEngine.getStatus().contains("1")) throw new ServletException("已停用");
- Supplier booleanSupplier = () -> {
- try {
- return testEngine(ruleEngine);
- } catch (Exception e) {
- throw new RuntimeException(e);
+ @Override
+ public boolean saveCoding(RuleEngineVersion ruleEngineVersion) {
+ String codeIng = ruleEngineVersion.getCodeIng();
+ try {
+ String path = codeIng.substring(codeIng.indexOf("com"), codeIng.indexOf(";")).replaceAll("\\.", "/").trim();
+ String fileName = codeIng.substring(codeIng.indexOf("class") + 6, codeIng.indexOf("{")).trim();
+ //去除父级
+ if (fileName.contains("extends")) {
+ fileName = fileName.substring(0, fileName.indexOf("extends")).trim();
}
- };
- return booleanSupplier.get();
+ //去除实现接口
+ if (fileName.contains("implements")) {
+ fileName = fileName.substring(0, fileName.indexOf("implements")).trim();
+ }
+ //代码编译
+ File file = new File("D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + path + "/" + fileName + ".java");
+ if (!file.exists()) {
+ //不存在创建
+ file.createNewFile();
+ } else {
+ //存在测重新创建
+ file.delete();
+ file.createNewFile();
+ }
+ String[] split = codeIng.split("/n");
+ //OutputStreamWriter对象将字符转换为字节流,指定了文件输出流和编码方式。
+ OutputStreamWriter outputStreamWriter =
+ new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8");
+ //BufferedWriter对象,用于缓冲写入数据,提高写入效率。
+ BufferedWriter bw = new BufferedWriter(outputStreamWriter);
+ for (String str : split) {
+ bw.write(str);
+ bw.newLine();
+ }
+ bw.close();
+ outputStreamWriter.close();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ log.info("初始化成功");
+ ruleEngineVersion.setStatus("1");
+ boolean update = this.update(ruleEngineVersion, new LambdaUpdateWrapper() {{
+ eq(RuleEngineVersion::getId, ruleEngineVersion.getId());
+ }});
+ return update;
+
}
- private Boolean testEngine(RuleEngine ruleEngine) throws ServletException, IOException {
- System.out.println("初始化");
- System.out.println(ruleEngine);
- RuleEngineVersion ruleEngineVersion = this.getOne(new LambdaQueryWrapper() {{
- eq(RuleEngineVersion::getRuleEngineId, ruleEngine.getId());
- }});
- String code = ruleEngineVersion.getCodeIng();
- String path = code.substring(code.indexOf("com"), code.indexOf(";")).replaceAll("\\.", "/").trim();
- String fileName = code.substring(code.indexOf("class") + 6, code.indexOf("{")).trim();
- //代码编译
- File file = new File("D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + path + "/" + fileName + ".java");
- if (!file.exists()) {
- //不存在创建
- file.createNewFile();
- }else {
- //存在测重新创建
- file.delete();
- file.createNewFile();
+
+ /**
+ * 测试引擎版本
+ *
+ * @param
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public boolean testEngine(String codeIng) throws Exception {
+ String path = codeIng.substring(codeIng.indexOf("com"), codeIng.indexOf(";")).replaceAll("/.", "/").trim();
+ String fileName = codeIng.substring(codeIng.indexOf("class") + 6, codeIng.indexOf("{")).trim();
+ String name = path + "." + fileName;
+ String javaPackageName = name.replace(".", File.separator) + ".java";
+ String javaAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + javaPackageName;
+ String jarAbsolutePath = "D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/target/classes/com/muyu/engine/domain/test";
+ Process process = Runtime.getRuntime().exec("javac -classpath " + jarAbsolutePath + " " + javaAbsolutePath);
+ try {
+ int exitVal = process.waitFor();
+ System.out.println("Process exitValue: " + exitVal);
+ ClassLoader classLoader = ReflectionUtils.class.getClassLoader();
+ Class aClass = classLoader.loadClass(name);
+ Object o = aClass.newInstance();
+ Method[] methods = aClass.getMethods();
+ for (Method method : methods) {
+ method.invoke(o, null);
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage());
}
- String[] split = code.split("/n");
- //OutputStreamWriter对象将字符转换为字节流,指定了文件输出流和编码方式。
- OutputStreamWriter outputStreamWriter =
- new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8");
- //BufferedWriter对象,用于缓冲写入数据,提高写入效率。
- BufferedWriter bw = new BufferedWriter(outputStreamWriter);
- for (String str : split) {
- bw.write(str);
- bw.newLine();
- }
- bw.close();
- outputStreamWriter.close();
return true;
}
+
}
diff --git a/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/BasicConfigInfo.java b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/BasicConfigInfo.java
index cace084..07511b0 100644
--- a/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/BasicConfigInfo.java
+++ b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/BasicConfigInfo.java
@@ -52,6 +52,10 @@ public class BasicConfigInfo extends BaseEntity
@Excel(name = "数据接入类型")
private String databaseType;
+ /** 是否已测试 */
+ @Excel(name = "数据接入类型")
+ private String isTest;
+
/** 数据库名称 */
@Excel(name = "数据库名称")
private String databaseName;
diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java
index 457bcdb..db7cdab 100644
--- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java
+++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java
@@ -136,6 +136,10 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl() {{
+ eq(BasicConfigInfo::getId, basicConfigInfo.getId());
+ }});
System.out.println("Connected to the MySQL server successfully.");
//同步数据库信息
//树级结构,库,表
@@ -385,7 +389,7 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl
+
@@ -21,7 +22,7 @@
- select id, data_resource_name,username,password, data_sources_system_name, host, port, database_type, database_name, init_link_num, max_link_num, max_wait_time, max_wait_times,connection_params, remark from basic_config_info
+ select id, data_resource_name,username,password, data_sources_system_name, host, port,is_test, database_type, database_name, init_link_num, max_link_num, max_wait_time, max_wait_times,connection_params, remark from basic_config_info