diff --git a/cloud-etl-client/pom.xml b/cloud-etl-client/pom.xml index 592a2cb..c9d6f8b 100644 --- a/cloud-etl-client/pom.xml +++ b/cloud-etl-client/pom.xml @@ -11,10 +11,14 @@ cloud-etl-client - - 17 - 17 - UTF-8 - + + + com.muyu + cloud-etl-common + 1.0.0 + + + + diff --git a/cloud-etl-client/src/main/java/com/muyu/Main.java b/cloud-etl-client/src/main/java/com/muyu/Main.java deleted file mode 100644 index 95690d4..0000000 --- a/cloud-etl-client/src/main/java/com/muyu/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.muyu; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/cloud-etl-client/src/main/java/com/muyu/config/RuleEngineClientConfig.java b/cloud-etl-client/src/main/java/com/muyu/config/RuleEngineClientConfig.java new file mode 100644 index 0000000..733bc28 --- /dev/null +++ b/cloud-etl-client/src/main/java/com/muyu/config/RuleEngineClientConfig.java @@ -0,0 +1,85 @@ +//package com.muyu.config; +// +//import com.muyu.common.core.domain.Result; +//import com.muyu.ruleEngine.context.DataModelContextHolder; +//import com.muyu.ruleEngine.context.DataSetContextHolder; +//import com.muyu.ruleEngine.context.RecordContextHolder; +//import com.muyu.ruleEngine.domain.EngineVersion; +//import com.muyu.ruleEngine.domain.req.EngineVersionTestReq; +//import com.muyu.ruleEngine.dynamicLoad.DynamicLoader; +//import com.muyu.ruleEngine.model.DataModel; +//import com.muyu.ruleEngine.model.DataSetModel; +//import com.muyu.ruleEngine.model.RecordModel; +//import com.muyu.ruleEngine.model.process.DataProcessModel; +//import com.muyu.ruleEngine.model.process.DataSetProcessModel; +//import com.muyu.ruleEngine.model.process.RecordProcessModel; +//import com.muyu.source.engine.client.ruleEngineInit.RuleEngineInit; +//import com.muyu.source.remote.RemoteVersionService; +//import lombok.extern.log4j.Log4j2; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.annotation.ComponentScan; +//import org.springframework.context.annotation.Import; +// +//import java.lang.reflect.Method; +//import java.util.ArrayList; +//import java.util.List; +//import java.util.Map; +// +///** +// * 规则引擎客户端配置类 +// * +// * @author CHX +// * on 2024/5/9 星期四 +// */ +//@Log4j2 +//@ComponentScan +//@Import(value = {RuleEngineClientRunner.class}) +//public class RuleEngineClientConfig { +// +// @Autowired +// private RemoteVersionService remoteVersionService; +// +// public Result engineVersionTest(EngineVersionTestReq testReq) { +// if (testReq.getScope() == 4) { +// DataProcessModel dataProcessModel = DataProcessModel.builder().dataModel(testReq.getDataModel()).build(); +// DataModelContextHolder.set(dataProcessModel); +// } else if (testReq.getScope() == 3) { +// RecordModel recordModel = RecordModel.builder().dataModels(testReq.getDataModelList()).build(); +// RecordProcessModel recordProcessModel = RecordProcessModel.builder() +// .keys(testReq.getKeys()) +// .recordModel(recordModel) +// .build(); +// RecordContextHolder.set(recordProcessModel); +// } else if (testReq.getScope() == 2) { +// List recordModelList = new ArrayList<>(); +// List> dataModelLists = testReq.getDataModelLists(); +// dataModelLists.stream().forEach(dataModelList -> { +// RecordModel recordModel = RecordModel.builder().dataModels(dataModelList).build(); +// recordModelList.add(recordModel); +// }); +// DataSetModel dataSetModel = DataSetModel.builder() +// .recordModels(recordModelList) +// .build(); +// DataSetProcessModel dataSetProcessModel = DataSetProcessModel.builder() +// .dataSetModel(dataSetModel) +// .build(); +// DataSetContextHolder.set(dataSetProcessModel); +// } +// Result versionResult = remoteVersionService.getVersion(testReq.getEngineVersionId()); +// EngineVersion engineVersion = versionResult.getData(); +// Map engineMap = RuleEngineInit.getEngineMap(testReq.getEngineVersionId()); +// +// try { +// @SuppressWarnings("resource") +// DynamicLoader.MemoryClassLoader classLoader = new DynamicLoader.MemoryClassLoader(engineMap); +// Class aClass = classLoader.loadClass(engineVersion.getVersionClass()); +// Method method = aClass.getDeclaredMethod("execution"); +// Object o = aClass.newInstance(); +// method.invoke(o); +// } catch (Exception e) { +// log.info(e.getMessage()); +// return Result.success("程序异常: 信息[" + e.getLocalizedMessage() + "]异常"); +// } +// return Result.success("测试正常,无异常数据返回"); +// } +//} diff --git a/cloud-etl-client/src/main/java/com/muyu/config/RuleEngineClientRunner.java b/cloud-etl-client/src/main/java/com/muyu/config/RuleEngineClientRunner.java new file mode 100644 index 0000000..6c005a6 --- /dev/null +++ b/cloud-etl-client/src/main/java/com/muyu/config/RuleEngineClientRunner.java @@ -0,0 +1,34 @@ +//package com.muyu.config; +// +//import com.muyu.common.core.domain.Result; +//import com.muyu.ruleEngine.domain.EngineVersion; +//import com.muyu.source.engine.client.ruleEngineInit.RuleEngineInit; +//import com.muyu.source.remote.RemoteVersionService; +//import lombok.extern.log4j.Log4j2; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.ApplicationArguments; +//import org.springframework.boot.ApplicationRunner; +// +//import java.util.List; +// +///** +// * 初始化加载 +// * +// * @author CHX +// * on 2024/5/9 星期四 +// */ +//@Log4j2 +//public class RuleEngineClientRunner implements ApplicationRunner { +// +// @Autowired +// private RemoteVersionService remoteVersionService; +// +// @Override +// public void run(ApplicationArguments args) throws Exception { +// Result> versionListResult = remoteVersionService.getVersionList(); +// log.info(versionListResult); +// List engineVersionList = versionListResult.getData(); +// RuleEngineInit.init(engineVersionList); +// +// } +//} diff --git a/cloud-etl-client/src/main/java/com/muyu/ruleEngineLnit/RuleEngineInit.java b/cloud-etl-client/src/main/java/com/muyu/ruleEngineLnit/RuleEngineInit.java new file mode 100644 index 0000000..1977ef9 --- /dev/null +++ b/cloud-etl-client/src/main/java/com/muyu/ruleEngineLnit/RuleEngineInit.java @@ -0,0 +1,37 @@ +//package com.muyu.ruleEngineLnit; +// +//import com.muyu.ruleEngine.constant.RuleOperationConstants; +//import com.muyu.ruleEngine.domain.EngineVersion; +//import com.muyu.ruleEngine.dynamicLoad.DynamicLoader; +//import org.springframework.stereotype.Component; +// +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +///** +// * 规则引擎初始化 +// * +// * @author CHX +// * on 2024/5/14 星期二 +// */ +//@Component +//public class RuleEngineInit { +// private static Map> engineMap = new HashMap(); +// +// public static void init(List engineVersionList){ +//// Map map = new HashMap<>(); +// engineVersionList.stream().forEach(engineVersion -> { +// // 获取版本内容 +// String content = engineVersion.getRuleContent().replaceAll("\r\n", ""); +// // 对source进行编译生成class文件存放在Map中,这里用bytecode接收 +// Map bytecode = DynamicLoader.compile(engineVersion.getVersionClass() + +// RuleOperationConstants.FILE_SUFFIX, content); +// engineMap.put(engineVersion.getId(), bytecode); +// }); +// } +// +// public static Map getEngineMap(Long ruleId) { +// return engineMap.get(ruleId); +// } +//} diff --git a/cloud-etl-common/src/main/java/com/muyu/domain/EngineMaintenance.java b/cloud-etl-common/src/main/java/com/muyu/domain/EngineMaintenance.java new file mode 100644 index 0000000..2cbcefb --- /dev/null +++ b/cloud-etl-common/src/main/java/com/muyu/domain/EngineMaintenance.java @@ -0,0 +1,21 @@ +package com.muyu.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @Author:qdm + * @Package:com.muyu.domain + * @Project:cloud-etl-engine + * @name:EngineMaintenance + * @Date:2024/8/22 15:38 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class EngineMaintenance { + +} diff --git a/cloud-etl-server/src/main/java/com/muyu/controller/EngIneController.java b/cloud-etl-server/src/main/java/com/muyu/controller/EngIneController.java new file mode 100644 index 0000000..d72ec8d --- /dev/null +++ b/cloud-etl-server/src/main/java/com/muyu/controller/EngIneController.java @@ -0,0 +1,31 @@ +package com.muyu.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.service.EngIneService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Author:qdm + * @Package:com.muyu.controller + * @Project:cloud-etl-engine + * @name:EngIneController + * @Date:2024/8/22 15:36 + */ +@RestController +@RequestMapping("/engine") +public class EngIneController { + + @Autowired + EngIneService engIneService; + + @GetMapping("/getMaintenanceList") + public Result> getMaintenanceList() { + List list = engineMaintenanceService.list(); + return Result.success(list); + } +} diff --git a/cloud-etl-server/src/main/java/com/muyu/service/EngIneService.java b/cloud-etl-server/src/main/java/com/muyu/service/EngIneService.java new file mode 100644 index 0000000..d2788cb --- /dev/null +++ b/cloud-etl-server/src/main/java/com/muyu/service/EngIneService.java @@ -0,0 +1,11 @@ +package com.muyu.service; + +/** + * @Author:qdm + * @Package:com.muyu.service + * @Project:cloud-etl-engine + * @name:EngIneService + * @Date:2024/8/22 15:37 + */ +public interface EngIneService { +} diff --git a/cloud-etl-server/src/main/java/com/muyu/service/serviceImpl/EngIneServiceImpl.java b/cloud-etl-server/src/main/java/com/muyu/service/serviceImpl/EngIneServiceImpl.java new file mode 100644 index 0000000..c90dcaa --- /dev/null +++ b/cloud-etl-server/src/main/java/com/muyu/service/serviceImpl/EngIneServiceImpl.java @@ -0,0 +1,20 @@ +package com.muyu.service.serviceImpl; + +import com.muyu.mapper.EngineMapper; +import com.muyu.service.EngIneService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author:qdm + * @Package:com.muyu.service.serviceImpl + * @Project:cloud-etl-engine + * @name:EngIneServiceImpl + * @Date:2024/8/22 15:37 + */ +@Service +public class EngIneServiceImpl implements EngIneService { + + @Autowired + EngineMapper engineMapper; +}