This is an automated email from the ASF dual-hosted git repository. jfim 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 b21805c Change format of the ApplyConfig computed config (#3500) b21805c is described below commit b21805cd332742df85d3b40eb5ff71745161e716 Author: Jean-François Im <jeanfrancois...@gmail.com> AuthorDate: Tue Dec 4 12:38:54 2018 -0800 Change format of the ApplyConfig computed config (#3500) Change the format of the computed config in ApplyConfig to make it easier to be reused by external tools. The new format is Java properties-style HOCON as opposed to the nested structure HOCON format. --- .../java/com/linkedin/pinot/common/config/Serializer.java | 11 +++++++++++ .../pinot/tools/admin/command/ApplyTableConfigCommand.java | 3 +-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pinot-common/src/main/java/com/linkedin/pinot/common/config/Serializer.java b/pinot-common/src/main/java/com/linkedin/pinot/common/config/Serializer.java index 44e030d..2f66a23 100644 --- a/pinot-common/src/main/java/com/linkedin/pinot/common/config/Serializer.java +++ b/pinot-common/src/main/java/com/linkedin/pinot/common/config/Serializer.java @@ -18,6 +18,7 @@ package com.linkedin.pinot.common.config; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import com.typesafe.config.ConfigRenderOptions; +import com.typesafe.config.ConfigValueFactory; import io.vavr.Tuple; import io.vavr.collection.HashMap; import io.vavr.collection.List; @@ -52,6 +53,16 @@ public class Serializer { return config.root().render(ConfigRenderOptions.defaults().setJson(false).setOriginComments(false)); } + public static <T> String serializeToPropertiesString(T object) { + ConfigRenderOptions configRenderOptions = + ConfigRenderOptions.defaults().setJson(false).setOriginComments(false).setFormatted(false); + return serialize(object) + .map(keyValueTuple -> keyValueTuple._1 + "=" + + ConfigValueFactory.fromAnyRef(keyValueTuple._2).render(configRenderOptions)) + .sorted() + .mkString("\n"); + } + private static <T> Map<String, ?> serialize(T object, Class<? extends T> clazz, String pathContext) throws Exception { if (object == null) { return HashMap.empty(); diff --git a/pinot-tools/src/main/java/com/linkedin/pinot/tools/admin/command/ApplyTableConfigCommand.java b/pinot-tools/src/main/java/com/linkedin/pinot/tools/admin/command/ApplyTableConfigCommand.java index b08ada4..72616b7 100644 --- a/pinot-tools/src/main/java/com/linkedin/pinot/tools/admin/command/ApplyTableConfigCommand.java +++ b/pinot-tools/src/main/java/com/linkedin/pinot/tools/admin/command/ApplyTableConfigCommand.java @@ -24,7 +24,6 @@ import com.linkedin.pinot.controller.helix.ControllerRequestURLBuilder; import com.linkedin.pinot.tools.Command; import java.io.File; import java.io.InputStream; -import java.util.List; import org.apache.commons.io.IOUtils; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; @@ -80,7 +79,7 @@ public class ApplyTableConfigCommand extends AbstractBaseAdminCommand implements throw new RuntimeException("Table config does not contain a valid offline or realtime table definition."); } - String computedConfig = Serializer.serializeToString(combinedConfig); + String computedConfig = Serializer.serializeToPropertiesString(combinedConfig); if (_showComputedConfig) { System.out.println(computedConfig); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org