提交 af3f1496 authored 作者: zhangshuang's avatar zhangshuang

zs 初步完成版

上级 5e4ba9a8
......@@ -29,6 +29,8 @@ public class AdaptationController {
}
@PostMapping("/compile")
public ServerResponse compile(@RequestBody AdaptRequest adaptRequest){
System.out.print("编译");
System.out.print(JSON.toJSONString(adaptRequest));
return adaptationService.compile(adaptRequest.getProject(),adaptRequest.getUuid());
}
@PostMapping("/deploy")
......
......@@ -28,6 +28,7 @@ public class ProjectController {
@PutMapping
public ServerResponse saveProject(@RequestBody Project project){
System.out.print("添加或修改项目");
System.out.println(JSON.toJSONString(project));
return projectService.saveProject(project);
}
......
......@@ -36,7 +36,7 @@ public class Project {
private String des;//描述
private String stage;//阶段(源代码、替换后、编译后)
private Integer stage;//阶段(0:源代码 1:替换后 2:编译后)
private Integer status = 1;//状态(0:删除 1:未删除)
......@@ -61,4 +61,6 @@ public class Project {
private boolean deploySuccess = false;
private String deployPath = "编译路径";//不知道路径,等王永磊改
}
......@@ -2,6 +2,7 @@ package com.zjty.adaptationmaster.adaptor.service.Impl;
import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.entity.Rule;
import com.zjty.adaptationmaster.adaptor.entity.RuleSet;
import com.zjty.adaptationmaster.adaptor.repository.ProjectDao;
import com.zjty.adaptationmaster.base.enums.Const;
import com.zjty.adaptationmaster.base.response.ServerResponse;
......@@ -16,8 +17,11 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static java.util.stream.Collectors.toList;
@Service
public class AdaptationServiceImpl implements AdaptationService {
@Autowired
......@@ -25,28 +29,37 @@ public class AdaptationServiceImpl implements AdaptationService {
@Autowired
private ProjectDao projectDao;
@Override
@Transactional
public ServerResponse adapt(Project project,List<Rule> rules,String uuid) throws IOException {
adaptor.setRuleList(rules);
adaptor.setProject(project);
adaptor.setUuid(uuid);
adaptor.doAdapt();
return ServerResponse.success(project);
return adaptor.doAdapt();
}
@Override
@Transactional
public ServerResponse compile(Project project, String uuid) {
// Project project = new Project();
// project.setCompileFilePath("C:\\home\\project\\rsc\\hrmbclient\\pom.xml");
// project.setDependenceManagement(Report.DependenceManagement.MAVEN);
//Project project = projectDao.getOne(projectId);
if(project.getReport()==null)return ServerResponse.error("请进行项目体检或完善项目信息");
switch (project.getReport().getDependenceManagement()) {
case MAVEN:
new MavenCompiler(project, Const.MAVENHOME, uuid).compiler();
try {
if(project.getReport()==null)return ServerResponse.error("请进行项目体检或完善项目信息");
switch (project.getReport().getDependenceManagement()) {
case MAVEN:
new MavenCompiler(project, Const.MAVENHOME, uuid).compiler();
}
Project one = projectDao.getOne(project.getId());
one.setStage(2);
return ServerResponse.success("编译成功",filter(one));
}catch (Exception e){
return ServerResponse.error("编译失败");
}
return ServerResponse.success(project);
}
@Override
......@@ -63,14 +76,17 @@ public class AdaptationServiceImpl implements AdaptationService {
public ServerResponse unZipProject(String path, Project project) {
Project project1 = projectDao.getOne(project.getId());
//FileUtil fileUtil = new FileUtil();
project1.setCodeUrl(Const.UPLOAD_LOCATION+File.separator+project.getProjectName());
project1.setCodeUrl(Const.UPLOAD_LOCATION+File.separator+project1.getProjectName());
try {
FileZip.unzip(new File(path),project.getCodeUrl());
project.setStage(project.getStage());
FileZip.unzip(new File(path),project1.getCodeUrl());
project1.setStage(project.getStage());
if(project.getStage() == 1){
project1.setReport(null);
}
} catch (Exception e) {
e.printStackTrace();
}
return ServerResponse.success(project);
return ServerResponse.success(filter(project1));
}
@Override
......@@ -82,4 +98,26 @@ public class AdaptationServiceImpl implements AdaptationService {
public ServerResponse stop(Project project, String uuid) {
return ServerResponse.success(new ApusicDeployer(Const.CTLPATH,Const.MAVENHOME).stop(project.getProjectName(),uuid));
}
private Project filter(Project pro){
//过滤删除的规则集
List<RuleSet> ruleSets = pro.getRuleSets();
if(ruleSets != null && ruleSets.size() > 0){
List<RuleSet> sets = new ArrayList<>();
for (RuleSet set :ruleSets) {
set.ruleSetView();
if(set.getStatus() == 1){
sets.add(set);
}
}
pro.setRuleSets(sets);
}
//过滤删除的自定义规则
List<Rule> rules = pro.getRules();
if(rules != null && rules.size() > 0){
List<Rule> collect = rules.stream().filter(rule -> rule != null && rule.getStatus() != 0).collect(toList());
pro.setRules(collect);
}
return pro;
}
}
......@@ -2,6 +2,8 @@ package com.zjty.adaptationmaster.adaptor.service.Impl;
import com.zjty.adaptationmaster.adaptor.controller.WebSocketServer;
import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.repository.ProjectDao;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import com.zjty.adaptationmaster.utils.ReadedFileTask;
import com.zjty.adaptationmaster.adaptor.entity.OriginalFile;
import com.zjty.adaptationmaster.adaptor.entity.Rule;
......@@ -27,6 +29,8 @@ public class Adaptor {
@Autowired
private OriginalFileDao originalFileDao;
private ProjectDao projectDao;
private String uuid;
//@Value("${base.path}")
private String basePath = Const.CONSOLE;
......@@ -56,13 +60,17 @@ public class Adaptor {
this.uuid = uuid;
}
public void doAdapt(){
public ServerResponse doAdapt(){
//String regular = preprocesAdaptation();
//List<String> strings1 = preprocessRegular();
Map<String, Rule> strings1 = preprocessRegular();
if(strings1.size()<1){
System.out.println("检测到匹配规则为空");
return;
return ServerResponse.error("检测到匹配规则为空");
}
if(project.getCodeUrl() == null || project.getCodeUrl().equals("")){
System.out.println("未上传源代码");
return ServerResponse.error("未上传源代码");
}
ThreadPoolExecutor pool = new ThreadPoolExecutor(poolSize,poolSize,10, TimeUnit.SECONDS,new ArrayBlockingQueue<>(poolSize*2));
pool.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
......@@ -153,8 +161,12 @@ public class Adaptor {
}
originalFileDao.saveAll(originalFiles);
//adaptationDetailLogEntityDao.saveAll(detailsLogEntities);
Project one = projectDao.getOne(project.getId());
one.setStage(1);
return ServerResponse.success("替换成功",one);
} catch (IOException e) {
e.printStackTrace();
return ServerResponse.error("替换失败");
}
}
......
......@@ -26,17 +26,21 @@ public class InspectServiceImpl implements InspectService {
@Transactional
@Override
public ServerResponse inspect(Project project) {
//Project project = projectDao.getOne(projectId);
Map<String, Report.Language> suffixLanguageMapping = new HashMap<>();
suffixLanguageMapping.put("java",Report.Language.JAVA);
suffixLanguageMapping.put("cpp",Report.Language.CPP);
suffixLanguageMapping.put("py",Report.Language.PYTHON);
suffixLanguageMapping.put("jsp",Report.Language.JSP);
//suffixLanguageMapping.put("html",Report.Language.ONLYVIEW);
Report report = new Inspector(project, suffixLanguageMapping).inspect();
reportDao.save(report);
Project one = projectDao.getOne(project.getId());
one.setReport(report);
return ServerResponse.success(report);
if(project.getCodeUrl() != null && !project.getCodeUrl().equals("")){
//Project project = projectDao.getOne(projectId);
Map<String, Report.Language> suffixLanguageMapping = new HashMap<>();
suffixLanguageMapping.put("java",Report.Language.JAVA);
suffixLanguageMapping.put("cpp",Report.Language.CPP);
suffixLanguageMapping.put("py",Report.Language.PYTHON);
suffixLanguageMapping.put("jsp",Report.Language.JSP);
//suffixLanguageMapping.put("html",Report.Language.ONLYVIEW);
Report report = new Inspector(project, suffixLanguageMapping).inspect();
reportDao.save(report);
Project one = projectDao.getOne(project.getId());
one.setReport(report);
return ServerResponse.success(report);
}else{
return ServerResponse.error("未上传源代码");
}
}
}
......@@ -23,6 +23,7 @@ public class MavenCompiler {
}
public void compiler(){
System.out.print("wwwwwww");
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile(new File(project.getReport().getCompileFilePath()));
request.setGoals(Collections.singletonList("package"));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论