Loading pom.xml +4 −4 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ <netty.version>4.1.16.Final</netty.version> <springframework.version>[4.3.6.RELEASE,5.0.0.M1)</springframework.version> <spring-boot.version>[1.5.0.RELEASE,2.0.0.M1)</spring-boot.version> <mysql-connector-java.version>8.0.11</mysql-connector-java.version> <mysql-connector-java.version>5.1.30</mysql-connector-java.version> <h2.version>1.4.196</h2.version> <postgresql.version>9.1-901-1.jdbc4</postgresql.version> <mssql.version>6.1.7.jre7-preview</mssql.version> Loading sharding-core/src/main/java/io/shardingsphere/core/optimizer/insert/InsertOptimizeEngine.java +2 −2 Original line number Diff line number Diff line Loading @@ -81,13 +81,13 @@ public final class InsertOptimizeEngine implements OptimizeEngine { Number currentGeneratedKey = generatedKeys.next(); if (0 == parameters.size()) { if (DefaultKeyword.VALUES.equals(insertValue.getType())) { expression = insertValue.getExpression().substring(0, insertValue.getExpression().length() - 1) + ", " + currentGeneratedKey.toString() + ")"; expression = insertValue.getExpression().substring(0, insertValue.getExpression().lastIndexOf(")")) + ", " + currentGeneratedKey.toString() + ")"; } else { expression = generateKeyColumn.get().getName() + " = " + currentGeneratedKey + ", " + insertValue.getExpression(); } } else { if (DefaultKeyword.VALUES.equals(insertValue.getType())) { expression = insertValue.getExpression().substring(0, insertValue.getExpression().length() - 1) + ", ?)"; expression = insertValue.getExpression().substring(0, insertValue.getExpression().lastIndexOf(")")) + ", ?)"; currentParameters.add(currentGeneratedKey); } else { expression = generateKeyColumn.get().getName() + " = ?, " + insertValue.getExpression(); Loading sharding-core/src/main/java/io/shardingsphere/core/yaml/masterslave/YamlMasterSlaveRuleConfiguration.java +12 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import io.shardingsphere.core.api.algorithm.masterslave.MasterSlaveLoadBalanceAl import io.shardingsphere.core.api.config.MasterSlaveRuleConfiguration; import io.shardingsphere.core.exception.ShardingConfigurationException; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.util.ArrayList; Loading @@ -34,7 +35,9 @@ import java.util.concurrent.ConcurrentHashMap; * Master-slave rule configuration for yaml. * * @author caohao * @author panjuan */ @NoArgsConstructor @Getter @Setter public class YamlMasterSlaveRuleConfiguration { Loading @@ -51,6 +54,15 @@ public class YamlMasterSlaveRuleConfiguration { private Map<String, Object> configMap = new ConcurrentHashMap<>(); public YamlMasterSlaveRuleConfiguration(final MasterSlaveRuleConfiguration masterSlaveRuleConfiguration, final Map<String, Object> configMap) { name = masterSlaveRuleConfiguration.getName(); masterDataSourceName = masterSlaveRuleConfiguration.getMasterDataSourceName(); slaveDataSourceNames = masterSlaveRuleConfiguration.getSlaveDataSourceNames(); loadBalanceAlgorithmClassName = null == masterSlaveRuleConfiguration.getLoadBalanceAlgorithm() ? null : masterSlaveRuleConfiguration.getLoadBalanceAlgorithm().getClass().getName(); this.configMap = configMap; } /** * Get master-slave rule configuration from yaml. * Loading sharding-core/src/main/java/io/shardingsphere/core/yaml/sharding/YamlShardingRuleConfiguration.java +23 −0 Original line number Diff line number Diff line Loading @@ -19,13 +19,16 @@ package io.shardingsphere.core.yaml.sharding; import io.shardingsphere.core.api.config.MasterSlaveRuleConfiguration; import io.shardingsphere.core.api.config.ShardingRuleConfiguration; import io.shardingsphere.core.api.config.TableRuleConfiguration; import io.shardingsphere.core.keygen.KeyGeneratorFactory; import io.shardingsphere.core.yaml.masterslave.YamlMasterSlaveRuleConfiguration; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; Loading @@ -37,7 +40,9 @@ import java.util.Properties; * Sharding rule configuration for yaml. * * @author caohao * @author panjuan */ @NoArgsConstructor @Getter @Setter public class YamlShardingRuleConfiguration { Loading @@ -60,6 +65,24 @@ public class YamlShardingRuleConfiguration { private Properties props = new Properties(); public YamlShardingRuleConfiguration(final ShardingRuleConfiguration shardingRuleConfiguration, final Map<String, Object> configMap, final Properties props) { defaultDataSourceName = shardingRuleConfiguration.getDefaultDataSourceName(); for (TableRuleConfiguration each : shardingRuleConfiguration.getTableRuleConfigs()) { tables.put(each.getLogicTable(), new YamlTableRuleConfiguration(each)); } bindingTables.addAll(shardingRuleConfiguration.getBindingTableGroups()); defaultDatabaseStrategy = new YamlShardingStrategyConfiguration(shardingRuleConfiguration.getDefaultDatabaseShardingStrategyConfig()); defaultTableStrategy = new YamlShardingStrategyConfiguration(shardingRuleConfiguration.getDefaultTableShardingStrategyConfig()); defaultKeyGeneratorClassName = null == shardingRuleConfiguration.getDefaultKeyGenerator() ? null : shardingRuleConfiguration.getDefaultKeyGenerator().getClass().getName(); for (MasterSlaveRuleConfiguration each : shardingRuleConfiguration.getMasterSlaveRuleConfigs()) { masterSlaveRules.put(each.getName(), new YamlMasterSlaveRuleConfiguration(each, new HashMap<String, Object>())); } this.configMap = configMap; this.props = props; } /** * Get sharding rule configuration. * Loading sharding-core/src/main/java/io/shardingsphere/core/yaml/sharding/YamlShardingStrategyConfiguration.java +30 −0 Original line number Diff line number Diff line Loading @@ -35,13 +35,16 @@ import io.shardingsphere.core.yaml.sharding.strategy.YamlInlineShardingStrategyC import io.shardingsphere.core.yaml.sharding.strategy.YamlNoneShardingStrategyConfiguration; import io.shardingsphere.core.yaml.sharding.strategy.YamlStandardShardingStrategyConfiguration; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; /** * Configuration for yaml sharding strategy. * * @author caohao * @author panjuan */ @NoArgsConstructor @Getter @Setter public class YamlShardingStrategyConfiguration { Loading @@ -56,6 +59,33 @@ public class YamlShardingStrategyConfiguration { private YamlNoneShardingStrategyConfiguration none; public YamlShardingStrategyConfiguration(final ShardingStrategyConfiguration shardingStrategyConfiguration) { if (shardingStrategyConfiguration instanceof StandardShardingStrategyConfiguration) { standard = new YamlStandardShardingStrategyConfiguration(); StandardShardingStrategyConfiguration config = (StandardShardingStrategyConfiguration) shardingStrategyConfiguration; standard.setShardingColumn(config.getShardingColumn()); standard.setPreciseAlgorithmClassName(config.getPreciseShardingAlgorithm().getClass().getName()); standard.setRangeAlgorithmClassName(null == config.getRangeShardingAlgorithm() ? null : config.getRangeShardingAlgorithm().getClass().getName()); } if (shardingStrategyConfiguration instanceof ComplexShardingStrategyConfiguration) { complex = new YamlComplexShardingStrategyConfiguration(); ComplexShardingStrategyConfiguration config = (ComplexShardingStrategyConfiguration) shardingStrategyConfiguration; complex.setShardingColumns(config.getShardingColumns()); complex.setAlgorithmClassName(config.getShardingAlgorithm().getClass().getName()); } if (shardingStrategyConfiguration instanceof HintShardingStrategyConfiguration) { hint = new YamlHintShardingStrategyConfiguration(); hint.setAlgorithmClassName(((HintShardingStrategyConfiguration) shardingStrategyConfiguration).getShardingAlgorithm().getClass().getName()); } if (shardingStrategyConfiguration instanceof InlineShardingStrategyConfiguration) { inline = new YamlInlineShardingStrategyConfiguration(); InlineShardingStrategyConfiguration config = (InlineShardingStrategyConfiguration) shardingStrategyConfiguration; inline.setShardingColumn(config.getShardingColumn()); inline.setAlgorithmExpression(config.getAlgorithmExpression()); } } /** * Build sharding strategy configuration. * Loading Loading
pom.xml +4 −4 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ <netty.version>4.1.16.Final</netty.version> <springframework.version>[4.3.6.RELEASE,5.0.0.M1)</springframework.version> <spring-boot.version>[1.5.0.RELEASE,2.0.0.M1)</spring-boot.version> <mysql-connector-java.version>8.0.11</mysql-connector-java.version> <mysql-connector-java.version>5.1.30</mysql-connector-java.version> <h2.version>1.4.196</h2.version> <postgresql.version>9.1-901-1.jdbc4</postgresql.version> <mssql.version>6.1.7.jre7-preview</mssql.version> Loading
sharding-core/src/main/java/io/shardingsphere/core/optimizer/insert/InsertOptimizeEngine.java +2 −2 Original line number Diff line number Diff line Loading @@ -81,13 +81,13 @@ public final class InsertOptimizeEngine implements OptimizeEngine { Number currentGeneratedKey = generatedKeys.next(); if (0 == parameters.size()) { if (DefaultKeyword.VALUES.equals(insertValue.getType())) { expression = insertValue.getExpression().substring(0, insertValue.getExpression().length() - 1) + ", " + currentGeneratedKey.toString() + ")"; expression = insertValue.getExpression().substring(0, insertValue.getExpression().lastIndexOf(")")) + ", " + currentGeneratedKey.toString() + ")"; } else { expression = generateKeyColumn.get().getName() + " = " + currentGeneratedKey + ", " + insertValue.getExpression(); } } else { if (DefaultKeyword.VALUES.equals(insertValue.getType())) { expression = insertValue.getExpression().substring(0, insertValue.getExpression().length() - 1) + ", ?)"; expression = insertValue.getExpression().substring(0, insertValue.getExpression().lastIndexOf(")")) + ", ?)"; currentParameters.add(currentGeneratedKey); } else { expression = generateKeyColumn.get().getName() + " = ?, " + insertValue.getExpression(); Loading
sharding-core/src/main/java/io/shardingsphere/core/yaml/masterslave/YamlMasterSlaveRuleConfiguration.java +12 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import io.shardingsphere.core.api.algorithm.masterslave.MasterSlaveLoadBalanceAl import io.shardingsphere.core.api.config.MasterSlaveRuleConfiguration; import io.shardingsphere.core.exception.ShardingConfigurationException; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.util.ArrayList; Loading @@ -34,7 +35,9 @@ import java.util.concurrent.ConcurrentHashMap; * Master-slave rule configuration for yaml. * * @author caohao * @author panjuan */ @NoArgsConstructor @Getter @Setter public class YamlMasterSlaveRuleConfiguration { Loading @@ -51,6 +54,15 @@ public class YamlMasterSlaveRuleConfiguration { private Map<String, Object> configMap = new ConcurrentHashMap<>(); public YamlMasterSlaveRuleConfiguration(final MasterSlaveRuleConfiguration masterSlaveRuleConfiguration, final Map<String, Object> configMap) { name = masterSlaveRuleConfiguration.getName(); masterDataSourceName = masterSlaveRuleConfiguration.getMasterDataSourceName(); slaveDataSourceNames = masterSlaveRuleConfiguration.getSlaveDataSourceNames(); loadBalanceAlgorithmClassName = null == masterSlaveRuleConfiguration.getLoadBalanceAlgorithm() ? null : masterSlaveRuleConfiguration.getLoadBalanceAlgorithm().getClass().getName(); this.configMap = configMap; } /** * Get master-slave rule configuration from yaml. * Loading
sharding-core/src/main/java/io/shardingsphere/core/yaml/sharding/YamlShardingRuleConfiguration.java +23 −0 Original line number Diff line number Diff line Loading @@ -19,13 +19,16 @@ package io.shardingsphere.core.yaml.sharding; import io.shardingsphere.core.api.config.MasterSlaveRuleConfiguration; import io.shardingsphere.core.api.config.ShardingRuleConfiguration; import io.shardingsphere.core.api.config.TableRuleConfiguration; import io.shardingsphere.core.keygen.KeyGeneratorFactory; import io.shardingsphere.core.yaml.masterslave.YamlMasterSlaveRuleConfiguration; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; Loading @@ -37,7 +40,9 @@ import java.util.Properties; * Sharding rule configuration for yaml. * * @author caohao * @author panjuan */ @NoArgsConstructor @Getter @Setter public class YamlShardingRuleConfiguration { Loading @@ -60,6 +65,24 @@ public class YamlShardingRuleConfiguration { private Properties props = new Properties(); public YamlShardingRuleConfiguration(final ShardingRuleConfiguration shardingRuleConfiguration, final Map<String, Object> configMap, final Properties props) { defaultDataSourceName = shardingRuleConfiguration.getDefaultDataSourceName(); for (TableRuleConfiguration each : shardingRuleConfiguration.getTableRuleConfigs()) { tables.put(each.getLogicTable(), new YamlTableRuleConfiguration(each)); } bindingTables.addAll(shardingRuleConfiguration.getBindingTableGroups()); defaultDatabaseStrategy = new YamlShardingStrategyConfiguration(shardingRuleConfiguration.getDefaultDatabaseShardingStrategyConfig()); defaultTableStrategy = new YamlShardingStrategyConfiguration(shardingRuleConfiguration.getDefaultTableShardingStrategyConfig()); defaultKeyGeneratorClassName = null == shardingRuleConfiguration.getDefaultKeyGenerator() ? null : shardingRuleConfiguration.getDefaultKeyGenerator().getClass().getName(); for (MasterSlaveRuleConfiguration each : shardingRuleConfiguration.getMasterSlaveRuleConfigs()) { masterSlaveRules.put(each.getName(), new YamlMasterSlaveRuleConfiguration(each, new HashMap<String, Object>())); } this.configMap = configMap; this.props = props; } /** * Get sharding rule configuration. * Loading
sharding-core/src/main/java/io/shardingsphere/core/yaml/sharding/YamlShardingStrategyConfiguration.java +30 −0 Original line number Diff line number Diff line Loading @@ -35,13 +35,16 @@ import io.shardingsphere.core.yaml.sharding.strategy.YamlInlineShardingStrategyC import io.shardingsphere.core.yaml.sharding.strategy.YamlNoneShardingStrategyConfiguration; import io.shardingsphere.core.yaml.sharding.strategy.YamlStandardShardingStrategyConfiguration; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; /** * Configuration for yaml sharding strategy. * * @author caohao * @author panjuan */ @NoArgsConstructor @Getter @Setter public class YamlShardingStrategyConfiguration { Loading @@ -56,6 +59,33 @@ public class YamlShardingStrategyConfiguration { private YamlNoneShardingStrategyConfiguration none; public YamlShardingStrategyConfiguration(final ShardingStrategyConfiguration shardingStrategyConfiguration) { if (shardingStrategyConfiguration instanceof StandardShardingStrategyConfiguration) { standard = new YamlStandardShardingStrategyConfiguration(); StandardShardingStrategyConfiguration config = (StandardShardingStrategyConfiguration) shardingStrategyConfiguration; standard.setShardingColumn(config.getShardingColumn()); standard.setPreciseAlgorithmClassName(config.getPreciseShardingAlgorithm().getClass().getName()); standard.setRangeAlgorithmClassName(null == config.getRangeShardingAlgorithm() ? null : config.getRangeShardingAlgorithm().getClass().getName()); } if (shardingStrategyConfiguration instanceof ComplexShardingStrategyConfiguration) { complex = new YamlComplexShardingStrategyConfiguration(); ComplexShardingStrategyConfiguration config = (ComplexShardingStrategyConfiguration) shardingStrategyConfiguration; complex.setShardingColumns(config.getShardingColumns()); complex.setAlgorithmClassName(config.getShardingAlgorithm().getClass().getName()); } if (shardingStrategyConfiguration instanceof HintShardingStrategyConfiguration) { hint = new YamlHintShardingStrategyConfiguration(); hint.setAlgorithmClassName(((HintShardingStrategyConfiguration) shardingStrategyConfiguration).getShardingAlgorithm().getClass().getName()); } if (shardingStrategyConfiguration instanceof InlineShardingStrategyConfiguration) { inline = new YamlInlineShardingStrategyConfiguration(); InlineShardingStrategyConfiguration config = (InlineShardingStrategyConfiguration) shardingStrategyConfiguration; inline.setShardingColumn(config.getShardingColumn()); inline.setAlgorithmExpression(config.getAlgorithmExpression()); } } /** * Build sharding strategy configuration. * Loading