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

Reply via email to