提交 b5f127f7 authored 作者: wyl's avatar wyl

合并分支 'wyl' 到 'master'

Wyl 查看合并请求 ty_wyl/adaptation-master1!55
package com.zjty.adaptationmaster.adaptor.controller; package com.zjty.adaptationmaster.adaptor.controller;
import com.zjty.adaptationmaster.adaptor.entity.AdaptRequest;
import com.zjty.adaptationmaster.adaptor.entity.Project; import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.entity.Report;
import com.zjty.adaptationmaster.adaptor.service.InspectService; import com.zjty.adaptationmaster.adaptor.service.InspectService;
import com.zjty.adaptationmaster.base.response.ServerResponse; import com.zjty.adaptationmaster.base.response.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -13,10 +15,9 @@ public class InspectController { ...@@ -13,10 +15,9 @@ public class InspectController {
@Autowired @Autowired
private InspectService inspectService; private InspectService inspectService;
@PutMapping("/inspect") @PutMapping("/inspect")
public ServerResponse inspect(@RequestBody Project projectId){ public ServerResponse inspect(@RequestBody AdaptRequest adaptRequest){
return inspectService.inspect(projectId); return inspectService.inspect(adaptRequest.getProject(),adaptRequest.getUuid());
} }
@GetMapping("/{id}") @GetMapping("/{id}")
......
...@@ -8,6 +8,8 @@ import lombok.Data; ...@@ -8,6 +8,8 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import javax.persistence.*; import javax.persistence.*;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Data @Data
...@@ -34,6 +36,7 @@ public class Report { ...@@ -34,6 +36,7 @@ public class Report {
@ElementCollection @ElementCollection
public List<String> jarPath;//依赖文件的地址列表,用于编译,如果不是用版本管理工具 public List<String> jarPath;//依赖文件的地址列表,用于编译,如果不是用版本管理工具
private String packagePath; private String packagePath;
private long createTime;
public enum DependenceManagement{ public enum DependenceManagement{
MAVEN,GRADLE,ANT MAVEN,GRADLE,ANT
......
...@@ -29,7 +29,9 @@ public class ReportEntity { ...@@ -29,7 +29,9 @@ public class ReportEntity {
public Report.DependenceManagement dependenceManagement;//版本管理方式 public Report.DependenceManagement dependenceManagement;//版本管理方式
private String packagePath; private String packagePath;
public String jarPath;//依赖文件的地址列表,用于编译,如果不是用版本管理工具 public String jarPath;//依赖文件的地址列表,用于编译,如果不是用版本管理工具
@Column(columnDefinition = "text")
private String warnList; private String warnList;
private long createTime;
public enum DependenceManagement{ public enum DependenceManagement{
MAVEN,GRADLE,ANT MAVEN,GRADLE,ANT
} }
......
package com.zjty.adaptationmaster.adaptor.repository; package com.zjty.adaptationmaster.adaptor.repository;
import com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.Dependency;
import com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.PomDependency;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;
public interface PomDependencyDao extends JpaRepository<Dependency,Integer> { public interface PomDependencyDao extends JpaRepository<PomDependency,Integer> {
List<Dependency> findAllByReportIdEquals(Integer id); List<PomDependency> findAllByReportIdEquals(Integer id);
} }
...@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON; ...@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
import com.zjty.adaptationmaster.adaptor.entity.Project; import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.entity.Report; import com.zjty.adaptationmaster.adaptor.entity.Report;
import com.zjty.adaptationmaster.adaptor.entity.ReportEntity; import com.zjty.adaptationmaster.adaptor.entity.ReportEntity;
import com.zjty.adaptationmaster.adaptor.entity.Rule;
import com.zjty.adaptationmaster.adaptor.repository.PomDependencyDao;
import com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.PomDependency; import com.zjty.adaptationmaster.adaptor.entity.pomEntity.SecondFloor.PomDependency;
import com.zjty.adaptationmaster.adaptor.repository.ProjectDao; import com.zjty.adaptationmaster.adaptor.repository.ProjectDao;
import com.zjty.adaptationmaster.adaptor.repository.ReportDao; import com.zjty.adaptationmaster.adaptor.repository.ReportDao;
...@@ -15,10 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -15,10 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service @Service
public class InspectServiceImpl implements InspectService { public class InspectServiceImpl implements InspectService {
...@@ -31,18 +30,60 @@ public class InspectServiceImpl implements InspectService { ...@@ -31,18 +30,60 @@ public class InspectServiceImpl implements InspectService {
@Transactional @Transactional
@Override @Override
public ServerResponse inspect(Project project) { public ServerResponse inspect(Project project,String uuid) {
if(project.getCodeUrl() != null && !project.getCodeUrl().equals("")){ if(project.getCodeUrl() != null && !project.getCodeUrl().equals("")){
//Project project = projectDao.getOne(projectId); //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("asp",Report.Language.ASP);
// //suffixLanguageMapping.put("html",Report.Language.ONLYVIEW);
// LoggerFactory.getLogger(getClass()).info("这里rulelist为空,需要设置");
Map<String, Report.Language> suffixLanguageMapping = new HashMap<>(); Map<String, Report.Language> suffixLanguageMapping = new HashMap<>();
suffixLanguageMapping.put("java",Report.Language.JAVA); suffixLanguageMapping.put("java",Report.Language.JAVA);
suffixLanguageMapping.put("cpp",Report.Language.CPP); suffixLanguageMapping.put("cpp",Report.Language.CPP);
suffixLanguageMapping.put("py",Report.Language.PYTHON); suffixLanguageMapping.put("py",Report.Language.PYTHON);
suffixLanguageMapping.put("jsp",Report.Language.JSP); suffixLanguageMapping.put("jsp",Report.Language.JSP);
suffixLanguageMapping.put("asp",Report.Language.ASP); suffixLanguageMapping.put("html",Report.Language.ONLYVIEW);
//suffixLanguageMapping.put("html",Report.Language.ONLYVIEW); suffixLanguageMapping.put("js",Report.Language.JAVASCRIPT);
LoggerFactory.getLogger(getClass()).info("这里rulelist为空,需要设置"); suffixLanguageMapping.put("go",Report.Language.GO);
Report report = new Inspector(project, suffixLanguageMapping, new ArrayList<>()).inspect();
List<Rule> ruleList = new ArrayList<>();
//com.mysql.cj.jdbc.Driver//com.mysql.jdbc.Driver
ruleList.add(new Rule("com.mysql.cj.jdbc.Driver","建议修改为postgresql数据库驱动"));
ruleList.add(new Rule("com.mysql.jdbc.Driver","建议修改为postgresql数据库驱动"));
//net.sourceforge.jtds.jdbc.Driver//sqlserver
ruleList.add(new Rule("net.sourceforge.jtds.jdbc.Driver","建议修改为postgresql数据库驱动"));
//COM.ibm.db2.jdbc.app.DB2Driver//com.ibm.db2.jcc.DB2Driver//COM.ibm.db2.jdbc.net.DB2Driver//com.ibm.db2.jcc.DB2Driver
ruleList.add(new Rule("DB2Driver","建议修改为postgresql数据库驱动"));
//oracle.jdbc.OracleDriver//oracle.jdbc.driver.OracleDriver
ruleList.add(new Rule("OracleDriver","建议修改为postgresql数据库驱动"));
ruleList.add(new Rule("mysql-connector-java","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.microsoft.sqlserver","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.oracle","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.mariadb.jdbc","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.sap.cloud.db.jdbc","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.ibm.informix","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.firebirdsql.jdbc","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.hsqldb","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.h2database","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.apache.derby","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.mongodb","建议修改为postgresql依赖声明"));
ruleList.add(new Rule("public native","这里用到了JNI"));
ruleList.add(new Rule("<packaging>jar</packaging>","建议修改打包方式为war包并排除掉springboot内置的tomcat,以部署到国产化中间件上"));
ruleList.add(new Rule("WebOffice","这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("webOffice","这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("weboffice","这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("Weboffice","这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("pdfobject.min.js","这里用到了pdf文档展示插件"));
ruleList.add(new Rule("pdfobject.js","这里用到了pdf文档展示插件"));
ruleList.add(new Rule(".swf","这里用到了flash流媒体播放插件"));
Report report = new Inspector(project, suffixLanguageMapping, ruleList,uuid).inspect();
ReportEntity reportEntity = new ReportEntity(); ReportEntity reportEntity = new ReportEntity();
reportEntity.setCompileFilePath(report.getCompileFilePath()); reportEntity.setCompileFilePath(report.getCompileFilePath());
...@@ -52,9 +93,9 @@ public class InspectServiceImpl implements InspectService { ...@@ -52,9 +93,9 @@ public class InspectServiceImpl implements InspectService {
reportEntity.setFramework(report.getFramework()); reportEntity.setFramework(report.getFramework());
reportEntity.setIsSeparate(report.getIsSeparate()); reportEntity.setIsSeparate(report.getIsSeparate());
reportEntity.setLanguage(report.getLanguage()); reportEntity.setLanguage(report.getLanguage());
reportEntity.setLineNum(report.getLineNum());
reportEntity.setCreateTime(new Date().getTime());
List<PomDependency> dependencies = report.getDependencies();
String s = JSON.toJSONString(dependencies);
List<Inspector.Warn> warnList = report.getWarnList(); List<Inspector.Warn> warnList = report.getWarnList();
String s1 = JSON.toJSONString(warnList); String s1 = JSON.toJSONString(warnList);
reportEntity.setWarnList(s1); reportEntity.setWarnList(s1);
...@@ -67,8 +108,8 @@ public class InspectServiceImpl implements InspectService { ...@@ -67,8 +108,8 @@ public class InspectServiceImpl implements InspectService {
ReportEntity reportEntitySave = reportDao.save(reportEntity); ReportEntity reportEntitySave = reportDao.save(reportEntity);
Project one = projectDao.getOne(project.getId()); Project one = projectDao.getOne(project.getId());
List<Dependency> dependencies = report.getDependencies(); List<PomDependency> dependencies = report.getDependencies();
for (Dependency dependency : dependencies) { for (PomDependency dependency : dependencies) {
dependency.setReportId(reportEntitySave.getId()); dependency.setReportId(reportEntitySave.getId());
} }
pomDependencyDao.saveAll(dependencies); pomDependencyDao.saveAll(dependencies);
...@@ -80,14 +121,13 @@ public class InspectServiceImpl implements InspectService { ...@@ -80,14 +121,13 @@ public class InspectServiceImpl implements InspectService {
} }
@Override @Override
public Report getReportById(Integer id) { public ServerResponse getReportById(Integer id) {
ReportEntity one = reportDao.getOne(id); ReportEntity one = reportDao.getOne(id);
Report report = new Report(); Report report = new Report();
List<Dependency> allByReportIdEquals = pomDependencyDao.findAllByReportIdEquals(id); List<PomDependency> allByReportIdEquals = pomDependencyDao.findAllByReportIdEquals(id);
report.setId(one.getId()); report.setId(one.getId());
List<PomDependency> dependencies = JSON.parseArray(one.getDependence(), PomDependency.class); report.setDependencies(allByReportIdEquals);
report.setDependencies(dependencies);
report.setDatabaseType(one.getDatabaseType()); report.setDatabaseType(one.getDatabaseType());
report.setLanguage(one.getLanguage()); report.setLanguage(one.getLanguage());
report.setPackagePath(one.getPackagePath()); report.setPackagePath(one.getPackagePath());
...@@ -97,12 +137,13 @@ public class InspectServiceImpl implements InspectService { ...@@ -97,12 +137,13 @@ public class InspectServiceImpl implements InspectService {
report.setLineNum(one.getLineNum()); report.setLineNum(one.getLineNum());
report.setFramework(one.getFramework()); report.setFramework(one.getFramework());
report.setIsSeparate(one.getIsSeparate()); report.setIsSeparate(one.getIsSeparate());
report.setCreateTime(one.getCreateTime());
List<Inspector.Warn> warns = JSON.parseArray(one.getWarnList(), Inspector.Warn.class); List<Inspector.Warn> warns = JSON.parseArray(one.getWarnList(), Inspector.Warn.class);
report.setWarnList(warns); report.setWarnList(warns);
List<String> path = JSON.parseArray(one.getJarPath(), String.class); List<String> path = JSON.parseArray(one.getJarPath(), String.class);
report.setJarPath(path); report.setJarPath(path);
return report; return ServerResponse.success(report);
} }
} }
...@@ -6,7 +6,7 @@ import com.zjty.adaptationmaster.adaptor.entity.ReportEntity; ...@@ -6,7 +6,7 @@ import com.zjty.adaptationmaster.adaptor.entity.ReportEntity;
import com.zjty.adaptationmaster.base.response.ServerResponse; import com.zjty.adaptationmaster.base.response.ServerResponse;
public interface InspectService { public interface InspectService {
ServerResponse inspect(Project projectId); ServerResponse inspect(Project projectId,String uuid);
Report getReportById(Integer id); ServerResponse getReportById(Integer id);
} }
...@@ -2,6 +2,7 @@ package com.zjty.adaptationmaster; ...@@ -2,6 +2,7 @@ package com.zjty.adaptationmaster;
import com.zjty.adaptationmaster.adaptor.entity.db.DBManage; import com.zjty.adaptationmaster.adaptor.entity.db.DBManage;
import com.zjty.adaptationmaster.utils.Regular; import com.zjty.adaptationmaster.utils.Regular;
import org.junit.Test;
import org.postgresql.copy.CopyManager; import org.postgresql.copy.CopyManager;
import org.postgresql.core.BaseConnection; import org.postgresql.core.BaseConnection;
...@@ -9,6 +10,8 @@ import java.io.File; ...@@ -9,6 +10,8 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
...@@ -17,4 +20,13 @@ public class Test4 { ...@@ -17,4 +20,13 @@ public class Test4 {
String s = "\"record_alarm\" bit(1) DEFAULT NULL,"; String s = "\"record_alarm\" bit(1) DEFAULT NULL,";
System.out.println(s.replaceAll("bit(1)","boolean")); System.out.println(s.replaceAll("bit(1)","boolean"));
} }
@Test
public void testSubPath(){
Path path = Paths.get("D:\\project\\adaptation\\apusicLibTest\\src");
System.out.println(path.subpath(0,1));
for(int i = 0;i<10;i++) {
System.out.println(path.subpath(i, 10));
}
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论