This is an automated email from the ASF dual-hosted git repository. jackie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
The following commit(s) were added to refs/heads/master by this push: new 4c6050f Move UpsertConfig under package org.apache.pinot.spi.config.table (#5311) 4c6050f is described below commit 4c6050fc54d8fcb5cd78982f7a246bf620095333 Author: Xiaotian (Jackie) Jiang <17555551+jackie-ji...@users.noreply.github.com> AuthorDate: Wed Apr 29 14:01:31 2020 -0700 Move UpsertConfig under package org.apache.pinot.spi.config.table (#5311) Also moved some test classes to the correct package --- .../common/utils/config/TableConfigUtils.java | 2 +- .../common/utils/config/TableConfigSerDeTest.java | 12 ++-- .../apache/pinot/spi/config/table/TableConfig.java | 3 - .../pinot/spi/config/{ => table}/UpsertConfig.java | 38 ++++-------- .../spi/utils/builder/TableConfigBuilder.java | 3 +- .../apache/pinot/spi/config/UpsertConfigTest.java | 72 ---------------------- .../spi/config/{ => table}/IndexingConfigTest.java | 6 +- .../spi/config/{ => table}/QuotaConfigTest.java | 4 +- .../pinot/spi/config/table/UpsertConfigTest.java | 72 ++++++++++++++++++++++ .../spi/config/{api => tenant}/TenantTest.java | 5 +- 10 files changed, 94 insertions(+), 123 deletions(-) diff --git a/pinot-common/src/main/java/org/apache/pinot/common/utils/config/TableConfigUtils.java b/pinot-common/src/main/java/org/apache/pinot/common/utils/config/TableConfigUtils.java index 22f5591..d93b24b 100644 --- a/pinot-common/src/main/java/org/apache/pinot/common/utils/config/TableConfigUtils.java +++ b/pinot-common/src/main/java/org/apache/pinot/common/utils/config/TableConfigUtils.java @@ -26,7 +26,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.helix.ZNRecord; -import org.apache.pinot.spi.config.UpsertConfig; import org.apache.pinot.spi.config.table.FieldConfig; import org.apache.pinot.spi.config.table.IndexingConfig; import org.apache.pinot.spi.config.table.QueryConfig; @@ -37,6 +36,7 @@ import org.apache.pinot.spi.config.table.TableConfig; import org.apache.pinot.spi.config.table.TableCustomConfig; import org.apache.pinot.spi.config.table.TableTaskConfig; import org.apache.pinot.spi.config.table.TenantConfig; +import org.apache.pinot.spi.config.table.UpsertConfig; import org.apache.pinot.spi.config.table.assignment.InstanceAssignmentConfig; import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; import org.apache.pinot.spi.utils.JsonUtils; diff --git a/pinot-common/src/test/java/org/apache/pinot/common/utils/config/TableConfigSerDeTest.java b/pinot-common/src/test/java/org/apache/pinot/common/utils/config/TableConfigSerDeTest.java index d5e75ad..4d34012 100644 --- a/pinot-common/src/test/java/org/apache/pinot/common/utils/config/TableConfigSerDeTest.java +++ b/pinot-common/src/test/java/org/apache/pinot/common/utils/config/TableConfigSerDeTest.java @@ -19,15 +19,12 @@ package org.apache.pinot.common.utils.config; import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.ImmutableList; import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; - -import org.apache.pinot.spi.config.UpsertConfig; import org.apache.pinot.spi.config.table.CompletionConfig; import org.apache.pinot.spi.config.table.FieldConfig; import org.apache.pinot.spi.config.table.QueryConfig; @@ -39,6 +36,7 @@ import org.apache.pinot.spi.config.table.TableConfig; import org.apache.pinot.spi.config.table.TableType; import org.apache.pinot.spi.config.table.TagOverrideConfig; import org.apache.pinot.spi.config.table.TenantConfig; +import org.apache.pinot.spi.config.table.UpsertConfig; import org.apache.pinot.spi.config.table.assignment.InstanceAssignmentConfig; import org.apache.pinot.spi.config.table.assignment.InstanceConstraintConfig; import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; @@ -236,8 +234,8 @@ public class TableConfigSerDeTest { } { // with upsert config - UpsertConfig upsertConfig = new UpsertConfig(Collections.singletonList("pk"), "offset", - "$validFrom", "$validUntil"); + UpsertConfig upsertConfig = + new UpsertConfig(Collections.singletonList("pk"), "offset", "$validFrom", "$validUntil"); TableConfig tableConfig = tableConfigBuilder.setUpsertConfig(upsertConfig).build(); @@ -386,11 +384,9 @@ public class TableConfigSerDeTest { UpsertConfig upsertConfig = tableConfig.getUpsertConfig(); assertNotNull(upsertConfig); - assertEquals(upsertConfig.getPrimaryKeyColumns().size(), 1); - assertEquals(upsertConfig.getPrimaryKeyColumns().get(0), "pk"); + assertEquals(upsertConfig.getPrimaryKeyColumns(), Collections.singletonList("pk")); assertEquals(upsertConfig.getOffsetColumn(), "offset"); assertEquals(upsertConfig.getValidFromColumn(), "$validFrom"); assertEquals(upsertConfig.getValidUntilColumn(), "$validUntil"); } - } diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/TableConfig.java b/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/TableConfig.java index 3b2283e..56ba320 100644 --- a/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/TableConfig.java +++ b/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/TableConfig.java @@ -25,9 +25,7 @@ import com.google.common.base.Preconditions; import java.util.List; import java.util.Map; import javax.annotation.Nullable; - import org.apache.pinot.spi.config.BaseJsonConfig; -import org.apache.pinot.spi.config.UpsertConfig; import org.apache.pinot.spi.config.table.assignment.InstanceAssignmentConfig; import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; import org.apache.pinot.spi.utils.builder.TableNameBuilder; @@ -235,5 +233,4 @@ public class TableConfig extends BaseJsonConfig { public void setUpsertConfig(UpsertConfig upsertConfig) { _upsertConfig = upsertConfig; } - } diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/config/UpsertConfig.java b/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/UpsertConfig.java similarity index 62% rename from pinot-spi/src/main/java/org/apache/pinot/spi/config/UpsertConfig.java rename to pinot-spi/src/main/java/org/apache/pinot/spi/config/table/UpsertConfig.java index a67cf69..24d3470 100644 --- a/pinot-spi/src/main/java/org/apache/pinot/spi/config/UpsertConfig.java +++ b/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/UpsertConfig.java @@ -16,22 +16,16 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.pinot.spi.config; - +package org.apache.pinot.spi.config.table; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; -import org.apache.commons.lang.StringUtils; - -import javax.annotation.Nullable; import java.util.List; +import org.apache.commons.lang3.StringUtils; +import org.apache.pinot.spi.config.BaseJsonConfig; + -@SuppressWarnings("unused") -@JsonIgnoreProperties(ignoreUnknown = true) public class UpsertConfig extends BaseJsonConfig { // names of the columns that used as primary keys of an upsert table private final List<String> _primaryKeyColumns; @@ -43,25 +37,19 @@ public class UpsertConfig extends BaseJsonConfig { private final String _validUntilColumn; @JsonCreator - public UpsertConfig( - @JsonProperty(value="primaryKeyColumns") List<String> primaryKeyColumns, - @JsonProperty(value="offsetColumn") String offsetColumn, - @JsonProperty(value="validFromColumn") String validFromColumn, - @JsonProperty(value="validUntilColumn") String validUntilColumn) { - + public UpsertConfig(@JsonProperty(value = "primaryKeyColumns") List<String> primaryKeyColumns, + @JsonProperty(value = "offsetColumn") String offsetColumn, + @JsonProperty(value = "validFromColumn") String validFromColumn, + @JsonProperty(value = "validUntilColumn") String validUntilColumn) { + Preconditions.checkArgument(primaryKeyColumns != null && primaryKeyColumns.size() == 1, + "'primaryKeyColumns' must be configured with exact one column"); + Preconditions.checkArgument(StringUtils.isNotEmpty(offsetColumn), "'offsetColumn' must be configured"); + Preconditions.checkArgument(StringUtils.isNotEmpty(validFromColumn), "'validFromColumn' must be configured"); + Preconditions.checkArgument(StringUtils.isNotEmpty(validUntilColumn), "'validUntilColumn' must be configured"); _primaryKeyColumns = primaryKeyColumns; _offsetColumn = offsetColumn; _validFromColumn = validFromColumn; _validUntilColumn = validUntilColumn; - - Preconditions.checkState(_primaryKeyColumns.size() == 1, - "Upsert feature supports only one primary key column"); - Preconditions.checkState(StringUtils.isNotEmpty(_offsetColumn), - "Upsert feature requires \"offsetColumn\" to be set "); - Preconditions.checkState(StringUtils.isNotEmpty(_validFromColumn), - "Upsert feature requires \"validFromColumn\" to be set"); - Preconditions.checkState(StringUtils.isNotEmpty(_validUntilColumn), - "Upsert feature requires \"validUntilColumn\" to be set"); } public List<String> getPrimaryKeyColumns() { diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/builder/TableConfigBuilder.java b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/builder/TableConfigBuilder.java index f062bf7..4c6ee28 100644 --- a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/builder/TableConfigBuilder.java +++ b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/builder/TableConfigBuilder.java @@ -22,8 +22,6 @@ import com.google.common.base.Preconditions; import java.util.Collections; import java.util.List; import java.util.Map; - -import org.apache.pinot.spi.config.UpsertConfig; import org.apache.pinot.spi.config.table.CompletionConfig; import org.apache.pinot.spi.config.table.FieldConfig; import org.apache.pinot.spi.config.table.IndexingConfig; @@ -39,6 +37,7 @@ import org.apache.pinot.spi.config.table.TableTaskConfig; import org.apache.pinot.spi.config.table.TableType; import org.apache.pinot.spi.config.table.TagOverrideConfig; import org.apache.pinot.spi.config.table.TenantConfig; +import org.apache.pinot.spi.config.table.UpsertConfig; import org.apache.pinot.spi.config.table.assignment.InstanceAssignmentConfig; import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; diff --git a/pinot-spi/src/test/java/org/apache/pinot/spi/config/UpsertConfigTest.java b/pinot-spi/src/test/java/org/apache/pinot/spi/config/UpsertConfigTest.java deleted file mode 100644 index 0179f37..0000000 --- a/pinot-spi/src/test/java/org/apache/pinot/spi/config/UpsertConfigTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/** - * 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.pinot.spi.config; - -import com.google.common.collect.ImmutableList; -import org.testng.annotations.Test; - -import static org.testng.Assert.*; - -public class UpsertConfigTest { - - @Test - public void testUpsertConfig() { - UpsertConfig upsertConfig; - - // verify upsert config is initialized correctly - upsertConfig = new UpsertConfig(ImmutableList.of("primaryKey"), "offset", "validFrom", - "validUntil"); - assertEquals(1, upsertConfig.getPrimaryKeyColumns().size()); - assertEquals("primaryKey", upsertConfig.getPrimaryKeyColumns().get(0)); - assertEquals("offset", upsertConfig.getOffsetColumn()); - assertEquals("validFrom", upsertConfig.getValidFromColumn()); - assertEquals("validUntil", upsertConfig.getValidUntilColumn()); - - // test sanity check - try { - upsertConfig = new UpsertConfig(null, - "offset", "validFrom", "validUntil"); - fail(); - } catch (RuntimeException ex) {} - - try { - upsertConfig = new UpsertConfig(ImmutableList.of("pk1", "pk2"), - "offset", "validFrom", "validUntil"); - fail(); - } catch (RuntimeException ex) {} - - try { - upsertConfig = new UpsertConfig(ImmutableList.of("pk1"), - null, "validFrom", "validUntil"); - fail(); - } catch (RuntimeException ex) {} - - try { - upsertConfig = new UpsertConfig(ImmutableList.of("pk1"), - "offset", null, "validUntil"); - fail(); - } catch (RuntimeException ex) {} - - try { - upsertConfig = new UpsertConfig(ImmutableList.of("pk1"), - "offset", "validFrom", null); - fail(); - } catch (RuntimeException ex) {} - } -} diff --git a/pinot-spi/src/test/java/org/apache/pinot/spi/config/IndexingConfigTest.java b/pinot-spi/src/test/java/org/apache/pinot/spi/config/table/IndexingConfigTest.java similarity index 95% rename from pinot-spi/src/test/java/org/apache/pinot/spi/config/IndexingConfigTest.java rename to pinot-spi/src/test/java/org/apache/pinot/spi/config/table/IndexingConfigTest.java index fd2ee55..af9d744 100644 --- a/pinot-spi/src/test/java/org/apache/pinot/spi/config/IndexingConfigTest.java +++ b/pinot-spi/src/test/java/org/apache/pinot/spi/config/table/IndexingConfigTest.java @@ -16,17 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.pinot.spi.config; +package org.apache.pinot.spi.config.table; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; - -import org.apache.pinot.spi.config.table.ColumnPartitionConfig; -import org.apache.pinot.spi.config.table.IndexingConfig; -import org.apache.pinot.spi.config.table.SegmentPartitionConfig; import org.apache.pinot.spi.utils.JsonUtils; import org.testng.annotations.Test; diff --git a/pinot-spi/src/test/java/org/apache/pinot/spi/config/QuotaConfigTest.java b/pinot-spi/src/test/java/org/apache/pinot/spi/config/table/QuotaConfigTest.java similarity index 97% rename from pinot-spi/src/test/java/org/apache/pinot/spi/config/QuotaConfigTest.java rename to pinot-spi/src/test/java/org/apache/pinot/spi/config/table/QuotaConfigTest.java index e83ff72..0de6b0b 100644 --- a/pinot-spi/src/test/java/org/apache/pinot/spi/config/QuotaConfigTest.java +++ b/pinot-spi/src/test/java/org/apache/pinot/spi/config/table/QuotaConfigTest.java @@ -16,12 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.pinot.spi.config; +package org.apache.pinot.spi.config.table; import com.fasterxml.jackson.databind.JsonNode; import java.io.IOException; - -import org.apache.pinot.spi.config.table.QuotaConfig; import org.apache.pinot.spi.utils.JsonUtils; import org.testng.annotations.Test; diff --git a/pinot-spi/src/test/java/org/apache/pinot/spi/config/table/UpsertConfigTest.java b/pinot-spi/src/test/java/org/apache/pinot/spi/config/table/UpsertConfigTest.java new file mode 100644 index 0000000..13f6769 --- /dev/null +++ b/pinot-spi/src/test/java/org/apache/pinot/spi/config/table/UpsertConfigTest.java @@ -0,0 +1,72 @@ +/** + * 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.pinot.spi.config.table; + +import com.google.common.collect.ImmutableList; +import java.util.Collections; +import org.testng.annotations.Test; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.fail; + + +public class UpsertConfigTest { + + @Test + public void testUpsertConfig() { + UpsertConfig upsertConfig = + new UpsertConfig(Collections.singletonList("primaryKey"), "offset", "validFrom", "validUntil"); + assertEquals(upsertConfig.getPrimaryKeyColumns(), Collections.singletonList("primaryKey")); + assertEquals(upsertConfig.getOffsetColumn(), "offset"); + assertEquals(upsertConfig.getValidFromColumn(), "validFrom"); + assertEquals(upsertConfig.getValidUntilColumn(), "validUntil"); + + // Test illegal arguments + try { + new UpsertConfig(null, "offset", "validFrom", "validUntil"); + fail(); + } catch (IllegalArgumentException e) { + // Expected + } + try { + new UpsertConfig(ImmutableList.of("pk1", "pk2"), "offset", "validFrom", "validUntil"); + fail(); + } catch (IllegalArgumentException e) { + // Expected + } + try { + new UpsertConfig(ImmutableList.of("pk1"), null, "validFrom", "validUntil"); + fail(); + } catch (IllegalArgumentException e) { + // Expected + } + try { + new UpsertConfig(ImmutableList.of("pk1"), "offset", null, "validUntil"); + fail(); + } catch (IllegalArgumentException e) { + // Expected + } + try { + new UpsertConfig(ImmutableList.of("pk1"), "offset", "validFrom", null); + fail(); + } catch (IllegalArgumentException e) { + // Expected + } + } +} diff --git a/pinot-spi/src/test/java/org/apache/pinot/spi/config/api/TenantTest.java b/pinot-spi/src/test/java/org/apache/pinot/spi/config/tenant/TenantTest.java similarity index 91% rename from pinot-spi/src/test/java/org/apache/pinot/spi/config/api/TenantTest.java rename to pinot-spi/src/test/java/org/apache/pinot/spi/config/tenant/TenantTest.java index 2354512..d91604d 100644 --- a/pinot-spi/src/test/java/org/apache/pinot/spi/config/api/TenantTest.java +++ b/pinot-spi/src/test/java/org/apache/pinot/spi/config/tenant/TenantTest.java @@ -16,12 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.pinot.spi.config.api; +package org.apache.pinot.spi.config.tenant; import java.io.IOException; - -import org.apache.pinot.spi.config.tenant.Tenant; -import org.apache.pinot.spi.config.tenant.TenantRole; import org.apache.pinot.spi.utils.JsonUtils; import org.testng.annotations.Test; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org