Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
adaptation-master
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
912协同工作系统
项目监控管理工具
adaptation-master
Commits
910c0a3f
提交
910c0a3f
authored
12月 23, 2019
作者:
wyl
浏览文件
操作
浏览文件
下载
差异文件
极简版规则
上级
cd8ae5ed
b14c9fad
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
47 个修改的文件
包含
874 行增加
和
301 行删除
+874
-301
pom.xml
pom.xml
+5
-0
AdaptationController.java
...tationmaster/adaptor/controller/AdaptationController.java
+18
-16
DBManageController.java
...aptationmaster/adaptor/controller/DBManageController.java
+6
-0
DBRecordController.java
...aptationmaster/adaptor/controller/DBRecordController.java
+1
-5
InspectController.java
...daptationmaster/adaptor/controller/InspectController.java
+3
-5
ProjectController.java
...daptationmaster/adaptor/controller/ProjectController.java
+1
-0
Test.java
...va/com/zjty/adaptationmaster/adaptor/controller/Test.java
+24
-0
WebSocketServer.java
.../adaptationmaster/adaptor/controller/WebSocketServer.java
+12
-7
AdaptRequest.java
...om/zjty/adaptationmaster/adaptor/entity/AdaptRequest.java
+24
-0
MiddlewareManagement.java
...adaptationmaster/adaptor/entity/MiddlewareManagement.java
+2
-0
Project.java
...ava/com/zjty/adaptationmaster/adaptor/entity/Project.java
+21
-0
Report.java
...java/com/zjty/adaptationmaster/adaptor/entity/Report.java
+1
-0
Rule.java
...n/java/com/zjty/adaptationmaster/adaptor/entity/Rule.java
+14
-14
RuleSetAndRule.java
.../zjty/adaptationmaster/adaptor/entity/RuleSetAndRule.java
+22
-0
SystemVariable.java
.../zjty/adaptationmaster/adaptor/entity/SystemVariable.java
+0
-7
DatabaseResponse.java
.../adaptationmaster/adaptor/entity/db/DatabaseResponse.java
+1
-0
SQLExecuteTask.java
...ty/adaptationmaster/adaptor/entity/db/SQLExecuteTask.java
+36
-0
DBRecordDao.java
...zjty/adaptationmaster/adaptor/repository/DBRecordDao.java
+4
-1
ReportDao.java
...m/zjty/adaptationmaster/adaptor/repository/ReportDao.java
+8
-0
RuleDao.java
...com/zjty/adaptationmaster/adaptor/repository/RuleDao.java
+7
-0
DBManageService.java
...jty/adaptationmaster/adaptor/service/DBManageService.java
+3
-0
DBRecordService.java
...jty/adaptationmaster/adaptor/service/DBRecordService.java
+1
-2
AdaptationServiceImpl.java
...ionmaster/adaptor/service/Impl/AdaptationServiceImpl.java
+56
-14
Adaptor.java
...m/zjty/adaptationmaster/adaptor/service/Impl/Adaptor.java
+0
-0
AssemblyServiceImpl.java
...ationmaster/adaptor/service/Impl/AssemblyServiceImpl.java
+2
-1
DBManageServiceImpl.java
...ationmaster/adaptor/service/Impl/DBManageServiceImpl.java
+54
-0
DBMigrateServiceImpl.java
...tionmaster/adaptor/service/Impl/DBMigrateServiceImpl.java
+60
-11
DBRecordServiceImpl.java
...ationmaster/adaptor/service/Impl/DBRecordServiceImpl.java
+4
-35
DependencyServiceImpl.java
...ionmaster/adaptor/service/Impl/DependencyServiceImpl.java
+5
-3
FileUploadServiceImpl.java
...ionmaster/adaptor/service/Impl/FileUploadServiceImpl.java
+1
-1
InspectServiceImpl.java
...tationmaster/adaptor/service/Impl/InspectServiceImpl.java
+23
-9
RuleServiceImpl.java
...daptationmaster/adaptor/service/Impl/RuleServiceImpl.java
+8
-3
Const.java
...main/java/com/zjty/adaptationmaster/base/enums/Const.java
+2
-2
ServerResponse.java
...m/zjty/adaptationmaster/base/response/ServerResponse.java
+1
-0
MyWebConfig.java
...in/java/com/zjty/adaptationmaster/config/MyWebConfig.java
+34
-0
Adaptor.java
src/main/java/com/zjty/adaptationmaster/utils/Adaptor.java
+0
-0
ApusicDeployer.java
.../java/com/zjty/adaptationmaster/utils/ApusicDeployer.java
+14
-5
FileZip.java
src/main/java/com/zjty/adaptationmaster/utils/FileZip.java
+60
-0
Inspector.java
src/main/java/com/zjty/adaptationmaster/utils/Inspector.java
+4
-1
MavenCompiler.java
...n/java/com/zjty/adaptationmaster/utils/MavenCompiler.java
+2
-1
ReadedFileTask.java
.../java/com/zjty/adaptationmaster/utils/ReadedFileTask.java
+7
-47
ReadedFileTask1.java
...java/com/zjty/adaptationmaster/utils/ReadedFileTask1.java
+152
-0
Regular.java
src/main/java/com/zjty/adaptationmaster/utils/Regular.java
+11
-8
WriterBySort.java
...in/java/com/zjty/adaptationmaster/utils/WriterBySort.java
+45
-0
application.properties
src/main/resources/application.properties
+5
-2
Test4.java
src/test/java/com/zjty/adaptationmaster/Test4.java
+14
-5
TestAdapt.java
src/test/java/com/zjty/adaptationmaster/TestAdapt.java
+96
-96
没有找到文件。
pom.xml
浏览文件 @
910c0a3f
...
...
@@ -90,6 +90,11 @@
<artifactId>
commons-io
</artifactId>
<version>
2.6
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-compress
</artifactId>
<version>
1.8.1
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-websocket
</artifactId>
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/controller/AdaptationController.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.zjty.adaptationmaster.adaptor.entity.AdaptRequest
;
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
org.springframework.web.bind.annotation.*
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.UUID
;
@Controller
@
Rest
Controller
@RequestMapping
(
"/adapt"
)
public
class
AdaptationController
{
@GetMapping
(
"/getUUID"
)
...
...
@@ -24,27 +24,29 @@ public class AdaptationController {
@Autowired
private
AdaptationService
adaptationService
;
@PostMapping
(
"/adapt"
)
public
ServerResponse
adapt
(
Project
project
,
List
<
Rule
>
ruleList
,
String
uuid
)
throws
IOException
{
return
adaptationService
.
adapt
(
project
,
ruleList
,
uuid
);
public
ServerResponse
adapt
(
@RequestBody
AdaptRequest
adaptRequest
)
throws
IOException
{
return
adaptationService
.
adapt
(
adaptRequest
.
getProject
(),
adaptRequest
.
getRuleList
(),
adaptRequest
.
getUuid
()
);
}
@PostMapping
(
"/compile"
)
public
ServerResponse
compile
(
Project
project
,
String
uuid
){
return
adaptationService
.
compile
(
project
,
uuid
);
public
ServerResponse
compile
(
@RequestBody
AdaptRequest
adaptRequest
){
System
.
out
.
print
(
"编译"
);
System
.
out
.
print
(
JSON
.
toJSONString
(
adaptRequest
));
return
adaptationService
.
compile
(
adaptRequest
.
getProject
(),
adaptRequest
.
getUuid
());
}
@PostMapping
(
"/deploy"
)
public
ServerResponse
deploy
(
Project
project
,
String
uuid
){
return
adaptationService
.
deploy
(
project
,
uuid
);
public
ServerResponse
deploy
(
@RequestBody
AdaptRequest
adaptRequest
){
return
adaptationService
.
deploy
(
adaptRequest
.
getProject
(),
adaptRequest
.
getUuid
()
);
}
@PostMapping
(
"/startInApusic"
)
public
ServerResponse
startInApusic
(
Project
project
,
String
uuid
){
return
adaptationService
.
start
(
project
,
uuid
);
public
ServerResponse
startInApusic
(
@RequestBody
AdaptRequest
adaptRequest
){
return
adaptationService
.
start
(
adaptRequest
.
getProject
(),
adaptRequest
.
getUuid
()
);
}
@PostMapping
(
"/stopInApusic"
)
public
ServerResponse
stopInApusic
(
Project
project
,
String
uuid
){
return
adaptationService
.
stop
(
project
,
uuid
);
public
ServerResponse
stopInApusic
(
@RequestBody
AdaptRequest
adaptRequest
){
return
adaptationService
.
stop
(
adaptRequest
.
getProject
(),
adaptRequest
.
getUuid
()
);
}
@PostMapping
(
"/unzipProject"
)
public
ServerResponse
unZipProject
(
String
path
,
Project
projec
t
){
return
adaptationService
.
unZipProject
(
path
,
project
);
public
ServerResponse
unZipProject
(
@RequestBody
AdaptRequest
adaptReques
t
){
return
adaptationService
.
unZipProject
(
adaptRequest
.
getPath
(),
adaptRequest
.
getProject
()
);
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/controller/DBManageController.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
controller
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBDeleteResponse
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBManage
;
import
com.zjty.adaptationmaster.adaptor.service.DBManageService
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
...
...
@@ -27,4 +28,9 @@ public class DBManageController {
public
ServerResponse
findDatabaseManagement
(){
return
databaseService
.
findDatabase
();
}
@PutMapping
(
"/deleteDB"
)
public
ServerResponse
deleteDB
(
@RequestBody
DBDeleteResponse
dbDeleteResponse
){
return
databaseService
.
deleteDB
(
dbDeleteResponse
);
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/controller/DBRecordController.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
controller
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBDeleteResponse
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBRecordPage
;
import
com.zjty.adaptationmaster.adaptor.service.DBRecordService
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
...
...
@@ -21,8 +20,5 @@ public class DBRecordController {
return
dbRecordService
.
pageFind
(
dbRecordPage
);
}
@PutMapping
(
"deleteDB"
)
public
ServerResponse
deleteDB
(
@RequestBody
DBDeleteResponse
dbDeleteResponse
){
return
dbRecordService
.
deleteDB
(
dbDeleteResponse
);
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/controller/InspectController.java
浏览文件 @
910c0a3f
...
...
@@ -4,17 +4,15 @@ 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
;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RequestMapping
(
"/inspect"
)
public
class
InspectController
{
@Autowired
private
InspectService
inspectService
;
@
Ge
tMapping
(
"/inspect"
)
public
ServerResponse
inspect
(
Project
projectId
){
@
Pu
tMapping
(
"/inspect"
)
public
ServerResponse
inspect
(
@RequestBody
Project
projectId
){
return
inspectService
.
inspect
(
projectId
);
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/controller/ProjectController.java
浏览文件 @
910c0a3f
...
...
@@ -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
);
}
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/controller/Test.java
0 → 100644
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
org.springframework.web.bind.annotation.*
;
import
java.io.IOException
;
@RestController
@RequestMapping
(
"/send"
)
public
class
Test
{
@PutMapping
(
"/test/{uuid}"
)
public
ServerResponse
test
(
@PathVariable
String
uuid
){
JSONObject
jo
=
new
JSONObject
();
jo
.
put
(
"message"
,
"这是后台返回的消息!"
);
try
{
WebSocketServer
.
sendIn
(
uuid
,
JSONObject
.
toJSONString
(
jo
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
ServerResponse
.
success
();
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/controller/WebSocketServer.java
浏览文件 @
910c0a3f
...
...
@@ -28,6 +28,8 @@ public class WebSocketServer {
this
.
session
=
session
;
this
.
uuid
=
uuid
;
//session.getOpenSessions().
//System.out.println("第一个" + uuid);
logger
.
info
(
"uuid:"
+
uuid
);
map
.
put
(
uuid
,
this
);
try
{
sendMessage
(
"连接成功"
);
...
...
@@ -66,13 +68,16 @@ public class WebSocketServer {
}
public
static
void
sendInfo
(
String
sessionId
,
String
msg
,
String
action
,
String
state
,
String
projectName
){
//System.out.println(LocalDateTime.now()+"\t"+projectName+"\t"+action+"\t"+state+"\t"+msg);
// try {
// //map.get(sessionId).sendMessage(LocalDateTime.now()+"\t"+projectName+"\t"+action+"\t"+state+"\t"+msg);
// } catch (IOException e) {
// e.printStackTrace();
// }
}
try
{
//System.out.println(sessionId);
map
.
get
(
sessionId
).
sendMessage
(
LocalDateTime
.
now
()+
"\t"
+
projectName
+
"\t"
+
action
+
"\t"
+
state
+
"\t"
+
msg
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
public
static
void
sendIn
(
String
sessionId
,
String
message
)
throws
IOException
{
map
.
get
(
sessionId
).
sendMessage
(
message
);
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/AdaptRequest.java
0 → 100644
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
/**
* <h4>Description : adaptation-master</h4>
*
* @author : M@tr!x [xhyrzldf@foxmail.com]
* @Date : 2019-12-19 11:37
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
AdaptRequest
{
private
Project
project
;
private
List
<
Rule
>
ruleList
;
private
String
uuid
;
private
String
path
;
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/MiddlewareManagement.java
浏览文件 @
910c0a3f
...
...
@@ -28,6 +28,8 @@ public class MiddlewareManagement {
private
String
ip
;
//中间件ip
private
String
type
;
//类型
private
String
port
;
//端口号
@Temporal
(
TemporalType
.
TIMESTAMP
)
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/entity/Project.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -18,28 +19,48 @@ import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Entity
@JsonIgnoreProperties
(
value
=
{
"hibernateLazyInitializer"
,
"handler"
})
public
class
Project
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Integer
id
;
@Column
(
unique
=
true
)
private
String
projectName
;
//项目名称
private
String
sourceDB
;
//原数据库
private
String
createTypeDB
;
//目标数据库
private
String
createMiddleware
;
//目标中间件
private
String
codeUrl
;
//当前源码源码路径
private
String
des
;
//描述
private
Integer
stage
;
//阶段(0:源代码 1:替换后 2:编译后)
private
Integer
status
=
1
;
//状态(0:删除 1:未删除)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
startTime
=
new
Date
();
//开始时间
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
updateTime
;
//更新时间
@OneToMany
(
mappedBy
=
"project"
,
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
EAGER
)
private
List
<
Rule
>
rules
;
//自定义的规则
@ManyToMany
@JoinTable
(
name
=
"project_ruleSet"
,
joinColumns
=
@JoinColumn
(
name
=
"p_id"
,
referencedColumnName
=
"id"
),
inverseJoinColumns
=
@JoinColumn
(
name
=
"r_id"
,
referencedColumnName
=
"id"
))
private
List
<
RuleSet
>
ruleSets
;
//规则集
private
boolean
compileSuccess
=
false
;
@OneToOne
private
Report
report
;
private
boolean
deploySuccess
=
false
;
private
String
deployPath
=
"编译路径"
;
//不知道路径,等王永磊改
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/Report.java
浏览文件 @
910c0a3f
...
...
@@ -26,6 +26,7 @@ public class Report {
@ElementCollection
public
List
<
String
>
jarPath
;
//依赖文件的地址列表,用于编译,如果不是用版本管理工具
private
String
packagePath
;
private
int
fileNum
;
public
enum
DependenceManagement
{
MAVEN
,
GRADLE
,
ANT
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/entity/Rule.java
浏览文件 @
910c0a3f
...
...
@@ -30,10 +30,10 @@ public class Rule {
private
Integer
status
=
1
;
//状态(0:删除 1:未删除)
private
MatchType
pathMatchType
;
//文件匹配方式 路径/文件名/后缀
//
private MatchType pathMatchType;//文件匹配方式 路径/文件名/后缀
private
String
path
;
//文件路径匹配
private
TextMatch
textMatching
;
//文本匹配方式 全文匹配/正则匹配
private
DealWay
dealWay
;
//替换,在匹配字之前插入,在匹配字之后插入
//
private TextMatch textMatching;//文本匹配方式 全文匹配/正则匹配
//
private DealWay dealWay;//替换,在匹配字之前插入,在匹配字之后插入
/**
* AREA
...
...
@@ -42,15 +42,15 @@ public class Rule {
private
String
target
;
//文本匹配目标
private
String
replacing
;
//更改方式 全文替换/正则替换
public
enum
MatchType
{
PATH
,
NAME
,
SUFFIX
,
GLOB
}
public
enum
TextMatch
{
AREA
,
CONTENT
}
public
enum
DealWay
{
REPLACE
,
INSERTAFTER
,
INSERTBEFORE
,
InsertBetween
}
//
public enum MatchType{
//
PATH,NAME,SUFFIX,GLOB
//
}
//
//
public enum TextMatch{
//
AREA,CONTENT
//
}
//
//
public enum DealWay{
//
REPLACE,INSERTAFTER,INSERTBEFORE,InsertBetween
//
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/RuleSetAndRule.java
0 → 100644
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
net.bytebuddy.asm.Advice
;
import
java.util.List
;
/**
* <h4>Description : adaptation-master</h4>
*
* @author : M@tr!x [xhyrzldf@foxmail.com]
* @Date : 2019-12-18 13:48
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
RuleSetAndRule
{
private
List
<
RuleSet
>
ruleSets
;
private
List
<
Rule
>
rules
;
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/SystemVariable.java
deleted
100644 → 0
浏览文件 @
cd8ae5ed
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
;
import
org.springframework.context.ApplicationContext
;
public
class
SystemVariable
{
public
static
ApplicationContext
context
;
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/db/DatabaseResponse.java
浏览文件 @
910c0a3f
...
...
@@ -13,4 +13,5 @@ public class DatabaseResponse {
private
String
createType
;
//生成库类型
private
String
sqlPath
;
//上传数据库地址
private
Integer
id
;
//用户ID
private
String
uuid
;
//uuid
}
src/main/java/com/zjty/adaptationmaster/adaptor/entity/db/SQLExecuteTask.java
0 → 100644
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
.
db
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.SQLException
;
public
class
SQLExecuteTask
implements
Runnable
{
private
Connection
connection
;
private
String
sql
;
public
SQLExecuteTask
(
Connection
connection
){
this
.
connection
=
connection
;
}
public
void
setSql
(
String
sql
){
this
.
sql
=
sql
;
}
@Override
public
void
run
()
{
PreparedStatement
preparedStatement
=
null
;
try
{
preparedStatement
=
connection
.
prepareStatement
(
sql
);
preparedStatement
.
setQueryTimeout
(
10
);
preparedStatement
.
execute
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
preparedStatement
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/repository/DBRecordDao.java
浏览文件 @
910c0a3f
...
...
@@ -7,10 +7,13 @@ import org.springframework.data.jpa.repository.Modifying;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
java.util.List
;
public
interface
DBRecordDao
extends
JpaRepository
<
DBRecord
,
Integer
>,
JpaSpecificationExecutor
{
@Query
(
"update DBRecord d set d.status =:status where d.dbName =:dbName"
)
@Modifying
@Query
(
"update DBRecord d set d.status =:status where d.dbName =:dbName"
)
void
delete
(
@Param
(
value
=
"dbName"
)
String
dbName
,
@Param
(
value
=
"status"
)
Integer
status
);
List
<
DBRecord
>
findDBRecordsByStatus
(
Integer
status
);
}
src/main/java/com/zjty/adaptationmaster/adaptor/repository/ReportDao.java
0 → 100644
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
repository
;
import
com.zjty.adaptationmaster.adaptor.entity.Report
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
public
interface
ReportDao
extends
JpaRepository
<
Report
,
Integer
>,
JpaSpecificationExecutor
{
}
src/main/java/com/zjty/adaptationmaster/adaptor/repository/RuleDao.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
repository
;
import
com.zjty.adaptationmaster.adaptor.entity.Rule
;
import
org.springframework.data.domain.Example
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Query
;
import
java.util.List
;
/**
* <h4>Description : adaptation-master</h4>
...
...
@@ -11,4 +15,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
* @Date : 2019-12-09 9:30
*/
public
interface
RuleDao
extends
JpaRepository
<
Rule
,
Integer
>,
JpaSpecificationExecutor
{
@Query
(
"select r from Rule r where r.ruleSet = null and r.status = 1"
)
List
<
Rule
>
findRulesInProject
();
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/DBManageService.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
service
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBDeleteResponse
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBManage
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
...
...
@@ -11,4 +12,6 @@ public interface DBManageService {
ServerResponse
deleteDatabase
(
Integer
id
);
ServerResponse
findDatabase
();
ServerResponse
deleteDB
(
DBDeleteResponse
dbDeleteResponse
);
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/DBRecordService.java
浏览文件 @
910c0a3f
...
...
@@ -8,6 +8,5 @@ import com.zjty.adaptationmaster.base.response.ServerResponse;
public
interface
DBRecordService
{
ServerResponse
pageFind
(
DBRecordPage
dbRecordPage
);
ServerResponse
deleteDB
(
DBDeleteResponse
dbDeleteResponse
);
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/AdaptationServiceImpl.java
浏览文件 @
910c0a3f
...
...
@@ -2,21 +2,23 @@ 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
;
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
com.zjty.adaptationmaster.utils.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
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
...
...
@@ -24,28 +26,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
...
...
@@ -60,11 +71,16 @@ public class AdaptationServiceImpl implements AdaptationService {
@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
());
Project
project1
=
projectDao
.
getOne
(
project
.
getId
());
//FileUtil fileUtil = new FileUtil();
//project1.setCodeUrl(Const.UPLOAD_LOCATION+File.separator+project1.getProjectName());
project1
.
setCodeUrl
(
Const
.
UPLOAD_LOCATION
+
project1
.
getProjectName
());
try
{
fileUtil
.
unZip
(
new
File
(
path
),
project
.
getCodeUrl
());
FileZip
.
unzip
(
new
File
(
path
),
project1
.
getCodeUrl
());
project1
.
setStage
(
project
.
getStage
());
if
(
project
.
getStage
()
==
1
){
project1
.
setReport
(
null
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
@@ -80,4 +96,30 @@ 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
;
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
File
.
separator
);
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/Adaptor.java
浏览文件 @
910c0a3f
差异被折叠。
点击展开。
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/AssemblyServiceImpl.java
浏览文件 @
910c0a3f
...
...
@@ -60,6 +60,7 @@ public class AssemblyServiceImpl implements AssemblyService{
.
build
();
// Pageable pageable = /*new */PageRequest.of(page-1, 10, Sort.Direction.DESC, "id");
List
<
Assembly
>
assemblyList
=
assemblyDao
.
findAll
(
spec
);
return
ServerResponse
.
success
(
new
ListResponse
<>(
assemblyDao
.
count
(
spec
),
assemblyList
));
// return ServerResponse.success(new ListResponse<>(assemblyDao.count(spec),assemblyList));
return
ServerResponse
.
success
(
assemblyList
);
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/DBManageServiceImpl.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
service
.
Impl
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBDeleteResponse
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBManage
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBRecord
;
import
com.zjty.adaptationmaster.adaptor.repository.DBManageDao
;
import
com.zjty.adaptationmaster.adaptor.repository.DBRecordDao
;
import
com.zjty.adaptationmaster.adaptor.service.DBManageService
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.utils.Regular
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.SQLException
;
@Service
public
class
DBManageServiceImpl
implements
DBManageService
{
@Autowired
private
DBManageDao
databaseDao
;
@Autowired
private
DBRecordDao
dbRecordDao
;
@Value
(
"${highgo.driver}"
)
private
String
highgoDriver
;
@Value
(
"${highgo.connectionType}"
)
private
String
highgoConnnectionType
;
@Value
(
"${highgo.dbName}"
)
private
String
highgoDBName
;
/**
* 新增数据库配置文件
...
...
@@ -49,4 +67,40 @@ public class DBManageServiceImpl implements DBManageService {
return
ServerResponse
.
success
(
databaseDao
.
findDatabaseManagementByStatus
(
1
));
}
/**
* 数据库删除
* @param dbDeleteResponse
* @return
*/
@Override
@Transactional
public
ServerResponse
deleteDB
(
DBDeleteResponse
dbDeleteResponse
)
{
DBManage
dbManage
=
databaseDao
.
findDBManageByIdAndStatus
(
dbDeleteResponse
.
getId
(),
1
);
if
(
dbDeleteResponse
.
getDbType
().
equals
(
"highgo"
)){
dbManage
.
setDatabaseName
(
highgoDBName
);
dbManage
.
setDriver
(
highgoDriver
);
dbManage
.
setConnectionType
(
highgoConnnectionType
);
}
Connection
connection
=
Regular
.
databaseConnection
(
dbManage
);
if
(
connection
!=
null
)
{
PreparedStatement
preparedStatement
=
null
;
try
{
String
findDB
=
"DROP DATABASE IF EXISTS "
+
dbDeleteResponse
.
getDbName
()+
";"
;
preparedStatement
=
connection
.
prepareStatement
(
findDB
);
preparedStatement
.
execute
();
dbRecordDao
.
delete
(
dbDeleteResponse
.
getDbName
(),
0
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
preparedStatement
.
close
();
connection
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
return
ServerResponse
.
success
();
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/DBMigrateServiceImpl.java
浏览文件 @
910c0a3f
...
...
@@ -2,6 +2,7 @@ package com.zjty.adaptationmaster.adaptor.service.Impl;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.zjty.adaptationmaster.adaptor.controller.WebSocketServer
;
import
com.zjty.adaptationmaster.adaptor.entity.db.*
;
import
com.zjty.adaptationmaster.adaptor.repository.DBManageDao
;
import
com.zjty.adaptationmaster.adaptor.repository.DBRecordDao
;
...
...
@@ -22,6 +23,9 @@ import java.sql.PreparedStatement;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.util.*
;
import
java.util.concurrent.ArrayBlockingQueue
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
@Service
@Slf4j
...
...
@@ -32,6 +36,9 @@ public class DBMigrateServiceImpl implements DBMigrateService {
@Autowired
private
DBRecordDao
dbRecordDao
;
//线程池数量,合适的线程数量能让程序更快
private
static
final
int
poolSize
=
4
;
@Value
(
"${highgo.driver}"
)
private
String
highgoDriver
;
@Value
(
"${highgo.connectionType}"
)
...
...
@@ -45,6 +52,11 @@ public class DBMigrateServiceImpl implements DBMigrateService {
@Override
public
ServerResponse
dbMigrate
(
DatabaseResponse
databaseResponse
)
{
if
(
databaseResponse
!=
null
&&
databaseResponse
.
getDatabaseName
()
!=
null
){
String
uuid
=
null
;
if
(
databaseResponse
.
getUuid
()
!=
null
){
uuid
=
databaseResponse
.
getUuid
();
}
System
.
out
.
println
(
uuid
);
String
databaseName
=
databaseResponse
.
getDatabaseName
();
//查询新建的数据库是否存在
ServerResponse
serverResponse
=
findDBByDBType
(
databaseResponse
.
getId
());
...
...
@@ -105,25 +117,62 @@ public class DBMigrateServiceImpl implements DBMigrateService {
File
file
=
new
File
(
path
);
FileReader
fileReader
=
null
;
BufferedReader
bufferedReader
=
null
;
List
<
String
>
insertList
=
new
ArrayList
<>();
List
<
String
>
elseList
=
new
ArrayList
<>();
PreparedStatement
preparedStatement1
=
null
;
try
{
fileReader
=
new
FileReader
(
file
);
bufferedReader
=
new
BufferedReader
(
fileReader
);
String
s
;
String
sql
=
""
;
ThreadPoolExecutor
pool
=
new
ThreadPoolExecutor
(
poolSize
,
poolSize
,
10
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
poolSize
*
2
));
pool
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
while
((
s
=
bufferedReader
.
readLine
())
!=
null
){
try
{
sql
+=
s
;
if
(
s
.
contains
(
";"
)){
preparedStatement1
=
connection1
.
prepareStatement
(
sql
);
preparedStatement1
.
execute
();
sql
=
""
;
if
(
Regular
.
lowerAndUpper
(
s
,
"INSERT"
)
&&
Regular
.
lowerAndUpper
(
s
,
"INTO"
)){
insertList
.
add
(
s
);
continue
;
}
else
if
(
Regular
.
lowerAndUpper
(
s
,
"FOREIGN"
)
&&
Regular
.
lowerAndUpper
(
s
,
"KEY"
)){
elseList
.
add
(
s
);
continue
;
}
else
if
(
Regular
.
lowerAndUpper
(
s
,
"CREATE"
)
&&
Regular
.
lowerAndUpper
(
s
,
"INDEX"
)){
elseList
.
add
(
s
);
continue
;
}
sql
+=
s
;
if
(
s
.
contains
(
";"
)){
if
(
Regular
.
lowerAndUpper
(
s
,
"CREATE"
)
&&
Regular
.
lowerAndUpper
(
s
,
"TABLE"
)){
String
tableName
=
s
.
substring
(
s
.
indexOf
(
"\""
)
+
1
,
s
.
lastIndexOf
(
"\""
));
WebSocketServer
.
sendIn
(
uuid
,
tableName
+
"表创建"
);
}
}
catch
(
SQLException
e
)
{
log
.
info
(
"sql执行出错语句:"
+
sql
);
preparedStatement1
=
connection1
.
prepareStatement
(
sql
);
preparedStatement1
.
execute
(
);
sql
=
""
;
e
.
printStackTrace
();
continue
;
}
}
if
(
insertList
!=
null
&&
insertList
.
size
()
!=
0
){
for
(
String
insert:
insertList
){
String
tableName
=
s
.
substring
(
s
.
indexOf
(
"\""
)
+
1
,
s
.
lastIndexOf
(
"\""
));
WebSocketServer
.
sendIn
(
uuid
,
tableName
+
"表中正在插入"
);
SQLExecuteTask
sqlExecuteTask
=
new
SQLExecuteTask
(
connection1
);
sqlExecuteTask
.
setSql
(
insert
);
pool
.
submit
(
sqlExecuteTask
);
System
.
out
.
println
(
"核心线程数"
+
pool
.
getPoolSize
()
+
"\t"
+
"存活线程数:"
+
pool
.
getActiveCount
()
+
"\t"
+
"等待数量:"
+
pool
.
getQueue
().
size
()
+
"\t"
+
"任务数量:"
+
pool
.
getTaskCount
());
}
}
//数据库连接池关闭
pool
.
shutdown
();
try
{
pool
.
awaitTermination
(
1
,
TimeUnit
.
HOURS
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//关闭后执行新建索引和外键的sql语句
if
(
elseList
!=
null
&&
elseList
.
size
()
!=
0
){
for
(
String
elseChar:
elseList
){
WebSocketServer
.
sendIn
(
uuid
,
"正在创建索引或外键"
);
SQLExecuteTask
sqlExecuteTask
=
new
SQLExecuteTask
(
connection1
);
sqlExecuteTask
.
setSql
(
elseChar
);
pool
.
submit
(
sqlExecuteTask
);
}
}
System
.
out
.
println
(
"sql执行时间为:"
+
(
System
.
currentTimeMillis
()
-
b
));
...
...
@@ -134,7 +183,7 @@ public class DBMigrateServiceImpl implements DBMigrateService {
try
{
bufferedReader
.
close
();
fileReader
.
close
();
preparedStatement1
.
close
();
//
preparedStatement1.close();
connection1
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/DBRecordServiceImpl.java
浏览文件 @
910c0a3f
...
...
@@ -35,10 +35,10 @@ public class DBRecordServiceImpl implements DBRecordService {
public
ServerResponse
pageFind
(
DBRecordPage
dbRecordPage
)
{
Specification
<
DBRecord
>
specifications
=
Specifications
.<
DBRecord
>
and
()
.
eq
(
dbRecordPage
.
getCreateType
()
!=
null
,
"createType"
,
dbRecordPage
.
getCreateType
())
.
eq
(
dbRecordPage
.
getUserName
()
!=
null
,
"userName"
,
dbRecordPage
.
getUserName
())
//
.eq(dbRecordPage.getUserName() != null,"userName",dbRecordPage.getUserName())
.
eq
(
"status"
,
1
)
.
build
();
Integer
page
=
dbRecordPage
.
getPage
();
/*
Integer page = dbRecordPage.getPage();
Integer size = dbRecordPage.getSize();
if(page == null || page <= 0){
page = 1;
...
...
@@ -50,38 +50,7 @@ public class DBRecordServiceImpl implements DBRecordService {
long count = dbRecordDao.count(specifications);
if(count < 0){
return ServerResponse.error();
}
return
ServerResponse
.
success
(
new
DBRecordReturn
(
count
,
dbRecordDao
.
findAll
(
specifications
,
pageable
).
getContent
()));
}
/**
* 数据库删除
* @param dbDeleteResponse
* @return
*/
@Override
@Transactional
public
ServerResponse
deleteDB
(
DBDeleteResponse
dbDeleteResponse
)
{
DBManage
dbManage
=
dbManageDao
.
findDBManageByIdAndStatus
(
dbDeleteResponse
.
getId
(),
1
);
Connection
connection
=
Regular
.
databaseConnection
(
dbManage
);
if
(
connection
!=
null
)
{
PreparedStatement
preparedStatement
=
null
;
try
{
String
findDB
=
"DROP DATABASE IF EXISTS "
+
dbDeleteResponse
.
getDbName
()+
";"
;
preparedStatement
=
connection
.
prepareStatement
(
findDB
);
preparedStatement
.
execute
();
dbRecordDao
.
delete
(
dbDeleteResponse
.
getDbName
(),
0
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
preparedStatement
.
close
();
connection
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
return
ServerResponse
.
success
();
}*/
return
ServerResponse
.
success
(
dbRecordDao
.
findAll
(
specifications
));
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/DependencyServiceImpl.java
浏览文件 @
910c0a3f
...
...
@@ -41,12 +41,13 @@ public class DependencyServiceImpl implements DependencyService {
//上传的依赖文件和依赖包
if
(!
dependencyFile
.
isEmpty
())
{
//依赖名称
String
photo
=
dependencyFile
.
getName
();
dependency
.
setDependencyUrl
(
Const
.
UPLOAD_LOCATION
+
photo
);
String
originalFilename
=
dependencyFile
.
getOriginalFilename
();
assert
originalFilename
!=
null
;
dependency
.
setDependencyUrl
(
"/uploads/"
+
originalFilename
);
dependency
.
setStartTime
(
new
Date
());
try
{
InputStream
inputStream
=
dependencyFile
.
getInputStream
();
Files
.
copy
(
inputStream
,
Paths
.
get
(
Const
.
UPLOAD_LOCATION
,
photo
));
Files
.
copy
(
inputStream
,
Paths
.
get
(
Const
.
UPLOAD_LOCATION
,
originalFilename
));
inputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
...
...
@@ -67,6 +68,7 @@ public class DependencyServiceImpl implements DependencyService {
@Override
public
ServerResponse
findDependency
(
Dependency
dependency
)
{
Specification
<
Dependency
>
spec
=
Specifications
.<
Dependency
>
and
()
.
like
(
dependency
.
getName
()!=
null
,
"name"
,
"%"
+
dependency
.
getName
()+
"%"
)
.
eq
(
dependency
.
getType
()!=
null
,
"type"
,
dependency
.
getType
())
.
eq
(
"status"
,
1
)
.
build
();
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/FileUploadServiceImpl.java
浏览文件 @
910c0a3f
...
...
@@ -32,7 +32,7 @@ public class FileUploadServiceImpl implements FileUploadService {
BufferedOutputStream
bos
=
null
;
FileReturn
fileReturn
=
new
FileReturn
();
String
sourceName
=
multipartFile
.
getOriginalFilename
();
String
suffix
=
sourceName
.
substring
(
sourceName
.
lastIndexOf
(
"."
)
+
1
);
String
suffix
=
sourceName
.
substring
(
sourceName
.
lastIndexOf
(
"."
));
String
fileName
=
UUID
.
randomUUID
().
toString
()
+
suffix
;
//不存在该目录,创建目录
File
file
=
new
File
(
"/sqlFile/uploads"
);
...
...
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/InspectServiceImpl.java
浏览文件 @
910c0a3f
...
...
@@ -3,6 +3,7 @@ package com.zjty.adaptationmaster.adaptor.service.Impl;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Report
;
import
com.zjty.adaptationmaster.adaptor.repository.ProjectDao
;
import
com.zjty.adaptationmaster.adaptor.repository.ReportDao
;
import
com.zjty.adaptationmaster.adaptor.service.InspectService
;
import
com.zjty.adaptationmaster.base.response.ServerResponse
;
import
com.zjty.adaptationmaster.utils.Inspector
;
...
...
@@ -18,18 +19,31 @@ import java.util.Map;
public
class
InspectServiceImpl
implements
InspectService
{
@Autowired
private
ProjectDao
projectDao
;
@Autowired
private
ReportDao
reportDao
;
@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);
return
ServerResponse
.
success
(
new
Inspector
(
project
,
suffixLanguageMapping
).
inspect
());
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
();
if
(
report
.
getPackagePath
()
==
null
){
report
.
setPackagePath
(
project
.
getCodeUrl
());
}
reportDao
.
save
(
report
);
Project
one
=
projectDao
.
getOne
(
project
.
getId
());
one
.
setReport
(
report
);
return
ServerResponse
.
success
(
report
);
}
else
{
return
ServerResponse
.
error
(
"未上传源代码"
);
}
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/RuleServiceImpl.java
浏览文件 @
910c0a3f
...
...
@@ -4,6 +4,7 @@ import com.github.wenhao.jpa.Specifications;
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.entity.RuleSetAndRule
;
import
com.zjty.adaptationmaster.adaptor.repository.ProjectDao
;
import
com.zjty.adaptationmaster.adaptor.repository.RuleDao
;
import
com.zjty.adaptationmaster.adaptor.repository.RuleSetDao
;
...
...
@@ -43,6 +44,7 @@ public class RuleServiceImpl implements RuleService{
@Override
public
ServerResponse
addRuleSet
(
RuleSet
ruleSet
)
{
List
<
Rule
>
ruleList
=
ruleSet
.
getRuleList
();
if
(
ruleList
!=
null
)
ruleList
.
forEach
(
rule
->
rule
.
setRuleSet
(
ruleSet
));
RuleSet
save
=
ruleSetDao
.
save
(
ruleSet
);
return
ServerResponse
.
success
(
filter
(
save
));
...
...
@@ -68,7 +70,8 @@ public class RuleServiceImpl implements RuleService{
.
collect
(
toList
());
rules
.
setRuleList
(
ruleList
);
}
return
ServerResponse
.
success
(
ruleSetList
);
List
<
Rule
>
rules
=
ruleDao
.
findRulesInProject
();
return
ServerResponse
.
success
(
new
RuleSetAndRule
(
ruleSetList
,
rules
));
}
// @Override
...
...
@@ -97,8 +100,10 @@ public class RuleServiceImpl implements RuleService{
private
RuleSet
filter
(
RuleSet
ruleSet
){
List
<
Rule
>
rules
=
ruleSet
.
getRuleList
();
List
<
Rule
>
collect
=
rules
.
stream
().
filter
(
rule
->
rule
.
getStatus
()
!=
0
).
collect
(
toList
());
ruleSet
.
setRuleList
(
collect
);
if
(
rules
!=
null
){
List
<
Rule
>
collect
=
rules
.
stream
().
filter
(
rule
->
rule
.
getStatus
()
!=
0
).
collect
(
toList
());
ruleSet
.
setRuleList
(
collect
);
}
return
ruleSet
;
}
}
src/main/java/com/zjty/adaptationmaster/base/enums/Const.java
浏览文件 @
910c0a3f
...
...
@@ -40,7 +40,7 @@ public class Const {
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
MAVENHOME
=
"D:\\
Program Files\\apache-maven-3.5.4-bin\\
apache-maven-3.5.4"
;
public
static
final
String
CTLPATH
=
"/home/user/
AAS-V9.0/bin/appctl.cmd
"
;
public
static
final
String
CTLPWD
=
"Qwert123!@#"
;
}
src/main/java/com/zjty/adaptationmaster/base/response/ServerResponse.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
base
.
response
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.zjty.adaptationmaster.utils.HttpClientUtil
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
src/main/java/com/zjty/adaptationmaster/config/MyWebConfig.java
0 → 100644
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
config
;
import
com.zjty.adaptationmaster.base.enums.Const
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
import
java.io.File
;
/**
* <h4>Description : businessservice</h4>
*
* @author : M@tr!x [xhyrzldf@foxmail.com]
* @Date : 2018/4/19 13:29
*/
@Configuration
public
class
MyWebConfig
extends
WebMvcConfigurerAdapter
{
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
File
file1
=
new
File
(
Const
.
UPLOAD_LOCATION
);
//如果文件夹不存在则创建
if
(!
file1
.
exists
())
{
file1
.
mkdirs
();
}
else
{
System
.
out
.
println
(
"//目录存在"
);
}
// registry.addResourceHandler("/src/main/resources/**").addResourceLocations("classpath:/resources/uploads/");
registry
.
addResourceHandler
(
"/uploads/**"
).
addResourceLocations
(
"file:"
+
Const
.
UPLOAD_LOCATION
);
super
.
addResourceHandlers
(
registry
);
}
}
src/main/java/com/zjty/adaptationmaster/utils/Adaptor.java
0 → 100644
浏览文件 @
910c0a3f
差异被折叠。
点击展开。
src/main/java/com/zjty/adaptationmaster/utils/ApusicDeployer.java
浏览文件 @
910c0a3f
...
...
@@ -3,12 +3,14 @@ package com.zjty.adaptationmaster.utils;
import
com.zjty.adaptationmaster.adaptor.controller.WebSocketServer
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.base.entity.ProjectStatueFromMiddleware
;
import
com.zjty.adaptationmaster.base.enums.Const
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.OutputStream
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -18,7 +20,9 @@ public class ApusicDeployer {
private
String
ctlPath
;
private
String
ctlPwd
;
public
void
deploy
(
Project
project
,
String
webSocketName
){
String
command
=
ctlPath
+
" -p '"
+
ctlPwd
+
"' install "
+
project
.
getProjectName
()+
" "
+
project
.
getReport
().
getPackagePath
();
//String command = ctlPath+" -p "+ Const.CTLPWD +" install "+project.getProjectName()+" "+project.getReport().getPackagePath();
String
command
=
ctlPath
+
" install "
+
project
.
getProjectName
()+
" "
+
project
.
getReport
().
getPackagePath
();
System
.
out
.
println
(
command
);
appctl
(
command
,
webSocketName
,
project
.
getProjectName
());
}
public
List
<
ProjectStatueFromMiddleware
>
list
(){
...
...
@@ -43,22 +47,27 @@ public class ApusicDeployer {
return
result
;
}
public
boolean
start
(
String
projectName
,
String
webSocketName
){
String
command
=
ctlPath
+
"
-p '"
+
ctlPwd
+
"'
start "
+
projectName
;
String
command
=
ctlPath
+
" start "
+
projectName
;
appctl
(
command
,
webSocketName
,
projectName
);
return
true
;
}
public
boolean
stop
(
String
projectName
,
String
webSocketName
){
String
command
=
ctlPath
+
"
-p '"
+
ctlPwd
+
"'
stop "
+
projectName
;
String
command
=
ctlPath
+
" 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
password
=
Const
.
CTLPWD
;
OutputStream
outputStream
=
exec
.
getOutputStream
();
outputStream
.
write
(
password
.
getBytes
());
outputStream
.
flush
();
outputStream
.
close
();
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
exec
.
getInputStream
(),
"GBK"
));
String
line
=
null
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
WebSocketServer
.
sendInfo
(
line
,
webSocketNam
e
,
"部署"
,
"running"
,
projectName
);
WebSocketServer
.
sendInfo
(
webSocketName
,
lin
e
,
"部署"
,
"running"
,
projectName
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
...
...
src/main/java/com/zjty/adaptationmaster/utils/FileZip.java
0 → 100644
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
utils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.compress.archivers.zip.ZipArchiveEntry
;
import
org.apache.commons.compress.archivers.zip.ZipArchiveInputStream
;
import
org.apache.commons.compress.utils.IOUtils
;
import
org.apache.commons.io.FileUtils
;
import
java.io.*
;
@Slf4j
public
class
FileZip
{
public
static
void
unzip
(
File
zipFile
,
String
descDir
)
{
try
(
ZipArchiveInputStream
inputStream
=
getZipFile
(
zipFile
))
{
File
pathFile
=
new
File
(
descDir
);
if
(!
pathFile
.
exists
())
{
pathFile
.
mkdirs
();
}
ZipArchiveEntry
entry
=
null
;
while
((
entry
=
inputStream
.
getNextZipEntry
())
!=
null
)
{
if
(
entry
.
isDirectory
())
{
File
directory
=
new
File
(
descDir
,
entry
.
getName
());
directory
.
mkdirs
();
}
else
{
OutputStream
os
=
null
;
try
{
os
=
new
BufferedOutputStream
(
new
FileOutputStream
(
new
File
(
descDir
,
entry
.
getName
())));
//输出文件路径信息
log
.
info
(
"解压文件的当前路径为:{}"
,
descDir
+
entry
.
getName
());
IOUtils
.
copy
(
inputStream
,
os
);
}
finally
{
IOUtils
.
closeQuietly
(
os
);
}
}
}
final
File
[]
files
=
pathFile
.
listFiles
();
if
(
files
!=
null
&&
files
.
length
==
1
&&
files
[
0
].
isDirectory
())
{
// 说明只有一个文件夹
FileUtils
.
copyDirectory
(
files
[
0
],
pathFile
);
//免得删除错误, 删除的文件必须在/data/demand/目录下。
boolean
isValid
=
files
[
0
].
getPath
().
contains
(
"/data/www/"
);
if
(
isValid
)
{
FileUtils
.
forceDelete
(
files
[
0
]);
}
}
log
.
info
(
"******************解压完毕********************"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"[unzip] 解压zip文件出错"
,
e
);
}
}
private
static
ZipArchiveInputStream
getZipFile
(
File
zipFile
)
throws
Exception
{
return
new
ZipArchiveInputStream
(
new
BufferedInputStream
(
new
FileInputStream
(
zipFile
)));
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
String
path
=
"D:\\sqlFile\\uploads\\8599bc6b-e140-493e-8ea6-07eba392adad.zip"
;
unzip
(
new
File
(
path
),
"D:\\sqlFile\\uploads\\test123456789"
);
}
}
src/main/java/com/zjty/adaptationmaster/utils/Inspector.java
浏览文件 @
910c0a3f
...
...
@@ -63,6 +63,7 @@ public class Inspector {
this
.
report
=
new
Report
();
}
int
fileNum
=
0
;
/**
* FileVisitResult.CONTINUE 继续遍历
* FileVisitResult.TERMINATE 中止访问
...
...
@@ -100,6 +101,7 @@ public class Inspector {
@Override
public
FileVisitResult
visitFile
(
Path
file
,
BasicFileAttributes
attrs
)
throws
IOException
{
fileNum
++;
for
(
Map
.
Entry
<
String
,
PathMatcher
>
entry:
languageSuffixMatcherMapping
.
entrySet
()){
if
(
entry
.
getValue
().
matches
(
file
)){
languageMatchMap
.
get
(
entry
.
getKey
()).
plus
();
...
...
@@ -131,6 +133,7 @@ public class Inspector {
}
public
Report
analysis
(){
report
.
setFileNum
(
fileNum
);
report
.
setLanguage
(
Report
.
Language
.
ONLYVIEW
);
for
(
Map
.
Entry
<
String
,
Counter
>
entry:
languageMatchMap
.
entrySet
()){
if
(
entry
.
getValue
().
getNumber
()>
0
){
...
...
@@ -168,7 +171,7 @@ public class Inspector {
e
.
printStackTrace
();
}
Element
elementProject
=
document
.
getRootElement
();
String
projectMavenName
=
elementProject
.
elementText
(
"
name
"
);
String
projectMavenName
=
elementProject
.
elementText
(
"
artifactId
"
);
String
projectMavenVersion
=
elementProject
.
elementText
(
"version"
);
report
.
setPackagePath
(
path
.
getParent
()+
"/target/"
+
projectMavenName
+
"-"
+
projectMavenVersion
+
".war"
);
}
...
...
src/main/java/com/zjty/adaptationmaster/utils/MavenCompiler.java
浏览文件 @
910c0a3f
...
...
@@ -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"
));
...
...
@@ -34,7 +35,7 @@ public class MavenCompiler {
@Override
public
void
consumeLine
(
String
s
)
throws
IOException
{
WebSocketServer
.
sendInfo
(
webSocketId
,
s
,
"编译"
,
"running"
,
project
.
getProjectName
());
//
System.out.println(s);
System
.
out
.
println
(
s
);
}
});
try
{
...
...
src/main/java/com/zjty/adaptationmaster/utils/ReadedFileTask.java
浏览文件 @
910c0a3f
...
...
@@ -2,7 +2,6 @@ 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
;
...
...
@@ -30,10 +29,10 @@ public class ReadedFileTask implements Runnable {
this
.
uuid
=
uuid
;
}
private
Adaptor
.
WriterBySort
bySort
;
private
WriterBySort
bySort
;
private
int
index
;
public
void
setBySort
(
Adaptor
.
WriterBySort
bySort
)
{
public
void
setBySort
(
WriterBySort
bySort
)
{
System
.
out
.
println
(
"线程遇到大文件"
);
this
.
bySort
=
bySort
;
}
...
...
@@ -78,50 +77,11 @@ public class ReadedFileTask implements Runnable {
String
content
=
readedFile
.
getContent
();
System
.
out
.
println
(
"规则数量"
+
readedFile
.
getThisMatchedRule
().
size
());
for
(
Rule
entity
:
readedFile
.
getThisMatchedRule
())
{
System
.
out
.
println
(
"文本匹配方式"
+
entity
.
getTextMatching
());
switch
(
entity
.
getTextMatching
())
{
case
AREA:
System
.
out
.
println
(
"case"
);
String
[]
split
=
entity
.
getTarget
().
split
(
"\\|\\|"
);
String
begin
=
split
[
0
];
String
matching
=
split
[
1
];
String
end
=
split
[
2
];
System
.
out
.
println
(
begin
+
"||"
+
matching
+
"||"
+
end
);
int
i
=
content
.
indexOf
(
matching
);
if
(
i
>
-
1
)
{
System
.
out
.
println
(
"i"
+
i
);
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
)
{
content
=
content
.
substring
(
0
,
beginIndex
)
+
entity
.
getReplacing
()
+
content
.
substring
(
endIndex
+
end
.
length
());
}
}
else
{
System
.
out
.
println
(
"-i"
+
i
);
}
break
;
case
CONTENT:
switch
(
entity
.
getDealWay
())
{
case
REPLACE:
content
=
content
.
replaceAll
(
entity
.
getTarget
(),
entity
.
getReplacing
());
break
;
case
INSERTAFTER:
//判断是不是本来就有,如果已有,就不用新增了
//if(content.indexOf(entity.getReplacing(),content.indexOf(entity.getTarget()))==-1) {
int
insertPlace
=
content
.
indexOf
(
entity
.
getTarget
())
+
entity
.
getTarget
().
length
();
content
=
content
.
substring
(
0
,
insertPlace
)
+
entity
.
getReplacing
()
+
content
.
substring
(
insertPlace
);
//}
break
;
case
INSERTBEFORE:
break
;
case
InsertBetween:
break
;
}
break
;
}
//在改动的地方加日志
// int i = content.indexOf(entity.getTarget());
// int i1 = content.lastIndexOf("\\r\\n", i);
//
content
=
content
.
replaceAll
(
entity
.
getTarget
(),
entity
.
getReplacing
());
}
try
{
if
(
bySort
!=
null
)
{
...
...
src/main/java/com/zjty/adaptationmaster/utils/ReadedFileTask1.java
0 → 100644
浏览文件 @
910c0a3f
//package com.zjty.adaptationmaster.utils;
//
//import com.zjty.adaptationmaster.adaptor.controller.WebSocketServer;
//import com.zjty.adaptationmaster.adaptor.entity.Rule;
//import lombok.AllArgsConstructor;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//
//import java.io.*;
//import java.nio.file.Path;
//import java.nio.file.attribute.BasicFileAttributes;
//import java.util.List;
//import java.util.Properties;
//
//
//public class ReadedFileTask implements Runnable {
//
// private String projectName;
// private String uuid;
// private List<ReadedFile> readedFiles;
// //private Writer responseWriter;
// public ReadedFileTask(List<ReadedFile> readedFiles,String projectName,String uuid) {
// //System.out.println("一个线程");
// this.readedFiles = readedFiles;
// for(ReadedFile file:readedFiles){
// System.out.println(file.path);
// }
// this.projectName = projectName;
// this.uuid = uuid;
// }
//
// private WriterBySort bySort;
// private int index;
//
// public void setBySort(WriterBySort bySort) {
// System.out.println("线程遇到大文件");
// this.bySort = bySort;
// }
//
// public void setIndex(int index) {
// this.index = index;
// }
//
// @Override
// public void run() {
// System.out.println("进来线程");
// for(ReadedFile readedFile:readedFiles) {
// if(readedFile.path.toString().endsWith(".properties")){
// Properties properties = new Properties();
// OutputStream stream =null;
// try {
// properties.load(new ByteArrayInputStream(readedFile.content.getBytes()));
// for (Rule entity : readedFile.getThisMatchedRule()) {
//
// //if(properties.getProperty(entity.getTarget())!=null) {
// properties.setProperty(entity.getTarget(), entity.getReplacing());
// //}
// System.out.println("属性修改后"+properties.getProperty(entity.getTarget()));
// }
// readedFile.getPath().toFile().createNewFile();
// stream = new FileOutputStream(readedFile.getPath().toFile());
// System.out.println(properties);
// properties.store(stream,"111");
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }finally {
// try {
// stream.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// continue;
// }
// String content = readedFile.getContent();
// System.out.println("规则数量" + readedFile.getThisMatchedRule().size());
// for (Rule entity : readedFile.getThisMatchedRule()) {
// System.out.println("文本匹配方式" + entity.getTextMatching());
// switch (entity.getTextMatching()) {
// case AREA:
// System.out.println("case");
// String[] split = entity.getTarget().split("\\|\\|");
// String begin = split[0];
// String matching = split[1];
// String end = split[2];
// System.out.println(begin + "||" + matching + "||" + end);
//
// int i = content.indexOf(matching);
// if (i > -1) {
// System.out.println("i" + i);
// 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) {
// content = content.substring(0, beginIndex) + entity.getReplacing() + content.substring(endIndex + end.length());
// }
// } else {
//
// System.out.println("-i" + i);
// }
// break;
// case CONTENT:
// switch (entity.getDealWay()) {
// case REPLACE:
// content = content.replaceAll(entity.getTarget(), entity.getReplacing());
// break;
// case INSERTAFTER:
// //判断是不是本来就有,如果已有,就不用新增了
// //if(content.indexOf(entity.getReplacing(),content.indexOf(entity.getTarget()))==-1) {
// int insertPlace = content.indexOf(entity.getTarget()) + entity.getTarget().length();
// content = content.substring(0, insertPlace) + entity.getReplacing() + content.substring(insertPlace);
// //}
// break;
// case INSERTBEFORE:
// break;
// case InsertBetween:
// break;
// }
//
// break;
// }
// }
// try {
// if (bySort != null) {
// bySort.insert(index, content);
// } else {
// WebSocketServer.sendInfo(uuid, readedFile.getPath().getFileName() + "", "替换", "正在写出", projectName);
// File file = readedFile.getPath().toFile();
// file.createNewFile();
// OutputStreamWriter contentWriter = new OutputStreamWriter(new FileOutputStream(file));
// contentWriter.write(content);
// contentWriter.close();
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
//
// }
// }
//
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// public static class ReadedFile {
// private String content;
// private BasicFileAttributes attributes;
// private Path path;
// private List<Rule> thisMatchedRule;
// }
//}
src/main/java/com/zjty/adaptationmaster/utils/Regular.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
utils
;
import
com.zjty.adaptationmaster.adaptor.entity.SystemVariable
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBManage
;
import
com.zjty.adaptationmaster.adaptor.entity.db.RegularReturn
;
import
org.springframework.core.env.Environment
;
import
java.io.*
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.SQLException
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
public
class
Regular
{
...
...
@@ -103,6 +98,10 @@ public class Regular {
s
=
StringType
(
s
,
"double"
,
"real"
);
//插入值时boolean类型转换
s
=
replaceLowerAndUpper
(
s
,
"BIT(1)"
,
"boolean"
);
//替换longtext
s
=
replaceLowerAndUpper
(
s
,
"longtext"
,
"text"
);
//替换mediumtext
s
=
replaceLowerAndUpper
(
s
,
"mediumtext"
,
"text"
);
//从第一个创建表的可执行命令开始
if
(
lowerAndUpper
(
s
,
"DROP"
)
&&
lowerAndUpper
(
s
,
"TABLE"
)
&&
executeOne
){
isFirstDrop
=
true
;
...
...
@@ -236,8 +235,8 @@ public class Regular {
* 大小写都替换
*/
public
static
String
replaceLowerAndUpper
(
String
s
,
String
upper
,
String
replacement
){
s
=
s
.
replace
All
(
upper
,
replacement
);
s
=
s
.
replace
All
(
upper
.
toLowerCase
(),
replacement
);
s
=
s
.
replace
(
upper
,
replacement
);
s
=
s
.
replace
(
upper
.
toLowerCase
(),
replacement
);
return
s
;
}
...
...
@@ -290,6 +289,10 @@ public class Regular {
public
static
void
main
(
String
[]
args
)
{
mySqlRegular
(
"C:\\Users\\admin\\Desktop\\database\\editor.sql"
,
"test5"
);
//mySqlRegular("D:\\sqlFile\\uploads\\63c6e098-73fd-4999-b289-b3d120a07e87.sql","test11111");
//
File
file
=
new
File
(
"D:\\root\\projects\\adaptationMaster\\uploads\\czq测试系统5\\swiper-4.5.0/target/threem-0.0.1-SNAPSHOT.war"
);
System
.
out
.
println
(
file
.
length
());
System
.
out
.
println
(
file
.
getName
());
}
}
src/main/java/com/zjty/adaptationmaster/utils/WriterBySort.java
0 → 100644
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
.
utils
;
import
java.io.IOException
;
import
java.io.Writer
;
import
java.util.Map
;
import
java.util.TreeMap
;
public
class
WriterBySort
{
private
int
currentIndex
=
-
1
;
private
Map
<
Integer
,
String
>
map
=
new
TreeMap
<>();
private
Writer
contentWriter
;
private
int
size
;
public
void
setWriter
(
Writer
writer
)
{
this
.
contentWriter
=
writer
;
}
public
void
setSize
(
int
size
)
{
this
.
size
=
size
;
if
(
currentIndex
==
size
){
try
{
contentWriter
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
public
void
insert
(
Integer
key
,
String
value
){
map
.
put
(
key
,
value
);
while
(
map
.
get
(
currentIndex
+
1
)!=
null
){
try
{
contentWriter
.
write
(
map
.
remove
(
currentIndex
+
1
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
currentIndex
++;
if
(
currentIndex
==
size
){
try
{
contentWriter
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
}
src/main/resources/application.properties
浏览文件 @
910c0a3f
...
...
@@ -28,8 +28,11 @@ spring.jpa.open-in-view=true
spring.jpa.properties.javax.persistence.validation.mode
=
none
# spring-http-文件上传相关配置
spring.servlet.multipart.max-file-size
=
100MB
spring.servlet.multipart.max-request-size
=
100MB
spring.servlet.multipart.max-file-size
=
200MB
spring.servlet.multipart.max-request-size
=
200MB
#配置时间格式
spring.jacksondate-format
=
yyyy-MM-dd HH:mm:ss
spring.thymeleaf.cache
=
false
spring.mvc.static-path-pattern
=
/**
...
...
src/test/java/com/zjty/adaptationmaster/Test4.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBManage
;
import
com.zjty.adaptationmaster.utils.Regular
;
import
org.postgresql.copy.CopyManager
;
import
org.postgresql.core.BaseConnection
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.sql.Connection
;
import
java.sql.SQLException
;
public
class
Test4
{
public
static
void
main
(
String
[]
args
)
{
String
s
=
"123)456)789)0"
;
String
[]
array
=
s
.
split
(
"\\)"
);
for
(
String
si:
array
){
System
.
out
.
println
(
si
);
}
String
s
=
"\"record_alarm\" bit(1) DEFAULT NULL,"
;
System
.
out
.
println
(
s
.
replaceAll
(
"bit(1)"
,
"boolean"
));
}
}
src/test/java/com/zjty/adaptationmaster/TestAdapt.java
浏览文件 @
910c0a3f
package
com
.
zjty
.
adaptationmaster
;
import
com.zjty.adaptationmaster.adaptor.entity.Project
;
import
com.zjty.adaptationmaster.adaptor.entity.Rule
;
import
com.zjty.adaptationmaster.adaptor.service.Impl.Adaptor
;
import
org.junit.Test
;
import
java.nio.file.FileSystems
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
TestAdapt
{
public
static
void
main
(
String
[]
args
)
{
List
ruleList
=
new
ArrayList
();
Rule
rule
=
new
Rule
();
rule
.
setPathMatchType
(
Rule
.
MatchType
.
NAME
);
rule
.
setPath
(
"pom.xml"
);
rule
.
setTextMatching
(
Rule
.
TextMatch
.
CONTENT
);
rule
.
setDealWay
(
Rule
.
DealWay
.
REPLACE
);
rule
.
setTarget
(
"<packaging>jar</packaging>"
);
rule
.
setReplacing
(
"<packaging>war</packaging>"
);
ruleList
.
add
(
rule
);
Rule
rule11
=
new
Rule
();
rule11
.
setPathMatchType
(
Rule
.
MatchType
.
NAME
);
rule11
.
setPath
(
"pom.xml"
);
rule11
.
setTextMatching
(
Rule
.
TextMatch
.
CONTENT
);
rule11
.
setDealWay
(
Rule
.
DealWay
.
INSERTAFTER
);
rule11
.
setTarget
(
"<dependencies>"
);
rule11
.
setReplacing
(
"<dependency>\n"
+
" <groupId>org.postgresql</groupId>\n"
+
" <artifactId>postgresql</artifactId>\n"
+
" <scope>runtime</scope>\n"
+
" </dependency>"
);
ruleList
.
add
(
rule11
);
Rule
rule1
=
new
Rule
();
rule1
.
setPathMatchType
(
Rule
.
MatchType
.
GLOB
);
rule1
.
setPath
(
"**/application**.properties"
);
rule1
.
setTextMatching
(
Rule
.
TextMatch
.
CONTENT
);
rule1
.
setDealWay
(
Rule
.
DealWay
.
REPLACE
);
rule1
.
setTarget
(
"spring.datasource.driver-class-name"
);
rule1
.
setReplacing
(
"org.postgresql.Driver"
);
ruleList
.
add
(
rule1
);
Rule
rule2
=
new
Rule
();
rule2
.
setPathMatchType
(
Rule
.
MatchType
.
GLOB
);
rule2
.
setPath
(
"**/application**.properties"
);
rule2
.
setTextMatching
(
Rule
.
TextMatch
.
CONTENT
);
rule2
.
setDealWay
(
Rule
.
DealWay
.
REPLACE
);
rule2
.
setTarget
(
"spring.datasource.url"
);
rule2
.
setReplacing
(
"jdbc:postgresql://localhost:5866/hrm"
);
ruleList
.
add
(
rule2
);
Rule
rule3
=
new
Rule
();
rule3
.
setPathMatchType
(
Rule
.
MatchType
.
GLOB
);
rule3
.
setPath
(
"**/application**.properties"
);
rule3
.
setTextMatching
(
Rule
.
TextMatch
.
CONTENT
);
rule3
.
setDealWay
(
Rule
.
DealWay
.
REPLACE
);
rule3
.
setTarget
(
"spring.datasource.username"
);
rule3
.
setReplacing
(
"sysdba"
);
ruleList
.
add
(
rule3
);
Rule
rule4
=
new
Rule
();
rule4
.
setPathMatchType
(
Rule
.
MatchType
.
GLOB
);
rule4
.
setPath
(
"**/application**.properties"
);
rule4
.
setTextMatching
(
Rule
.
TextMatch
.
CONTENT
);
rule4
.
setDealWay
(
Rule
.
DealWay
.
REPLACE
);
rule4
.
setTarget
(
"spring.datasource.password"
);
rule4
.
setReplacing
(
"highgo@123"
);
ruleList
.
add
(
rule4
);
Rule
rule5
=
new
Rule
();
rule5
.
setPathMatchType
(
Rule
.
MatchType
.
GLOB
);
rule5
.
setPath
(
"**/application**.properties"
);
rule5
.
setTextMatching
(
Rule
.
TextMatch
.
CONTENT
);
rule5
.
setDealWay
(
Rule
.
DealWay
.
REPLACE
);
rule5
.
setTarget
(
"spring.jpa.database-platform"
);
rule5
.
setReplacing
(
"org.hibernate.dialect.PostgreSQLDialect"
);
ruleList
.
add
(
rule5
);
Adaptor
adaptor
=
new
Adaptor
();
adaptor
.
setRuleList
(
ruleList
);
adaptor
.
setUuid
(
"111"
);
Project
project
=
new
Project
();
project
.
setCodeUrl
(
"C:\\home\\project\\rsc\\hrmbclient"
);
project
.
setProjectName
(
"hrm"
);
adaptor
.
setProject
(
project
);
adaptor
.
doAdapt
();
}
@Test
public
void
test
(){
Path
path
=
Paths
.
get
(
"D:/aaa.properties"
);
System
.
out
.
println
(
path
.
toString
().
endsWith
(
".properties"
));
}
}
//
package com.zjty.adaptationmaster;
//
//
import com.zjty.adaptationmaster.adaptor.entity.Project;
//
import com.zjty.adaptationmaster.adaptor.entity.Rule;
//
import com.zjty.adaptationmaster.adaptor.service.Impl.Adaptor;
//
import org.junit.Test;
//
//
import java.nio.file.FileSystems;
//
import java.nio.file.Path;
//
import java.nio.file.Paths;
//
import java.util.ArrayList;
//
import java.util.List;
//
//
public class TestAdapt {
//
//
public static void main(String[] args) {
//
List ruleList = new ArrayList();
//
Rule rule = new Rule();
//
rule.setPathMatchType(Rule.MatchType.NAME);
//
rule.setPath("pom.xml");
//
rule.setTextMatching(Rule.TextMatch.CONTENT);
//
rule.setDealWay(Rule.DealWay.REPLACE);
//
rule.setTarget("<packaging>jar</packaging>");
//
rule.setReplacing("<packaging>war</packaging>");
//
ruleList.add(rule);
//
//
Rule rule11 = new Rule();
//
rule11.setPathMatchType(Rule.MatchType.NAME);
//
rule11.setPath("pom.xml");
//
rule11.setTextMatching(Rule.TextMatch.CONTENT);
//
rule11.setDealWay(Rule.DealWay.INSERTAFTER);
//
rule11.setTarget("<dependencies>");
//
rule11.setReplacing("<dependency>\n" +
//
" <groupId>org.postgresql</groupId>\n" +
//
" <artifactId>postgresql</artifactId>\n" +
//
" <scope>runtime</scope>\n" +
//
" </dependency>");
//
ruleList.add(rule11);
//
//
Rule rule1 = new Rule();
//
rule1.setPathMatchType(Rule.MatchType.GLOB);
//
rule1.setPath("**/application**.properties");
//
rule1.setTextMatching(Rule.TextMatch.CONTENT);
//
rule1.setDealWay(Rule.DealWay.REPLACE);
//
rule1.setTarget("spring.datasource.driver-class-name");
//
rule1.setReplacing("org.postgresql.Driver");
//
ruleList.add(rule1);
//
//
Rule rule2 = new Rule();
//
rule2.setPathMatchType(Rule.MatchType.GLOB);
//
rule2.setPath("**/application**.properties");
//
rule2.setTextMatching(Rule.TextMatch.CONTENT);
//
rule2.setDealWay(Rule.DealWay.REPLACE);
//
rule2.setTarget("spring.datasource.url");
//
rule2.setReplacing("jdbc:postgresql://localhost:5866/hrm");
//
ruleList.add(rule2);
//
Rule rule3 = new Rule();
//
rule3.setPathMatchType(Rule.MatchType.GLOB);
//
rule3.setPath("**/application**.properties");
//
rule3.setTextMatching(Rule.TextMatch.CONTENT);
//
rule3.setDealWay(Rule.DealWay.REPLACE);
//
rule3.setTarget("spring.datasource.username");
//
rule3.setReplacing("sysdba");
//
ruleList.add(rule3);
//
Rule rule4 = new Rule();
//
rule4.setPathMatchType(Rule.MatchType.GLOB);
//
rule4.setPath("**/application**.properties");
//
rule4.setTextMatching(Rule.TextMatch.CONTENT);
//
rule4.setDealWay(Rule.DealWay.REPLACE);
//
rule4.setTarget("spring.datasource.password");
//
rule4.setReplacing("highgo@123");
//
ruleList.add(rule4);
//
Rule rule5 = new Rule();
//
rule5.setPathMatchType(Rule.MatchType.GLOB);
//
rule5.setPath("**/application**.properties");
//
rule5.setTextMatching(Rule.TextMatch.CONTENT);
//
rule5.setDealWay(Rule.DealWay.REPLACE);
//
rule5.setTarget("spring.jpa.database-platform");
//
rule5.setReplacing("org.hibernate.dialect.PostgreSQLDialect");
//
ruleList.add(rule5);
//
//
Adaptor adaptor = new Adaptor();
//
adaptor.setRuleList(ruleList);
//
adaptor.setUuid("111");
//
Project project = new Project();
//
project.setCodeUrl("C:\\home\\project\\rsc\\hrmbclient");
//
project.setProjectName("hrm");
//
adaptor.setProject(project);
//
adaptor.doAdapt();
//
}
//
@Test
//
public void test(){
//
Path path = Paths.get("D:/aaa.properties");
//
System.out.println(path.toString().endsWith(".properties"));
//
}
//
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论