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_r313143651
##########
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:
Is this worth keeping? It seems like it'd be better to just document the
change, rather than try to preserve old interpolation behavior.
----------------------------------------------------------------
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