You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@fluo.apache.org by GitBox <gi...@apache.org> on 2019/08/13 13:44:48 UTC

[GitHub] [fluo] keith-turner commented on a change in pull request #1077: Updated commons config from ver 1 to 2

keith-turner commented on a change in pull request #1077: Updated commons config from ver 1 to 2
URL: https://github.com/apache/fluo/pull/1077#discussion_r313403967
 
 

 ##########
 File path: modules/api/src/main/java/org/apache/fluo/api/config/SimpleConfiguration.java
 ##########
 @@ -335,4 +334,35 @@ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundE
     ByteArrayInputStream bais = new ByteArrayInputStream(data);
     load(bais);
   }
+
+  private String stream2String(InputStream in) {
+    try {
+      ByteArrayOutputStream result = new ByteArrayOutputStream();
+      byte[] buffer = new byte[4096];
+      int length;
+      while ((length = in.read(buffer)) != -1) {
+        result.write(buffer, 0, length);
+      }
+
+      return result.toString(StandardCharsets.UTF_8.name());
+    } catch (IOException e) {
+      throw new UncheckedIOException(e);
+    }
+  }
+
+  /*
+   * Commons config 1 was used previously to implement this class. Commons config 1 required
+   * escaping interpolation. This escaping is no longer required with commmons config 2. If
+   * interpolation is escaped, then this API behaves differently. This function suppresses escaped
+   * interpolation in order to maintain behavior for reading.
+   */
+  private Reader cleanUp(InputStream in) {
+    return new StringReader(stream2String(in).replace("\\${", "${"));
 
 Review comment:
   Current versions of Fluo rely on interpolation and document it in the default configs.  With CC1 this escaping was needed to make it work.  Without this things that used to work fail in odd and hard to debug way that will waste peoples time. I think something must be done to avoid that.

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services