From 9252aa9aa5568667866db8c31490a7ccb74ea5a8 Mon Sep 17 00:00:00 2001 From: terrymanu Date: Fri, 8 Sep 2017 22:23:53 +0800 Subject: [PATCH] refactor api 16th version --- .../common/api/ShardingRuleBuilder.java | 4 +-- .../ClosureDatabaseShardingAlgorithm.java | 32 ------------------- .../algorithm/ClosureShardingAlgorithm.java | 2 +- .../ClosureTableShardingAlgorithm.java | 32 ------------------- .../rdb/sharding/config/common/AllTests.java | 6 ++-- .../ClosureDatabaseShardingAlgorithmTest.java | 31 ------------------ ...java => ClosureShardingAlgorithmTest.java} | 20 +++++------- .../ClosureTableShardingAlgorithmTest.java | 31 ------------------ 8 files changed, 13 insertions(+), 145 deletions(-) delete mode 100644 sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureDatabaseShardingAlgorithm.java delete mode 100644 sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureTableShardingAlgorithm.java delete mode 100644 sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureDatabaseShardingAlgorithmTest.java rename sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/{AbstractClosureShardingAlgorithmTest.java => ClosureShardingAlgorithmTest.java} (74%) delete mode 100644 sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureTableShardingAlgorithmTest.java diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilder.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilder.java index 837c39ee87..309aeed211 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilder.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/api/ShardingRuleBuilder.java @@ -26,7 +26,7 @@ import com.dangdang.ddframe.rdb.sharding.config.common.api.config.GenerateKeyCol import com.dangdang.ddframe.rdb.sharding.config.common.api.config.ShardingRuleConfig; import com.dangdang.ddframe.rdb.sharding.config.common.api.config.StrategyConfig; import com.dangdang.ddframe.rdb.sharding.config.common.api.config.TableRuleConfig; -import com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm.ClosureDatabaseShardingAlgorithm; +import com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm.ClosureShardingAlgorithm; import com.dangdang.ddframe.rdb.sharding.config.common.internal.parser.InlineParser; import com.dangdang.ddframe.rdb.sharding.keygen.KeyGenerator; import com.dangdang.ddframe.rdb.sharding.routing.strategy.ShardingAlgorithm; @@ -175,7 +175,7 @@ public final class ShardingRuleBuilder { @SuppressWarnings("unchecked") private T buildShardingAlgorithmExpression(final List shardingColumns, final String algorithmExpression) { - return (T) new ComplexShardingStrategy(shardingColumns, new ClosureDatabaseShardingAlgorithm(algorithmExpression, logRoot)); + return (T) new ComplexShardingStrategy(shardingColumns, new ClosureShardingAlgorithm(algorithmExpression, logRoot)); } @SuppressWarnings("unchecked") diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureDatabaseShardingAlgorithm.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureDatabaseShardingAlgorithm.java deleted file mode 100644 index 872818412f..0000000000 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureDatabaseShardingAlgorithm.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 1999-2015 dangdang.com. - *

- * 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. - *

- */ - -package com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm; - -import com.dangdang.ddframe.rdb.sharding.routing.strategy.complex.ComplexKeysShardingAlgorithm; - -/** - * Closure for database sharding algorithm. - * - * @author gaohongtao - */ -public class ClosureDatabaseShardingAlgorithm extends ClosureShardingAlgorithm implements ComplexKeysShardingAlgorithm { - - public ClosureDatabaseShardingAlgorithm(final String expression, final String logRoot) { - super(expression, logRoot); - } -} diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureShardingAlgorithm.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureShardingAlgorithm.java index 3c3fc90d2c..ed926dd6cd 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureShardingAlgorithm.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureShardingAlgorithm.java @@ -41,7 +41,7 @@ import java.util.Set; * * @author gaohongtao */ -public class ClosureShardingAlgorithm implements ComplexKeysShardingAlgorithm { +public final class ClosureShardingAlgorithm implements ComplexKeysShardingAlgorithm { private final Closure closureTemplate; diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureTableShardingAlgorithm.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureTableShardingAlgorithm.java deleted file mode 100644 index 78f371a07c..0000000000 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/main/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureTableShardingAlgorithm.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 1999-2015 dangdang.com. - *

- * 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. - *

- */ - -package com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm; - -import com.dangdang.ddframe.rdb.sharding.routing.strategy.complex.ComplexKeysShardingAlgorithm; - -/** - * Closure for table sharding algorithm. - * - * @author gaohongtao - */ -public class ClosureTableShardingAlgorithm extends ClosureShardingAlgorithm implements ComplexKeysShardingAlgorithm { - - public ClosureTableShardingAlgorithm(final String expression, final String logRoot) { - super(expression, logRoot); - } -} diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/AllTests.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/AllTests.java index 6a29bc3cec..685d227ac5 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/AllTests.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/AllTests.java @@ -18,8 +18,7 @@ package com.dangdang.ddframe.rdb.sharding.config.common; import com.dangdang.ddframe.rdb.sharding.config.common.api.ShardingRuleBuilderTest; -import com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm.ClosureDatabaseShardingAlgorithmTest; -import com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm.ClosureTableShardingAlgorithmTest; +import com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm.ClosureShardingAlgorithmTest; import com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm.ShardingValueWrapperTest; import com.dangdang.ddframe.rdb.sharding.config.common.internal.parser.InlineParserTest; import org.junit.runner.RunWith; @@ -28,8 +27,7 @@ import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ ShardingRuleBuilderTest.class, - ClosureDatabaseShardingAlgorithmTest.class, - ClosureTableShardingAlgorithmTest.class, + ClosureShardingAlgorithmTest.class, ShardingValueWrapperTest.class, InlineParserTest.class }) diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureDatabaseShardingAlgorithmTest.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureDatabaseShardingAlgorithmTest.java deleted file mode 100644 index 47e7b5417e..0000000000 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureDatabaseShardingAlgorithmTest.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 1999-2015 dangdang.com. - *

- * 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. - *

- */ - -package com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm; - -public final class ClosureDatabaseShardingAlgorithmTest extends AbstractClosureShardingAlgorithmTest { - - @Override - protected ClosureShardingAlgorithm createClosureShardingAlgorithm() { - return new ClosureDatabaseShardingAlgorithm(EXPRESSION, LOG_ROOT); - } - - @Override - protected ClosureShardingAlgorithm createErrorClosureShardingAlgorithm() { - return new ClosureDatabaseShardingAlgorithm(WRONG_EXPRESSION, LOG_ROOT); - } -} diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/AbstractClosureShardingAlgorithmTest.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureShardingAlgorithmTest.java similarity index 74% rename from sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/AbstractClosureShardingAlgorithmTest.java rename to sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureShardingAlgorithmTest.java index f4708824b3..bd10b371c0 100644 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/AbstractClosureShardingAlgorithmTest.java +++ b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureShardingAlgorithmTest.java @@ -33,21 +33,17 @@ import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsCollectionContaining.hasItem; import static org.junit.Assert.assertThat; -public abstract class AbstractClosureShardingAlgorithmTest { +public final class ClosureShardingAlgorithmTest { - protected static final String EXPRESSION = "target_${log.info(id.toString()); id.longValue() % 2}"; + private static final String EXPRESSION = "target_${log.info(id.toString()); id.longValue() % 2}"; - protected static final String WRONG_EXPRESSION = "target_${log.info(id.error());}"; + private static final String WRONG_EXPRESSION = "target_${log.info(id.error());}"; - protected static final String LOG_ROOT = "default"; - - protected abstract ClosureShardingAlgorithm createClosureShardingAlgorithm(); - - protected abstract ClosureShardingAlgorithm createErrorClosureShardingAlgorithm(); + private static final String LOG_ROOT = "default"; @Test public void assertEqual() { - Collection result = createClosureShardingAlgorithm().doSharding( + Collection result = new ClosureShardingAlgorithm(EXPRESSION, LOG_ROOT).doSharding( Collections.singletonList("target_1"), Collections.singletonList(new ListShardingValue<>("target", "id", Collections.singletonList(1L)))); assertThat(result.size(), is(1)); assertThat(result, hasItem("target_1")); @@ -55,7 +51,7 @@ public abstract class AbstractClosureShardingAlgorithmTest { @Test public void assertIn() { - Collection result = createClosureShardingAlgorithm().doSharding(Arrays.asList("target_0", "target_1"), + Collection result = new ClosureShardingAlgorithm(EXPRESSION, LOG_ROOT).doSharding(Arrays.asList("target_0", "target_1"), Collections.singletonList(new ListShardingValue<>("target", "id", Arrays.asList(1, 2)))); assertThat(result.size(), is(2)); assertThat(result, hasItem("target_0")); @@ -64,13 +60,13 @@ public abstract class AbstractClosureShardingAlgorithmTest { @Test(expected = UnsupportedOperationException.class) public void assertBetween() { - createClosureShardingAlgorithm().doSharding(Arrays.asList("target_0", "target_1"), + new ClosureShardingAlgorithm(EXPRESSION, LOG_ROOT).doSharding(Arrays.asList("target_0", "target_1"), Collections.singletonList(new RangeShardingValue<>("target", "id", Range.range(1, BoundType.CLOSED, 2, BoundType.OPEN)))); } @Test(expected = MissingMethodException.class) public void assertEvaluateInlineExpressionFailure() { - createErrorClosureShardingAlgorithm().doSharding( + new ClosureShardingAlgorithm(WRONG_EXPRESSION, LOG_ROOT).doSharding( Collections.singletonList("target_1"), Collections.singletonList(new ListShardingValue<>("target", "id", Collections.singletonList(1L)))); } } diff --git a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureTableShardingAlgorithmTest.java b/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureTableShardingAlgorithmTest.java deleted file mode 100644 index c64615703a..0000000000 --- a/sharding-jdbc-config-parent/sharding-jdbc-config-common/src/test/java/com/dangdang/ddframe/rdb/sharding/config/common/internal/algorithm/ClosureTableShardingAlgorithmTest.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 1999-2015 dangdang.com. - *

- * 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. - *

- */ - -package com.dangdang.ddframe.rdb.sharding.config.common.internal.algorithm; - -public final class ClosureTableShardingAlgorithmTest extends AbstractClosureShardingAlgorithmTest { - - @Override - protected ClosureShardingAlgorithm createClosureShardingAlgorithm() { - return new ClosureTableShardingAlgorithm(EXPRESSION, LOG_ROOT); - } - - @Override - protected ClosureShardingAlgorithm createErrorClosureShardingAlgorithm() { - return new ClosureTableShardingAlgorithm(WRONG_EXPRESSION, LOG_ROOT); - } -} -- GitLab