abhioncbr commented on code in PR #12440: URL: https://github.com/apache/pinot/pull/12440#discussion_r1509441264
########## pinot-spi/src/main/java/org/apache/pinot/spi/env/CommonsConfigurationUtils.java: ########## @@ -287,4 +321,35 @@ private static PropertiesConfiguration createPropertiesConfiguration(boolean set return config; } + + /** + * Creates the IOFactory based on the provided kind. + * + * @param ioFactoryKind IOFactory kind + * @param config to get the header content from the property configuration + * @param headerContentToCheck header content to validate. + * @return IOFactory + */ + private static IOFactory createPropertyIOFactory(PropertyIOFactoryKind ioFactoryKind, + PropertiesConfiguration config, String headerContentToCheck) { + switch (ioFactoryKind) { + case ConfigFileIOFactory: + return new ConfigFilePropertyIOFactory(); + case SegmentMetadataIOFactory: + String headerContent = config.getHeader(); + boolean skipEscapeUnescapePropertyName = + shouldSkipEscapeUnescapePropertyName(headerContent, headerContentToCheck); + return new SegmentMetadataPropertyIOFactory(skipEscapeUnescapePropertyName); + case DefaultPropertyConfigurationIOFactory: + default: + return new PropertiesConfiguration.DefaultIOFactory(); + } + } + + private static boolean shouldSkipEscapeUnescapePropertyName(String header, String headerContentToCheck) { Review Comment: We are introducing the segment metadata version header, so it should not be present for old metadata properties. That's why checking whether the header contains `segment.metadata.version` or not. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org