public RealtimeTagConfig(TableConfig tableConfig) { super(tableConfig); TagOverrideConfig tagOverrideConfig = tableConfig.getTenantConfig().getTagOverrideConfig(); if (tagOverrideConfig != null && tagOverrideConfig.getRealtimeConsuming() != null) { _consumingRealtimeServerTag = tagOverrideConfig.getRealtimeConsuming(); } else { _consumingRealtimeServerTag = TagNameUtils.getRealtimeTagForTenant(_serverTenant); } if (tagOverrideConfig != null && tagOverrideConfig.getRealtimeCompleted() != null) { _completedRealtimeServerTag = tagOverrideConfig.getRealtimeCompleted(); } else { _completedRealtimeServerTag = TagNameUtils.getRealtimeTagForTenant(_serverTenant); } if (!_consumingRealtimeServerTag.equals(_completedRealtimeServerTag)) { _relocateCompletedSegments = true; } }
Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); TagOverrideConfig tagOverrideConfig = new TagOverrideConfig(); tagOverrideConfig.setRealtimeConsuming("aRTConsumingTag_REALTIME"); tableConfig = tableConfigBuilder.setTagOverrideConfig(tagOverrideConfig).build(); Assert.assertEquals(tableConfig.getTenantConfig().getBroker(), "aBrokerTenant"); Assert.assertNotNull(tableConfig.getTenantConfig().getTagOverrideConfig()); Assert.assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig().getRealtimeConsuming(), "aRTConsumingTag_REALTIME"); Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig().getRealtimeCompleted());
TagOverrideConfig tagOverrideConfig = new TagOverrideConfig(); tableConfig = tableConfigBuilder.setTagOverrideConfig(tagOverrideConfig).build(); inputs.add(new Object[]{tableConfig, "aServerTenant", "aServerTenant_REALTIME", "aServerTenant_REALTIME"}); tagOverrideConfig = new TagOverrideConfig(); tagOverrideConfig.setRealtimeConsuming("overriddenTag_REALTIME"); tableConfig = tableConfigBuilder.setTagOverrideConfig(tagOverrideConfig).build(); inputs.add(new Object[]{tableConfig, "aServerTenant", "overriddenTag_REALTIME", "aServerTenant_REALTIME"}); tagOverrideConfig = new TagOverrideConfig(); tagOverrideConfig.setRealtimeCompleted("overriddenTag_OFFLINE"); tableConfig = tableConfigBuilder.setTagOverrideConfig(tagOverrideConfig).build(); inputs.add(new Object[]{tableConfig, "aServerTenant", "aServerTenant_REALTIME", "overriddenTag_OFFLINE"}); tagOverrideConfig = new TagOverrideConfig(); tagOverrideConfig.setRealtimeConsuming("overriddenTag_REALTIME"); tagOverrideConfig.setRealtimeCompleted("overriddenTag_OFFLINE"); tableConfig = tableConfigBuilder.setTagOverrideConfig(tagOverrideConfig).build(); inputs.add(new Object[]{tableConfig, "aServerTenant", "overriddenTag_REALTIME", "overriddenTag_OFFLINE"});
@DataProvider(name = "offlineTagConfigTestDataProvider") public Object[][] offlineTagConfigTestDataProvider() { TableConfig.Builder tableConfigBuilder = new TableConfig.Builder(CommonConstants.Helix.TableType.OFFLINE); tableConfigBuilder.setTableName("testOfflineTable").setTimeColumnName("timeColumn").setTimeType("DAYS") .setRetentionTimeUnit("DAYS").setRetentionTimeValue("5").setServerTenant("aServerTenant"); List<Object[]> inputs = new ArrayList<>(); TableConfig tableConfig = tableConfigBuilder.build(); inputs.add(new Object[]{tableConfig, "aServerTenant", "aServerTenant_OFFLINE"}); tableConfig = tableConfigBuilder.setTagOverrideConfig(null).build(); inputs.add(new Object[]{tableConfig, "aServerTenant", "aServerTenant_OFFLINE"}); TagOverrideConfig tagOverrideConfig = new TagOverrideConfig(); tableConfig = tableConfigBuilder.setTagOverrideConfig(tagOverrideConfig).build(); inputs.add(new Object[]{tableConfig, "aServerTenant", "aServerTenant_OFFLINE"}); tagOverrideConfig = new TagOverrideConfig(); tagOverrideConfig.setRealtimeConsuming("overriddenTag_REALTIME"); tagOverrideConfig.setRealtimeCompleted("overriddenTag_OFFLINE"); tableConfig = tableConfigBuilder.setTagOverrideConfig(tagOverrideConfig).build(); inputs.add(new Object[]{tableConfig, "aServerTenant", "aServerTenant_OFFLINE"}); return inputs.toArray(new Object[inputs.size()][]); }
String realtimeConsumingTag = tagOverrideConfig.getRealtimeConsuming(); if (realtimeConsumingTag != null) { if (!TagNameUtils.hasValidServerTagSuffix(realtimeConsumingTag)) { String realtimeCompletedTag = tagOverrideConfig.getRealtimeCompleted(); if (realtimeCompletedTag != null) { if (!TagNameUtils.hasValidServerTagSuffix(realtimeCompletedTag)) {