Loading sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/namespace/parser/AbstractOrchestrationBeanDefinitionParser.java 0 → 100644 +40 −0 Original line number Diff line number Diff line /* * Copyright 1999-2015 dangdang.com. * <p> * Licensed 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. * </p> */ package io.shardingjdbc.orchestration.spring.namespace.parser; import io.shardingjdbc.orchestration.api.config.OrchestrationConfiguration; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; import org.w3c.dom.Element; /** * Abstract orchestration parser for spring namespace. * * @author caohao */ public abstract class AbstractOrchestrationBeanDefinitionParser extends AbstractBeanDefinitionParser { protected BeanDefinition parseOrchestrationConfiguration(final Element element) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationConfiguration.class); factory.addConstructorArgValue(element.getAttribute("id")); factory.addConstructorArgReference(element.getAttribute("registry-center-ref")); factory.addConstructorArgValue(Boolean.parseBoolean(element.getAttribute("overwrite"))); return factory.getBeanDefinition(); } } sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/namespace/parser/OrchestrationMasterSlaveDataSourceBeanDefinitionParser.java +8 −13 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ import com.google.common.base.Splitter; import com.google.common.base.Strings; import io.shardingjdbc.core.api.algorithm.masterslave.MasterSlaveLoadBalanceAlgorithmType; import io.shardingjdbc.core.api.config.MasterSlaveRuleConfiguration; import io.shardingjdbc.orchestration.spring.datasource.OrchestrationSpringMasterSlaveDataSource; import io.shardingjdbc.orchestration.internal.OrchestrationMasterSlaveDataSource; import io.shardingjdbc.orchestration.spring.datasource.SpringMasterSlaveDataSource; import io.shardingjdbc.orchestration.spring.namespace.constants.MasterSlaveDataSourceBeanDefinitionParserTag; import io.shardingjdbc.orchestration.spring.namespace.constants.ShardingDataSourceBeanDefinitionParserTag; Loading @@ -29,7 +29,6 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.util.xml.DomUtils; import org.w3c.dom.Element; Loading @@ -44,7 +43,7 @@ import java.util.Map; * @author caohao * @author zhangliang */ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends AbstractBeanDefinitionParser { public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends AbstractOrchestrationBeanDefinitionParser { @Override //CHECKSTYLE:OFF Loading @@ -54,7 +53,7 @@ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends Abst if (Strings.isNullOrEmpty(regCenter)) { return getSpringMasterSlaveDataSourceBean(element, parserContext); } return getOrchestrationSpringMasterSlaveDataSourceBean(element, parserContext, regCenter); return getOrchestrationSpringMasterSlaveDataSourceBean(element, parserContext); } private AbstractBeanDefinition getSpringMasterSlaveDataSourceBean(final Element element, final ParserContext parserContext) { Loading @@ -73,14 +72,14 @@ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends Abst return factory.getBeanDefinition(); } private AbstractBeanDefinition getOrchestrationSpringMasterSlaveDataSourceBean(final Element element, final ParserContext parserContext, final String regCenter) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationSpringMasterSlaveDataSource.class); factory.addConstructorArgValue(parseId(element)); factory.addConstructorArgValue(parseOverwrite(element)); factory.addConstructorArgReference(regCenter); private AbstractBeanDefinition getOrchestrationSpringMasterSlaveDataSourceBean(final Element element, final ParserContext parserContext) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationMasterSlaveDataSource.class); factory.addConstructorArgValue(parseDataSources(element, parserContext)); factory.addConstructorArgValue(parseMasterSlaveRuleConfig(element, parserContext)); factory.addConstructorArgValue(parseConfigMap(element, parserContext, factory.getBeanDefinition())); factory.addConstructorArgValue(parseOrchestrationConfiguration(element)); factory.setInitMethodName("init"); factory.setDestroyMethodName("close"); return factory.getBeanDefinition(); } Loading @@ -88,10 +87,6 @@ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends Abst return element.getAttribute(ID_ATTRIBUTE); } private boolean parseOverwrite(final Element element) { return Boolean.parseBoolean(element.getAttribute("overwrite")); } private String parseRegistryCenterRef(final Element element) { return element.getAttribute("registry-center-ref"); } Loading sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/namespace/parser/OrchestrationShardingDataSourceBeanDefinitionParser.java +5 −7 Original line number Diff line number Diff line Loading @@ -21,14 +21,13 @@ import com.google.common.base.Splitter; import com.google.common.base.Strings; import io.shardingjdbc.core.api.config.ShardingRuleConfiguration; import io.shardingjdbc.core.api.config.TableRuleConfiguration; import io.shardingjdbc.orchestration.spring.datasource.OrchestrationSpringShardingDataSource; import io.shardingjdbc.orchestration.internal.OrchestrationShardingDataSource; import io.shardingjdbc.orchestration.spring.namespace.constants.ShardingDataSourceBeanDefinitionParserTag; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.ManagedList; import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.util.xml.DomUtils; import org.w3c.dom.Element; Loading @@ -45,20 +44,19 @@ import java.util.Properties; * @author caohao * @author zhangliang */ public class OrchestrationShardingDataSourceBeanDefinitionParser extends AbstractBeanDefinitionParser { public class OrchestrationShardingDataSourceBeanDefinitionParser extends AbstractOrchestrationBeanDefinitionParser { @Override //CHECKSTYLE:OFF protected AbstractBeanDefinition parseInternal(final Element element, final ParserContext parserContext) { //CHECKSTYLE:ON BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationSpringShardingDataSource.class); factory.addConstructorArgValue(element.getAttribute("id")); factory.addConstructorArgValue(Boolean.parseBoolean(element.getAttribute("overwrite"))); factory.addConstructorArgReference(element.getAttribute("registry-center-ref")); BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationShardingDataSource.class); factory.addConstructorArgValue(parseDataSources(element, parserContext)); factory.addConstructorArgValue(parseShardingRuleConfig(element)); factory.addConstructorArgValue(parseConfigMap(element, parserContext, factory.getBeanDefinition())); factory.addConstructorArgValue(parseProperties(element, parserContext)); factory.addConstructorArgValue(parseOrchestrationConfiguration(element)); factory.setInitMethodName("init"); factory.setDestroyMethodName("close"); return factory.getBeanDefinition(); } Loading sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/test/java/io/shardingjdbc/orchestration/spring/OrchestrationMasterSlaveNamespaceTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import io.shardingjdbc.core.api.algorithm.masterslave.RandomMasterSlaveLoadBalan import io.shardingjdbc.core.api.algorithm.masterslave.RoundRobinMasterSlaveLoadBalanceAlgorithm; import io.shardingjdbc.core.jdbc.core.datasource.MasterSlaveDataSource; import io.shardingjdbc.core.rule.MasterSlaveRule; import io.shardingjdbc.orchestration.spring.datasource.OrchestrationSpringMasterSlaveDataSource; import io.shardingjdbc.orchestration.internal.OrchestrationMasterSlaveDataSource; import io.shardingjdbc.orchestration.spring.util.EmbedTestingServer; import io.shardingjdbc.orchestration.spring.util.FieldValueUtil; import org.apache.commons.lang3.builder.EqualsBuilder; Loading Loading @@ -51,7 +51,7 @@ public class OrchestrationMasterSlaveNamespaceTest extends AbstractJUnit4SpringC @Test public void assertMasterSlaveDataSourceType() { assertTrue(this.applicationContext.getBean("defaultMasterSlaveDataSource", MasterSlaveDataSource.class) instanceof OrchestrationSpringMasterSlaveDataSource); assertTrue(this.applicationContext.getBean("defaultMasterSlaveDataSource", OrchestrationMasterSlaveDataSource.class) instanceof OrchestrationMasterSlaveDataSource); } @Test Loading sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationMasterSlaveDataSourceFactory.java +4 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package io.shardingjdbc.orchestration.api; import io.shardingjdbc.core.api.config.MasterSlaveRuleConfiguration; import io.shardingjdbc.orchestration.api.config.OrchestrationConfiguration; import io.shardingjdbc.orchestration.internal.OrchestrationFacade; import io.shardingjdbc.orchestration.internal.OrchestrationMasterSlaveDataSource; import io.shardingjdbc.orchestration.yaml.YamlOrchestrationMasterSlaveRuleConfiguration; import lombok.AccessLevel; import lombok.NoArgsConstructor; Loading Loading @@ -57,7 +57,9 @@ public final class OrchestrationMasterSlaveDataSourceFactory { public static DataSource createDataSource( final Map<String, DataSource> dataSourceMap, final MasterSlaveRuleConfiguration masterSlaveRuleConfig, final Map<String, Object> configMap, final OrchestrationConfiguration orchestrationConfig) throws SQLException { return new OrchestrationFacade(orchestrationConfig).getOrchestrationMasterSlaveDataSource(dataSourceMap, masterSlaveRuleConfig, configMap); OrchestrationMasterSlaveDataSource result = new OrchestrationMasterSlaveDataSource(dataSourceMap, masterSlaveRuleConfig, configMap, orchestrationConfig); result.init(); return result; } /** Loading Loading
sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/namespace/parser/AbstractOrchestrationBeanDefinitionParser.java 0 → 100644 +40 −0 Original line number Diff line number Diff line /* * Copyright 1999-2015 dangdang.com. * <p> * Licensed 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. * </p> */ package io.shardingjdbc.orchestration.spring.namespace.parser; import io.shardingjdbc.orchestration.api.config.OrchestrationConfiguration; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; import org.w3c.dom.Element; /** * Abstract orchestration parser for spring namespace. * * @author caohao */ public abstract class AbstractOrchestrationBeanDefinitionParser extends AbstractBeanDefinitionParser { protected BeanDefinition parseOrchestrationConfiguration(final Element element) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationConfiguration.class); factory.addConstructorArgValue(element.getAttribute("id")); factory.addConstructorArgReference(element.getAttribute("registry-center-ref")); factory.addConstructorArgValue(Boolean.parseBoolean(element.getAttribute("overwrite"))); return factory.getBeanDefinition(); } }
sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/namespace/parser/OrchestrationMasterSlaveDataSourceBeanDefinitionParser.java +8 −13 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ import com.google.common.base.Splitter; import com.google.common.base.Strings; import io.shardingjdbc.core.api.algorithm.masterslave.MasterSlaveLoadBalanceAlgorithmType; import io.shardingjdbc.core.api.config.MasterSlaveRuleConfiguration; import io.shardingjdbc.orchestration.spring.datasource.OrchestrationSpringMasterSlaveDataSource; import io.shardingjdbc.orchestration.internal.OrchestrationMasterSlaveDataSource; import io.shardingjdbc.orchestration.spring.datasource.SpringMasterSlaveDataSource; import io.shardingjdbc.orchestration.spring.namespace.constants.MasterSlaveDataSourceBeanDefinitionParserTag; import io.shardingjdbc.orchestration.spring.namespace.constants.ShardingDataSourceBeanDefinitionParserTag; Loading @@ -29,7 +29,6 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.util.xml.DomUtils; import org.w3c.dom.Element; Loading @@ -44,7 +43,7 @@ import java.util.Map; * @author caohao * @author zhangliang */ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends AbstractBeanDefinitionParser { public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends AbstractOrchestrationBeanDefinitionParser { @Override //CHECKSTYLE:OFF Loading @@ -54,7 +53,7 @@ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends Abst if (Strings.isNullOrEmpty(regCenter)) { return getSpringMasterSlaveDataSourceBean(element, parserContext); } return getOrchestrationSpringMasterSlaveDataSourceBean(element, parserContext, regCenter); return getOrchestrationSpringMasterSlaveDataSourceBean(element, parserContext); } private AbstractBeanDefinition getSpringMasterSlaveDataSourceBean(final Element element, final ParserContext parserContext) { Loading @@ -73,14 +72,14 @@ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends Abst return factory.getBeanDefinition(); } private AbstractBeanDefinition getOrchestrationSpringMasterSlaveDataSourceBean(final Element element, final ParserContext parserContext, final String regCenter) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationSpringMasterSlaveDataSource.class); factory.addConstructorArgValue(parseId(element)); factory.addConstructorArgValue(parseOverwrite(element)); factory.addConstructorArgReference(regCenter); private AbstractBeanDefinition getOrchestrationSpringMasterSlaveDataSourceBean(final Element element, final ParserContext parserContext) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationMasterSlaveDataSource.class); factory.addConstructorArgValue(parseDataSources(element, parserContext)); factory.addConstructorArgValue(parseMasterSlaveRuleConfig(element, parserContext)); factory.addConstructorArgValue(parseConfigMap(element, parserContext, factory.getBeanDefinition())); factory.addConstructorArgValue(parseOrchestrationConfiguration(element)); factory.setInitMethodName("init"); factory.setDestroyMethodName("close"); return factory.getBeanDefinition(); } Loading @@ -88,10 +87,6 @@ public class OrchestrationMasterSlaveDataSourceBeanDefinitionParser extends Abst return element.getAttribute(ID_ATTRIBUTE); } private boolean parseOverwrite(final Element element) { return Boolean.parseBoolean(element.getAttribute("overwrite")); } private String parseRegistryCenterRef(final Element element) { return element.getAttribute("registry-center-ref"); } Loading
sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/main/java/io/shardingjdbc/orchestration/spring/namespace/parser/OrchestrationShardingDataSourceBeanDefinitionParser.java +5 −7 Original line number Diff line number Diff line Loading @@ -21,14 +21,13 @@ import com.google.common.base.Splitter; import com.google.common.base.Strings; import io.shardingjdbc.core.api.config.ShardingRuleConfiguration; import io.shardingjdbc.core.api.config.TableRuleConfiguration; import io.shardingjdbc.orchestration.spring.datasource.OrchestrationSpringShardingDataSource; import io.shardingjdbc.orchestration.internal.OrchestrationShardingDataSource; import io.shardingjdbc.orchestration.spring.namespace.constants.ShardingDataSourceBeanDefinitionParserTag; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.ManagedList; import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.util.xml.DomUtils; import org.w3c.dom.Element; Loading @@ -45,20 +44,19 @@ import java.util.Properties; * @author caohao * @author zhangliang */ public class OrchestrationShardingDataSourceBeanDefinitionParser extends AbstractBeanDefinitionParser { public class OrchestrationShardingDataSourceBeanDefinitionParser extends AbstractOrchestrationBeanDefinitionParser { @Override //CHECKSTYLE:OFF protected AbstractBeanDefinition parseInternal(final Element element, final ParserContext parserContext) { //CHECKSTYLE:ON BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationSpringShardingDataSource.class); factory.addConstructorArgValue(element.getAttribute("id")); factory.addConstructorArgValue(Boolean.parseBoolean(element.getAttribute("overwrite"))); factory.addConstructorArgReference(element.getAttribute("registry-center-ref")); BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(OrchestrationShardingDataSource.class); factory.addConstructorArgValue(parseDataSources(element, parserContext)); factory.addConstructorArgValue(parseShardingRuleConfig(element)); factory.addConstructorArgValue(parseConfigMap(element, parserContext, factory.getBeanDefinition())); factory.addConstructorArgValue(parseProperties(element, parserContext)); factory.addConstructorArgValue(parseOrchestrationConfiguration(element)); factory.setInitMethodName("init"); factory.setDestroyMethodName("close"); return factory.getBeanDefinition(); } Loading
sharding-jdbc-orchestration-spring/sharding-jdbc-orchestration-spring-namespace/src/test/java/io/shardingjdbc/orchestration/spring/OrchestrationMasterSlaveNamespaceTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import io.shardingjdbc.core.api.algorithm.masterslave.RandomMasterSlaveLoadBalan import io.shardingjdbc.core.api.algorithm.masterslave.RoundRobinMasterSlaveLoadBalanceAlgorithm; import io.shardingjdbc.core.jdbc.core.datasource.MasterSlaveDataSource; import io.shardingjdbc.core.rule.MasterSlaveRule; import io.shardingjdbc.orchestration.spring.datasource.OrchestrationSpringMasterSlaveDataSource; import io.shardingjdbc.orchestration.internal.OrchestrationMasterSlaveDataSource; import io.shardingjdbc.orchestration.spring.util.EmbedTestingServer; import io.shardingjdbc.orchestration.spring.util.FieldValueUtil; import org.apache.commons.lang3.builder.EqualsBuilder; Loading Loading @@ -51,7 +51,7 @@ public class OrchestrationMasterSlaveNamespaceTest extends AbstractJUnit4SpringC @Test public void assertMasterSlaveDataSourceType() { assertTrue(this.applicationContext.getBean("defaultMasterSlaveDataSource", MasterSlaveDataSource.class) instanceof OrchestrationSpringMasterSlaveDataSource); assertTrue(this.applicationContext.getBean("defaultMasterSlaveDataSource", OrchestrationMasterSlaveDataSource.class) instanceof OrchestrationMasterSlaveDataSource); } @Test Loading
sharding-jdbc-orchestration/src/main/java/io/shardingjdbc/orchestration/api/OrchestrationMasterSlaveDataSourceFactory.java +4 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package io.shardingjdbc.orchestration.api; import io.shardingjdbc.core.api.config.MasterSlaveRuleConfiguration; import io.shardingjdbc.orchestration.api.config.OrchestrationConfiguration; import io.shardingjdbc.orchestration.internal.OrchestrationFacade; import io.shardingjdbc.orchestration.internal.OrchestrationMasterSlaveDataSource; import io.shardingjdbc.orchestration.yaml.YamlOrchestrationMasterSlaveRuleConfiguration; import lombok.AccessLevel; import lombok.NoArgsConstructor; Loading Loading @@ -57,7 +57,9 @@ public final class OrchestrationMasterSlaveDataSourceFactory { public static DataSource createDataSource( final Map<String, DataSource> dataSourceMap, final MasterSlaveRuleConfiguration masterSlaveRuleConfig, final Map<String, Object> configMap, final OrchestrationConfiguration orchestrationConfig) throws SQLException { return new OrchestrationFacade(orchestrationConfig).getOrchestrationMasterSlaveDataSource(dataSourceMap, masterSlaveRuleConfig, configMap); OrchestrationMasterSlaveDataSource result = new OrchestrationMasterSlaveDataSource(dataSourceMap, masterSlaveRuleConfig, configMap, orchestrationConfig); result.init(); return result; } /** Loading