RFR: 8273104: Refactoring option parser for UL

Yasumasa Suenaga ysuenaga at openjdk.java.net
Sun Aug 29 04:07:36 UTC 2021


As we discussed in PR #4885 and in [its CSR](https://bugs.openjdk.java.net/browse/JDK-8271188), we want to introduce `foldmultilines` to stdout/err UL output. However we have no chance to configure `LogOutput` for stdout/err (`LogStdoutOutput`/`LogStderrOutput`) becasuse they will be instantiated statically in logFileStreamOutput.cpp.

So we need to refactor UL option parser to propagate options to all extended classes of `LogOutput`.

* Move `parse_option()` to `LogOutput` from `LogFileOutput`, then it becames public member.
* Introduce `set_option()` in `LogOutput` as a pure virtual member to apply options to each log output, then it is implemented in both `LogFileStreamOutput` and `LogFileOutput`.
* Move both `FoldMultilinesOptionKey` and `_fold_mulilines` in `LogFileStreamOutput` to private member because they are no longer to need to be public.

I want to send PR to introduce `foldmultilines` to stdout/err like https://github.com/YaSuenag/jdk/compare/ul-refactoring...YaSuenag:foldmultilines-for-stdout after this.

-------------

Commit messages:
 - Update success flag if filesize overflows
 - Fix gtest failure
 - refactoring

Changes: https://git.openjdk.java.net/jdk/pull/5293/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5293&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8273104
  Stats: 126 lines in 7 files changed: 65 ins; 45 del; 16 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5293.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5293/head:pull/5293

PR: https://git.openjdk.java.net/jdk/pull/5293


More information about the hotspot-runtime-dev mailing list