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

合并分支 'wyl' 到 'master'

Wyl 查看合并请求 ty_wyl/adaptation-master1!26
......@@ -126,6 +126,21 @@
<artifactId>snakeyaml</artifactId>
<version>1.25</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.3.4</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.2</version>
</dependency>
</dependencies>
<build>
......
package com.zjty.adaptationmaster.adaptor.controller;
import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.entity.Rule;
import com.zjty.adaptationmaster.adaptor.service.AdaptationService;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
@Controller
@RequestMapping("/adapt")
public class AdaptationController {
@GetMapping("/getUUID")
public ServerResponse getUUID(){
return ServerResponse.success(UUID.randomUUID().toString());
}
@Autowired
private AdaptationService adaptationService;
@GetMapping("/adapt")
public ServerResponse adapt(HttpServletResponse response) throws IOException {
System.out.println("请求");
return adaptationService.adapt(response);
@PostMapping("/adapt")
public ServerResponse adapt(Project project, List<Rule> ruleList,String uuid) throws IOException {
return adaptationService.adapt(project,ruleList,uuid);
}
@PostMapping("/compile")
public ServerResponse compile(Project project,String uuid){
return adaptationService.compile(project,uuid);
}
@PostMapping("/deploy")
public ServerResponse deploy(Project project,String uuid){
return adaptationService.deploy(project,uuid);
}
@PostMapping("/startInApusic")
public ServerResponse startInApusic(Project project,String uuid){
return adaptationService.start(project,uuid);
}
@PostMapping("/stopInApusic")
public ServerResponse stopInApusic(Project project,String uuid){
return adaptationService.stop(project,uuid);
}
@PostMapping("/unzipProject")
public ServerResponse unZipProject(String path,Project project){
return adaptationService.unZipProject(path,project);
}
}
package com.zjty.adaptationmaster.adaptor.controller;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import com.zjty.adaptationmaster.utils.MavenCompiler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.UUID;
@RestController
@RequestMapping("/compile")
public class CompileController {
@GetMapping("/getUUID")
public ServerResponse getUUID(){
return ServerResponse.success(UUID.randomUUID().toString());
}
@GetMapping("/compile")
public ServerResponse compile(String UUID){
// MavenCompiler mavenCompiler = new MavenCompiler("C:\\home\\project\\rsc\\hrmbclient\\pom.xml","D:\\apache-maven-3.5.4",UUID);
// mavenCompiler.compiler();
return ServerResponse.success();
}
}
package com.zjty.adaptationmaster.adaptor.controller;
import com.zjty.adaptationmaster.adaptor.service.DeployService;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/deploy")
public class DeployController {
@Autowired
private DeployService deployService;
@GetMapping("/compileProject")
public ServerResponse compile(int projectId,String uuid){
return deployService.compile(projectId,uuid);
}
@GetMapping("/deployProject")
public ServerResponse deploy(int projectId,String uuid){
return deployService.deploy(projectId,uuid);
}
}
package com.zjty.adaptationmaster.adaptor.controller;
import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.service.InspectService;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping
@RequestMapping("/inspect")
public class InspectController {
@Autowired
private InspectService inspectService;
public ServerResponse inspect(int projectId){
@GetMapping("/inspect")
public ServerResponse inspect(Project projectId){
return inspectService.inspect(projectId);
}
}
......@@ -12,7 +12,7 @@ import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
@ServerEndpoint("/webServer/{projectId}")
@ServerEndpoint("/webServer/{uuid}")
@Component
public class WebSocketServer {
private Logger logger = LoggerFactory.getLogger(getClass());
......@@ -24,7 +24,7 @@ public class WebSocketServer {
private String uuid;
@OnOpen
public void onOpen(Session session,@PathParam("projectId")String uuid){
public void onOpen(Session session,@PathParam("uuid")String uuid){
this.session = session;
this.uuid = uuid;
//session.getOpenSessions().
......
......@@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.*;
import java.nio.file.Path;
import java.util.List;
......@@ -14,12 +14,16 @@ import java.util.List;
@AllArgsConstructor
public class Report {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private Language language;//语言
private String framework;//架构
private Separate isSeparate;//前后端是否分离
private DatabaseType databaseType;//数据库类型
private String compileFilePath;//项目编译文件,如果是maven项目,用maven编译,那么就是pom.xml
public DependenceManagement dependenceManagement;//版本管理方式
@ElementCollection
public List<String> jarPath;//依赖文件的地址列表,用于编译,如果不是用版本管理工具
private String packagePath;
......
package com.zjty.adaptationmaster.adaptor.service;
import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.entity.Rule;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public interface AdaptationService {
ServerResponse adapt(HttpServletResponse response) throws IOException;
ServerResponse adapt(Project response, List<Rule> ruleList,String uuid) throws IOException;
ServerResponse compile(Project project, String uuid);
ServerResponse deploy(Project project, String uuid);
ServerResponse unZipProject(String path,Project project);
ServerResponse start(Project project, String uuid);
ServerResponse stop(Project project, String uuid);
}
package com.zjty.adaptationmaster.adaptor.service;
import com.zjty.adaptationmaster.base.response.ServerResponse;
public interface DeployService {
ServerResponse compile(int projectId, String uuid);
ServerResponse deploy(int projectId, String uuid);
}
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.repository.ProjectDao;
import com.zjty.adaptationmaster.base.enums.Const;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import com.zjty.adaptationmaster.adaptor.service.AdaptationService;
import com.zjty.adaptationmaster.utils.ApusicDeployer;
import com.zjty.adaptationmaster.utils.FileUtil;
import com.zjty.adaptationmaster.utils.MavenCompiler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Service
public class AdaptationServiceImpl implements AdaptationService {
@Autowired
private Adaptor adaptor;
@Autowired
private ProjectDao projectDao;
@Override
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);
}
@Override
public ServerResponse adapt(HttpServletResponse response) throws IOException {
Rule rule = new Rule();
rule.setPathMatchType(Rule.MatchType.NAME);
rule.setPath("pom.xml");
rule.setTextMatching(Rule.TextMatch.AREA);
rule.setTarget("<groupId>||mysql||</groupId>");
rule.setReplacing("<groupId>org.postgresql</groupId>");
List<Rule> objects = new ArrayList<>();
objects.add(rule);
//Adaptor adaptor = new Adaptor(adaptationDetailLogEntityDao, originalFileDao);
adaptor.setWriter(response.getWriter());
adaptor.setRuleList(objects);
adaptor.setProjectPath("C:\\home\\project\\rsc\\hrmbclient");
adaptor.doAdapt();
return ServerResponse.success();
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();
}
return ServerResponse.success(project);
}
@Override
public ServerResponse deploy(Project project, String uuid) {
// Project project = new Project();
// project.setPackagePath("/home/user/Desktop/hrmanager-0.0.1-SNAPSHOT.war");
//Project project = projectDao.getOne(projectId);
new ApusicDeployer(Const.CTLPATH,Const.MAVENHOME).deploy(project,uuid);
return ServerResponse.success(project);
}
@Transactional
@Override
public ServerResponse unZipProject(String path, Project project) {
project = projectDao.getOne(project.getId());
FileUtil fileUtil = new FileUtil();
project.setCodeUrl(Const.UPLOAD_LOCATION+File.separator+project.getProjectName());
try {
fileUtil.unzip(path,project.getCodeUrl());
} catch (Exception e) {
e.printStackTrace();
}
return ServerResponse.success(project);
}
@Override
public ServerResponse start(Project project, String uuid) {
return ServerResponse.success(new ApusicDeployer(Const.CTLPATH,Const.MAVENHOME).start(project.getProjectName(),uuid));
}
@Override
public ServerResponse stop(Project project, String uuid) {
return ServerResponse.success(new ApusicDeployer(Const.CTLPATH,Const.MAVENHOME).stop(project.getProjectName(),uuid));
}
}
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.utils.ReadedFileTask;
import com.zjty.adaptationmaster.adaptor.entity.OriginalFile;
import com.zjty.adaptationmaster.adaptor.entity.Rule;
......@@ -25,28 +27,33 @@ public class Adaptor {
@Autowired
private OriginalFileDao originalFileDao;
private String uuid;
//@Value("${base.path}")
private String basePath = Const.CONSOLE;
//线程池数量,合适的线程数量能让程序更快
private static final int poolSize = 20;
//为避免内存溢出,对于超大文件,切分成部分分别读入处理,最后拼接写出
private static final long LIMIT = 200*1024*1024;
//将适配进度写出,用于页面实时展示
PrintWriter responseWriter;
List<Rule> ruleList;
String projectPath;
Project project;
//String projectPath;
//private List<Rule> adaptorEntities = new ArrayList<>();
public void setProjectPath(String projectPath) {
this.projectPath = projectPath;
//public void setProjectPath(String projectPath) {
// this.projectPath = projectPath;
//}
public void setProject(Project project) {
this.project = project;
}
public void setRuleList(List<Rule> ruleList) {
this.ruleList = ruleList;
}
public void setWriter(PrintWriter writer) {
this.responseWriter = writer;
public void setUuid(String uuid) {
this.uuid = uuid;
}
public void doAdapt(){
......@@ -64,7 +71,7 @@ public class Adaptor {
//List<AdaptationDetailsLogEntity> detailsLogEntities = new ArrayList<>();
ReadedFileRepository repository = new ReadedFileRepository();
try {
Files.walkFileTree(Paths.get(projectPath),new SimpleFileVisitor<Path>() {
Files.walkFileTree(Paths.get(project.getCodeUrl()),new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
......@@ -92,7 +99,8 @@ public class Adaptor {
originalFiles.add(originalFile);
Files.move(file, originalPath);
//splitedFile.setDeal(true);
System.out.println("过滤得到符合规则的文件" + file);
WebSocketServer.sendInfo(uuid,"过滤得到符合规则的文件" + file,"替换","过滤文件",project.getProjectName());
//System.out.println();
if (attrs.size() > LIMIT) {
System.out.println("找到大文件" + file);
ReadedLinesRepository linesRepository = new ReadedLinesRepository();
......@@ -106,7 +114,7 @@ public class Adaptor {
if (linesRepository.put(s)) {
List<ReadedFileTask.ReadedFile> readedFiles = new ArrayList<>();
readedFiles.add(new ReadedFileTask.ReadedFile(linesRepository.getReadedFiles(), attrs, file,thisFileMatched));
ReadedFileTask apacheTask = new ReadedFileTask(readedFiles);
ReadedFileTask apacheTask = new ReadedFileTask(readedFiles,project.getProjectName(),uuid);
apacheTask.setBySort(bySort);
apacheTask.setIndex(i);
pool.submit(apacheTask);
......@@ -115,7 +123,7 @@ public class Adaptor {
}
List<ReadedFileTask.ReadedFile> readedFiles = new ArrayList<>();
readedFiles.add(new ReadedFileTask.ReadedFile(linesRepository.getReadedFiles(), attrs, file,thisFileMatched));
ReadedFileTask apacheTask = new ReadedFileTask(readedFiles);
ReadedFileTask apacheTask = new ReadedFileTask(readedFiles,project.getProjectName(),uuid);
apacheTask.setBySort(bySort);
apacheTask.setIndex(i);
pool.submit(apacheTask);
......@@ -125,7 +133,7 @@ public class Adaptor {
String s = new String(Files.readAllBytes(originalPath));
ReadedFileTask.ReadedFile readedFile = new ReadedFileTask.ReadedFile(s, attrs, file,thisFileMatched);
if (repository.put(readedFile)) {
ReadedFileTask apacheTask = new ReadedFileTask(repository.getReadedFiles());
ReadedFileTask apacheTask = new ReadedFileTask(repository.getReadedFiles(),project.getProjectName(),uuid);
pool.submit(apacheTask);
}
}
......@@ -135,7 +143,7 @@ public class Adaptor {
return FileVisitResult.CONTINUE;
}
});
ReadedFileTask apacheTask = new ReadedFileTask(repository.getReadedFiles());
ReadedFileTask apacheTask = new ReadedFileTask(repository.getReadedFiles(),project.getProjectName(),uuid);
pool.submit(apacheTask);
pool.shutdown();
try {
......
package com.zjty.adaptationmaster.adaptor.service.Impl;
import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.repository.ProjectDao;
import com.zjty.adaptationmaster.adaptor.service.DeployService;
import com.zjty.adaptationmaster.base.enums.Const;
import com.zjty.adaptationmaster.base.response.ServerResponse;
import com.zjty.adaptationmaster.utils.ApusicDeployer;
import com.zjty.adaptationmaster.utils.MavenCompiler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DeployServiceImpl implements DeployService {
@Autowired
private ProjectDao projectDao;
@Override
public ServerResponse compile(int projectId, 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();
}
return ServerResponse.success(project);
}
@Override
public ServerResponse deploy(int projectId, String uuid) {
// Project project = new Project();
// project.setPackagePath("/home/user/Desktop/hrmanager-0.0.1-SNAPSHOT.war");
Project project = projectDao.getOne(projectId);
new ApusicDeployer(Const.CTLPATH,Const.MAVENHOME).deploy(project,uuid);
return ServerResponse.success(project);
}
}
......@@ -32,7 +32,8 @@ public class FileUploadServiceImpl implements FileUploadService {
BufferedOutputStream bos = null;
FileReturn fileReturn = new FileReturn();
String sourceName = multipartFile.getOriginalFilename();
String fileName = UUID.randomUUID().toString() + ".sql";
String suffix = sourceName.substring(sourceName.lastIndexOf(".")+1);
String fileName = UUID.randomUUID().toString() + suffix;
//不存在该目录,创建目录
File file = new File("/sqlFile/uploads");
if(!file.exists()){
......
......@@ -19,8 +19,8 @@ public class InspectServiceImpl implements InspectService {
@Transactional
@Override
public ServerResponse inspect(int projectId) {
Project project = projectDao.getOne(projectId);
return ServerResponse.success(new Inspector(project,new HashMap<>(),new HashMap<>(),new ArrayList<>()).inspect());
public ServerResponse inspect(Project project) {
//Project project = projectDao.getOne(projectId);
return ServerResponse.success(new Inspector(project,new HashMap<>(),new HashMap<>()/*,new ArrayList<>()*/).inspect());
}
}
package com.zjty.adaptationmaster.adaptor.service;
import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.base.response.ServerResponse;
public interface InspectService {
ServerResponse inspect(int projectId);
ServerResponse inspect(Project projectId);
}
......@@ -38,6 +38,8 @@ public class Const {
"[{'name' : '设备1号', 'id' : 'K001002'},{'name' : '设备2号', 'id' : 'K003004'}]";
}
public static Map<String,Long> transferCountMap = new ConcurrentHashMap<>();
public static final String MAVENHOME = "D:\\apache-maven-3.5.4";
public static final String CTLPATH = "/home/user/Desktop/AAS-V9.0/bin/appctl";
public static final String CTLPWD = "Qwert123!@#";
......
......@@ -19,16 +19,7 @@ public class ApusicDeployer {
private String ctlPwd;
public void deploy(Project project,String webSocketName){
String command = ctlPath+" -p '"+ctlPwd+"' install "+project.getProjectName()+" "+project.getReport().getPackagePath();
try {
Process exec = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(exec.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
WebSocketServer.sendInfo(line, webSocketName,"部署","running",project.getProjectName());
}
} catch (IOException e) {
e.printStackTrace();
}
appctl(command,webSocketName,project.getProjectName());
}
public List<ProjectStatueFromMiddleware> list(){
List<ProjectStatueFromMiddleware> result = new ArrayList<>();
......@@ -51,4 +42,27 @@ public class ApusicDeployer {
}
return result;
}
public boolean start(String projectName,String webSocketName){
String command = ctlPath+" -p '"+ctlPwd+"' start "+projectName;
appctl(command,webSocketName,projectName);
return true;
}
public boolean stop(String projectName,String webSocketName){
String command = ctlPath+" -p '"+ctlPwd+"' stop "+projectName;
appctl(command,webSocketName,projectName);
return true;
}
private void appctl(String command,String webSocketName,String projectName){
try {
Process exec = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(exec.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
WebSocketServer.sendInfo(line, webSocketName, "部署", "running", projectName);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
......@@ -2,14 +2,18 @@ package com.zjty.adaptationmaster.utils;
import com.zjty.adaptationmaster.adaptor.entity.Project;
import com.zjty.adaptationmaster.adaptor.entity.Report;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.regex.Matcher;
/**
* 项目体检,根据既定特征值,
......@@ -25,7 +29,8 @@ public class Inspector {
Map<String,Report.Language> suffixLanguageMapping = new HashMap<>();
Map<String, Report.Separate> suffixSeparateMapping = new HashMap<>();
List<String> configFileSuffixList = new ArrayList<>();
Inspector inspector = new Inspector(project,suffixLanguageMapping,suffixSeparateMapping,configFileSuffixList);
Inspector inspector = new Inspector(project,suffixLanguageMapping,suffixSeparateMapping/*,configFileSuffixList*/);
inspector.inspect();
}
private Project project;
......@@ -37,7 +42,7 @@ public class Inspector {
private Map<String,List<Path>> configFileTypePathsMapping;
public Inspector(Project project,Map<String,Report.Language> suffixLanguageMapping,Map<String, Report.Separate> suffixSeparateMapping,List<String> configFileSuffixList){
public Inspector(Project project,Map<String,Report.Language> suffixLanguageMapping,Map<String, Report.Separate> suffixSeparateMapping/*,List<String> configFileSuffixList*/){
this.project = project;
this.suffixLanguageMapping = suffixLanguageMapping;
this.suffixSeparateMapping = suffixSeparateMapping;
......@@ -50,9 +55,10 @@ public class Inspector {
separateMatchMap.put(s,new Counter());
}
this.configFileTypePathsMapping = new HashMap<>();
for(String s:configFileSuffixList){
configFileTypePathsMapping.put(s,new ArrayList<>());
}
// for(String s:configFileSuffixList){
// configFileTypePathsMapping.put(s,new ArrayList<>());
// }
configFileTypePathsMapping.put("xml",new ArrayList<>());
this.report = new Report();
}
......@@ -144,7 +150,65 @@ public class Inspector {
}
}
for(Map.Entry<String,List<Path>> entry:configFileTypePathsMapping.entrySet()){
switch (entry.getKey()){
case ".xml":
for(Path path:entry.getValue()){
if(path.getFileName().equals("pom.xml")){
report.setDependenceManagement(Report.DependenceManagement.MAVEN);
report.setCompileFilePath(path.toString());
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(path.toFile());
} catch (DocumentException e) {
e.printStackTrace();
}
//Node dependences = document.selectSingleNode("dependencies");
//report.setPackagePath();
}
//PathMatcher matcher = FileSystems.getDefault().getPathMatcher("");
if(path.getFileName().toString().equals("application.properties")){
Properties properties = new Properties();
try {
properties.load(new FileInputStream(path.toFile()));
} catch (IOException e) {
e.printStackTrace();
}
String datasourceDriver = properties.getProperty("spring.datasource.driver-class-name");
String active = properties.getProperty("spring.profiles.active");
System.out.println(path.getParent());
File file = new File(path.getParent().toString()+"/application-"+active+".properties");
if(file.exists()){
Properties properties1 = new Properties();
try {
properties1.load(new FileInputStream(file));
String driver = properties1.getProperty("spring.datasource.driver-class-name");
if(driver!=null)datasourceDriver = driver;
} catch (IOException e) {
e.printStackTrace();
}
}else {
System.out.println("没有找到active配置文件");
}
if(datasourceDriver!=null){
if(datasourceDriver.contains(Report.DatabaseType.MYSQL.name().toLowerCase())){
report.setDatabaseType(Report.DatabaseType.MYSQL);
} else if(datasourceDriver.contains(Report.DatabaseType.POSTGRE.name().toLowerCase())){
report.setDatabaseType(Report.DatabaseType.POSTGRE);
} else if(datasourceDriver.contains(Report.DatabaseType.ORACLE.name().toLowerCase())){
report.setDatabaseType(Report.DatabaseType.ORACLE);
} else if(datasourceDriver.contains(Report.DatabaseType.SQLSERVER.name().toLowerCase())){
report.setDatabaseType(Report.DatabaseType.SQLSERVER);
}
}
}
}
}
}
// for(Path path:propertiesConfigPaths){
// try {
......
......@@ -61,10 +61,14 @@ public class MavenCompiler {
// }
public static void main(String[] args) {
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile(new File("D:\\SingleHRManger1.0(scannerAndFriger)"));
request.setGoals(Collections.singletonList("compile"));
//request.setPomFile(new File("D:\\SingleHRManger1.0(scannerAndFriger)"));
request.setPomFile(new File("C:\\home\\project\\rsc\\hrmbclient\\pom.xml"));
/**
* Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
*/
request.setGoals(Collections.singletonList("package"));
Invoker invoker = new DefaultInvoker();
//invoker.setMavenHome(new File(mavenHome));
invoker.setMavenHome(new File(Const.MAVENHOME));
invoker.setOutputHandler(new InvocationOutputHandler() {
@Override
......@@ -74,5 +78,10 @@ public class MavenCompiler {
//System.out.println(s);
}
});
try {
invoker.execute(request);
} catch (MavenInvocationException e) {
e.printStackTrace();
}
}
}
package com.zjty.adaptationmaster.utils;
import com.zjty.adaptationmaster.adaptor.controller.WebSocketServer;
import com.zjty.adaptationmaster.adaptor.entity.Rule;
import com.zjty.adaptationmaster.adaptor.service.Impl.Adaptor;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import java.io.*;
import java.nio.file.Path;
......@@ -16,11 +15,14 @@ import java.util.List;
public class ReadedFileTask implements Runnable {
private String projectName;
private String uuid;
private List<ReadedFile> readedFiles;
//private Writer responseWriter;
public ReadedFileTask(List<ReadedFile> readedFiles/*,Writer responseWriter*/) {
public ReadedFileTask(List<ReadedFile> readedFiles,String projectName,String uuid) {
this.readedFiles = readedFiles;
//this.responseWriter = responseWriter;
this.projectName = projectName;
this.uuid = uuid;
}
private Adaptor.WriterBySort bySort;
......@@ -34,7 +36,6 @@ public class ReadedFileTask implements Runnable {
this.index = index;
}
@Override
public void run() {
for(ReadedFile readedFile:readedFiles){
......@@ -52,6 +53,7 @@ public class ReadedFileTask implements Runnable {
int i = content.indexOf(matching);
if(i>-1){
WebSocketServer.sendInfo(uuid,readedFile.getPath().getFileName()+":"+matching+" 替换为 "+entity.getReplacing(),"替换","正在替换",projectName);
int beginIndex = content.lastIndexOf(begin, i);
int endIndex = content.indexOf(end, i + 1);
if(beginIndex>-1&&endIndex>-1){
......@@ -71,6 +73,7 @@ public class ReadedFileTask implements Runnable {
bySort.insert(index,content);
} else {
System.out.println("writerFile");
WebSocketServer.sendInfo(uuid,readedFile.getPath().getFileName()+"","替换","正在写出",projectName);
File file = readedFile.getPath().toFile();
file.createNewFile();
OutputStreamWriter contentWriter = new OutputStreamWriter(new FileOutputStream(file));
......
......@@ -671,7 +671,6 @@ public class Test1 {
}
if(haveJave){
dirPath.add(file.getAbsolutePath());
}
}
......
package com.zjty.adaptationmaster;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
public class TestProperties {
public static void main(String[] args) {
// Properties properties = new Properties();
// String bb = properties.getProperty("bb");
// System.out.println(bb==null);
// System.out.println(properties.getProperty("aa"));
String command = "C:\\Users\\wyl\\Desktop\\national\\AAS-V9.0\\bin\\appctl.cmd -p Qwer123!@# start hrm";
Process exec = null;
try {
exec = Runtime.getRuntime().exec(command);
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(exec.getInputStream()));
String line = null;
try {
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}catch (IOException e){
e.printStackTrace();
}
BufferedReader reader1 = new BufferedReader(new InputStreamReader(exec.getErrorStream()));
String line1 = null;
try {
while ((line1 = reader1.readLine()) != null) {
System.out.println(line1);
}
}catch (IOException e){
e.printStackTrace();
}
System.out.println(exec.exitValue());
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论