Skip to content

Commit f4a0f58

Browse files
glmappercaojie09
authored andcommitted
Optimized ark console version registry.
1 parent d0c40e0 commit f4a0f58

File tree

31 files changed

+1072
-1022
lines changed

31 files changed

+1072
-1022
lines changed

sofa-dashboard-backend/sofa-dashboard-arkmng/src/main/java/com/alipay/sofa/dashboard/dao/ArkDao.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,20 +86,28 @@ public interface ArkDao {
8686
void removeModuleUser(int mId);
8787

8888
/**
89-
* 根据插件吗查询插件详情
89+
* 根据插件名查询插件详情-模糊查询
9090
*
9191
* @param pluginName
9292
* @return
9393
*/
9494
List<ArkPluginDO> queryModuleInfoByName(@Param("pluginName") String pluginName);
9595

96+
/**
97+
* 根据插件名查询插件详情
98+
*
99+
* @param pluginName
100+
* @return
101+
*/
102+
List<ArkPluginDO> queryModuleInfoByNameStrict(@Param("pluginName") String pluginName);
103+
96104
/**
97105
* 根据插件ID 查询所有插件版本
98106
*
99107
* @param id
100108
* @return
101109
*/
102-
List<String> queryVersionsByMid(int id);
110+
List<ArkModuleVersionDO> queryVersionsByMid(int id);
103111

104112
/**
105113
* 插件关联应用信息入库

sofa-dashboard-backend/sofa-dashboard-arkmng/src/main/java/com/alipay/sofa/dashboard/impl/ArkMngServiceImpl.java

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@
1616
*/
1717
package com.alipay.sofa.dashboard.impl;
1818

19-
import com.alipay.sofa.dashboard.constants.SofaDashboardConstants;
2019
import com.alipay.sofa.dashboard.dao.ArkDao;
21-
import com.alipay.sofa.dashboard.model.*;
20+
import com.alipay.sofa.dashboard.model.AppArkDO;
21+
import com.alipay.sofa.dashboard.model.ArkModuleUserDO;
22+
import com.alipay.sofa.dashboard.model.ArkModuleVersionDO;
23+
import com.alipay.sofa.dashboard.model.ArkPluginDO;
24+
import com.alipay.sofa.dashboard.model.ArkPluginModel;
2225
import com.alipay.sofa.dashboard.service.ArkMngService;
2326
import com.alipay.sofa.dashboard.utils.DateUtil;
2427
import org.slf4j.Logger;
@@ -51,14 +54,12 @@ public List<ArkPluginModel> fetchRegisteredPlugins() {
5154

5255
@Transactional(rollbackFor = Exception.class)
5356
@Override
54-
public boolean registerPlugin(ArkPluginDO model, String version) {
57+
public boolean registerPlugin(ArkPluginDO model) {
5558
try {
5659
// 向模块表中插入一条数据
5760
arkDao.insert(model);
5861
int mId = model.getId();
59-
// 向模板版本表中插入数据
60-
doInsertModuleVersion(mId, version, model.getPluginName());
61-
// 向模板Owner表中插入数据
62+
// 向模板 Owner 表中插入数据
6263
ArkModuleUserDO arkModuleUserDO = new ArkModuleUserDO();
6364
arkModuleUserDO.setModuleId(mId);
6465
// -1 不需要权限校验即可访问使用
@@ -73,10 +74,10 @@ public boolean registerPlugin(ArkPluginDO model, String version) {
7374
}
7475

7576
@Override
76-
public boolean addNewVersion(String pluginName, String version) {
77+
public boolean addNewVersion(String pluginName, String version, String address) {
7778
int mId = arkDao.queryModuleIdByName(pluginName);
7879
// 向模板版本表中插入数据
79-
return doInsertModuleVersion(mId, version, pluginName) > 0;
80+
return doInsertModuleVersion(mId, version, address) > 0;
8081
}
8182

8283
@Transactional(rollbackFor = Exception.class)
@@ -138,10 +139,16 @@ private List<ArkPluginModel> doFetchPluginsByName(String pluginName) {
138139
List<ArkPluginDO> list = arkDao.queryModuleInfoByName(pluginName);
139140
for (ArkPluginDO item : list) {
140141
ArkPluginModel temp = new ArkPluginModel();
141-
List<String> versions = arkDao.queryVersionsByMid(item.getId());
142+
List<ArkModuleVersionDO> arkModuleVersionDOList = arkDao.queryVersionsByMid(item.getId());
143+
List<ArkPluginModel.Version> versions = new ArrayList<>();
144+
arkModuleVersionDOList.forEach(ver -> {
145+
ArkPluginModel.Version version = new ArkPluginModel.Version();
146+
version.setSourcePath(ver.getSourcePath());
147+
version.setVersion(ver.getModuleVersion());
148+
versions.add(version);
149+
});
142150
temp.setVersions(versions);
143151
temp.setId(item.getId());
144-
temp.setAddress(item.getPluginUrl());
145152
temp.setDescription(item.getDescription());
146153
temp.setPluginName(item.getPluginName());
147154
result.add(temp);
@@ -150,28 +157,18 @@ private List<ArkPluginModel> doFetchPluginsByName(String pluginName) {
150157
}
151158

152159
/**
153-
* 构建版本信息,此处会生成默认的 版本地址,与插件地址组合之后可以唯一确定当前 插件包的地址
154-
* <p>
155-
* 如 插件地址 为 :http://ip:port/sofa/ark
156-
* 版本地址 为 :/1.0.0/test-plugin-1.0.0-ark-biz.jar
157-
* <p>
158-
* 则 最终地址为 http://ip:port/sofa/ark/1.0.0/test-plugin-1.0.0-ark-biz.jar
159-
*
160160
* @param mId
161161
* @param version
162-
* @param pluginName
162+
* @param address
163163
* @return
164164
*/
165-
private int doInsertModuleVersion(int mId, String version, String pluginName) {
165+
private int doInsertModuleVersion(int mId, String version, String address) {
166166
// 向模板版本表中插入数据
167167
ArkModuleVersionDO arkModuleVersionDO = new ArkModuleVersionDO();
168168
arkModuleVersionDO.setCreateTime(DateUtil.now());
169169
arkModuleVersionDO.setModuleId(mId);
170170
arkModuleVersionDO.setModuleVersion(version);
171-
arkModuleVersionDO.setSourcePath(SofaDashboardConstants.SEPARATOR + version
172-
+ SofaDashboardConstants.SEPARATOR + pluginName
173-
+ SofaDashboardConstants.HORIZONTAL + version
174-
+ "-ark-biz.jar");
171+
arkModuleVersionDO.setSourcePath(address);
175172
arkModuleVersionDO.setIsRelease((byte) 0);
176173
arkDao.insertModuleVersion(arkModuleVersionDO);
177174
return arkModuleVersionDO.getId();

sofa-dashboard-backend/sofa-dashboard-arkmng/src/main/java/com/alipay/sofa/dashboard/impl/ZkCommandPushManager.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,20 +203,16 @@ private ArkOperation getData(CommandRequest commandRequest) {
203203
}
204204

205205
private String getBizPluginFileUrl(CommandRequest commandRequest) {
206-
List<ArkPluginDO> arkPluginList = arkDao.queryModuleInfoByName(commandRequest
206+
List<ArkPluginDO> arkPluginList = arkDao.queryModuleInfoByNameStrict(commandRequest
207207
.getPluginName());
208208
if (arkPluginList.size() > 1) {
209209
throw new RuntimeException("Multiple modules with the same name coexist.");
210210
}
211211
if (arkPluginList.size() == 1) {
212212
ArkPluginDO arkPlugin = arkPluginList.get(0);
213-
String pluginUrl = arkPlugin.getPluginUrl();
214213
ArkModuleVersionDO arkModuleVersion = arkDao.queryByModuleIdAndModuleVersion(
215214
arkPlugin.getId(), commandRequest.getPluginVersion());
216-
if (pluginUrl.endsWith(SofaDashboardConstants.SEPARATOR)) {
217-
pluginUrl = pluginUrl.substring(0, pluginUrl.length() - 1);
218-
}
219-
return pluginUrl + arkModuleVersion.getSourcePath();
215+
return arkModuleVersion.getSourcePath();
220216
}
221217
return null;
222218
}

sofa-dashboard-backend/sofa-dashboard-arkmng/src/main/java/com/alipay/sofa/dashboard/model/ArkPluginDO.java

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
public class ArkPluginDO {
2626
private Integer id;
2727
private String pluginName;
28-
private String pluginUrl;
2928
private Date createTime;
3029
private String description;
3130

@@ -45,14 +44,6 @@ public void setPluginName(String pluginName) {
4544
this.pluginName = pluginName;
4645
}
4746

48-
public String getPluginUrl() {
49-
return pluginUrl;
50-
}
51-
52-
public void setPluginUrl(String pluginUrl) {
53-
this.pluginUrl = pluginUrl;
54-
}
55-
5647
public String getDescription() {
5748
return description;
5849
}
@@ -69,9 +60,8 @@ public void setCreateTime(Date createTime) {
6960
this.createTime = createTime;
7061
}
7162

72-
public ArkPluginDO(String pluginName, String pluginUrl, Date createTime, String description) {
63+
public ArkPluginDO(String pluginName, Date createTime, String description) {
7364
this.pluginName = pluginName;
74-
this.pluginUrl = pluginUrl;
7565
this.createTime = createTime;
7666
this.description = description;
7767
}
@@ -81,8 +71,7 @@ public ArkPluginDO() {
8171

8272
@Override
8373
public String toString() {
84-
return "ArkPluginDO{" + "id=" + id + ", pluginName='" + pluginName + '\'' + ", pluginUrl='"
85-
+ pluginUrl + '\'' + ", createTime=" + createTime + ", description='" + description
86-
+ '\'' + '}';
74+
return "ArkPluginDO{" + "id=" + id + ", pluginName='" + pluginName + '\'' + ", createTime="
75+
+ createTime + ", description='" + description + '\'' + '}';
8776
}
8877
}

sofa-dashboard-backend/sofa-dashboard-arkmng/src/main/java/com/alipay/sofa/dashboard/model/ArkPluginModel.java

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
public class ArkPluginModel {
2626
private int id;
2727
private String pluginName;
28-
private List<String> versions;
28+
private List<Version> versions;
2929
private String address;
3030
private String description;
3131
private List<AppArkModel> appArkList;
@@ -46,14 +46,6 @@ public void setPluginName(String pluginName) {
4646
this.pluginName = pluginName;
4747
}
4848

49-
public List<String> getVersions() {
50-
return versions;
51-
}
52-
53-
public void setVersions(List<String> versions) {
54-
this.versions = versions;
55-
}
56-
5749
public String getAddress() {
5850
return address;
5951
}
@@ -77,4 +69,35 @@ public List<AppArkModel> getAppArkList() {
7769
public void setAppArkList(List<AppArkModel> appArkList) {
7870
this.appArkList = appArkList;
7971
}
72+
73+
public List<Version> getVersions() {
74+
return versions;
75+
}
76+
77+
public void setVersions(List<Version> versions) {
78+
this.versions = versions;
79+
}
80+
81+
public static class Version {
82+
83+
private String version;
84+
85+
private String sourcePath;
86+
87+
public String getVersion() {
88+
return version;
89+
}
90+
91+
public void setVersion(String version) {
92+
this.version = version;
93+
}
94+
95+
public String getSourcePath() {
96+
return sourcePath;
97+
}
98+
99+
public void setSourcePath(String sourcePath) {
100+
this.sourcePath = sourcePath;
101+
}
102+
}
80103
}

sofa-dashboard-backend/sofa-dashboard-arkmng/src/main/java/com/alipay/sofa/dashboard/service/ArkMngService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,19 @@ public interface ArkMngService {
3838
* 向管控端注册插件
3939
*
4040
* @param model
41-
* @param version
4241
* @return
4342
*/
44-
boolean registerPlugin(ArkPluginDO model, String version);
43+
boolean registerPlugin(ArkPluginDO model);
4544

4645
/**
4746
* 给模块增加新的版本
4847
*
4948
* @param pluginName
5049
* @param version
50+
* @param address
5151
* @return
5252
*/
53-
boolean addNewVersion(String pluginName, String version);
53+
boolean addNewVersion(String pluginName, String version, String address);
5454

5555
/**
5656
* 删除一个模块

sofa-dashboard-backend/sofa-dashboard-governance/src/main/java/com/alipay/sofa/dashboard/cache/RegistryDataCache.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.alipay.sofa.dashboard.domain.RpcConsumer;
2020
import com.alipay.sofa.dashboard.domain.RpcProvider;
2121
import com.alipay.sofa.dashboard.domain.RpcService;
22+
2223
import java.util.ArrayList;
2324
import java.util.HashMap;
2425
import java.util.List;

sofa-dashboard-backend/sofa-dashboard-governance/src/main/java/com/alipay/sofa/dashboard/cache/SofaRegistryDataCacheImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.alipay.sofa.dashboard.domain.RpcProvider;
2121
import com.alipay.sofa.dashboard.domain.RpcService;
2222
import com.alipay.sofa.rpc.common.utils.StringUtils;
23+
2324
import java.util.ArrayList;
2425
import java.util.List;
2526
import java.util.Map;

sofa-dashboard-backend/sofa-dashboard-governance/src/main/java/com/alipay/sofa/dashboard/cache/ZookeeperRegistryDataCacheImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.alipay.sofa.rpc.common.utils.StringUtils;
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
26+
2627
import java.util.ArrayList;
2728
import java.util.List;
2829
import java.util.Map;

sofa-dashboard-backend/sofa-dashboard-governance/src/main/java/com/alipay/sofa/dashboard/configuration/GovernanceConfiguration.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springframework.context.annotation.Configuration;
3434
import org.springframework.core.env.Environment;
3535
import org.springframework.web.client.RestTemplate;
36+
3637
import java.util.HashMap;
3738
import java.util.Map;
3839

0 commit comments

Comments
 (0)