This is an automated email from the ASF dual-hosted git repository. jackie pushed a commit to branch table_config_mandatory_fields in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
commit a409684e5eacfe71b7293b13ca85c4d89df58a07 Author: Jackie (Xiaotian) Jiang <[email protected]> AuthorDate: Wed Mar 20 11:01:20 2019 -0700 In TableConfig, add checks for mandatory fields Add explicit checks for mandatory fields Without the explicit checks, it will throw NPE, which is not clear and hard to debug --- .../apache/pinot/common/config/TableConfig.java | 32 ++- .../pinot/common/config/TableConfigTest.java | 300 +++++++++++++-------- 2 files changed, 216 insertions(+), 116 deletions(-) diff --git a/pinot-common/src/main/java/org/apache/pinot/common/config/TableConfig.java b/pinot-common/src/main/java/org/apache/pinot/common/config/TableConfig.java index 3779d2c..09856d4 100644 --- a/pinot-common/src/main/java/org/apache/pinot/common/config/TableConfig.java +++ b/pinot-common/src/main/java/org/apache/pinot/common/config/TableConfig.java @@ -118,14 +118,24 @@ public class TableConfig { @Nonnull public static TableConfig fromJSONConfig(@Nonnull JsonNode jsonConfig) throws IOException { + // Mandatory fields + Preconditions.checkState(jsonConfig.has(TABLE_TYPE_KEY), "Table type is missing"); TableType tableType = TableType.valueOf(jsonConfig.get(TABLE_TYPE_KEY).asText().toUpperCase()); + Preconditions.checkState(jsonConfig.has(TABLE_NAME_KEY), "Table name is missing"); String tableName = TableNameBuilder.forType(tableType).tableNameWithType(jsonConfig.get(TABLE_NAME_KEY).asText()); - + Preconditions + .checkState(jsonConfig.has(VALIDATION_CONFIG_KEY), "Mandatory config '%s' is missing", VALIDATION_CONFIG_KEY); SegmentsValidationAndRetentionConfig validationConfig = extractChildConfig(jsonConfig, VALIDATION_CONFIG_KEY, SegmentsValidationAndRetentionConfig.class); + Preconditions.checkState(jsonConfig.has(TENANT_CONFIG_KEY), "Mandatory config '%s' is missing", TENANT_CONFIG_KEY); TenantConfig tenantConfig = extractChildConfig(jsonConfig, TENANT_CONFIG_KEY, TenantConfig.class); + Preconditions + .checkState(jsonConfig.has(INDEXING_CONFIG_KEY), "Mandatory config '%s' is missing", INDEXING_CONFIG_KEY); IndexingConfig indexingConfig = extractChildConfig(jsonConfig, INDEXING_CONFIG_KEY, IndexingConfig.class); + Preconditions.checkState(jsonConfig.has(CUSTOM_CONFIG_KEY), "Mandatory config '%s' is missing", CUSTOM_CONFIG_KEY); TableCustomConfig customConfig = extractChildConfig(jsonConfig, CUSTOM_CONFIG_KEY, TableCustomConfig.class); + + // Optional fields QuotaConfig quotaConfig = null; if (jsonConfig.has(QUOTA_CONFIG_KEY)) { quotaConfig = extractChildConfig(jsonConfig, QUOTA_CONFIG_KEY, QuotaConfig.class); @@ -184,15 +194,29 @@ public class TableConfig { public static TableConfig fromZnRecord(@Nonnull ZNRecord znRecord) throws IOException { Map<String, String> simpleFields = znRecord.getSimpleFields(); + + // Mandatory fields + Preconditions.checkState(simpleFields.containsKey(TABLE_TYPE_KEY), "Table type is missing"); TableType tableType = TableType.valueOf(simpleFields.get(TABLE_TYPE_KEY).toUpperCase()); + Preconditions.checkState(simpleFields.containsKey(TABLE_NAME_KEY), "Table name is missing"); String tableName = TableNameBuilder.forType(tableType).tableNameWithType(simpleFields.get(TABLE_NAME_KEY)); + Preconditions.checkState(simpleFields.containsKey(VALIDATION_CONFIG_KEY), "Mandatory config '%s' is missing", + VALIDATION_CONFIG_KEY); SegmentsValidationAndRetentionConfig validationConfig = JsonUtils.stringToObject(simpleFields.get(VALIDATION_CONFIG_KEY), SegmentsValidationAndRetentionConfig.class); + Preconditions + .checkState(simpleFields.containsKey(TENANT_CONFIG_KEY), "Mandatory config '%s' is missing", TENANT_CONFIG_KEY); TenantConfig tenantConfig = JsonUtils.stringToObject(simpleFields.get(TENANT_CONFIG_KEY), TenantConfig.class); + Preconditions.checkState(simpleFields.containsKey(INDEXING_CONFIG_KEY), "Mandatory config '%s' is missing", + INDEXING_CONFIG_KEY); IndexingConfig indexingConfig = JsonUtils.stringToObject(simpleFields.get(INDEXING_CONFIG_KEY), IndexingConfig.class); + Preconditions + .checkState(simpleFields.containsKey(CUSTOM_CONFIG_KEY), "Mandatory config '%s' is missing", CUSTOM_CONFIG_KEY); TableCustomConfig customConfig = JsonUtils.stringToObject(simpleFields.get(CUSTOM_CONFIG_KEY), TableCustomConfig.class); + + // Optional fields QuotaConfig quotaConfig = null; String quotaConfigString = simpleFields.get(QUOTA_CONFIG_KEY); if (quotaConfigString != null) { @@ -204,9 +228,8 @@ public class TableConfig { if (taskConfigString != null) { taskConfig = JsonUtils.stringToObject(taskConfigString, TableTaskConfig.class); } - String routingConfigString = simpleFields.get(ROUTING_CONFIG_KEY); - RoutingConfig routingConfig = null; + String routingConfigString = simpleFields.get(ROUTING_CONFIG_KEY); if (routingConfigString != null) { routingConfig = JsonUtils.stringToObject(routingConfigString, RoutingConfig.class); } @@ -324,8 +347,7 @@ public class TableConfig { } @Nonnull - public String toJSONConfigString() - throws IOException { + public String toJSONConfigString() { return toJSONConfig(this).toString(); } diff --git a/pinot-common/src/test/java/org/apache/pinot/common/config/TableConfigTest.java b/pinot-common/src/test/java/org/apache/pinot/common/config/TableConfigTest.java index 1d5e571..50a5027 100644 --- a/pinot-common/src/test/java/org/apache/pinot/common/config/TableConfigTest.java +++ b/pinot-common/src/test/java/org/apache/pinot/common/config/TableConfigTest.java @@ -27,13 +27,103 @@ import org.apache.helix.ZNRecord; import org.apache.pinot.common.data.StarTreeIndexSpec; import org.apache.pinot.common.utils.CommonConstants.Helix.TableType; import org.apache.pinot.startree.hll.HllConfig; -import org.testng.Assert; import org.testng.annotations.Test; +import static org.testng.Assert.*; + public class TableConfigTest { @Test + public void testMandatoryFields() + throws Exception { + TableConfig tableConfig = new TableConfig.Builder(TableType.OFFLINE).setTableName("myTable").build(); + ObjectNode jsonTableConfig = (ObjectNode) TableConfig.toJSONConfig(tableConfig); + TableConfig.fromJSONConfig(jsonTableConfig); + + // Mandatory fields + { + ObjectNode copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.TABLE_TYPE_KEY); + try { + TableConfig.fromJSONConfig(copy); + fail(); + } catch (IllegalStateException e) { + // Expected + } + + copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.TABLE_NAME_KEY); + try { + TableConfig.fromJSONConfig(copy); + fail(); + } catch (IllegalStateException e) { + // Expected + } + + copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.VALIDATION_CONFIG_KEY); + try { + TableConfig.fromJSONConfig(copy); + fail(); + } catch (IllegalStateException e) { + // Expected + } + + copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.TENANT_CONFIG_KEY); + try { + TableConfig.fromJSONConfig(copy); + fail(); + } catch (IllegalStateException e) { + // Expected + } + + copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.INDEXING_CONFIG_KEY); + try { + TableConfig.fromJSONConfig(copy); + fail(); + } catch (IllegalStateException e) { + // Expected + } + + copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.CUSTOM_CONFIG_KEY); + try { + TableConfig.fromJSONConfig(copy); + fail(); + } catch (IllegalStateException e) { + // Expected + } + + copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.CUSTOM_CONFIG_KEY); + try { + TableConfig.fromJSONConfig(copy); + fail(); + } catch (IllegalStateException e) { + // Expected + } + } + + // Optional fields + { + ObjectNode copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.QUOTA_CONFIG_KEY); + TableConfig.fromJSONConfig(copy); + + copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.TASK_CONFIG_KEY); + TableConfig.fromJSONConfig(copy); + + copy = jsonTableConfig.deepCopy(); + copy.remove(TableConfig.ROUTING_CONFIG_KEY); + TableConfig.fromJSONConfig(copy); + } + } + + @Test public void testSerializeDeserialize() throws Exception { TableConfig.Builder tableConfigBuilder = new TableConfig.Builder(TableType.OFFLINE).setTableName("myTable"); @@ -41,32 +131,32 @@ public class TableConfigTest { // No quota config TableConfig tableConfig = tableConfigBuilder.build(); - Assert.assertEquals(tableConfig.getTableName(), "myTable_OFFLINE"); - Assert.assertEquals(tableConfig.getTableType(), TableType.OFFLINE); - Assert.assertEquals(tableConfig.getIndexingConfig().getLoadMode(), "HEAP"); - Assert.assertNull(tableConfig.getQuotaConfig()); + assertEquals(tableConfig.getTableName(), "myTable_OFFLINE"); + assertEquals(tableConfig.getTableType(), TableType.OFFLINE); + assertEquals(tableConfig.getIndexingConfig().getLoadMode(), "HEAP"); + assertNull(tableConfig.getQuotaConfig()); // Serialize JsonNode jsonTableConfig = TableConfig.toJSONConfig(tableConfig); // All nested configs should be json objects instead of serialized strings - Assert.assertTrue(jsonTableConfig.get(TableConfig.VALIDATION_CONFIG_KEY) instanceof ObjectNode); - Assert.assertTrue(jsonTableConfig.get(TableConfig.TENANT_CONFIG_KEY) instanceof ObjectNode); - Assert.assertTrue(jsonTableConfig.get(TableConfig.INDEXING_CONFIG_KEY) instanceof ObjectNode); - Assert.assertTrue(jsonTableConfig.get(TableConfig.CUSTOM_CONFIG_KEY) instanceof ObjectNode); + assertTrue(jsonTableConfig.get(TableConfig.VALIDATION_CONFIG_KEY) instanceof ObjectNode); + assertTrue(jsonTableConfig.get(TableConfig.TENANT_CONFIG_KEY) instanceof ObjectNode); + assertTrue(jsonTableConfig.get(TableConfig.INDEXING_CONFIG_KEY) instanceof ObjectNode); + assertTrue(jsonTableConfig.get(TableConfig.CUSTOM_CONFIG_KEY) instanceof ObjectNode); // De-serialize TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(jsonTableConfig); - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNull(tableConfigToCompare.getQuotaConfig()); - Assert.assertNull(tableConfigToCompare.getValidationConfig().getReplicaGroupStrategyConfig()); - Assert.assertNull(tableConfigToCompare.getValidationConfig().getHllConfig()); + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNull(tableConfigToCompare.getQuotaConfig()); + assertNull(tableConfigToCompare.getValidationConfig().getReplicaGroupStrategyConfig()); + assertNull(tableConfigToCompare.getValidationConfig().getHllConfig()); ZNRecord znRecord = TableConfig.toZnRecord(tableConfig); tableConfigToCompare = TableConfig.fromZnRecord(znRecord); - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNull(tableConfigToCompare.getQuotaConfig()); - Assert.assertNull(tableConfig.getValidationConfig().getReplicaGroupStrategyConfig()); - Assert.assertNull(tableConfigToCompare.getValidationConfig().getHllConfig()); + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNull(tableConfigToCompare.getQuotaConfig()); + assertNull(tableConfig.getValidationConfig().getReplicaGroupStrategyConfig()); + assertNull(tableConfigToCompare.getValidationConfig().getHllConfig()); } { // With quota config @@ -74,103 +164,93 @@ public class TableConfigTest { quotaConfig.setStorage("30G"); TableConfig tableConfig = tableConfigBuilder.setQuotaConfig(quotaConfig).build(); - Assert.assertEquals(tableConfig.getTableName(), "myTable_OFFLINE"); - Assert.assertEquals(tableConfig.getTableType(), TableType.OFFLINE); - Assert.assertEquals(tableConfig.getIndexingConfig().getLoadMode(), "HEAP"); - Assert.assertNotNull(tableConfig.getQuotaConfig()); - Assert.assertEquals(tableConfig.getQuotaConfig().getStorage(), "30G"); - Assert.assertNull(tableConfig.getQuotaConfig().getMaxQueriesPerSecond()); + assertEquals(tableConfig.getTableName(), "myTable_OFFLINE"); + assertEquals(tableConfig.getTableType(), TableType.OFFLINE); + assertEquals(tableConfig.getIndexingConfig().getLoadMode(), "HEAP"); + assertNotNull(tableConfig.getQuotaConfig()); + assertEquals(tableConfig.getQuotaConfig().getStorage(), "30G"); + assertNull(tableConfig.getQuotaConfig().getMaxQueriesPerSecond()); // With qps quota quotaConfig.setMaxQueriesPerSecond("100.00"); tableConfig = tableConfigBuilder.setQuotaConfig(quotaConfig).build(); - Assert.assertNotNull(tableConfig.getQuotaConfig()); - Assert.assertNotNull(tableConfig.getQuotaConfig().getMaxQueriesPerSecond()); - Assert.assertEquals(tableConfig.getQuotaConfig().getMaxQueriesPerSecond(), "100.00"); + assertNotNull(tableConfig.getQuotaConfig()); + assertNotNull(tableConfig.getQuotaConfig().getMaxQueriesPerSecond()); + assertEquals(tableConfig.getQuotaConfig().getMaxQueriesPerSecond(), "100.00"); // Serialize then de-serialize TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getQuotaConfig()); - Assert - .assertEquals(tableConfigToCompare.getQuotaConfig().getStorage(), tableConfig.getQuotaConfig().getStorage()); + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getQuotaConfig()); + assertEquals(tableConfigToCompare.getQuotaConfig().getStorage(), tableConfig.getQuotaConfig().getStorage()); ZNRecord znRecord = TableConfig.toZnRecord(tableConfig); tableConfigToCompare = TableConfig.fromZnRecord(znRecord); - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getQuotaConfig()); - Assert - .assertEquals(tableConfigToCompare.getQuotaConfig().getStorage(), tableConfig.getQuotaConfig().getStorage()); + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getQuotaConfig()); + assertEquals(tableConfigToCompare.getQuotaConfig().getStorage(), tableConfig.getQuotaConfig().getStorage()); } { // With tenant config TableConfig tableConfig = tableConfigBuilder.setServerTenant("aServerTenant").setBrokerTenant("aBrokerTenant").build(); - Assert.assertEquals(tableConfig.getTableName(), "myTable_OFFLINE"); - Assert.assertEquals(tableConfig.getTableType(), TableType.OFFLINE); - Assert.assertEquals(tableConfig.getIndexingConfig().getLoadMode(), "HEAP"); - Assert.assertNotNull(tableConfig.getTenantConfig()); - Assert.assertEquals(tableConfig.getTenantConfig().getServer(), "aServerTenant"); - Assert.assertEquals(tableConfig.getTenantConfig().getBroker(), "aBrokerTenant"); - Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); + assertEquals(tableConfig.getTableName(), "myTable_OFFLINE"); + assertEquals(tableConfig.getTableType(), TableType.OFFLINE); + assertEquals(tableConfig.getIndexingConfig().getLoadMode(), "HEAP"); + assertNotNull(tableConfig.getTenantConfig()); + assertEquals(tableConfig.getTenantConfig().getServer(), "aServerTenant"); + assertEquals(tableConfig.getTenantConfig().getBroker(), "aBrokerTenant"); + assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); // Serialize then de-serialize TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getTenantConfig()); - Assert - .assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); - Assert - .assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); - Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getTenantConfig()); + assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); + assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); + assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); ZNRecord znRecord = TableConfig.toZnRecord(tableConfig); tableConfigToCompare = TableConfig.fromZnRecord(znRecord); - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getTenantConfig()); - Assert - .assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); - Assert - .assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); - Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getTenantConfig()); + assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); + assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); + assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); TagOverrideConfig tagOverrideConfig = new TagOverrideConfig(); tagOverrideConfig.setRealtimeConsuming("aRTConsumingTag_REALTIME"); tableConfig = tableConfigBuilder.setTagOverrideConfig(tagOverrideConfig).build(); - Assert.assertEquals(tableConfig.getTableName(), "myTable_OFFLINE"); - Assert.assertEquals(tableConfig.getTableType(), TableType.OFFLINE); - Assert.assertNotNull(tableConfig.getTenantConfig()); - Assert.assertEquals(tableConfig.getTenantConfig().getServer(), "aServerTenant"); - Assert.assertEquals(tableConfig.getTenantConfig().getBroker(), "aBrokerTenant"); - Assert.assertNotNull(tableConfig.getTenantConfig().getTagOverrideConfig()); - Assert.assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig().getRealtimeConsuming(), + assertEquals(tableConfig.getTableName(), "myTable_OFFLINE"); + assertEquals(tableConfig.getTableType(), TableType.OFFLINE); + assertNotNull(tableConfig.getTenantConfig()); + assertEquals(tableConfig.getTenantConfig().getServer(), "aServerTenant"); + assertEquals(tableConfig.getTenantConfig().getBroker(), "aBrokerTenant"); + assertNotNull(tableConfig.getTenantConfig().getTagOverrideConfig()); + assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig().getRealtimeConsuming(), "aRTConsumingTag_REALTIME"); - Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig().getRealtimeCompleted()); + assertNull(tableConfig.getTenantConfig().getTagOverrideConfig().getRealtimeCompleted()); // Serialize then de-serialize tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getTenantConfig()); - Assert - .assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); - Assert - .assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); - Assert.assertNotNull(tableConfigToCompare.getTenantConfig().getTagOverrideConfig()); - Assert.assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig(), + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getTenantConfig()); + assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); + assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); + assertNotNull(tableConfigToCompare.getTenantConfig().getTagOverrideConfig()); + assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig(), tableConfigToCompare.getTenantConfig().getTagOverrideConfig()); znRecord = TableConfig.toZnRecord(tableConfig); tableConfigToCompare = TableConfig.fromZnRecord(znRecord); - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getTenantConfig()); - Assert - .assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); - Assert - .assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); - Assert.assertNotNull(tableConfigToCompare.getTenantConfig().getTagOverrideConfig()); - Assert.assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig(), + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getTenantConfig()); + assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); + assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); + assertNotNull(tableConfigToCompare.getTenantConfig().getTagOverrideConfig()); + assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig(), tableConfigToCompare.getTenantConfig().getTagOverrideConfig()); } { @@ -195,26 +275,24 @@ public class TableConfigTest { { // With default StreamConsumptionConfig TableConfig tableConfig = tableConfigBuilder.build(); - Assert.assertEquals( - tableConfig.getIndexingConfig().getStreamConsumptionConfig().getStreamPartitionAssignmentStrategy(), + assertEquals(tableConfig.getIndexingConfig().getStreamConsumptionConfig().getStreamPartitionAssignmentStrategy(), "UniformStreamPartitionAssignment"); // with streamConsumptionConfig set tableConfig = tableConfigBuilder.setStreamPartitionAssignmentStrategy("BalancedStreamPartitionAssignment").build(); - Assert.assertEquals( - tableConfig.getIndexingConfig().getStreamConsumptionConfig().getStreamPartitionAssignmentStrategy(), + assertEquals(tableConfig.getIndexingConfig().getStreamConsumptionConfig().getStreamPartitionAssignmentStrategy(), "BalancedStreamPartitionAssignment"); // Serialize then de-serialize TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); - Assert.assertEquals( + assertEquals( tableConfigToCompare.getIndexingConfig().getStreamConsumptionConfig().getStreamPartitionAssignmentStrategy(), "BalancedStreamPartitionAssignment"); ZNRecord znRecord = TableConfig.toZnRecord(tableConfig); tableConfigToCompare = TableConfig.fromZnRecord(znRecord); - Assert.assertEquals( + assertEquals( tableConfigToCompare.getIndexingConfig().getStreamConsumptionConfig().getStreamPartitionAssignmentStrategy(), "BalancedStreamPartitionAssignment"); } @@ -253,9 +331,9 @@ public class TableConfigTest { String hllConfigJson = hllConfig.toJsonString(); HllConfig newHllConfig = HllConfig.fromJsonString(hllConfigJson); - Assert.assertEquals(hllConfig.getColumnsToDeriveHllFields(), newHllConfig.getColumnsToDeriveHllFields()); - Assert.assertEquals(hllConfig.getHllLog2m(), newHllConfig.getHllLog2m()); - Assert.assertEquals(hllConfig.getHllDeriveColumnSuffix(), newHllConfig.getHllDeriveColumnSuffix()); + assertEquals(hllConfig.getColumnsToDeriveHllFields(), newHllConfig.getColumnsToDeriveHllFields()); + assertEquals(hllConfig.getHllLog2m(), newHllConfig.getHllLog2m()); + assertEquals(hllConfig.getHllDeriveColumnSuffix(), newHllConfig.getHllDeriveColumnSuffix()); TableConfig tableConfig = tableConfigBuilder.build(); tableConfig.getValidationConfig().setHllConfig(hllConfig); @@ -272,24 +350,24 @@ public class TableConfigTest { private void checkTableConfigWithAssignmentConfig(TableConfig tableConfig, TableConfig tableConfigToCompare) { // Check that the segment assignment configuration does exist. - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getValidationConfig().getReplicaGroupStrategyConfig()); - Assert.assertEquals(tableConfigToCompare.getValidationConfig().getReplicaGroupStrategyConfig(), + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getValidationConfig().getReplicaGroupStrategyConfig()); + assertEquals(tableConfigToCompare.getValidationConfig().getReplicaGroupStrategyConfig(), tableConfig.getValidationConfig().getReplicaGroupStrategyConfig()); // Check that the configurations are correct. ReplicaGroupStrategyConfig strategyConfig = tableConfigToCompare.getValidationConfig().getReplicaGroupStrategyConfig(); - Assert.assertTrue(strategyConfig.getMirrorAssignmentAcrossReplicaGroups()); - Assert.assertEquals(strategyConfig.getNumInstancesPerPartition(), 5); - Assert.assertEquals(strategyConfig.getPartitionColumn(), "memberId"); + assertTrue(strategyConfig.getMirrorAssignmentAcrossReplicaGroups()); + assertEquals(strategyConfig.getNumInstancesPerPartition(), 5); + assertEquals(strategyConfig.getPartitionColumn(), "memberId"); } private void checkTableConfigWithStarTreeConfig(TableConfig tableConfig, TableConfig tableConfigToCompare) throws Exception { // Check that the segment assignment configuration does exist. - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getIndexingConfig().getStarTreeIndexSpec()); + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getIndexingConfig().getStarTreeIndexSpec()); // Check that the configurations are correct. StarTreeIndexSpec starTreeIndexSpec = tableConfigToCompare.getIndexingConfig().getStarTreeIndexSpec(); @@ -297,24 +375,24 @@ public class TableConfigTest { Set<String> dims = new HashSet<>(); dims.add("dims"); - Assert.assertEquals(starTreeIndexSpec.getDimensionsSplitOrder(), Collections.singletonList("dim")); - Assert.assertEquals(starTreeIndexSpec.getMaxLeafRecords(), 5); - Assert.assertEquals(starTreeIndexSpec.getSkipMaterializationCardinalityThreshold(), 1); - Assert.assertEquals(starTreeIndexSpec.getSkipMaterializationForDimensions(), dims); - Assert.assertEquals(starTreeIndexSpec.getSkipStarNodeCreationForDimensions(), dims); + assertEquals(starTreeIndexSpec.getDimensionsSplitOrder(), Collections.singletonList("dim")); + assertEquals(starTreeIndexSpec.getMaxLeafRecords(), 5); + assertEquals(starTreeIndexSpec.getSkipMaterializationCardinalityThreshold(), 1); + assertEquals(starTreeIndexSpec.getSkipMaterializationForDimensions(), dims); + assertEquals(starTreeIndexSpec.getSkipStarNodeCreationForDimensions(), dims); starTreeIndexSpec = StarTreeIndexSpec.fromJsonString(starTreeIndexSpec.toJsonString()); - Assert.assertEquals(starTreeIndexSpec.getDimensionsSplitOrder(), Collections.singletonList("dim")); - Assert.assertEquals(starTreeIndexSpec.getMaxLeafRecords(), 5); - Assert.assertEquals(starTreeIndexSpec.getSkipMaterializationCardinalityThreshold(), 1); - Assert.assertEquals(starTreeIndexSpec.getSkipMaterializationForDimensions(), dims); - Assert.assertEquals(starTreeIndexSpec.getSkipStarNodeCreationForDimensions(), dims); + assertEquals(starTreeIndexSpec.getDimensionsSplitOrder(), Collections.singletonList("dim")); + assertEquals(starTreeIndexSpec.getMaxLeafRecords(), 5); + assertEquals(starTreeIndexSpec.getSkipMaterializationCardinalityThreshold(), 1); + assertEquals(starTreeIndexSpec.getSkipMaterializationForDimensions(), dims); + assertEquals(starTreeIndexSpec.getSkipStarNodeCreationForDimensions(), dims); } private void checkTableConfigWithHllConfig(TableConfig tableConfig, TableConfig tableConfigToCompare) { // Check that the segment assignment configuration does exist. - Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); - Assert.assertNotNull(tableConfigToCompare.getValidationConfig().getHllConfig()); + assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); + assertNotNull(tableConfigToCompare.getValidationConfig().getHllConfig()); // Check that the configurations are correct. HllConfig hllConfig = tableConfigToCompare.getValidationConfig().getHllConfig(); @@ -323,8 +401,8 @@ public class TableConfigTest { columns.add("column"); columns.add("column2"); - Assert.assertEquals(hllConfig.getColumnsToDeriveHllFields(), columns); - Assert.assertEquals(hllConfig.getHllLog2m(), 9); - Assert.assertEquals(hllConfig.getHllDeriveColumnSuffix(), "suffix"); + assertEquals(hllConfig.getColumnsToDeriveHllFields(), columns); + assertEquals(hllConfig.getHllLog2m(), 9); + assertEquals(hllConfig.getHllDeriveColumnSuffix(), "suffix"); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
