feat():测试
parent
73d586561c
commit
1a1dd5a446
|
@ -2,17 +2,22 @@ package com.muyu.compile;
|
|||
|
||||
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.common.domain.DataValue;
|
||||
import com.muyu.constant.MethodSuffix;
|
||||
import com.muyu.engine.basic.BasicEngine;
|
||||
import com.muyu.upload.ALiYunUpload;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.tools.*;
|
||||
import java.io.*;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* @Author:蓬叁
|
||||
|
@ -25,6 +30,8 @@ public class FilesCompilerLoad {
|
|||
|
||||
private static final Logger log = LoggerFactory.getLogger(FilesCompilerLoad.class);
|
||||
|
||||
static Map<String , BasicEngine<DataValue>> engineMap = new ConcurrentHashMap<>();
|
||||
|
||||
public static Result<Object> javaCompiler(String fileName){
|
||||
|
||||
|
||||
|
@ -46,6 +53,8 @@ public class FilesCompilerLoad {
|
|||
|
||||
public static Result<Object> classLoad(String fileName){
|
||||
|
||||
Class<?> clazz ;
|
||||
|
||||
try {
|
||||
// class文件路径
|
||||
String externalClassFilePath = "/home/lib/com/muyu/generate/"+fileName + MethodSuffix.CLASSSUFFIX;
|
||||
|
@ -60,14 +69,35 @@ public class FilesCompilerLoad {
|
|||
log.info("开始创建加载器...");
|
||||
// 加载类
|
||||
// 注意类名必须是完全限定名(包括包名)
|
||||
Class<?> clazz = externalClassLoader.loadClassFromPath(path, "com.muyu.generate."+fileName);
|
||||
System.out.println(clazz);
|
||||
clazz = externalClassLoader.loadClassFromPath(path, "com.muyu.generate."+fileName);
|
||||
log.info("加载成功:[{}]",clazz.getName());
|
||||
|
||||
} catch (MalformedURLException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
try {
|
||||
Object instance = clazz.getDeclaredConstructor().newInstance();
|
||||
|
||||
engineMap.put(fileName, (BasicEngine<DataValue>) instance);
|
||||
|
||||
} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
DataValue dataValue = DataValue.builder()
|
||||
.type("String")
|
||||
.label("姓名")
|
||||
.key("name")
|
||||
.value("张三")
|
||||
.build();
|
||||
|
||||
BasicEngine<DataValue> engine = engineMap.get(fileName);
|
||||
engine.set(dataValue);
|
||||
engine.execution();
|
||||
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue