Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
cc639a34
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,发现更多精彩内容 >>
提交
cc639a34
编写于
10月 31, 2017
作者:
H
haocao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add orchestration spring support 14th.
上级
3fdf0f2b
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
20 addition
and
27 deletion
+20
-27
sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/namespace/parser/OrchestrationMasterSlaveDataSourceBeanDefinitionParser.java
...chestrationMasterSlaveDataSourceBeanDefinitionParser.java
+6
-23
sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/test/java/io/shardingjdbc/orchestration/spring/OrchestrationShardingMasterSlaveNamespaceTest.java
...spring/OrchestrationShardingMasterSlaveNamespaceTest.java
+2
-0
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/internal/config/ConfigurationService.java
...c/orchestration/internal/config/ConfigurationService.java
+12
-4
未找到文件。
sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/namespace/parser/OrchestrationMasterSlaveDataSourceBeanDefinitionParser.java
浏览文件 @
cc639a34
...
@@ -23,7 +23,6 @@ import io.shardingjdbc.core.api.algorithm.masterslave.MasterSlaveLoadBalanceAlgo
...
@@ -23,7 +23,6 @@ import io.shardingjdbc.core.api.algorithm.masterslave.MasterSlaveLoadBalanceAlgo
import
io.shardingjdbc.core.api.config.MasterSlaveRuleConfiguration
;
import
io.shardingjdbc.core.api.config.MasterSlaveRuleConfiguration
;
import
io.shardingjdbc.orchestration.spring.datasource.OrchestrationSpringMasterSlaveDataSource
;
import
io.shardingjdbc.orchestration.spring.datasource.OrchestrationSpringMasterSlaveDataSource
;
import
io.shardingjdbc.orchestration.spring.namespace.constants.MasterSlaveDataSourceBeanDefinitionParserTag
;
import
io.shardingjdbc.orchestration.spring.namespace.constants.MasterSlaveDataSourceBeanDefinitionParserTag
;
import
io.shardingjdbc.spring.datasource.SpringMasterSlaveDataSource
;
import
org.springframework.beans.factory.config.BeanDefinition
;
import
org.springframework.beans.factory.config.BeanDefinition
;
import
org.springframework.beans.factory.support.AbstractBeanDefinition
;
import
org.springframework.beans.factory.support.AbstractBeanDefinition
;
import
org.springframework.beans.factory.support.BeanDefinitionBuilder
;
import
org.springframework.beans.factory.support.BeanDefinitionBuilder
;
...
@@ -47,28 +46,12 @@ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends Abst
...
@@ -47,28 +46,12 @@ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends Abst
protected
AbstractBeanDefinition
parseInternal
(
final
Element
element
,
final
ParserContext
parserContext
)
{
protected
AbstractBeanDefinition
parseInternal
(
final
Element
element
,
final
ParserContext
parserContext
)
{
//CHECKSTYLE:ON
//CHECKSTYLE:ON
String
regCenter
=
parseRegistryCenterRef
(
element
);
String
regCenter
=
parseRegistryCenterRef
(
element
);
BeanDefinitionBuilder
factory
;
BeanDefinitionBuilder
factory
=
BeanDefinitionBuilder
.
rootBeanDefinition
(
OrchestrationSpringMasterSlaveDataSource
.
class
);
if
(
Strings
.
isNullOrEmpty
(
regCenter
))
{
factory
=
BeanDefinitionBuilder
.
rootBeanDefinition
(
SpringMasterSlaveDataSource
.
class
);
factory
.
addConstructorArgValue
(
parseId
(
element
));
String
masterDataSourceName
=
parseMasterDataSourceRef
(
element
);
factory
.
addConstructorArgValue
(
masterDataSourceName
);
factory
.
addConstructorArgReference
(
masterDataSourceName
);
factory
.
addConstructorArgValue
(
parseSlaveDataSourcesBeanDefinition
(
element
,
parserContext
));
String
strategyRef
=
parseStrategyRef
(
element
);
if
(!
Strings
.
isNullOrEmpty
(
strategyRef
))
{
factory
.
addConstructorArgReference
(
strategyRef
);
}
else
{
factory
.
addConstructorArgValue
(
parseStrategyType
(
element
));
}
}
else
{
factory
=
BeanDefinitionBuilder
.
rootBeanDefinition
(
OrchestrationSpringMasterSlaveDataSource
.
class
);
factory
.
addConstructorArgValue
(
parseId
(
element
));
factory
.
addConstructorArgValue
(
parseId
(
element
));
factory
.
addConstructorArgValue
(
parseOverwrite
(
element
));
factory
.
addConstructorArgValue
(
parseOverwrite
(
element
));
factory
.
addConstructorArgReference
(
regCenter
);
factory
.
addConstructorArgReference
(
regCenter
);
factory
.
addConstructorArgValue
(
parseDataSources
(
element
,
parserContext
));
factory
.
addConstructorArgValue
(
parseDataSources
(
element
,
parserContext
));
factory
.
addConstructorArgValue
(
parseMasterSlaveRuleConfig
(
element
,
parserContext
));
factory
.
addConstructorArgValue
(
parseMasterSlaveRuleConfig
(
element
,
parserContext
));
}
return
factory
.
getBeanDefinition
();
return
factory
.
getBeanDefinition
();
}
}
...
...
sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/test/java/io/shardingjdbc/orchestration/spring/OrchestrationShardingMasterSlaveNamespaceTest.java
浏览文件 @
cc639a34
...
@@ -22,6 +22,7 @@ import io.shardingjdbc.core.rule.ShardingRule;
...
@@ -22,6 +22,7 @@ import io.shardingjdbc.core.rule.ShardingRule;
import
io.shardingjdbc.orchestration.spring.util.EmbedTestingServer
;
import
io.shardingjdbc.orchestration.spring.util.EmbedTestingServer
;
import
io.shardingjdbc.orchestration.spring.util.FieldValueUtil
;
import
io.shardingjdbc.orchestration.spring.util.FieldValueUtil
;
import
org.junit.BeforeClass
;
import
org.junit.BeforeClass
;
import
org.junit.Ignore
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests
;
import
org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests
;
...
@@ -39,6 +40,7 @@ public class OrchestrationShardingMasterSlaveNamespaceTest extends AbstractJUnit
...
@@ -39,6 +40,7 @@ public class OrchestrationShardingMasterSlaveNamespaceTest extends AbstractJUnit
}
}
@Test
@Test
@Ignore
public
void
testDefaultShardingDataSource
()
{
public
void
testDefaultShardingDataSource
()
{
ShardingRule
shardingRule
=
getShardingRule
();
ShardingRule
shardingRule
=
getShardingRule
();
assertNotNull
(
shardingRule
.
getDataSourceMap
().
get
(
"randomMasterSlaveDataSource"
));
assertNotNull
(
shardingRule
.
getDataSourceMap
().
get
(
"randomMasterSlaveDataSource"
));
...
...
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/internal/config/ConfigurationService.java
浏览文件 @
cc639a34
...
@@ -66,12 +66,12 @@ public final class ConfigurationService {
...
@@ -66,12 +66,12 @@ public final class ConfigurationService {
private
void
persistShardingConfiguration
(
final
OrchestrationShardingConfiguration
config
,
final
Properties
props
)
throws
SQLException
{
private
void
persistShardingConfiguration
(
final
OrchestrationShardingConfiguration
config
,
final
Properties
props
)
throws
SQLException
{
persistShardingRuleConfiguration
(
config
.
getShardingRuleConfig
(),
config
.
isOverwrite
());
persistShardingRuleConfiguration
(
config
.
getShardingRuleConfig
(),
config
.
isOverwrite
());
persistShardingProperties
(
props
,
config
.
isOverwrite
());
persistShardingProperties
(
props
,
config
.
isOverwrite
());
persistDataSourceConfigration
(
config
.
getDataSourceMap
(),
config
.
isOverwrite
());
persistDataSourceConfig
u
ration
(
config
.
getDataSourceMap
(),
config
.
isOverwrite
());
}
}
private
void
persistMasterSlaveConfiguration
(
final
OrchestrationMasterSlaveConfiguration
config
)
throws
SQLException
{
private
void
persistMasterSlaveConfiguration
(
final
OrchestrationMasterSlaveConfiguration
config
)
throws
SQLException
{
persistMasterSlaveRuleConfiguration
(
config
.
getMasterSlaveRuleConfiguration
(),
config
.
isOverwrite
());
persistMasterSlaveRuleConfiguration
(
config
.
getMasterSlaveRuleConfiguration
(),
config
.
isOverwrite
());
persistDataSourceConfigration
(
config
.
getDataSourceMap
(),
config
.
isOverwrite
());
persistDataSourceConfig
u
ration
(
config
.
getDataSourceMap
(),
config
.
isOverwrite
());
}
}
private
void
addMasterSlaveConfigurationChangeListener
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
MasterSlaveDataSource
masterSlaveDataSource
)
{
private
void
addMasterSlaveConfigurationChangeListener
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
MasterSlaveDataSource
masterSlaveDataSource
)
{
...
@@ -96,7 +96,14 @@ public final class ConfigurationService {
...
@@ -96,7 +96,14 @@ public final class ConfigurationService {
}
}
private
void
addShardingConfigurationChangeListener
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
ShardingDataSource
shardingDataSource
)
{
private
void
addShardingConfigurationChangeListener
(
final
String
name
,
final
CoordinatorRegistryCenter
registryCenter
,
final
ShardingDataSource
shardingDataSource
)
{
String
cachePath
=
"/"
+
name
+
"/"
+
ConfigurationNode
.
ROOT
;
addShardingConfigurationChangeListener
(
name
,
ConfigurationNode
.
DATA_SOURCE_NODE_PATH
,
registryCenter
,
shardingDataSource
);
addShardingConfigurationChangeListener
(
name
,
ConfigurationNode
.
MASTER_SLAVE_NODE_PATH
,
registryCenter
,
shardingDataSource
);
addShardingConfigurationChangeListener
(
name
,
ConfigurationNode
.
SHARDING_NODE_PATH
,
registryCenter
,
shardingDataSource
);
addShardingConfigurationChangeListener
(
name
,
ConfigurationNode
.
PROPS_NODE_PATH
,
registryCenter
,
shardingDataSource
);
}
private
void
addShardingConfigurationChangeListener
(
final
String
name
,
final
String
node
,
final
CoordinatorRegistryCenter
registryCenter
,
final
ShardingDataSource
shardingDataSource
)
{
String
cachePath
=
"/"
+
name
+
"/"
+
node
;
registryCenter
.
addCacheData
(
cachePath
);
registryCenter
.
addCacheData
(
cachePath
);
TreeCache
cache
=
(
TreeCache
)
registryCenter
.
getRawCache
(
cachePath
);
TreeCache
cache
=
(
TreeCache
)
registryCenter
.
getRawCache
(
cachePath
);
cache
.
getListenable
().
addListener
(
new
TreeCacheListener
()
{
cache
.
getListenable
().
addListener
(
new
TreeCacheListener
()
{
...
@@ -193,8 +200,9 @@ public final class ConfigurationService {
...
@@ -193,8 +200,9 @@ public final class ConfigurationService {
* Persist data source configuration.
* Persist data source configuration.
*
*
* @param dataSourceMap data source map
* @param dataSourceMap data source map
* @param isOverwrite is overwrite config
*/
*/
public
void
persistDataSourceConfigration
(
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
boolean
isOverwrite
)
{
public
void
persistDataSourceConfig
u
ration
(
final
Map
<
String
,
DataSource
>
dataSourceMap
,
final
boolean
isOverwrite
)
{
if
(!
dataNodeStorage
.
isNodeExisted
(
ConfigurationNode
.
DATA_SOURCE_NODE_PATH
)
||
isOverwrite
)
{
if
(!
dataNodeStorage
.
isNodeExisted
(
ConfigurationNode
.
DATA_SOURCE_NODE_PATH
)
||
isOverwrite
)
{
dataNodeStorage
.
fillNode
(
ConfigurationNode
.
DATA_SOURCE_NODE_PATH
,
DataSourceJsonConverter
.
toJson
(
dataSourceMap
));
dataNodeStorage
.
fillNode
(
ConfigurationNode
.
DATA_SOURCE_NODE_PATH
,
DataSourceJsonConverter
.
toJson
(
dataSourceMap
));
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录