Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zhangjian1949
apollo
提交
e64e7330
apollo
项目概览
zhangjian1949
/
apollo
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
apollo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
e64e7330
编写于
12月 12, 2020
作者:
K
kl
提交者:
GitHub
12月 12, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enhance the user experience in the scenario of submitting duplicate keys (#3429)
上级
03bc4b47
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
10 deletion
+10
-10
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/component/txtresolver/PropertyResolver.java
...apollo/portal/component/txtresolver/PropertyResolver.java
+10
-9
apollo-portal/src/main/resources/static/scripts/directive/namespace-panel-directive.js
...ces/static/scripts/directive/namespace-panel-directive.js
+0
-1
未找到文件。
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/component/txtresolver/PropertyResolver.java
浏览文件 @
e64e7330
...
...
@@ -8,6 +8,7 @@ import com.ctrip.framework.apollo.common.utils.BeanUtils;
import
com.google.common.base.Strings
;
import
org.springframework.stereotype.Component
;
import
javax.validation.constraints.NotNull
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
...
...
@@ -35,9 +36,9 @@ public class PropertyResolver implements ConfigTextResolver {
oldKeyMapItem
.
remove
(
""
);
String
[]
newItems
=
configText
.
split
(
ITEM_SEPARATOR
);
if
(
isHasRepeatKey
(
newItems
))
{
throw
new
BadRequestException
(
"config text has repeat key please check."
);
Set
<
String
>
repeatKeys
=
new
HashSet
<>();
if
(
isHasRepeatKey
(
newItems
,
repeatKeys
))
{
throw
new
BadRequestException
(
String
.
format
(
"Config text has repeated keys: %s, please check your input."
,
repeatKeys
.
toString
())
);
}
ItemChangeSets
changeSets
=
new
ItemChangeSets
();
...
...
@@ -72,24 +73,24 @@ public class PropertyResolver implements ConfigTextResolver {
return
changeSets
;
}
private
boolean
isHasRepeatKey
(
String
[]
newItems
)
{
private
boolean
isHasRepeatKey
(
String
[]
newItems
,
@NotNull
Set
<
String
>
repeatKeys
)
{
Set
<
String
>
keys
=
new
HashSet
<>();
int
lineCounter
=
1
;
int
keyCount
=
0
;
for
(
String
item
:
newItems
)
{
if
(!
isCommentItem
(
item
)
&&
!
isBlankItem
(
item
))
{
keyCount
++;
String
[]
kv
=
parseKeyValueFromItem
(
item
);
if
(
kv
!=
null
)
{
keys
.
add
(
kv
[
0
].
toLowerCase
());
String
key
=
kv
[
0
].
toLowerCase
();
if
(!
keys
.
add
(
key
)){
repeatKeys
.
add
(
key
);
}
}
else
{
throw
new
BadRequestException
(
"line:"
+
lineCounter
+
" key value must separate by '='"
);
}
}
lineCounter
++;
}
return
keyCount
>
keys
.
size
();
return
!
repeatKeys
.
isEmpty
();
}
private
String
[]
parseKeyValueFromItem
(
String
item
)
{
...
...
apollo-portal/src/main/resources/static/scripts/directive/namespace-panel-directive.js
浏览文件 @
e64e7330
...
...
@@ -745,7 +745,6 @@ function directive($window, $translate, toastr, AppUtil, EventManager, Permissio
}
);
namespace
.
commited
=
true
;
toggleTextEditStatus
(
namespace
);
}
function
syntaxCheck
(
namespace
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录