master
Qin Dong Ming 2024-09-10 12:16:13 +08:00
parent b042b82866
commit c0a08f5219
5 changed files with 184 additions and 179 deletions

View File

@ -12,12 +12,12 @@ import java.util.Date;
public class GenerateConstant { public class GenerateConstant {
public static final String DATA_FIELD = "DataEngineValueActuator"; // public static final String DATA_FIELD = "DataEngineValueActuator";
public static final String DATA_RECORD = "DataEngineRecordActuator"; // public static final String DATA_RECORD = "DataEngineRecordActuator";
public static final String DATA_SET = "DataEngineSetActuator"; // public static final String DATA_SET = "DataEngineSetActuator";
public static final String ACTION_IMPORT = "import com.muyu.abstracts.DataValue;"; // public static final String ACTION_IMPORT = "import com.muyu.abstracts.DataValue;";
public static final String SCOPE_IMPORT = "import com.muyu.abstracts.DataEngineValueActuator;"; // public static final String SCOPE_IMPORT = "import com.muyu.abstracts.DataEngineValueActuator;";
public static final String PACKAGE_PATH = "package com.muyu.abstracts;\n"; // public static final String PACKAGE_PATH = "package com.muyu.abstracts;\n";
public static String getClassName(String versionCode) { public static String getClassName(String versionCode) {

View File

@ -13,6 +13,7 @@ import com.muyu.resp.EngineConfigScopeResp;
import com.muyu.resp.VersionClassCreateResp; import com.muyu.resp.VersionClassCreateResp;
import com.muyu.service.EngineVersionService; import com.muyu.service.EngineVersionService;
import com.muyu.test.JavaClass; import com.muyu.test.JavaClass;
import com.muyu.utils.DownloadOssSynchronization;
import com.muyu.utils.OssUpload; import com.muyu.utils.OssUpload;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@ -157,12 +158,15 @@ public class EngineVersionController extends BaseController {
*/ */
@PostMapping("/insertVersion") @PostMapping("/insertVersion")
public boolean insertVersion(@RequestBody EngineVersion engineVersion) { public boolean insertVersion(@RequestBody EngineVersion engineVersion) {
log.info("数据是:{}" + engineVersion.getRuleContent());
OssUpload.uploadFiles(engineVersion.getRuleContent(), engineVersion.getVersionCode()); // OssUpload.uploadFiles(engineVersion.getRuleContent(), engineVersion.getVersionCode());
OSSFileDownload.streamingDownload(engineVersion.getName()); //
JavaClass.compile(engineVersion.getName()); // JavaClass.compile(engineVersion.getName());
engineVersion.setId(null); engineVersion.setId(null);
boolean insert = engineVersionService.insert(engineVersion); boolean insert = engineVersionService.insert(engineVersion);
return insert; return insert;
} }

View File

@ -1,6 +1,7 @@
package com.muyu.test; package com.muyu.test;
import com.muyu.domain.constants.Result; import com.muyu.domain.constants.Result;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import javax.tools.JavaCompiler; import javax.tools.JavaCompiler;
@ -14,7 +15,7 @@ public class JavaClass {
String[] strings = {"-classpath", "/home/lib", "-verbose", "-d", "/home/lib", "/home/" + fileName + ".java"}; String[] strings = {"-classpath", "/home/lib", "-verbose", "-d", "/home/lib", "/home/" + fileName + ".java"};
int result = compiler.run(null, null, null, strings); int result = compiler.run(null, null, null, strings);
if (result == 0) { if (result == 0) {
log.info("编译成功,生成的.class文件位于源代码同目录" + "-classpath " + "/home/" + fileName + ".class"); log.info("编译成功,生成的.class文件位于源代码同目录" + fileName + ".class");
} else { } else {
log.info("编译失败"); log.info("编译失败");
} }

View File

@ -1,77 +1,77 @@
//package com.muyu.utils; package com.muyu.utils;
//
//import com.aliyun.oss.OSS; import com.aliyun.oss.OSS;
//import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSClientBuilder;
//import com.aliyun.oss.model.GetObjectRequest; import com.aliyun.oss.model.GetObjectRequest;
//import com.aliyun.oss.model.OSSObject; import com.aliyun.oss.model.OSSObject;
//import com.aliyun.oss.model.ObjectListing; import com.aliyun.oss.model.ObjectListing;
//import com.aliyun.oss.model.OSSObjectSummary; import com.aliyun.oss.model.OSSObjectSummary;
//import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
//import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
//import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
//import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
//
//import java.io.File; import java.io.File;
//import java.io.FileOutputStream; import java.io.FileOutputStream;
//import java.io.IOException; import java.io.IOException;
//
//@Log4j2 @Log4j2
//@Component @Component
//public class DownloadOssSynchronization implements ApplicationRunner { public class DownloadOssSynchronization implements ApplicationRunner {
//
// private static final String endpoint = "https://oss-cn-shanghai.aliyuncs.com"; private static final String endpoint = "https://oss-cn-shanghai.aliyuncs.com";
//
// private static final String accessKeyId = "LTAI5t8LmMHfW8ckPaAZR6oQ"; private static final String accessKeyId = "LTAI5t8LmMHfW8ckPaAZR6oQ";
//
// private static final String accessKeySecret = "pwzEwkpxcTFgurkARyr7sG7V6syc9x"; private static final String accessKeySecret = "pwzEwkpxcTFgurkARyr7sG7V6syc9x";
//
// private static final String bucketName = "011811"; private static final String bucketName = "011811";
//
// /** /**
// * 服务器项目路径放文件 *
// */ */
// private static String serverClassPath = "home/lib/com/muyu/abstracts/"; private static String serverClassPath = "/home/lib/com/muyu/abstracts/";
//
//
// @Override @Override
// public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
// log.info("开始从Oss下载规则引擎"); log.info("开始从Oss下载规则引擎");
// OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
//
// // 获取存储桶信息 // 获取存储桶信息
// ObjectListing objectListing = ossClient.listObjects(bucketName); ObjectListing objectListing = ossClient.listObjects(bucketName);
// // 循环获取Oss存储桶中的所有对象 // 循环获取Oss存储桶中的所有对象
// for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) { for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
// String key = objectSummary.getKey(); String key = objectSummary.getKey();
// downloadFile(ossClient, bucketName, key, serverClassPath); downloadFile(ossClient, bucketName, key, serverClassPath);
// } }
// // 关闭OSSClient // 关闭OSSClient
// ossClient.shutdown(); ossClient.shutdown();
// //下载完成实现批量批量类加载 //下载完成实现批量批量类加载
// } }
//
// private void downloadFile(OSS ossClient, String bucketName, String key, String serverPath) { private void downloadFile(OSS ossClient, String bucketName, String key, String serverPath) {
// log.info("开始下载文件[]{}:"+key); log.info("开始下载文件[]{}:"+key);
// //创建服务器项目容器的文件目录路径 //创建服务器项目容器的文件目录路径
// File serverFile = new File(serverPath, key); File serverFile = new File(serverPath, key);
// //如果目录不存在,则创建目录 //如果目录不存在,则创建目录
// if (!serverFile.getParentFile().exists()) { if (!serverFile.getParentFile().exists()) {
// serverFile.getParentFile().mkdirs(); serverFile.getParentFile().mkdirs();
// } }
// //下载文件到项目中 //下载文件到项目中
// OSSObject ossObject = ossClient.getObject(new GetObjectRequest(bucketName, key)); OSSObject ossObject = ossClient.getObject(new GetObjectRequest(bucketName, key));
//
// try (FileOutputStream fos = new FileOutputStream(serverFile);) { try (FileOutputStream fos = new FileOutputStream(serverFile);) {
// byte[] buffer = new byte[1024]; byte[] buffer = new byte[1024];
// int byteRead; int byteRead;
// while ((byteRead = ossObject.getObjectContent().read(buffer)) != -1) { while ((byteRead = ossObject.getObjectContent().read(buffer)) != -1) {
// fos.write(buffer, 0, byteRead); fos.write(buffer, 0, byteRead);
// } }
// log.info("文件 " + key + "已经下载到" + serverFile.getAbsolutePath()); log.info("文件 " + key + "已经下载到" + serverFile.getAbsolutePath());
// } catch (IOException e) { } catch (IOException e) {
// log.error("下载文件失败:" + key); log.error("下载文件失败:" + key);
// e.printStackTrace(); e.printStackTrace();
// } }
// } }
//
//} }

View File

@ -1,91 +1,91 @@
//package com.muyu.utils; package com.muyu.utils;
//
//import com.aliyun.oss.OSS; import com.aliyun.oss.OSS;
//import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSClientBuilder;
//import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectRequest;
//import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
//
//import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
//import java.io.File; import java.io.File;
//import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
//
///** /**
// * @AuthorLiDongJia * @AuthorLiDongJia
// * @Packagecom.muyu.cloud.etl.rule.upload * @Packagecom.muyu.cloud.etl.rule.upload
// * @Projectcloud-rule * @Projectcloud-rule
// * @nameALiYunUpload * @nameALiYunUpload
// * @Date2024/8/30 * @Date2024/8/30
// */ */
//public class OssUpload { public class OssUpload {
//
// // Endpoint以华东1杭州为例其它Region请按实际情况填写 // Endpoint以华东1杭州为例其它Region请按实际情况填写
// private static final String endpoint = "https://oss-cn-shanghai.aliyuncs.com"; private static final String endpoint = "https://oss-cn-shanghai.aliyuncs.com";
//
// private static final String accessKeyId = "LTAI5t8LmMHfW8ckPaAZR6oQ"; private static final String accessKeyId = "LTAI5t8LmMHfW8ckPaAZR6oQ";
//
// private static final String accessKeySecret = "pwzEwkpxcTFgurkARyr7sG7V6syc9x"; private static final String accessKeySecret = "pwzEwkpxcTFgurkARyr7sG7V6syc9x";
//
// private static final String bucketName = "011811"; private static final String bucketName = "011811";
// // Bucket名称 // Bucket名称
//
// public static Result<Object> uploadFiles(String content, String fileName) { public static Result<Object> uploadFiles(String content, String fileName) {
//
// OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
//
// // 上传到OSS后文件保存的目录例如folder/subfolder/,最后以斜杠结尾 // 上传到OSS后文件保存的目录例如folder/subfolder/,最后以斜杠结尾
// String objectName = "build/rule/version/" + fileName + ".java"; String objectName = "build/rule/version/" + fileName + ".java";
//
// try { try {
// // 将内容转换为字节数组输入流 // 将内容转换为字节数组输入流
// ByteArrayInputStream inputStream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)); ByteArrayInputStream inputStream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8));
//
// // 构造上传请求 // 构造上传请求
// PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream); PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);
//
// // 执行上传操作 // 执行上传操作
//// ossClient.putObject(putObjectRequest); // ossClient.putObject(putObjectRequest);
//
// return Result.success(null, "文件" + fileName + ".java" + "存储成功"); return Result.success(null, "文件" + fileName + ".java" + "存储成功");
//
// } catch (Exception e) { } catch (Exception e) {
// e.printStackTrace(); e.printStackTrace();
//
// return Result.error(null, "文件" + fileName + ".java" + "存储失败"); return Result.error(null, "文件" + fileName + ".java" + "存储失败");
// } finally { } finally {
// // 关闭OSSClient // 关闭OSSClient
// if (ossClient != null) { if (ossClient != null) {
// ossClient.shutdown(); ossClient.shutdown();
// } }
// } }
//
// } }
//
// public static Result<Object> uploadClassFiles(String versionClass) { public static Result<Object> uploadClassFiles(String versionClass) {
// // 创建OSSClient实例。 // 创建OSSClient实例。
// OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
//
// try { try {
// // 填写Object完整路径例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。 // 填写Object完整路径例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。
// String objectName = "build/rule/version/" + versionClass + ".class"; String objectName = "build/rule/version/" + versionClass + ".class";
//
// // 创建上传文件的输入流(这里以文件为例)。 // 创建上传文件的输入流(这里以文件为例)。
// File file = new File("/home/lib/com/muyu/cloud/rule/engine/" + versionClass + ".class"); File file = new File("/home/lib/com/muyu/cloud/rule/engine/" + versionClass + ".class");
//
// // 上传文件。 // 上传文件。
// ossClient.putObject(new PutObjectRequest(bucketName, objectName, file)); ossClient.putObject(new PutObjectRequest(bucketName, objectName, file));
//
// System.out.println("上传成功"); System.out.println("上传成功");
// return Result.success("上传成功"); return Result.success("上传成功");
// } catch (Exception e) { } catch (Exception e) {
// e.printStackTrace(); e.printStackTrace();
// System.out.println("上传失败"); System.out.println("上传失败");
// return Result.error("上传失败"); return Result.error("上传失败");
// } finally { } finally {
// // 关闭OSSClient。 // 关闭OSSClient。
// if (ossClient != null) { if (ossClient != null) {
// ossClient.shutdown(); ossClient.shutdown();
// } }
// } }
// } }
//
//} }