11111
parent
877eb048d3
commit
f0125b2c08
|
@ -1,5 +1,6 @@
|
|||
package com.muyu.rule.common.domain.req;
|
||||
|
||||
import com.muyu.rule.common.utils.OssUtil;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
@ -43,4 +44,5 @@ public class EtlRuleAddReq {
|
|||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ public class EngineTest {
|
|||
SourceCodeComplier.javaCompilerPath(engineConfig.getLocation());
|
||||
//对class文件进行自定义类加载规则引擎
|
||||
Map<String ,Class<?>> stringClassMap = JavaBinaryClassLoader.loadClassesByLocation(engineConfig.getPack(),engineConfig.getLocation());
|
||||
|
||||
System.out.println("====>"+stringClassMap);
|
||||
stringClassMap.forEach((key,value)->{
|
||||
EngineContainer.loadEngineInstance(key,value);
|
||||
});
|
||||
|
|
|
@ -3,8 +3,6 @@ package com.muyu.rule.server.basic.engine;
|
|||
import com.muyu.rule.common.domain.DataValue;
|
||||
import com.muyu.rule.server.basic.abstracts.DataEngineValueActuator;
|
||||
|
||||
import javax.xml.crypto.Data;
|
||||
|
||||
/**
|
||||
* @Author:张承志
|
||||
* @Package:com.muyu.rule.server.basic.engine
|
||||
|
|
|
@ -28,8 +28,7 @@ public class SourceCodeComplier extends ClassLoader {
|
|||
* @param path 文件夹路径
|
||||
*/
|
||||
|
||||
public static void
|
||||
javaCompilerPath(String path){
|
||||
public static void javaCompilerPath(String path){
|
||||
File[] files = JavaCodeScan.javaSourceScanByPath(path);
|
||||
|
||||
javaCampiler(files);
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package com.muyu.rule.server.constant;
|
||||
|
||||
/**
|
||||
* @Author:张承志
|
||||
* @Package:com.muyu.rule.server.constant
|
||||
* @Project:cloud-etl-rule
|
||||
* @name:SuffixClass
|
||||
* @Date:2024/8/30 9:14
|
||||
*/
|
||||
|
||||
public class SuffixClass {
|
||||
|
||||
public static final String Suffix_JAVA = ".java";
|
||||
public static final String Suffix_CLASS = ".class";
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -3,6 +3,7 @@ package com.muyu.rule.server.controller;
|
|||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.rule.common.domain.RuleEngineVersion;
|
||||
import com.muyu.rule.common.domain.req.VersionAddReq;
|
||||
import com.muyu.rule.common.utils.OssUtil;
|
||||
import com.muyu.rule.server.service.RuleEngineVersionService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
@ -74,6 +75,25 @@ public class RuleEngineVersionController {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上传
|
||||
* @param versionClazz
|
||||
* @return
|
||||
*/
|
||||
|
||||
|
||||
@PostMapping("/deposit/{versionClazz}/{className}")
|
||||
public Result deposit(@PathVariable("versionClazz") String versionClazz, @PathVariable("className") String className){
|
||||
|
||||
versionService.Upload(versionClazz,className);
|
||||
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Binary file not shown.
|
@ -19,6 +19,7 @@ import java.util.Map;
|
|||
* @Project:cloud-etl-rule
|
||||
* @name:JavaBinaryClassLoader
|
||||
* @Date:2024/8/22 20:54
|
||||
* java字节码文件 加载器
|
||||
*/
|
||||
|
||||
public class JavaBinaryClassLoader extends ClassLoader{
|
||||
|
@ -43,7 +44,7 @@ private static Class<?> loadClassByNameAndLocation(String name,String pack,File
|
|||
try {
|
||||
//将class文件的数据读入到byte数组中 转成二进制文件
|
||||
byte[] datas = loader.loadClassData(name,location);
|
||||
pack= loader.convert(pack);
|
||||
//pack= loader.convert(pack);
|
||||
//通过byte数组加载Class对象
|
||||
String cc = pack+name;
|
||||
|
||||
|
|
|
@ -45,8 +45,9 @@ public class EngineContainer {
|
|||
|
||||
classMap.put(engineKey, clazz);
|
||||
methodMap.put(engineKey, method);
|
||||
|
||||
//获取所有的参数
|
||||
Class<?>[] parameterTypes = method.getParameterTypes();
|
||||
//获取所有的注解
|
||||
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
|
||||
ArrayList<String> engineParams = new ArrayList<>();
|
||||
|
||||
|
|
|
@ -13,6 +13,8 @@ import java.io.FilenameFilter;
|
|||
* @Project:cloud-etl-rule
|
||||
* @name:JavaCodeScan
|
||||
* @Date:2024/8/22 21:11
|
||||
*
|
||||
* java 文件扫描器 扫描某路径下的源码,二进制文件
|
||||
*/
|
||||
|
||||
public class JavaCodeScan {
|
||||
|
|
|
@ -27,4 +27,12 @@ public interface RuleEngineVersionService extends IService<RuleEngineVersion> {
|
|||
void disable(Long id);
|
||||
|
||||
String dataGenerate(String dataSource);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param versionClazz 具体代码
|
||||
* @param className 类的名
|
||||
*/
|
||||
|
||||
void Upload(String versionClazz,String className);
|
||||
}
|
||||
|
|
|
@ -8,12 +8,20 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
import com.muyu.common.core.enums.SystemYesNo;
|
||||
import com.muyu.rule.common.domain.RuleEngine;
|
||||
import com.muyu.rule.common.domain.RuleEngineVersion;
|
||||
import com.muyu.rule.common.utils.OssUtil;
|
||||
import com.muyu.rule.server.mapper.RuleEngineVersionMapper;
|
||||
import com.muyu.rule.server.scan.JavaCodeScan;
|
||||
import com.muyu.rule.server.service.RuleEngineVersionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Base64;
|
||||
import java.util.List;
|
||||
|
||||
import static com.muyu.rule.server.constant.SuffixClass.Suffix_JAVA;
|
||||
|
||||
/**
|
||||
* @Author:张承志
|
||||
* @Package:com.muyu.rule.server.service.impl
|
||||
|
@ -58,6 +66,31 @@ public class RuleEngineServiceImpl extends ServiceImpl<RuleEngineVersionMapper,R
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param versionClazz 具体代码
|
||||
* @param className 类的名
|
||||
*/
|
||||
@Override
|
||||
public void Upload(String versionClazz,String className) {
|
||||
|
||||
// 使用ByteArrayInputStream将字符串内容转换为输入流
|
||||
ByteArrayInputStream inputStream = new ByteArrayInputStream(versionClazz.getBytes());
|
||||
|
||||
|
||||
OssUtil.uploadFileInputStreamForBucket("mall-bw",className,inputStream);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// OssUtil.uploadFileInputStreamForBucket(,"E:\\practical_training\\cloud-etl-rule\\cloud-rule-server\\src\\main\\java\\com\\muyu\\rule\\server\\engine\\");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改激活
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.muyu.rule.server.util;
|
||||
|
||||
import com.muyu.rule.server.constant.SuffixClass;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
|
||||
import java.io.*;
|
||||
|
|
Loading…
Reference in New Issue