Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
e42a68dd
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
e42a68dd
编写于
8月 11, 2020
作者:
J
Juan Pan(Trista)
提交者:
GitHub
8月 11, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add SchemaNameCallback for proxy (#6785)
* Add SchemaNameCallback for proxy * fix tests
上级
4875e8e2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
51 addition
and
7 deletion
+51
-7
shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-config/src/main/java/org/apache/shardingsphere/orchestration/core/config/ConfigCenter.java
...hardingsphere/orchestration/core/config/ConfigCenter.java
+2
-0
shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-config/src/main/java/org/apache/shardingsphere/orchestration/core/config/listener/SchemaChangedListener.java
...estration/core/config/listener/SchemaChangedListener.java
+3
-1
shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-config/src/test/java/org/apache/shardingsphere/orchestration/core/config/listener/SchemaChangedListenerTest.java
...ation/core/config/listener/SchemaChangedListenerTest.java
+6
-6
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/callback/orchestration/SchemaNameCallback.java
...here/infra/callback/orchestration/SchemaNameCallback.java
+40
-0
未找到文件。
shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-config/src/main/java/org/apache/shardingsphere/orchestration/core/config/ConfigCenter.java
浏览文件 @
e42a68dd
...
...
@@ -31,6 +31,7 @@ import org.apache.shardingsphere.infra.auth.yaml.config.YamlAuthenticationConfig
import
org.apache.shardingsphere.infra.auth.yaml.swapper.AuthenticationYamlSwapper
;
import
org.apache.shardingsphere.infra.callback.orchestration.DataSourceCallback
;
import
org.apache.shardingsphere.infra.callback.orchestration.RuleCallback
;
import
org.apache.shardingsphere.infra.callback.orchestration.SchemaNameCallback
;
import
org.apache.shardingsphere.infra.config.DataSourceConfiguration
;
import
org.apache.shardingsphere.infra.config.RuleConfiguration
;
import
org.apache.shardingsphere.infra.yaml.config.YamlRootRuleConfigurations
;
...
...
@@ -72,6 +73,7 @@ public final class ConfigCenter {
this
.
repository
=
repository
;
DataSourceCallback
.
getInstance
().
register
(
this
::
persistDataSourceConfiguration
);
RuleCallback
.
getInstance
().
register
(
this
::
persistRuleConfigurations
);
SchemaNameCallback
.
getInstance
().
register
(
this
::
persistSchemaName
);
}
/**
...
...
shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-config/src/main/java/org/apache/shardingsphere/orchestration/core/config/listener/SchemaChangedListener.java
浏览文件 @
e42a68dd
...
...
@@ -68,6 +68,7 @@ public final class SchemaChangedListener extends PostOrchestrationRepositoryEven
@Override
protected
OrchestrationEvent
createOrchestrationEvent
(
final
DataChangedEvent
event
)
{
// TODO Consider removing the following one.
if
(
configurationNode
.
getSchemaPath
().
equals
(
event
.
getKey
()))
{
return
createSchemaNamesUpdatedEvent
(
event
.
getValue
());
}
...
...
@@ -101,7 +102,8 @@ public final class SchemaChangedListener extends PostOrchestrationRepositoryEven
}
private
boolean
isValidNodeChangedEvent
(
final
String
shardingSchemaName
,
final
String
nodeFullPath
)
{
return
configurationNode
.
getDataSourcePath
(
shardingSchemaName
).
equals
(
nodeFullPath
)
||
configurationNode
.
getRulePath
(
shardingSchemaName
).
equals
(
nodeFullPath
);
return
!
existedSchemaNames
.
contains
(
shardingSchemaName
)
||
configurationNode
.
getDataSourcePath
(
shardingSchemaName
).
equals
(
nodeFullPath
)
||
configurationNode
.
getRulePath
(
shardingSchemaName
).
equals
(
nodeFullPath
);
}
private
OrchestrationEvent
createAddedEvent
(
final
String
shardingSchemaName
)
{
...
...
shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-config/src/test/java/org/apache/shardingsphere/orchestration/core/config/listener/SchemaChangedListenerTest.java
浏览文件 @
e42a68dd
...
...
@@ -72,9 +72,9 @@ public final class SchemaChangedListenerTest {
@Test
public
void
assertCreateIgnoredEvent
()
{
assertThat
(
schemaChangedListener
.
createOrchestrationEvent
(
new
DataChangedEvent
(
"/test/config/schema/
logic_db"
,
"test"
,
ChangedType
.
UPDATED
)),
assertThat
(
schemaChangedListener
.
createOrchestrationEvent
(
new
DataChangedEvent
(
"/test/config/schema/
encrypt_db"
,
"test"
,
ChangedType
.
UPDATED
)),
instanceOf
(
IgnoredOrchestrationEvent
.
class
));
assertThat
(
schemaChangedListener
.
createOrchestrationEvent
(
new
DataChangedEvent
(
"/test/config/schema/
logic_db/rule"
,
"test"
,
ChangedType
.
IGNORED
)),
assertThat
(
schemaChangedListener
.
createOrchestrationEvent
(
new
DataChangedEvent
(
"/test/config/schema/
encrypt_db/rule"
,
"test"
,
ChangedType
.
IGNORED
)),
instanceOf
(
IgnoredOrchestrationEvent
.
class
));
}
...
...
@@ -188,19 +188,19 @@ public final class SchemaChangedListenerTest {
}
@Test
public
void
assertCreateWith
InvalidNodeChang
edEvent
()
{
public
void
assertCreateWith
SchemaDelet
edEvent
()
{
String
dataSource
=
readYAML
(
DATA_SOURCE_FILE
);
DataChangedEvent
dataChangedEvent
=
new
DataChangedEvent
(
"/test/config/schema/logic_db"
,
dataSource
,
ChangedType
.
DELETED
);
OrchestrationEvent
actual
=
schemaChangedListener
.
createOrchestrationEvent
(
dataChangedEvent
);
assertThat
(
actual
,
instanceOf
(
IgnoredOrchestration
Event
.
class
));
assertThat
(
actual
,
instanceOf
(
SchemaDeleted
Event
.
class
));
}
@Test
public
void
assertCreateWith
NullShardingSchemaNam
e
()
{
public
void
assertCreateWith
SchemaDeletedEventWithDataSourceNod
e
()
{
String
dataSource
=
readYAML
(
DATA_SOURCE_FILE
);
DataChangedEvent
dataChangedEvent
=
new
DataChangedEvent
(
"/test/config/schema/datasource"
,
dataSource
,
ChangedType
.
DELETED
);
OrchestrationEvent
actual
=
schemaChangedListener
.
createOrchestrationEvent
(
dataChangedEvent
);
assertThat
(
actual
,
instanceOf
(
IgnoredOrchestration
Event
.
class
));
assertThat
(
actual
,
instanceOf
(
SchemaDeleted
Event
.
class
));
}
@Test
...
...
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/callback/orchestration/SchemaNameCallback.java
0 → 100644
浏览文件 @
e42a68dd
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.shardingsphere.infra.callback.orchestration
;
import
lombok.AccessLevel
;
import
lombok.NoArgsConstructor
;
import
org.apache.shardingsphere.infra.callback.Callback
;
/**
* Schema name callback.
*/
@NoArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
public
final
class
SchemaNameCallback
extends
Callback
<
Boolean
>
{
private
static
final
SchemaNameCallback
INSTANCE
=
new
SchemaNameCallback
();
/**
* Get instance.
*
* @return data source callback
*/
public
static
SchemaNameCallback
getInstance
()
{
return
INSTANCE
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录