ctubbsii 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_r313499632
 
 

 ##########
 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("\\${", "${"));
+  }
+
+  private PropertiesConfiguration newPropertiesConfiguration() {
+    // TODO confirm defaults are ok... tried to use a builder and it blew up 
at runtime because of
+    // missing bean lib
+    return new PropertiesConfiguration();
 
 Review comment:
   The default is to return null when something missing is requested. I would 
hope Fluo isn't changing that behavior to produce an exception instead... 
because that would be weird to generate a stack trace when any arbitrary 
requested property isn't set. And yes, CC2 does disable list parsing by 
default, which is great, since that was the source of many issues in CC1, and 
we were overriding that behavior anyway.

----------------------------------------------------------------
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:
[email protected]


With regards,
Apache Git Services

Reply via email to